因此,您想成为网络安全领域的分析师...

本文的翻译是专门为Pentest的学生准备的。 渗透测试实践




您是否对开发黑客方法感兴趣,并希望与信息安全社区共享您的发现? 在本文中,我将为那些想成为Web安全领域的分析师的人提供一些建议,并讨论他本人曾经遇到的机会和陷阱。

谁是网络安全分析师?


网络安全分析人员不仅可以使用SQLi和XSS等著名的黑客技术,而且可以发现对网站的新威胁。 这些可以是使现有方法复杂化的创新解决方案,例如利用本地+盲XXE漏洞的方法,也可以是全新的威胁类别,如Web缓存欺骗 (中毒Web应用程序缓存)。

保护网站不受未知攻击方法的攻击非常困难,因此它们通常可用于操作大量其他安全网站。 这意味着在此区域发布您的发现可以帮助网站消除漏洞,从而提高整个生态系统的总体安全级别。

毕生难忘


大多数研究都涉及对现有方法的使用,这些方法已有一些改进,因此从一开始就应该熟悉当前的情况。 最快的方法是找到一份工作,您将在大部分时间使用任何黑客技巧。 许多优秀人士已经就如何进入信息安全行业提供了建议 ,因此在此我将做简短介绍。

我建议一种以实践为导向的方法,从我们的网络安全学院开始 ,继续进行更开放的任务,例如在我的hackxor.net上 ,首先通过简单的任务前进,对HackerOneBugCrowd所做的努力给予少量奖励,然后再进行最后切换到久经考验的慷慨,高薪的通用漏洞程序。 在找到并分析了多个漏洞之后,成为信息安全顾问并每天对新站点和Web应用程序进行黑客攻击应该很容易。

有许多免费的在线资源将一路为您服务,包括我们的Burp方法,HackerOne Hacker 101OWASP测试指南。 对于书籍,我建议阅读《 WebApp黑客手册》和《 The Tangled Web》 。 上面的网络安全学院旨在以交互方式代替WebApp黑客手册,但是我们将花一些时间来介绍所有必要的主题,因此,我现在建议同时使用这两种资源。

超越已知方法


一旦您开始工作并全职从事黑客工作,您将了解工作量,一段时间后,您的经验将很丰富,并且很难掌握新知识。 在这一阶段,最重要的步骤是不要让自己沉迷于我们的桂冠,而要继续学习和练习。 只有这样,您才能成为真正的专家。

寻找被遗忘的知识


每个人都知道您需要跟上新的发展并监视行业专家 ,新闻聚合人员并参加安全会议。 但是,仅关注新的发展就意味着不要注意到很久以前就已经忘记的宝贵知识和研究。

每当您找到一篇不错的博客文章时,就不要准时浏览-阅读整个档案。 无价和被遗忘的信息通常隐藏在那里。 例如,以2009年撰写的有关DNS重新绑定的RSnake 文章为例。 重新绑定DNS绕过了网站上基于IP /基于防火墙的访问控制,唯一避免此问题的有效方法是在Host HTTP标头中将您的应用列入白名单。 人们很快决定浏览器可以处理此问题。九年后,通过一系列新的利用,很明显该漏洞已被重用。

浏览档案还可以帮助您避免像其他十年后重新发明 CSS攻击那样重新发明别人已经发明的轮子。 但是,确实很难找到一些研究,因此偶然的重复是不可避免的。 一旦我发表研究报告,发现kuza55在五年前已经在做同样的事情。 因此,尽一切可能避免重复研究,但是,如果发生这种情况,不要惊慌,这会发生在每个人身上。

收集稀有物


为了联系话题并找出其他人错过的机会,从各种来源收集信息非常重要。 对于初学者,不要将自己局限于阅读信息安全性内容。 您将很快找到指导您进行利用的文档 。 同样,下一个技巧可能很明显,但是在浏览Google或尝试在Twitter / Reddit / StackOverflow上提出问题之前,请务必先询问您的同事。 经常会发生必要的知识在附近某处的情况,但是有些人根本没有公开共享它。

此外,请尝试保持经验的多样性。

为信息安全咨询执行黑盒渗透测试,应该为您提供广泛的外部和内部Web应用程序,而您在Bug赏金计划中可能从未遇到过这些应用程序。 但是,时间限制将使您无法深入了解对应用程序的了解,而该漏洞是出于一个目的而需要几个月的漏洞赏金。 尽管这是一个缓慢且有限的过程,但是对白盒源代码的回顾可能会提供一个替代方法,使黑盒彭斯特无法想到。 要成为分析师,您需要结合所有三种工作方法。 其他功能,例如CTF游戏和编写Web应用程序,也会扩大您的视野。

没有太愚蠢的想法


您可能会遇到的最糟糕的陷阱之一就是放弃一个好主意,假设它肯定行不通,并且不要尝试它,因为“别人会注意到它”或“它太愚蠢以至于无法做到”工作。” 我遭受了如此之多的痛苦,以至于研究的一部分出现了比预期晚两年的情况。 无论是通过重新输入相同的密码来绕过身份验证 ,还是通过手机(而不是笔记本电脑)从您的手机(而不是笔记本电脑) 入侵 Google管理页面,都无济于事,因为下一个重要的利用可能来自一个真正愚蠢的想法。

放弃安慰


