恶意软件 (Malware 或者 Malicious Software),通常是指计算机程序员以任意编程语言编写的被用来伤害计算机操作系统或从用户,组织或公司系统中窃取敏感数据的计算机软件。而恶意软件分析 (Malware Analysis)通常是指解析恶意软件不同的组件和研究其在主机计算机操作系统中的行为。通过恶意软件分析,我们可以了解恶意软件的结构和对计算机主机造成的影响,从而我们可以更从容的对恶意软件进行防御。

恶意软件分析通常有两种主要技术:

1, 静态恶意软件分析:这通常​​是指对恶意软件的静态信息进行分析,通过分解恶意软件二进制文件的不同资源和学习每个组件来完成。二进制文件可以用一个分解装置分解(逆向工程),例如IDA。机器代码可以被翻译成汇编代码从而可以被读出和被人类理解,而恶意软件分析人员也可以通过解读汇编指令,以了解恶意软件的目的,并通过静态分析找到消除恶意软件感染的办法。

2, 动态恶意软件分析:这通常是指观察和记录在主机上运行恶意软​​件时的行为和动态。虚拟机和沙箱被广泛地用于这种类型的分析。通过模拟一个用户主机系统,在运行中使用调试器按步骤观察恶意软件对处理器和内存,以及系统数据产生的变化,恶意软件分析人员可以了解到恶意软件的意图和可能对系统造成的伤害。

魔盾安全分析提供了一个强大,高效,以及开放的恶意软件及URL分析平台,我们集成了静态分析和动态分析,为用户提供了了解和研究恶意软件所需的各种信息。

Cuckoo沙盒是一个开源的自动化恶意软件分析系统。它可以被用来自动运行和分析文件,并收集各种分析结果,以此来概括恶意软件在一个隔离的Windows操作系统中的行为。Cuckoo沙盒项目起源于2010年的Google Summer of Code project,由Claudio “nex” Guarnieri 创造和设计。Cuckoo沙盒项目仍在持续的开发和维护中。

Cuckoo沙盒由一个主机系统(运行管理程序)和一系列客户端系统(运行虚拟机分析)组成。主机系统包含了管理各种恶意软件分析的核心组件,而客户端系统装载了可以运行和分析恶意软件的隔离环境。Cuckoo沙盒运行一个中央管理程序来协调样本程序的执行和分析,每一次分析都会被运行在一个干净和隔离的虚拟机系统。

想了解更多关于Cuckoo沙盒的信息和动态,请关注:Cuckoo Sandboxing

Optiv公司在Cuckoo沙盒的基础上做出了大量修改和优化,在General Public License (GPL)协议下,提供了一个改动版本的Cuckoo。与标准的cuckoo沙盒相比,改动版本的cuckoo增加了大量的功能,和提供了更大的扩展性。关于改动版本的Cuckoo的具体信息,请参考:Cuckoo-modifed

魔盾安全分析大量运用了改动版本的Cuckoo提供的功能和扩展性,并与Optiv公司一样,对魔盾安全分析的代码遵循GPL协议。

VirusTotal (Google的子公司)是一个提供免费的文件和URL病毒扫描服务的网站。它与传统杀毒软件的不同之处是它通过多种反病毒引擎扫描文件,以判断文件是否被病毒, 蠕虫, 木马, 以及各类恶意软件感染。这样大大减少了杀毒软件误报或未检出病毒的概率,其检测率优于使用单一产品。目前其反病毒引擎已经多达50种以上。

更多关于VirusTotal的信息, 请访问:VirusTotal

哈希(Hash)是一种单项散列或单项密码体制,它是一个从明文到密文的不可逆函数,也就是说,是无法解密的。通常应用在只需要加密、不需要解密的特殊应用场合。哈希(Hash)函数H(M)作用于一任意长度的消息M,它返回一固定长度的散列值h:h=H(M)作为初始消息的独一无二的“数字指纹”,通过校验“数字指纹”可疑保证数据的完整性和惟一性。在信息安全和恶意软件分析领域,我们通常会计算样本文件的哈希值,并通过比较样本文件的哈希值进行文件扫描的搜索或者唯一性检查。

魔盾安全分析对用户提交的每一个样本文件都通过不同的加密算法计算了多种业界常用的哈希值,包括MD5, SHA1, SHA256, 及SHA512。

MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的哈希算法之一(又译摘要算法、散列算法)。 MD5是输入不定长度信息,输出固定长度128-bits的算法。经过程序流程,生成四个32位数据,最后联合起来成为一个128-bits散列。基本方式为,求余、取余、调整长度、与链接变量进行循环运算,得出结果。MD5的前身有MD2、MD3和MD4。MD5一度被广泛应用于安全领域。但是由于MD5的弱点被不断发现以及计算机能力不断的提升,现在已经可以构造两个具有相同MD5的信息,使该算法不再适合当前的安全环境。

SHA-1在许多安全协议中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5(更早之前被广为使用的散列函数)的后继者。但SHA-1的安全性如今也被密码学家严重质疑。

SHA-224、SHA-256、SHA-384,和SHA-512并称为SHA-2。SHA-2并没有接受像SHA-1一样的公众密码社区做详细的检验,所以它们的密码安全性还不被大家广泛的信任。SHA-2的算法与SHA-1基本上仍然相似,目前还尚未出现对SHA-2有效的攻击。SHA256当前被广泛应用于恶意软件分析中的文件样本唯一性标识及搜索。

魔盾安全分析还对用户提交的每一个样本文件都计算了CRC32。 CRC, 即循环冗余校验码(Cyclic Redundancy Check), 是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。

模糊哈希算法又叫基于内容分割的分片哈希算法(context triggered piecewise hashing, CTPH),主要用于文件的相似性比较。2006年,Jesse Kornblum 提出CTPH,并给出一个名为spamsum的算法实例。随后,Jason Sherman开发了ssdeep 工具以实现这一算法。该算法最初用于取证,后来被用于恶意代码检测,最近又有用于开源软件漏洞挖掘等。

模糊哈希的主要原理是,使用一个弱哈希计算文件局部内容,在特定条件下对文件进行分片,然后使用一个强哈希对文件每片计算哈希值,取这些值的一部分并连接起来,与分片条件一起构成一个模糊哈希结果。使用一个字符串相似性对比算法判断两个模糊哈希值的相似度有多少,从而判断两个文件的相似程度。对文件的部分变化(包括在多处修改、增加、删除部分内容),使用模糊哈希均能发现与源文件的相似关系,是目前判断相似性较好的一种方法。

魔盾安全分析对用户提交的每一个样本文件都进行了Ssdeep的计算,Ssdeep值可以用于恶意软件的变种检测。想了解Ssdeep的最新内容,请访问 Ssdeep

YARA是一款旨在帮助恶意软件分析者识别和分类恶意软件样本的开源工具(由virustotal的软件工程师Victor M. Alvarezk开发)。Yara是一个特别灵活的恶意软件识别和分类引擎,可以利用YARA创建规则以检测字符串、入侵序列、正则表达式、字节模式等。YARA的每一条描述或规则都由一系列字符串和一个布尔型表达式构成,并阐述其逻辑。使用YARA可以基于文本或二进制模式创建恶意软件类型描述信息,当然也可以是其他匹配信息。

魔盾安全分析装载了Yara扫描引擎,并集成了Yara全球社区及魔盾安全分析所开发的Yara规则,以帮助用户对恶意软件的特征进行判断。

想了解Yara的具体信息,请访问:Yara 项目, 或 Yara 规则

Malheur最初是由德国哥廷根大学的Konrad Rieck开发的一种创新的自动化的恶意软件分析工具,它在沙箱(sandbox)中记录恶意软件的程序行为并进行自动化分析。Malheur是一种启发式引擎,它基于文件的启发式扫描技术,可以根据文件属性,检测常规的未知恶意软件。Malheur能够识别具有类似行为的恶意软件,从而帮助发现未知的恶意软件和对新的恶意软件进行分类。

魔盾安全分析将Malheur分析集成在沙盒扫描中。当用户提交的恶意软件二进制文件在魔盾沙盒系统中执行时,文件的行为被监控和记录。Malheur对这些行为记录进行分析,发现和使用机器学习识别恶意软件类型,对于已分析的类似的恶意软件,Malheur可以智能的将它们聚合起来。

想了解关于Malheur的具体信息,请访问:Malheur - Automatic Analysis of Malware Behavior

魔盾安全分析将WPing.org信誉集成在沙盒扫描中。当用户提交的恶意软件二进制文件在魔盾沙盒系统中调用网络时,行为被监控和记录。WPing对这些行为记录的IP和域名给出对应的分数。

想了解关于WPing的具体信息,请访问:WPing - IP and Domain Reputation System