样本内容:Hash

一、概述

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

二、平台支持的Hash算法

1、通用型Hash算法

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

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

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

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

【补充介绍】

SHA家族的算法,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布,是美国的政府标准,其分别是:

  • SHA-0:1993年发布,当时称做安全散列标准(Secure Hash Standard),发布之后很快就被NSA撤回,是SHA-1的前身。
  • SHA-1:1995年发布,SHA-1在许多安全协议中广为使用,包括TLS、GnuPG、SSH、S/MIME和IPsec,是MD5的后继者。但SHA-1的安全性在2010年以后已经不被大多数的加密场景所接受。2017年荷兰密码学研究小组CWI和Google正式宣布攻破了SHA-1。
  • SHA-2:2001年发布,包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。SHA-2目前没有出现明显的弱点。虽然至今尚未出现对SHA-2有效的攻击,但它的算法跟SHA-1基本上仍然相似。
  • SHA-3:2015年正式发布,由于对MD5出现成功的破解,以及对SHA-0和SHA-1出现理论上破解的方法,NIST感觉需要一个与之前算法不同的,可替换的加密散列算法,也就是现在的SHA-3。

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 字节的字节流用来生成一个哈希值,可用于相似性比较。可以通过比较多个内容的散列值来检测它们的相似度,相似的对象具有相似的散列值。被检测的内容的字节流应该具有足够的复杂性,相同字节的字节流不会生成哈希值。