设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> 信息中心 >> 安全资讯 >> 正文
最新信息
·赛门铁克教你5招防御偷窥软…
·信息网络安全防护系统中云…
·比特币玩家们,醒醒吧
·微软停止提供Windows 2000…
·一组Linux服务器沦为僵尸网…
·韩国应对威胁 将培训3000名…
·流氓广告袭击《纽约时报》…
·苹果发布雪豹系统更新补丁…
·俄罗斯航天署称其官方网站…
·微软称新发现SMB缺陷不影响…
资料搜索
热点信息
·微软十月修补六个严重安全…
·网站仿冒欺诈行为再次出现…
·网络游戏《地狱之门》源码…
·IE出现更严重新漏洞 可以为…
·“熊猫烧香”病毒疯狂肆虐…
·微软IE升级进程非常缓慢 I…
·网络贩卖木马再次出现 学生…
·微软发布安全补丁乃双刃剑…
·罗马尼亚警方捣毁网络诈骗…
·微软停止提供Windows 2000…
推荐信息
·“熊猫烧香”病毒疯狂肆虐…
·卡巴斯基误杀致XP系统崩溃…
·微软四月恢复正常升级 下周…
·黑客隐藏恶意代码愈变老练…
·微软光标漏洞等七个补丁已…
·微软发布Windows Server 2…
·黑客已找出10处苹果软件漏…
·微软IE升级进程非常缓慢 I…
·德国网络强奸犯获刑10年 曾…
·网友利用漏洞狂领网易点卡…


Google
 
网上银行等电子支付平台的WEB登陆安全性简要分析
〖来源:华盟收集 | 编辑:Cloudy | 浏览:人次〗

编辑评语:前言:本文还是去年年初写的,当时出于安全考虑没放出来。现在部分网上银行已大幅度降低了无高级别安全措施情况下的转账限额,并建议用户使用动态口令卡或者USB Key,总体安全系数有所提高。

        随着子商务的普及,网上银行以及在线电子支付等方式逐渐被网民所接受和喜爱。但是网上银行以及电子商务支付平台的安全性不容乐观。尽管各网上银行采取 SSL加密防止通过嗅探网络封包的方式截取密码;对于防止WEB登陆时密码被窃取,网上银行采取了安全控件或者动态软键盘的方法,但考虑的仍不全面,我们还是能采取相应的方法截获用户输入的密码。

       下面就以具有代表性的四大银行:中国工商银行、中国农业银行、中国建设银行、中国银行;商业银行:招商银行;电子支付平台:阿里巴巴支付宝等为例,分别就客户端密码方面进行脆弱性分析。网上银行以及其他电子商务支付平台的WEB登陆安全性直接与用户的经济利益相关,所以有必要不遗余力的加强WEB登陆安全性的建设。另外由于不是所有的用户都使用数字证书和U盾之类安全认证产品,所以“黑客”只要截取到用户的登陆密码以及支付密码就能随心所欲的转帐/支付,危害甚大。

本文谈的是采用纯技术截取密码,而不是用假页面假接口等钓鱼方式骗取密码的方法。

网上银行对于防止密码被盗分别采用了安全控件和动态软键盘的方法:

1、采取安全控件的,典型代表有:中国工商银行、招商银行、阿里巴巴支付宝等

这类安全控件考虑还算全面,防止了键盘/消息钩子,而且使通过IE的COM接口获取密码的方法也无能为力。但是这类安全控件做得不够底层,考虑得欠深入。

        我们采用键盘过滤驱动的方法就可以突破安全控件的保护记录密码了。除了键盘过滤驱动方法外还可以挂接IDT(中断描述符表)的键盘入口,或者挂钩键盘驱动 Dispatch例程以及Inline hook相应IRP分发函数。 当然,更深入点的话还可以挂钩i8042prt.sys。

        不过由于编写驱动程序不同与开发普通的应用程序,难度稍大,所以目前还未见公开的采用此技术截取这些网上银行密码的木马。但是开发起来也并不是太困难,相对而言采取键盘过滤驱动的方法较通用稳定。

        基本原理是我们的驱动创建一个设备附加到键盘驱动Kbdclass下的设备,这样所有的IRP(输入输出请求包)包都将先发给我们的驱动程序,然后再转发给系统中的键盘驱动,我们的驱动程序获取IRP后就可以从中获得键盘的scancode扫描码,这样就能在系统内核的层面获得键盘输入信息。键盘过滤驱动的部分代码如下:

