恶意代码,也称为恶意软件
任何以某种方式对用户、计算机或网络造成破坏的软件,都被认为恶意代码
病毒 木马 蠕虫 内核嵌套 勒索软件 间谍软件
都是对恶意软件进行解剖
流程:
确定目标------定位出感染的主机、文件
分析------------目标通常是确定某一个特定的可疑二进制程序做了什么
确定后全面分析
写出相应的检测特征码 1、基于主机的检验特征码 2、基于网络的检验特征码
主机特征码(感染迹象)
用于在受感染主机上检测出恶意代码。这些迹象经常是恶意代码所创建或修改的文件,或是它们对注册表的特定修改。
与反病毒软件所使用的病毒特征码不同,恶意代码感染迹象关注的是恶意代码对系统做了什么,而不是恶意代码本身的特性。
网络特征码是通过监测网络流量来检测恶意代码的。
网络特征码可以在没有进行恶意代码分析时创建,但在恶意代码分析帮助下提取的特征码往往是更加有效的,可以提供更高的检测率和更少的误报。
恶意代码分析技
一般我们拿到的只有恶意代码的可执行文件,而这个文件并不是我们可读的。
恶意代码分析方法:
静态分析:在程序没有在运行的情况经行分析
基础技术: 1、确认一个文件是否是恶意代的 2、基本信息收集 3、能够生成网络特征码
高级技术:主要是对恶意代码的逆向过程,通过将可执行文件装载到反汇编器中,从而发现恶意代码做什么滴。这些指令是被CPU执行的,所以通过分析可以知道程序做了什么事情。 需要掌握汇编语言、代码结构、Windows操作系统概念、Linux操作系统概念等。
动态分析:运行恶意代码过程中进行分析
基础分析:运行恶意代码并观察系统上的行为,移除感染,产生有效的检测特征码。 在运行恶意代码前,需要建设安全的环境,避免对系统和网络带来风险。
高级技术:使用调试器来检查恶意可执行程序,运行时内部状态,从可执行文件中抽取详细信息的另一条路径。
动态分析与静态分析结合运用可以更完美的分析恶意代码
恶意代码类型
进行恶意代码分析时,你会发现一个非常有用的经验技巧,就是一日你能够猜测出这个恶意代码样本在尝试做些什么,然后去验证这些猜想,就会加速你的分析过程。当然,如果你知道恶意代码通常会做哪些事情,那么你就能够做出更准确的猜测。到目前为止,绝大多数的恶意代码都可以被分到如下类别中。
- 后门:恶意代码将自身安装到一台计算机来允许攻击者访问。后门程序通常让攻击者只需很少认证甚至无须认证,便可连接到远程计算机上,并可以在本地系统执行命令。
- 僵尸网络:与后门类似,也允许攻击者访问系统。但是所有被同一个僵 尸网络感染的计算机将会从一台控制命令服务器接收到相同的命令。
- 下载器:这是一类只是用来下载其他恶意代码的恶意代码。下载器通常是在攻击者获得系统的访问时首先进行安装的。下载器程序会下载和安装其他的恶意代码。
- 间谍软件:这是类从受害计算机上收集信息并发送给攻击者的恶意代码。比如:嗅探器、密码哈希采集器、键盘记录器等。这类恶意代码通常用来获取E-mail、在线网银等账号的访问信息。
- 启动器:用来启动其他恶意程序的恶意代码。通常情况下,启动器使用一些非传统的技术,来启动其他恶意程序,以确保其隐蔽性,或者以更高权限访问系统。
- 内核套件:设计用来隐藏其他恶意代码的恶意代码。内核套件通常是与其他恶意代码(如后门)组合成工具套装,来允许为攻击者提供远程访问,并且使代码很难被受害者发现。
- 勒索软件:设计成吓唬受感染的用户,来勒索他们购买某些东西的恶意代码。这类软件通常有一一个用户界面,使得它看起来像是一个杀毒软件或其他安全程序。它会通知用户系统中存在恶意代码,而唯除掉它们的方法只有购买他们的“软件”,而事实上,他们所卖软件的全部功能只不过是将勒索软件进行移除而已。
- 发送垃圾邮件的恶意代码:这类恶意代码在感染用户计算机之后,便会使用系统与网络资源来发送大量的垃圾邮件。这类恶意代码通过为攻击者出售垃圾邮件发送服务而获得收益。
- 蠕电或计算机病毒:可以自我复制和感染其他计算机的恶意代码。
恶意代码还经常会跨越多个类别。例如,一个程序可能会有一个键盘记录器,来收集密码,而它可能同时有一一个蠕虫组件, 来通过发送邮件传播自身。所以不要太陷入根据悲意代码功能进行分类的误区。
恶意代码可以根据攻击目标分为两类:
大众性恶意代码:比如勒索病毒,采用广撒网的方式,尽量影响到更多的机。大众性类是最为普遍的,通常也不会太过复杂,而且更容易被检查和防御的,因为安全软件对这类型的代码作为防御目标。
针对性的恶意代码:比如特制后门,是针对特定组织而研究的。针对性恶意代码比大众性的威胁更大,因为他不是广泛传播的,很多安全产品并不能帮你防御。
恶意代码分析通用规则
最后,我们将介绍几个在进行恶意代码分析时需要牢记的通用规则。
首先,不要过于陷入细节。大多数恶意程序会是庞大而复杂的,你不可能了解每一个细节。 你需要关注最关键的主要功能。当你遇到了一些困难 和复杂的代码段后,你应该在进入到细节之前有一个概要性的了解。
其次,请记住对于不同的工作任务,可以使用不同的工具和方法。这里没有一种通吃的方法。每一种情况是不同的,而你将要学习的各种工具和技术将有类似的,有时甚至重叠的功能。如果你在使用一个工具的时候没有很好的运气, 那么尝试另外一种。如果你在 一个点上被卡住了,不要花太长时间在这个点上,尝试转移到其他问题。尝试从不同角度来分析恶意代码,或只是尝试不同的方法。
最后,请记住。恶意代码分析就像是猫抓老鼠的游戏。在新的恶意代码分析技术开发的同时,恶意代码编写者也在回应着可以挫败分析的新技术。作为一名恶意代码分析师,你如果想取得成功,就必须能够认识、理解和战胜这些新技术,并能够快速地应对恶意 你如果想要取得成
代码分析艺术的新变化。
恶意代码
原文:https://www.cnblogs.com/xizi30/p/12112191.html