概要
NSRL(National Software Reference Library)プロジェクトは、国立標準技術研究所(NIST)を拠点とし、さまざまなソフトフェアのファイルプロファイルを参照データセット(RDS)に取り込むことを目的としています。NSRLのRDSは、既知の追跡可能なソフトウェアのデジタル署名のデータセットであり、ファイルのハッシュ値、ファイル名、製造元の情報などのデータが含まれています。このデータセットは、3月、6月、9月、12月と四半期ごとに更新されます。
基本的には、既知のソフトウェアを調査対象から除外することでフォレンジックを効率的に行う目的で利用されます。また、フォレンジックツールにインポートして利用することも可能です。
関連ツール
- NSRLJP
NSRLJPは、NSRLフォーマット(RDS)に準拠した日本語関連のソフトウェアを中心とするハッシュデータセット(ハッシュライブラリ)です。NSRLに不足している日本語関連の情報を補完することを目的として作成されており、併用することでより高い効果を発揮します。 - CIRCL hashlookup
NSRLのRDS データベースを含む既知のファイルのデータベースに対して、ハッシュ値のルックアップが可能なパブリックAPIです。
マルウェア解析における利用方法
NSRLのRDSは大抵の場合フォレンジックで用いられますが、ここではマルウェア解析やスレットハンティングでの利用方法を紹介します。このデータセットはダウンロードして使用できるため、ハッシュ値をオンライン上で検索することなく調査可能です。
NSRLにはファイルのハッシュ値とファイル名が含まれています。これを利用することで、正規ファイルの悪用を検知できる可能性があります。以下に、パソコン内の正規ファイルを悪用するLOLBinと、脆弱性のあるソフトウェアを外部から持ち込み悪用するVULNBinsの例を紹介します。
LOLBins
2022年のEmotetのローダーでは、ダウンロードしたモジュールを実行するため、正規ファイルであるcertutil.exeをランダムなファイル名で%Temp%フォルダーにコピーしていました。このため、NSRLの正規ファイルの情報と実行されたファイルのハッシュ値およびファイル名を突き合わせることで、攻撃者による痕跡を見つけるのに役立つ可能性があります。
VULNBins
サイバー犯罪組織InvisiMoleでは、Windows XPのwdigest.dllやWindows 7のsetupSNK.exeを悪用した攻撃を行っていました。この攻撃は、Windows 10環境でも機能するものです。
悪用されたsetupSNK.exeのSHA1ハッシュ値(EE7D06FC93D3C608B48823D1444148327330015A)をNSRLで確認すると、次の画像にある情報が得られます。NSRLには、ハッシュ値やファイル名以外にOS情報なども存在します。これを利用することで、SHA1ハッシュ値からsetupSNK.exeがWindows 7の古いOSのものであることが確認できます。本来の環境から逸脱した実行ファイルが存在した場合は、攻撃者による痕跡である可能性があります。
実際にNSRLを利用する場合は、ノイズの調整を行う必要があります。パソコン内には、ハッシュ値が同一のファイルであっても複数の異なるファイル名として存在することがあります。このため、調査時には正規ファイルとは無関係なフォルダーに限定するなど調整をしていく必要があります。また、正規ファイルであってもNSRLに含まれていないファイルも多数存在することにも注意が必要です。