关于恶意代码的那些事(二)
传播方式
➢ 利用操作系统和应用软件的漏洞进行传播
➢ 通过网站传播:在网页上挂载恶意代码,如主机浏览该网页时,恶意代码会自动下载到主机执行。
➢ 将恶意代码与正常应用软件捆绑如:主机下载正常软件运行时,恶意代码也随之自动运行。
➢ 利用移动媒介传播:如主机访问U盘和硬盘时,恶意代码可以自动执行。
➢ 利用用户之间的信任关系传播:如冒充用户发送虚假链接、图片、邮件等。
攻击机制
(1)侵入系统
侵入系统是恶意代码实现其恶意目的的必要条件。恶意代码入侵的途径很多,包括前面传播方式的各种途径。 (2)维持或提升权限
恶意代码的传播与破坏必须盗用用户或者进程的合法权限才能完成。 (3)隐蔽策略
为了不让系统发现恶意代码已经侵入系统,恶意代码可能会改名、删除源文件或者修改系统的安全策略来隐藏自己。 (4)潜伏
恶意代码侵入系统后,等待一定的条件并具有足够的权限时,就发作并进行破坏活动。 (5)破坏
恶意代码本质具有破坏性,其目的是造成信息丢失,泄密,破坏系统完整性等。 (6)重复
重复(1)至(6)对新的目标实施攻击过程。
静态分析
通过反病毒引擎扫描识别已知的恶意代码家族和变种名。逆向分析恶意代码模块构成,内部数据结构,关键控制流程等,理解恶意代码的机理,并提取特征码用于检测。
目的:确定攻击平台和类型,获知恶意代码所期望的运行平台
恶意代码通常是以二进制可执行文件格式存在的,其他的存在形式还包括脚本文件、带有宏指令的数据文件、压缩文件等。
目的:寻找恶意代码分析线索
有时恶意代码的作者会在自己的作品中放入某个特定的url或email地址,或者恶意代码会使用到某个特定的库文件和函数。利用字符串提取技术,可以帮助我们分析恶意代码的功能和结构。
可能获得的有用信息:恶意代码实例名、帮助或命令行选项、用户会话、后门口令、相关URL信息、Email地址、库、函数调用……
目的:识别是否加壳,加壳类型
壳的分类:压缩壳、加密壳、伪装壳等等。
常见壳::UPX, PEPack, ASPack, PECompact
壳识别:peid, VMUnpacker
目的:对抗代码混淆,恢复原始代码
恶意代码的加壳会对深入的静态分析构成阻碍,因此对加壳进行识别以及代码脱壳是支持恶意代码静态分析一项关键性的技术手段。
方法:自动脱壳工具、手工脱壳 (寻找程序入口点,dump出程序,修复PE文件(导入、导出表等)
目的:二进制代码 → 汇编代码
目的:汇编代码 → 高级语言
工具:Java反编译、C/C++反编译
动态分析
通过在受控环境中执行目标代码,以获取目标代码的行为及运行结果。
(1)快照比对:
(2)系统动态行为监控(API Hooking):
(3)网络协议栈监控方法:
(4)沙箱技术:
关于我们
北京天宇宁达科技有限公司创建于 2016 年,前身为 2009 年的北京天宇宁科技有限公司。历经十余年的发展与积累,天宇宁达已成为国内电子数据取证行业卓越领先的产品与解决方案供应商,同时也是国内知名的电子数据专业取证服务与培训机构。