西西河

主题:【原创】聊聊这次密码泄露事件 -- 代码ABC

共:💬12 🌺187
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 【原创】聊聊这次密码泄露事件

最近接二连三地收到各种网站提醒我修改密码的邮件,仔细一看才知道CSDN出了那么大一个漏子,一时无语。

我看大家讨论的时候多在提那个明文密码存放问题,而忽略了造成这么大规模的密码泄露的真正原因。真正原因我也不清楚,CSDN也没说,不过从后来陆陆续续的还有一些网站也被人一锅烩了的传言以及CSDN自己的通知来看。我觉得这些倒霉的孩子是整个数据库被人拷贝走了。密码明文存放在这种程度的泄漏的情况下不过是令事情更糟糕而已。CSDN的安全技术专家(如果有的话)忽略的数据的物理安全才是真正的罪魁祸首。

在谈安全威胁的时候,正式的评估总是要考虑物理安全的。那么什么是物理安全呢?简单说,就是你存放秘密信息的硬盘、服务器,秘密信息传递的物理线路的安全。再简单点说就是防盗——妙手空空的盗。作为程序员总是头脑发达四肢简单,因此这种依赖体力手段的“黑客”总是被人忽略,而且就算重视了也没什么招,呵呵。

说实话,体力手段其实是所有破解手段中最有效的一种。拿把刀子就可以忽略你手中的安全令牌、计算机上的证书、昂贵的防火墙、精巧的算法、加密存放的密码等等,当然让你把数据库拷贝出来也是一样的。我承认这一切都没有什么美感,但非常地有效。而且有时候比技术型的黑客更有美感,比如那年汤哥潜入兰利大楼,那倒霉的技术人员只能扮演一个丑角。

不过,现实中我们不需要这些眼花缭乱的“物理”技术,当年我把服务器存放到IDC机的时候就发现要偷取别人的资料实在不算复杂,当然我的数据被盗也不会是一件令人很吃惊的事情。因为我身边就是网易托管的两个机柜,一列热拔插的硬盘接口,每个机柜里的接入交换机只要搬一张凳子就可以够着。而保护这些东西的设备就是一把机柜钥匙和安装在天花板上的几个摄像头。当然安全性要求更高一点的企业会租用单独的铁笼子。但是连网易这样的“大鳄”也只能和我们一起挤在IDC的公共空间,何况那些只租用几个U的小不点。所以我也只能庆幸我至少还有一个带锁的面板盖、服务器带有记录面板操作的硬件。

另外,管机器的人员通常在公司里的地位并不高,也就是这些人职位流动性不小,也很容易收买。有内应的话拷贝整个硬盘还真不是什么难事。

所以,当我们绞尽脑汁研究加密技术的时候,别忘记放在机房里的那个要命的东西,这是所有依赖托管机房的企业最致命的安全威胁。

代码ABC:【原创】继续聊聊这次的泄密事件

通宝推:xtqntd,伪爵爷,刹那芳华,

本帖一共被 1 帖 引用 (帖内工具实现)
家园 武功再高也怕菜刀,衣服再屌一砖拍倒,哈哈哈
家园 哈哈,妙句花一个
家园 这次很多网站丢失的都是数据库的备份,而非数据库本身

数据库备份就是一个个文件,可能存放在磁带中,也可能存放在磁盘上,或者存放在了某个人的笔记本电脑上也不吃惊。

数据库的容量往往很大,即使被黑,整个备份从网络上拷走也需要很长时间,这次泄密很可能和“黑”这种行为都没什么关系,只是备份文件被接触内部系统的人顺手拷走,再一步步传播出去。

家园 有道理

我被迫砍掉这个话题下一篇的一大段。。。。。。

相比还有一些规章制度管理的IDC机房,从备份文件下手要容易得多,而且风险和手尾都很小。大多数管理员都没真正认识到备份数据的重要性等同于在线数据。