如果某些技术被认为是复杂,不便或危险的-这显然是一个需要研究的话题。 在研究了远远超出我的舒适范围的主题后,反复经历了真正的突破之后,我决定最快找到新发现的方法是积极寻找让我感到不舒服的主题。 其他黑客很可能回避这些主题,从而给他们带来了巨大的研究潜力。 对我来说,这是为什么我能够购买该设备的唯一合理的解释,该设备于2005年首次记录,然后在2016年再次出现在DEF CON上,并用它在2019年通过漏洞赏金获得了7万美元。

重复,重塑,分享
重覆


开始工作的最简单方法是找到其他人的前瞻性研究,在您的基础上建立基础,混合一些方法,然后尝试在现场应用您的新方法,看看是否发生了有趣的事情。

例如, 这篇有关CORS错误配置的文章指出了有趣的行为,并说这种行为极为普遍,但作者止步于此,并未研究对单个网站的影响。

我以提出的概念为基础,将其应用于漏洞赏金网站,在此网站上我可以进行合法的实验,并尽一切努力避免使用各种可能的方法来保护它们。 在此过程中,我使用了众所周知的开放重定向漏洞利用技术进行了一些改进,最终通过阅读CORS文档发现了“空”的起源,并探讨了缓存中毒的可能性。

在此过程中,没有什么需要令人难以置信的直觉或出色的技术知识,但是,最终结果很容易获得-比特币和赏金的CORS配置错误的操作。

发明


重复别人的工作很酷,但是最酷的研究来自无处,无论是重写相对路径还是使Web应用程序缓存中毒。 我相信,这样的发现是由个人经验加起来的。 我称它们为“领先经验”或“面包屑”,因为它们有时是神秘的,可能需要花费很多时间才能带给您有益的发现。

例如,在2011年,我试图破解addons.mozilla.org使用的CSRF保护。 我绕过了令牌检查,但是他们还检查了Referer标头中的主机是否与当前站点匹配。 我向sla.ckers论坛寻求帮助, 'barbarianbob'说Django通过查看HTTP标头中Host字段的值来确定当前站点的主机,并且它可以被X-Forwarded-Host标头覆盖。 该想法可以与在Flash中引入标头以规避CSRF检查的漏洞的想法相结合,但是更重要的是第一个面包屑。 由她领导的想法是,应用程序可以依靠主机头来确定其当前位置。
一段时间后,我查看了Piwik密码重置功能的源代码,发现一行看起来像这样:

$passwordResetLink = getCurrentUrlWithoutQueryString() + $secretToken

是的,我想。 Piwik使用PHP,它在处理路径方面非常有趣,因此我可以在piwik.com/reset.php/foo;http://evil.com上要求重设密码,结果我收到了带有两个链接的电子邮件,并发送了秘密令牌在evil.com 。 这个想法奏效,给我带来了好处,并为以后的搜索打下了基础。

第三个也是最后一个问题是Piwik如何尝试修复此漏洞。 他们将getCurrentUrlWithoutQueryString()替换为getCurrentUrlWithoutFileName() 。 这意味着我不能再使用我的方法进行攻击了。 由于我已经熟悉Django,因此决定深入研究代码,并了解Piwik如何确定当前主机名。 我发现,就像Django一样,他们使用了host标头,这意味着我可以轻松生成发送的电子邮件来重置密码。 事实证明,此技巧适用于addons.mozilla.org和Gallery,Symfony,Drupal以及许多其他站点。 结果,这导致了替换HTTP Host标头的攻击实践。

形容发现的发现如此冗长,我希望我能够消除研究过程中的奥秘,并与无处不在的自发想法相提并论。 从这个角度来看,似乎主要技能(除了现有的知识和经验之外)是识别这些面包屑并遵循它们指示的路径。 我无法以一种易于使用的方式来制定方法,但我知道如何反复考虑那些使您说“毫无意义”的事情。

分享到


与社区分享您的研究非常重要。 这将有助于增加您的投资组合,并可能鼓励您的雇主给您更多的工作时间进行研究。 此外,这将帮助您避免浪费时间并促进进一步的研究。 批评您的作品并对其进行评论可以帮助您看到以前没有注意到的内容。 没有比看到其他分析师如何根据您的技术发展他的技术更有用的了。

请不要仅仅因为技术或创意不具有创新性就不要共享技术或创意。 两个徽标和一个演示文稿-发布您拥有的所有内容(理想情况是在博客上,而不是在索引不佳的封闭平台(如Twitter)上)。

分享您的研究成果时,展示一个将您的方法应用于实际网络应用程序的示例总是有用的。 没有这个,人们将不可避免地难以理解它,他们可能会怀疑它的实用价值。

最后,演示文稿非常适合吸引更广泛的受众,但不要陷入恶性循环,也不要浪费时间无休止地重复过去的演示文稿。

结论


我本人仍然需要学习很多有关网络安全的知识,因此几年后我将以崭新的外观和新的想法回到这个主题。 此外,我知道其他分析师可能有不同的观点,我期待他们可以分享的想法。

我成为网络安全分析师的提示摘要:

  • 寻找被遗忘的知识并阅读档案记录;
  • 从尽可能多的不同来源获取信息;
  • 深入研究复杂的“可怕”主题;
  • 重复,发明,分享;
  • 没有太愚蠢的想法。

因此,如果您希望入门,那么我可以为您每年精选的十种最佳网络黑客技术提供建议 。 除此之外,我还创建了许多启发我很多年的博客列表。 祝您研究工作顺利,玩得开心!

Source: https://habr.com/ru/post/zh-CN467923/


All Articles