你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
当前回答
这里有一个我不常看到的例子。这是一个非常有效的安全漏洞,困扰着大多数登录表单。我大约在十年前发现了它。
我在多伦多大学学习,那里有一个叫做ROSI的系统,允许学生管理他们的费用和课程注册。他们还在总会议区设置了两个公共终端,只能显示ROSI网站,学生可以输入他们的学生证和密码登录和管理他们的物品。
但是,在用户注销后,您可以在终端上按浏览器的alt-left键返回登录表单,然后按alt-right键前进一键,然后单击刷新。在这一点上,浏览器会要求你确认重新发布表单数据,如果你点击是,它会重新发布以前的用户登录/通过和登录你。
大多数登录表单仍然容易受到这类攻击。解决方案是post/redirect/get或使用nonce键。
我给我的大学管理员发了很多次邮件,但我认为他们至少在我毕业离开之前都没有解决这个问题。这大约是在2002年。
其他回答
我的目标是我曾经的客户。我无法登录,所以我打了客服电话。他们只问了我的用户名,没有问任何安全问题,也没有试图验证我的身份。然后,他们没有将密码重置发送到他们存档的电子邮件地址,而是问我该发送到哪个电子邮件地址。我给了他们一个不同于我文件上的地址,并重新设置了密码。
所以本质上,黑客只需要我的用户名,他就可以访问我的账户。这是一家至少90%的美国人都听说过的大银行。这件事发生在大约两年前。我不知道这是一个缺乏训练的客户服务代表还是这是标准程序。
Windows 95可以选择需要密码才能解锁屏幕保护程序。然而,使用ctrl+alt+del你可以杀死屏幕保护程序。
我不知道这是不是最糟糕的,因为我见过一些非常糟糕的,但是:
几年前,我工作的地方引进了一个叫做FOCUS的系统。不知道它还在不在。它非常适合做报告,我们开发并教了大约一千两个非It人员如何生成他们自己的报告。非常方便。他们可以做基本的报告,一些人可以做中等难度的工作,IT可以帮助处理较难的工作。
所有用于报告的数据都被定期复制到FOCUS自己格式的影子数据库中。对于更敏感的数据,我们设置安全选项,加密数据。一切都很好。
So, one day my boss calls me in, and we've lost the password to one of the sensitive databases. It's going to be hard to reproduce the data in this case, so he asks me to see if I can break the security. I had no experience as a hacker, so it took me about 5 or 6 hours to hand him the password. I started by creating some test files, and encrypting them with different passwords. I found that changing one character in the password would change two bytes in the encrypted file, specifically, the high nybble of one byte, and the low nybble of another byte. Hmmmm, says I. Sure enough, they stored the password somewhere in the first 80 bytes of the encrypted, but obfuscated the password by splitting the bytes into nybbles, and storing them in predictable places.
不久之后,我们就编写了一个REXX脚本,该脚本在VM/CMS系统下运行,可以告诉我们任何加密数据库的密码。
那是很久以前的事了——在90年代初,我相信他们已经解决了这个问题。嗯,非常确定。
login.jsp?type=user&redirct=/home.jsp&userid=12345&username=username&password=mypassword
这发生在一个非常大的网站上。当我看到这个的时候,我惊呆了。
这是我在微软早期的真实故事。
直到有一天你醒来,看到ZDNet.com上的头条是“在'Blah'中发现了有史以来最严重的ie安全漏洞”,你才知道什么是恐惧,而'Blah'是你六个月前自己写的代码。
在开始工作后,我立即检查了更改日志,发现另一个团队中的某人——我们信任的对产品进行更改的人——签出了我的代码,毫无理由地更改了一堆安全注册表项设置,重新签入,并且从未得到代码审查或告诉任何人。直到今天,我还不知道他到底在做什么;此后不久,他就离开了公司。(自愿的。)
(更新:对评论中提出的问题进行了一些回应:
首先,请注意,我选择采取宽容的立场,即安全密钥的更改是无意的,是基于粗心或不熟悉,而不是恶意的。我没有这样或那样的证据,我相信把错误归咎于人的易犯错误是明智的。
其次,我们现在的签到系统比12年前强大得多。例如,如果签入系统不将更改列表通过电子邮件发送给相关方,现在就不可能签入代码。特别是,在开发周期后期所做的更改有很多“流程”,这确保了所做的更改是正确的,以确保产品的稳定性和安全性。)
Anyway, the bug was that an object which was NOT safe to be used from Internet Explorer had been accidentally released as being marked "safe for scripting". The object was capable of writing binary files -- OLE Automation type libraries, in fact -- to arbitrary disk locations. This meant that an attacker could craft a type library that contained certain strings of hostile code, save it to a path that was a known executable location, give it the extension of something that would cause a script to run, and hope that somehow the user would accidentally run the code. I do not know of any successful "real world" attacks that used this vulnerability, but it was possible to craft a working exploit with it.
让我告诉你,我们很快就为这款游戏发布了补丁。
我在JScript中造成并随后修复了更多的安全漏洞,但它们都没有得到应有的宣传。