家园 无视我的帖子吧

罪过罪过:)

家园 我认为是有2种可能

由于一大堆网站都被泄露,所以可能性我认为是2种:

1. 黑客

现在网站漏洞是很容易的,防火墙基本也没用,因为网站程序都能访问数据库,拉数据直接通过网页就可以了,不需要专门登录进去啦,所以防火墙用途不大。

2. 内部收买

这个可能性也很大,由于技术人员地位不高,收买太简单了。

家园 你说这次西西河001error是不是就是大家的密码被下栽
家园 【原创】继续聊聊这次的泄密事件

好吧,有人提到了备份泄露的问题。确实盗取备份比到IDC机房偷东西要简单很多。有预防手段吗?

有的,只要把备份数据加密就好了。一般备份软件都有一个加密选项可以选择对备份数据进行加密,选择这个选项的话你需要事先提供一个密码。备份软件生成一个秘钥对备份数据进行加密,然后使用你提供的密码对密钥进行保护。没有密码就无法恢复数据,而且备份文件上的内容是加密的。这样数据由于备份被盗而泄露风险将大大降低。

这里先简单明确两个概念:密码和密钥。密码大家都很明白,是一种秘密信息,通常用于身份验证或权限检查。而密钥是加密操作的一个参数,通常加密函数接收两个参数:原文和密钥,输出密文。在密码体系里只要密钥保持秘密那么理论上无法从密文恢复原文(加密函数算法通常是公开的)。一般来说密码是人机交互用的,密钥则是系统内部使用。

要真正实现加密备份其实也不简单。备份动作通常使用脚本自动进行,普通的备份工具就需要把密码写在脚本里面。能偷到备份数据的人,通常也不难拿到这个脚本。即使解决了这个问题,还有这个密码管理的问题。如果一直使用相同密码,那么时间一长还是有泄露的可能,如果每次密码不同那么如何确保做恢复的人能够找到正确的密码也是一件令人头疼的事情。实际上要做好这个工作,纯粹的技术手段是不够的,必须有适合的“体力”手段。

如果不幸整个数据库还是给人偷走了,怎么办?这时一个良好的加密系统就是最后一根救命稻草了。注意我说的是加密系统而不是加密算法,算法只是一个手段。而加密系统的核心之一是如何保证密钥不会被泄露即——密钥管理方法。这里涉及密钥的存放、访问和变更等一系列问题。而大多数系统都是栽在这个问题上,由于服务程序本身需要知道密钥——因为它们有验证密码以及其他访问秘密信息的需求,也就是这些程序需要通过某种渠道获取密钥,如果程序员偷懒把这个密钥存放在配置文件里或直接硬编码在源代码中,那么对于数据库被盗的威胁其实帮助不大。因为能偷数据库的人要得到服务器上的文件或者你的源代码并不困难。原则上密钥必须存放在另外的地方,交给专门的保密员保管。当程序需要这些密钥的时候通过保密员手工输入(或者使用USB-Key之类的东西导入)。高级一点的可以通过加密协议在单独的一台密钥管理服务器上自动获取,而这台密钥管理服务器必须保证物理安全,也就是我们还是要回到所谓的“体力”手段。实际上掌管密钥的无论是人还是机器都必须有适合的制度和措施确保安全,这些安全措施不能光靠代码实现。

以上只是密钥管理部分,而实际中如何使用密钥和加密算法,即密码协议部分则是加密系统的另一个核心内容。

土鳖抗铁牛

通宝推:xtqntd,

本帖一共被 1 帖 引用 (帖内工具实现)
家园 黑客也很难拿到整个用户列表的

一般水平的网站都不应该有这种可以让黑客拿到整个用户表的漏洞.

最有可能还是内部人员随手copy出来的.

家园 偶想听听阴谋论的解释版本
家园 技术区不做恶搞,请看

代码ABC:【原创】CSDN密码事件的真相

全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河