您是否应该发布自己可以破解的东西?


12

作为程序的创建者,您可能比其他任何人都更容易意识到安全漏洞和潜在的黑客攻击。如果您知道编写的系统中的漏洞,是否必须在发布之前添加增加安全性的标志,还是应该逐案评估以确定安全漏洞的严重性?


7
当然,国家安全局一直在这样做:)
Jaap

3
@Jaap:国家安全局一直被指控这一点。在一种情况下,我知道人们发现了真正的情况,这是DES加密标准,事实证明,NSA的修改实际上使加密变得更强而不是更弱,从而使它不太可能被一种技术入侵。除了国家安全局之外,没有人发现它,因为他们知道其他人最终会找到答案的。
梅森惠勒2012年

6
@MasonWheeler我认为最近的事件(从2012年开始)已经使您的评论过时了。
aceinthehole

Answers:


6

我要说的是,应视具体情况而定。您是作者,您知道很多漏洞。有些漏洞可能只有您知道。当然,这意味着如果其中任何一个被利用,您可能会遇到一些难以回答的问题,因此,如果可能的话,减少这些漏洞可能是一个好主意。更重要的是,是否有人可以轻松地将其作为黑盒系统入侵。


3
我只希望我知道我编写的软件中的所有漏洞。然后,我可以利用它来查找所有错误,并且正确编写这些内容会容易得多。
David Thornley,

1
@David:好的,很多 ...
FrustratedWithFormsDesigner

31

我经历过两次不幸的经历。在这两种情况下,企业都在发布带有非常敏感数据的严重安全问题的产品。

在这两种情况下,尽管我尽了最大的努力使他们意识到自己正在承担的风险,但企业似乎并不在乎。

您唯一能做的就是尽可能大声地(专业地)抗议,尽可能清楚地知道潜在的后果,并且在做所有事情时都要记录在案。将您相关的电子邮件打印为PDF,并将这些文件保存在家里,或者将您的个人电子邮件地址附加到密件抄送,或者您可以这样做。这是不可避免地发生不良情况的唯一解决方案。

您希望管理层会尊重您的技术建议,并考虑到这一点,但是不幸的是,您必须尊重最终决策者。每天都会做出糟糕的业务决策。

编辑:贾森克提到“请非常小心密送您的家庭住址”,我非常同意。请不要违反公司政策,并冒着比现在更多地公开发布安全漏洞的风险。


21
+1一切都可以!!!当发生重大灾难并且经理的工作即将完成时,他/她将尽一切可能的方式尽一切可能怪罪他人。如果您记录问题,电子邮件,通知,备忘录和与该决定相关的其他文档,那么您可以保护自己免受恶劣情况的影响。
maple_shaft

11
AF 他妈的战警。任何刻薄地知道有严重缺陷的产品的人都可以并且愿意做任何事情来躲开最终的子弹。
彼得·罗威尔

请小心使用密件抄送您的家庭住址。
杰森克2012年

2
@jasonk:你为什么这么说?密件抄送意味着其他收件人看不到...
梅森•惠勒

3
@梅森:收件人不能,但是IT可以,而且,如果您要在场外发送敏感信息(最肯定是安全漏洞),您可能会遭受重创。

12

我反过来说-作为创建者,您经常过于接近代码而看不到漏洞。

如果您知道或被告知漏洞,它们就像任何其他错误一样-评估,确定优先级然后修复。


+1:您知道我的程序应该如何工作,并且仅在某种程度上考虑使用它。有人不知道使用该程序的“正确”方式是您可以做的最好的测试之一。
unholysampler 2011年

作为QA的新手,我进入工作时期望“安全漏洞”漏洞会非常严重。但是我发现标签“安全”并不总是构成对零容忍响应的需求。如果该漏洞似乎不会危及品牌声誉或为黑客提供很少的收益,并且将来的发行版可能仍包含修复程序(或功能更改),则某些公司非常乐意承担安全风险。
Greg Gauthier

4

我认为答案取决于如果系统被恶意黑客入侵会造成的危害程度。显然,出于良心考虑,土木工程师不会批准不安全桥梁的设计。这样的桥梁的建造可能导致受伤或死亡。工程师故意进行此操作也是非法的,但是软件工程师(至少在美国)不受同样法律约束的事实并不能免除他们对故障系统采取立场的专业责任。不幸的是,您的公司可能不需要您的签名即可发布软件。

您没有指定正在使用的系统的确切性质。如果它与病历,银行业务,空中交通管制或其他一些真正关键的基础设施有关,我想您在发布前坚持最高安全级别是有道理的。


+1对于上下文,我要补充一点,包括社会安全号,身份证号或信用卡号在内的任何数据也应注意安全性。不存储任何此类信息且不是关键系统的系统具有低风险数据,因此您不必担心安全性。
maple_shaft

3

是的,您应该在版本发布之前对其进行修复。永远不要低估黑客的创造力。您会在后门大开的情况下休假一周吗?你的借口是

“哦,它在后面,它并不直接面对街道。没有人会看到它悬空敞开。”

可能不会。

但是,如今,我确实毫无头绪地了解到,最神圣的发布日期比潜在的安全性重大责任问题更重要。如果是您的情况,那么我建议提请注意,记录问题,确保记录充分,众所周知,并明确解释了风险,然后由PM决定要采取的措施。

如果项目经理做出了错误的决定,并且决定忽略此决定并按计划进行发布,那么您就无须承担责任,因为您吹了哨子。

否则,如果您发现此问题并将其保留给自己,并且发生了某些事情,那么您将对后果承担个人责任。

这是你的选择。


4
至少在美国,这不是潜在的巨大责任问题,因为几乎没有软件提供任何形式的保证。医疗设备软件是一个例外,也许还有其他例外,但是大多数软件和基于软件的服务本质上都是基于“无保证”的。
David Thornley

1
不保证吗 您为什么不向千百万索尼客户披露他们的社会安全号码和其他敏感数据,原因恰恰是OP所建议的安全漏洞。
maple_shaft

2
尽管大卫是正确的,但当您的公司声誉受损,或者您的小型公司只是被大型公司淘汰而已时,缺乏强制执行的民事责任可能会让人感到冷淡。
PeterAllenWebb

@maple_shaft:索尼有什么责任?他们提供了一年的信用保护服务,但我认为他们不承担任何法律责任。这对他们的声誉造成了打击,但他们幸免于难。
David Thornley,

1
@罗里:让我们从现在开始两年。我想认为,rootkit的惨败,OtherOS的任意删除以及这种泄漏从长远来看将使Sony不再那么受欢迎,但是我一点也不自信。
David Thornley
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.