translated from: http://www.finjan.com/Content.aspx?id=1456
黑客们玩“猫与老鼠”
动态代码混淆技术是黑客们与安全专家们长期智斗的产物。为了响应安全专家们关于检测“加密恶意代码”的努力,黑客们发明了动态代码混淆技术,该技术使得一个新的访问者访问恶意网站时代码被不同地混淆(方式不同)。代码混淆已经存在一段时间了,动态代码混淆由于其复杂性和流行性将成为值得关注的趋势.由于它有效地迂回传统“数字签证”(signature-based solution),已经成为传播恶意代码的有利武器。动态代码混淆,自动混淆代码和其它的编码方法便利黑客们安置不可见的恶意代码,在用户访问那个恶意站点时其机子就中标了。
动态混淆技术的广泛流传早由MCRC的2007年春的调查报告分析中出现了。通过分析UK多于10,000,000个URLs,Finjan发现80%被检测到的恶意代码都是被混淆的以规避数字签证产品(如anti-virus, IDS/IPS,URL)的过滤。
规避数字签证安全工具的复杂策略
动态代码混淆技术在黑客与安全公司间的棋局上不断发展进化。早期安全专家们检测恶意代码用的是词法分析,它扫描代码并识别执行恶意操作的记号(如删除文件,访问注册表)。当黑客们意识到这种安全策略,他们便开始通过加密或串联字符串或其它方法来隐藏或者混淆代码。被混淆了的代码在anti-virus scanners看来就是良性字符串,不能被检测出来哦。恶意行为在代码被解码时(即运行时)呈现出来。
为了能检测出恶意代码,anti-virus发明了一种“js/wonka”的数字签证,它能大体检测出那些包含有一些可能用于混淆脚本的功能函数的静态页面。黑客们响应这个防御策略通过开发动态代码混淆技术。换句话说,每个访问恶意网站的人都会收到一份恶意代码实例,这基于随机函数或可变参数。理论上讲,一个数字签证安全策略将需要成千上万的signatures来检测这些特别的恶意代码段并阻止它们。结果,动态代码混淆使得很多老式攻击(能被混淆和重用的)复活了。
考虑一下下面这段动态混淆代码,它是在2006年冬在一个俄国网站上检测出来的。一旦用户进入该站点,无需交涉,脚本将会解析混淆代码并执行它。

一个熟悉JS语言的人可能留意到代码中函数和参数名是随机的。这种类型的攻击迂回数字签证检测,因为数字签证检测没有能力处理无限多可能性。译码后代码如下图所示:

实时代码检测忙于动态网页威胁
只有一个办法能防住动态混淆代码及类似的黑客技术,那就是在网页内容到达终端用户之前,动态地分析并理解嵌在内容中的代码。
前摄的,基于行为的安全策略对每一块内容实施了纵向分析,无论它来自什么源。这种分析将代码破为N块,理解代码想去做什么(在它们做之前)。结果呢,这种策略能够识别那些将要执行恶意或可疑操作的代码,在周边上把它阻止掉,而不是允许它进入网络后依赖于桌面安全策略。
但是,我有我的疑问:
1.文末提及的衬里代码检测是在服务器端进行的么?如果是,那么它在发出前是混淆的呀,明明检测不出结果来;如果不是在服务器端而是在浏览器端,那么末句“允许它进入网络后………”又该怎么理解。
2. 比如在Mozilla Firefox中,是在解释器一级作拦截么?那怎么“成片成片”地检测呢?一次不是只能解释执行几句话么?
请高手 大师 黑客大爷们指点一二呀,不胜感激!
分享到:
相关推荐
New Attack Tricks Antivirus Software 非常非常经典地一篇论文,共享给大家,共同学习 博文链接:https://juliet.iteye.com/blog/185372
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
此数据集包含有关出租车行程的详细信息,包括乘客人数、行程距离、付款类型、车费金额和行程时长。它可用于各种数据分析和机器学习应用程序,例如票价预测和乘车模式分析。
把代码放到Word中,通过开发工具——Visual Basic——插入模块,粘贴在里在,把在硅基流动中申请的API放到VBA代码中。在Word中,选择一个问题,运行这个DeepSeekV3的宏就可以实现在线问答
【毕业设计】java-springboot+vue机动车号牌管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip