当前位置: 代码迷 >> Android >> 如何防止代码注入
  详细解决方案

如何防止代码注入

热度:27   发布时间:2016-04-28 04:56:39.0
怎么防止代码注入
危害:
通过OS特定技术,将代码写入到目标进程并让其执行的技术。攻击者可以将一段恶意代码写到目标进程,这段代码可以加载其它可执行程序,进而实施hook,监控程序运行行为、获取敏感信息等。
对于金融客户端,可通过代码注入技术,将恶意代码注入到客户端中,窃取输入的登录账号、密码、支付密码,修改转账的目标账号、金额,窃取通讯数据等。

请教如何防止代码注入
------解决方案--------------------
进程注入没办法防止的。

至于通过注入获取用户帐号和密码,这个是可以防止的
重载密码控件,对密码进行n次md5 然后提交
这样黑客就是通过GetWindowText获取到了窗口内容也无法利用账号进行交易。
毕竟服务器是对密码原码进行n次md5后的内容进行校验的,这n是黑客没办法直接知道的
只能尝试,对于金融系统来说,尝试的次数是有限制的,一般是3次失败就直接锁定帐号。

网络传输可以采用加密,在账号登陆成功之间就建立加密连接,可以100%保证加密的安全,如果采用类似rsa认证,就是公司内部员工出卖协议文档,也没办法进行破解。

最终就是进程代码注入,被注入者是可以自己进行预防的,就是检查自身线程数量或线程句柄,正常情况下自身创建的线程可能是不固定的,但是完全可以采用一个简单的链表进行记录,发现非法线程,进程自身立马自锁并报警(,必要时可以主动自毁,然后发送错误报告),这样就可以保证金融软件客户端的自身安全。

至于什么hook openprocess的做法完全就是搞笑了,为了一个简单的安全功能去开发驱动技术没有必要(,我了解不通过驱动也可以hook系统dll,但是你没办法绕过杀毒软件不是!!!),所以做功能不要舍近求远的追求技术上的突破,毕竟用简单的办法把问题解决才是最有效的办法。
  相关解决方案