QQ的安全设计缺陷

来源:互联网 发布:风险判定矩阵表 编辑:程序博客网 时间:2024/05/01 11:15

    QQ是腾讯公司的当家产品,是我国用户拥有量最大的一个即时通信软件。但是,当前QQ也成为一个众多病毒依附的软件。特别是现在腾讯的众多附加服务,使得QQ成为黑客越来越感兴趣的一个目标。

    这些病毒之所以影响越来越大,部分原因却在于QQ这个软件的安全模式存在缺陷。比如下面就是其中两个。

    第一,QQ的用户数据存放位置不当。默认情况下,QQ安装在 c:/program files/tencent/qq 文件夹下(这里c:根据实际情况,可能是其他盘符),而所有QQ账号信息都存储于这个文件夹下。根据Microsoft 的建议,与Windows 良好兼容的个人软件,应当把用户数据放在个人的profile文件夹内,或者可以另外制定数据存放的位置。为什么呢?因为微软建议,我们平时使用计算机的时候,应该使用受限用户组(或者说 users组)成员账号登录系统。而如果计算机采用安全的配置,安装这个系统的驱动器应该采用 NTFS文件系统。但是,安装这样安装起来的系统,采用受限用户登录的时候,你会发现这个受限用户竟然无法正常运行QQ。
    为什么呢?原因很简单。按照这样配置,这个受限用户他的权限是无法修改 program files 下面的文件的。他启动的QQ是使用当前用户的安全灵牌,当然也无法修改这个文件夹的文件内容。因此,这种情况下软件运行当然会有问题。
    使用管理员账号登录,QQ当然可以运行。但是,使用管理员账号登录,对系统安全是重大的威胁。这个建议不可取。
    还有一种方法是利用管理员权限登录系统,将 tencent那个文件夹更改为 users 组成员可以完全控制。这种方法相对比较好,但是如果木马作者也意识到这一点的时候,那么木马的影响仍然比较大。
    另外,还可以在安装之后,直接把 tencent那个文件夹复制到桌面上或者其他该用户可以完全控制的地方。以后直接运行复制过来的版本。
    总之,QQ的用户数据存放位置不当,导致我们不得不在系统安全和QQ可用性之间进行折衷,使得QQ本身的安全甚至系统的安全受到影响。正确的方法是将QQ的账号数据与程序本身分开存放,然后在注册表中存放用户数据的位置。

    第二,QQ的键盘加密策略不当。
    QQ为了防止木马偷取用户密码,采取了一些驱动过滤程序来防范。应该说,腾讯的用意是好的,但是效果可能适得起反。为什么呢?其实还是跟权限有关。一般,一个软件需要管理员权限,才能够安装这类驱动程序。但是,这个时候,如果有木马的话,事实木马也可以在加一个键盘驱动过滤在前面,因此并不能从根本上防止窃取键盘数据。而且,如果已经中了木马的话,木马大可直接修改QQ的主程序来获取密码了。虽然这样做难度更大,但是可以说成功率更高(因为木马的运行权限已经是管理员了)。因此,这个措施实际效果会大打折扣。
    另一方面,很多用户不懂,天真地以为这个东西很有用,看不到QQ上面那把锁就以为不安全。实际上,在安全的使用模式下(使用受限用户登录系统),腾讯这个驱动总是安装不上去,看不到那把锁。但是,实际情况时:这种情况一般更安全。依靠Windows 本身固有的安全性,大部分情况比利用QQ所提供的键盘加密技术要来得更安全一些。因此,我认为腾讯基本可以放弃这个方面的努力,而代之是提醒用户修补系统漏洞和加强计算机系统安全设置。

    上面两点主要是对安全方面的影响。事实上,不光是对安全性有影响,而且对软件的兼容性也有影响。最近有报道说QQ在Windows Vista系统上不能正常运行,事实上这个早在我的预料之中。驱动程序的编程一般兼容性都是很差的。很多不明所以的人甚至认为是Microsoft 故意为之,实际是QQ 的错误。可以说上面所提的两个方面肯定等影响了QQ在Vista中的兼容性。