CODE:

NTSTATUS HookKeyboard(IN PDRIVER_OBJECT pDriverObject)
{
PDEVICE_OBJECT pKeyboardDeviceObject;
NTSTATUS status = IoCreateDevice(pDriverObject,sizeof(DEVICE_EXTENSION), NULL, FILE_DEVICE_KEYBOARD, 0, true, &pKeyboardDeviceObject);
pKeyboardDeviceObject->Flags = pKeyboardDeviceObject->Flags | (DO_BUFFERED_IO | DO_POWER_PAGABLE);
pKeyboardDeviceObject->Flags=pKeyboardDeviceObject->Flags& ~DO_DEVICE_INITIALIZING;
RtlZeroMemory(pKeyboardDeviceObject->DeviceExtension, sizeof(DEVICE_EXTENSION));
PDEVICE_EXTENSION pKeyboardDeviceExtension=(PDEVICE_EXTENSION)pKeyboardDeviceObject->DeviceExtension;
CCHAR ntNameBuffer[64] = "\\Device\\KeyboardClass0";
STRING ntNameString;
UNICODE_STRING uKeyboardDeviceName;
RtlInitAnsiString( &ntNameString, ntNameBuffer );
RtlAnsiStringToUnicodeString( &uKeyboardDeviceName, &ntNameString, TRUE );
IoAttachDevice(pKeyboardDeviceObject,&uKeyboardDeviceName,&pKeyboardDeviceExtension->pKeyboardDevice);
RtlFreeUnicodeString(&uKeyboardDeviceName);
return STATUS_SUCCESS;
}
[Copy to clipboard]

       下面以工商银行的网上银行为例,演示我们的程序。为了演示,我们的驱动程序将实时打印出获得的键盘记录的信息,并且把完整的信息记录到磁盘文件上。招商银行、阿里巴巴支付宝等效果等同,支付密码用此法同样能截取。截取时实时打印的信息 如图1:,记录到文件里的完整信息:如图2:。合发送邮件或者ASP/PHP留言的方式我们就能远程的得到密码。

2、采取动态软键盘的,典型代表有:中国建设银行、中国银行、中国农业银行

采用动态软键盘技术初看确实能使攻击者无法截获密码,但是截取密码的方法不仅仅是接截获键盘记录一种方法。我们可以通过IE的COM获取的密码。

        对于中国建设银行,通过IE的COM接口获取的密码框里的内容就是密码,其他大部分采用软键盘技术的网站大都也是这样。但是中国农业银行WEB程序中做了一点处理,通过鼠标点击软键盘传入密框的内容不是实际密码而是按钮序号,所以我们只要枚举当前窗口,发现是中国农业银行的网上银行页面时,我们的程序就自动截图发给我们,我们根据所截获得的图象和通过IE的 COM接口所获得的序号伪密码之间的关系进行转换(抽象为一个简单的函数映射),很容易的。这样便获得了农行网上银行的密码。下面是截取中国建设银行网上银行密码的演示截图,利用动态软键盘的其他网站效果相同。如图3:(衍生:对付应用程序的部分软键盘可以运用Hook TextOutW/A的类似屏幕取词的方法来截取。)

后记:
         尽管网上银行等电子支付平台在密码防盗方面做了安全考虑,但是还是不够安全。不过大家也大可不必因此不使用网上银行,采取数字证书以及USB Key(比如U盾)等安全措施相对而言还是比较安全的。


录入时间:2007-01-11 09:15:38 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号