我想知道黑客是如何发现漏洞的。
如果他们使用模糊测试,安全工程师就会这样做,而且可能是安全工程师(在公司工作)比一群黑客拥有更多的资源。
逆向工程需要很多时间,而且我认为它不够可靠,不能依赖。真的是这样吗,还是我错过了什么?
我想到的是这些竞赛,黑客总有一天会找到浏览器的漏洞并加以利用。他们是怎么做到的?分配给开源浏览器(chrome)的时间与分配给闭源浏览器(Internet Explorer)的时间相同。
我想知道黑客是如何发现漏洞的。
如果他们使用模糊测试,安全工程师就会这样做,而且可能是安全工程师(在公司工作)比一群黑客拥有更多的资源。
逆向工程需要很多时间,而且我认为它不够可靠,不能依赖。真的是这样吗,还是我错过了什么?
我想到的是这些竞赛,黑客总有一天会找到浏览器的漏洞并加以利用。他们是怎么做到的?分配给开源浏览器(chrome)的时间与分配给闭源浏览器(Internet Explorer)的时间相同。
利用溢出相关漏洞的基本途径是找到崩溃(通常通过模糊测试),评估崩溃以及它是否呈现攻击路径,然后构建一些东西来利用它。
有时,一个人可能会涉及到架构知识,例如当查理米勒注意到 iOS 4.3 有一段内存将运行未签名代码时。在他所有的苹果攻击事件中,我相信消息来源已经关闭。SQL 注入的弱点是相似的——你从一个知道哪里是好地方的婴儿床开始。
虽然在发现崩溃后通过源代码识别和纠正错误是最简单的,但如果一个人的目标只是编写一个有效的利用程序,那么设置环境的工作可能没有价值。通常,程序的相关空间将涉及查看不到 1 KB 的机器代码。
从我的角度来看,开源允许人们在错误发生时查看添加的错误并说:“嘿,那一点源看起来很疯狂。” 除此之外,利用闭源和开源工作的工作通常是相同的。至于逆向工程,除非您尝试更改或重新创建应用程序而不是从中启动漏洞利用,否则这种情况很少见。
我不会低估黑客组织将大量计算资源用于一项任务的能力。Warez 组织在整个互联网历史上都以收集大量存储和带宽资源而闻名。认为黑客组织没有聚集相同规模的 CPU 能力可能是幼稚的。
最后,大多数这样做了足够长的时间的人会保留一两个发现的漏洞而不是释放它。
查看您的假设:
许多攻击组织拥有比公司大得多的资源
fuzzing 是由安全工程师和黑帽来完成的
逆向工程很耗时
一日剥削比赛
漏洞的主要来源是事故而不是故意的。
当浏览器崩溃时,安全专家会使用调试器调试它是如何发生的,看看他们是否可以重现崩溃。因此,它来自于在发生漏洞时注意到它们,而不是寻找漏洞。
在编程时,例如建立一个网站,当使用一些晦涩的功能时,专家会问自己这个晦涩的功能是如何工作的,以及当他们错误地使用它时会发生什么。
Charlie Miller 等人只发现了相对较少的漏洞。在这些情况下,这是因为他们花了数年时间对产品进行逆向工程,并且可以根据现有知识反复发现漏洞。