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
防止黑客通过搜索您的二进制文件获取敏感的应用程序字符串。最大限度的保护您的.NET 程序不受不法分子的侵害! 主要特性: 1>核(运行时)级的混淆引擎。 2>灵活的用户定制功能。 3>独创的元数据混淆功能。 4>反-...
obfuscation is important technology.
### DBMS_OBFUSCATION_TOOLKIT:Oracle 数据库中的加密与解密工具包 DBMS_OBFUSCATION_TOOLKIT是Oracle数据库提供的一种用于数据加密解密的强大工具包,自Oracle 8i版本开始引入。它支持多种加密算法,如DES、...
《Web Application Obfuscation》这本书深入浅出地介绍了Web应用代码混淆技术的相关知识和实践案例,对于从事网络安全工作的人来说具有很高的参考价值。通过学习和应用这些技术,可以有效地提高Web应用的安全性,...
《Web Application Obfuscation》是关于网络应用混淆技术的专业文献,该主题在信息安全领域尤为重要,尤其是在Web应用程序开发和保护方面。混淆技术是一种用于增加代码复杂性,使其难以被逆向工程解析的技术,常用于...
<span xss=removed>Code obfuscation is intended to thwart reverse engineering by making programmes hard to understand. Call <span xss=removed>chains collected by stack tracing can be used to ...
Obfuscation.sh,Obfuscation移植到LLVM10.0.1以及更高版本的脚本,使用方法:https://blog.csdn.net/tabactivity/article/details/108995746
在描述中提到,通过将 Invoke-Obfuscation 应用到 C# 生成的 PowerShell 脚本上,然后使用 PS2EXE 工具将其转换为exe文件,可以有效地绕过某些主流杀软的检测。例如,在测试过程中,混淆后的脚本不再被某60云查杀和...
标题《Bohannon-Revoke-Obfuscation-PowerShell-Obfuscation-Detection》指出了文章的核心主题是关于PowerShell代码混淆与检测技术的研究。描述部分提到这篇文章是由安全研究者Daniel Bohannon和Lee Holmes合作撰写...
标题“Bohannon-Revoke-Obfuscation-PowerShell-Obfuscation-Detection-And”与描述中的“Evasion-Using-Science-wp”共同指向一个主题,即PowerShell混淆技术的检测与规避方法,特别是利用科学手段进行的反混淆策略...
Agile.net Code Protection - Powerful .NET Code Protection & Obfuscation Solution Agile.NET code protection solution offers better protection for your .NET code by providing a protection that goes ...
20.CodeSearch: This add-in allows searching for strings and regular expressions in disassembled code. 21.RuleSetEditor: Editor for Windows Workflow Foundation rules. 22.AssemblyListEx:Register a file...
python-obfuscation, 基于 python的项目模糊处理技术 python-代码保护机制基于 python的项目模糊处理技术。描述在这个存储库中,我将尝试和尝试基于 python的不同选项来保护基于的代码。组织目标是位于目录的项目,...
Get access to a comprehensive set of obfuscation features, including Name Mangling, Control Flow Obfuscation, Strings Encoding, References Dynamic Proxy, and Declarative Obfuscation. Simplify the ...
Assessing the Security Properties of Software Obfuscation