近期,Trustwave的安全研究专家在Skype的Mac OSX桌面端API中发现了可被利用的安全问题。这个API可以为本地程序或插件提供相应的功能接口,第三方应用可以通过这个桌面API来与Skype的服务器进行通信。正如安全研究人员在 Trustwave公告 中所描述的,攻击者可以利用Skype桌面API中的这个安全问题来绕过其身份验证机制。恶意软件可以使用客户端名称标识符“SkypeDashbd Wdgt Plugin”来将自己伪造成SkypeDashboard的Widget插件程序,并绕过其身份验证机制直接与桌面API进行交互。
安全研究专家认为,这个漏洞很有可能是开发商故意添加在Skype桌面API中的,而目的就是为了允许特定的应用程序在无需进行用户交互的情况下访问Skype桌面API。实际上,这种可能性也是非常大的。
当其他程序尝试访问桌面API的时候,系统会向用户发出通知,并请求用户同意操作。而此时,通过后门来通知桌面API的用户其工作机制与正常的通知流程是不一样的。如果使用这个后门,那么用户将不会收到系统的任何通知,而这也就意味着用户根本就没有机会去拒绝访问。这将允许任何应用程序在用户毫不知情的情况下通过这个后门来访问桌面API。
而且,Skype也不会对访问桌面API的程序进行验证,因为这些第三方程序会将自己伪装成SkypeDashboard插件程序。这也就意味着,任何的第三方应用(包括恶意软件)都可以利用Skype桌面API来实施非法操作。
可奇怪的是,SkypeDashboard Widget小工具从未使用过这个后门。所以,这个后门也有可能是开发人员的编码失误所造成的。如果这是一次编码事故,那么这个问题很可能已经存在了至少五年以上了。因为研究人员的通过分析和调查之后发现,“SkypeDashbd Wdgt Plugin”这个字符串早在五年前的SkypeMac OS X版本中就已经存在了。
在之前的版本中,应用程序可以使用这个桌面API来访问Skype所提供的全部服务。这些服务包括但不仅限于:消息接收通知(以及消息内容)、修改信息、创建聊天会话、记录Skype的语音通话信息、以及检索用户的通讯录。在之后的版本中,桌面API访问消息内容的这个功能已经被去除了,但是其他的功能仍然保留了下来。
访问这个后门其实非常的简单,攻击者甚至只需要修改一行代码就可以使用这个后门来进行恶意操作了。Skype提供了大量的演示实例来指引用户如何使用桌面API,而攻击者只需要将NSString方法“clientApplicationName”的值设置为“SkypeDashbd Wdgt Plugin”就可以了。
实际上,发现这个后门的过程相对来说也并不困难。首先,我们可以调用GNU工具“strings”,具体如下图所示:
接下来,使用HopperDisassembler来对Skype应用程序进行反汇编,并获取到相应的函数代码,结果如下图所示:
我们可以从上图中看到,如果“applicationName”的值等于“SkypeDashbd Wdgt Plugin”的话,那么“SkypeAPIController”对象的成员函数“authLevelForApplication:(NSString*)applicationName”其返回值将会是“1”。
在微软公司正式收购Skype之前,Skype使用的是另一种代码混淆/加密技术,当程序开始运行时,代码会自动进行动态解压。这种技术可以防止他人对软件进行逆向工程分析,并提取出有价值的数据。但是,攻击者可以通过使用调试工具并导出包含有可执行代码的内存页来绕过这些代码保护技术。
* 参考来源: trustwave ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM