所有安全威胁是否都由软件错误触发?


13

我听说过的大多数安全威胁是由于软件中的错误引起的(例如,未正确检查所有输入的完整性,堆栈溢出等)。因此,如果我们排除所有社交黑客攻击,是否都是由于漏洞引起的安全威胁?换句话说,如果没有错误,是否就不会有安全威胁(再次,排除诸如公开密码之类的人类错误)?还是可以通过非漏洞引起的方式利用系统?


4
您是否称我可以猜出一个弱密码是软件错误?如果有的话,这是一个设计问题,但可能比这更根本。
约阿希姆·绍尔

4
您会将不良设计定义为错误吗?
StuperUser 2012年

1
为了支持@StuperUser,在链接“ security.stackexchange.com/questions/25585/… ”中,Dave的脚本中没有错误。但这是愚蠢的设计。
Manoj R

1
如果我们排除安全问题的所有原因(错误除外),则可以。
andho 2012年

Answers:


25

Bug的定义是未按规格运行的软件。现在,如果规格有问题,那不是软件错误。如果一个愚蠢的客户要求所有密码都必须是三位数字的密码,并且在错误输入之间没有宽限期,这不是软件的罪魁祸首。

许多系统具有“服务模式”,可以覆盖安全性,并且尽管对其进行访问应该是安全的,但是代码通常会向公众泄漏。

数学的进步损害了旧的加密方法。30年前可行的安全措施如今变得薄弱。

有多种数据盗窃方法经常被忽略。由于天线很小,无线键盘的范围约为2m,并且发送的代码未加密。用好的天线从街对面读出它是一种众所周知的方法。

有时,安全权衡是在充分了解后果的情况下进行的-加密系统占用了电源和CPU时间。嵌入式监视应用程序通常以对公众清晰易读的方式发送其数据,因为首先破坏数据的价值可以忽略不计,然后不需要额外的安全性实现成本。

所有安全性都基于信任。指定的管理员无需进行任何社会工程就可以流氓并阅读您的邮件。

最终,有人可以考虑将棒球棍应用于膝盖吗?


2
“如果规格有问题,那不是问题。”嗯,这句话听起来很滑。我会说“这是规范中的错误”。当我是一名测试人员时,我成功提交并验证了数十个此类错误的修复程序。作为开发人员,我有机会修复了一些测试人员针对API文档报告的“规范错误”,我被指派维护...
gnat 2012年

8
@gnat-但是,“规格中的错误”不是软件错误,而是设计错误。除非您可以将设计当然作为软件的一部分。这完全取决于您在哪里画线。
克里斯·弗雷德

1
@ChrisF:感谢您用文字表达我想说的但不知道如何做。编辑答案以澄清。
SF。

并非总是很清楚规范中记录的特定功能是故障。
布朗

1
@DocBrown:是的-有时需要降低安全性,这是成本与性能之间的权衡……
SF。

12

在某些情况下,硬件错误也会导致安全问题。只需考虑发生故障的RAM芯片,该芯片会自发地翻转“ isAdmin”位。

或者考虑一个假设的硬件错误,其中的内存保护无法按预期方式工作,并且一个进程可以覆盖另一个进程的内存而不会触发中断。

为了您的阅读乐趣:硬件故障损害了计算机安全性


RAM芯片完全翻转isAdmin的几率是多少?
m3th0dman

1
很小,很明显,但是,如果发生这种情况,它是不是由软件错误引起的安全线程。
user281377

计算机系统完全有可能破坏随机文件上的权限位。可以对全局可写的文件和SUID根目录进行微调,以提高用户权限。
SF。

@ user281377您确实意识到,对于具有4 GB RAM的计算机,仅从所有位中完全选择isAdmin位的概率为1/34359738368;这忽略了错误的芯片翻转的可能性。
m3th0dman

@ m3th0dman您可能会误解我。我并不是说这是每个人都必须关心的主要问题。这更像是理论上的证明,即硬件问题可以创建安全线程。就是说,可以想象的是,发现服务器上错误位的攻击者可能会找到方法来填充其输入,直到在这些内存位置上放置关键内容为止。
user281377

6

许多安全威胁来自软件功能,而不是错误。事实证明,许多非常有用的软件功能都是善有恶,仅取决于用户的意图。


一个人的捷径是另一个人的后门攻击。
Daniel Hollinrake 2012年

5

考虑分布式拒绝服务攻击(DDOS)。那可能是一种安全风险,但这不是由软件错误引起的,而是由攻击者超越了系统的设计意图所造成的。每个系统都有一个限制。

因此,您的问题的答案是:不,不是所有的安全威胁都是由软件错误触发的。


安全隐患吗?它肯定会破坏您的网站,但是会破坏您网站的安全性吗?
Carson63000

1
这取决于您对安全风险的定义是宽还是窄。
Pieter B

4

社会工程学。

您好,我是IT部门的XX。您的计算机当前正在将病毒传播到其他办公计算机。我需要您的用户名和密码才能删除它。

当黑客获得用户名/密码后,他可以安全地安装木马等。

可以通过多种方式应用社会工程学,并且使用它来规避安全性是其中之一。


4
不能进一步支持的一个可能原因是,询问者明确排除了“社交黑客”。
约阿希姆·绍尔

@JoachimSauer好点。没看到。
jgauffin 2012年

3

Firesheep这样的东西如何呢?Firesheep是一种Firefox插件,可以窃取通过共享无线网络传输的cookie。

您可以辩称对此类攻击的脆弱性是一个错误,但是您也可以反对它。除了通过HTTPS运行所有通信之外,网站没有什么能避免用户受到损害的方法-您可以说在您的网站上接受HTTP通信是一个错误吗?


1
我将对通过非加密介质传输重要的私人信息的设计错误进行分类。我认为,是否应将“软件错误”视为一个单独的讨论。
约阿希姆·绍尔

@JoachimSauer,如果您的网站拒绝通过HTTP传输任何信息,并且实际上是将HTTP映射到HTTPS的MITM,该怎么办?尽管浏览器支持HTTP,而路由器允许HTTP通过,但存在嗅探漏洞,只有高度关注安全性的客户端才能避免此漏洞。因此,真正的问题变成了:Web浏览器支持HTTP是否是一个bug?
彼得·泰勒

@PeterTaylor:针对这个问题,有HTTP Strict Transport Security,它可以确保浏览器知道只能通过安全连接访问您的站点。另外:询问者明确排除了“社交黑客”,并且取决于用户忽略不安全的行,可以认为包含在该方面。
约阿希姆·绍尔

@JoachimSauer如果我仅将所有流量代理到严格传输站点,但允许HTTP连接返回客户端怎么办?
Joshua Drake

@JoachimSauer:的确,我同意你的观点。导致此漏洞的是不明智的体系结构设计决策。没有任何错误地在代码中实现,这就是我所说的“错误”。
Carson63000

1

是的,只要软件安全性故障(无论是直接原因)就是软件无法满足其要求。

我接受这只是一个重言式,但这是对它的衡量。


有时,安全根本不是(定义的)要求。而且,如果在安全漏洞发生后将其添加到需求列表中,我就不会将其称为“错误”。
Joachim Sauer

仅仅因为没有在项目开始时就提出要求,@ JoachimSauer并不意味着它不是必需的。在解决这个问题上,软件行业花费的时间比我一生的时间还长。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.