恶意代码分析入门

1 目标

  • 确定某一个特定的可疑二进制程序到底可以做什么
  • 能够定位出所有受感染的主机和文件
  • 如何在网络上检测出它
  • 如何衡量并消除它所带来的损害

2 分析技术

在大多数情况下, 进行恶意代码分析时, 只能看到人类不可读的恶意代码的可执行文件。需要使用各种工具和技巧才能了解这些文件的意义,而每种只能揭露出少量的信息。因此需要综合使用各种工具, 才能看到一个全貌,下面介绍一些常见的恶意代码分析方法。

  • 基础静态分析
    • 静态分析基础技术包括检查可执行文件不查看具体指令的一些技术。静态分析基础技术可以确认一个文件是否是恶意的, 提供有关其功能的信息。
  • 基础动态分析
    • 动态分析技术建立在运行恶意代码的基础上,所以必须建立一个安全环境(通常是虚拟机)进行分析。
  • 高级静态分析
    • 静态分析高级技术, 主要是对恶意代码内部机制的逆向工程, 通过将可执行文件装载到反汇编器中, 查看程序指令。静态分析高级技术较基础技术相比, 有着较为陡峭的学习曲线, 并且需要掌握汇编语言代码结构Windows操作系统等专业知识
  • 高级动态分析
    • 动态分析高级技术则使用调试器来检查一个恶意可执行程序运行时刻的内部状态。通常会使用动态分析高级技术和静态分析高级技术, 更完备地分析可疑的恶意代码。

3 恶意代码类型

  • 后门:恶意代码将自身安装到一台计算机来允许攻击者访问。后门程序通常让攻击者只需很少 认证甚至无须认证, 便可连接到远程计算机上, 并可以在本地系统执行命令。
  • 僵尸网络:与后门类似, 也允许攻击者访问系统。但是所有被同一个僵尸网络感染的计算机将 会从一台控制命令服务器接收到相同的命令
  • 下载器下载并安装其他恶意代码的恶意代码。下载器通常是在攻击者获得系统的访问时首先进行安装的。
  • 间谍软件:从受害计算机上收集信息并发送给攻击者的恶意代码。比如: 嗅探器、密码哈希采集器、键盘记录器等。一般用户获取被攻击者账户密码信息
  • 启动器:用来启动其他恶意程序的恶意代码。通常情况下, 启动器使用一些非传统的技术, 来启动其他恶意程序, 以确保其隐蔽性, 或者以更高权限访问系统。
  • 内核套件隐藏其他恶意代码的恶意代码。内核套件通常是与其他恶意代码(如后门)组合成工具套装, 来允许为攻击者提供远程访问, 并且使代码很难被受害者发现。
  • 勒索软件:威胁受感染的用户, 来勒索他们购买某些东西的恶意代码。它会通知用户系统中存在恶意代码, 而唯一除掉它们的方法只有购买他们的“软件”或者“服务” 。
  • 发送垃圾邮件的恶意代码:使用系统与网络资源来发送大量的垃圾邮件。这类恶意代码通过为攻击者出售垃圾邮件发送服务而获得收益。
  • 蠕虫或计算机病毒:可以自我复制和感染其他计算机的恶意代码。

4 恶意代码分析规则

  • 不要过于陷入细节,关注最关键的主要功能,进入到细节之前有一个概要性的了解。
  • 对于不同的工作任务, 使用不同的工具和方法。如果在一个点上被卡住,尝试从不同角度或者方法来分析恶意代码

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注