跳到正文

一、概述

Hash算法是用于通过计算样本字节流的特征来产生样本唯一性标识。此标识可以作为样本的ID,来唯一性标识一个样本。

二、平台支持的Hash算法

1、通用型Hash算法

在主流的各类安全产品当中,常用MD5、SHA-1、SHA-256算法其中的一种或多种来标记样本身份。

MD5

MD5算法标准在RFC1321中被加以规范。MD5曾被用于文件校验、SSL/TLS、IPsec、SSH,但MD5早已被发现有明显的缺陷。

SHA-1

SHA-1是美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦资料处理标准(FIPS)。2020年,针对SHA-1的选择前缀冲突攻击已经实际可行。

SHA-256

同SHA-1算法一样SHA-256也是美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦资料处理标准(FIPS)

2、国密Hash算法

为支持国密算法推广,特别为数百亿样本增加了国密SM3算法的身份标识。

SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日 国家密码管理局关于发布《SM3密码杂凑算法》公告发布,相关标准为“GM/T 0004-2012 《SM3密码杂凑算法》”。2016年,成为中国国家密码标准(GB/T 32905-2016)。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开,安全性及效率与SHA-256相当。SM3签名算法收录于ISO/IEC 10118-3:2018《信息安全技术杂凑函数第3部分:专用杂凑函数》

三、相似性Hash算法

为了便于用户对样本做深度分析,平台提供了几种做样本相似性分析的算法。

1、Imphash

Imphash是输入函数的特征,是对样本的输入函数进行Hash特征提取的结果。具有相同Imphash的样本可能存在相同的行为特征,当输入函数越多,可能性就越高。

2、ssdeep

ssdeep是一个用于计算上下文分段式哈希算法(context triggered piecewise hashes,CTPH)的程序,广泛用于简单的文件相似性识别。

这种算法也称为模糊哈希,可以匹配具有同源性的内容。这些内容是具有相同顺序的相同字节序列,尽管这些序列之间的字节在内容和长度上可能不同。

3、tlsh

TLSH同ssdeep一样,也是一个模糊哈希算法。它给定一个最小长度为 50 字节的字节流用来生成一个哈希值,可用于相似性比较。可以通过比较多个内容的散列值来检测它们的相似度,相似的对象具有相似的散列值。被检测的内容的字节流应该具有足够的复杂性,相同字节的字节流不会生成哈希值。