VirusTotal によるインシデント調査の効率化
セキュリティインシデントの調査を行う場合、関連するファイルが悪意のあるものであるかの評価を行う際、よくVirusTotalでのファイルのハッシュ値に対する評価を参考にします。
ファイルのハッシュ値をVirusTotal のWebサイトから検索することで,複数のアンチウイルス製品を使用して検査を行い、どの製品が検出したか一覧を表示してくれます。2022年2月27日現在、67種類の製品が用いられていました。ハッシュ値を検索するだけ、既知のものであるか簡単にわかるため、非常に重宝します。ただし、調査すべきファイルが多数ある場合、手動でいちいちWebサイトで検索するのは面倒でかつ時間がかかります。
APIによるハッシュ検索
VirusTotalのコミュニティに参加(無料のアカウント作成)することで、APIによるハッシュ値の評価が行えるようになります。
Join the VirusTotal Community(コミュニティ参加アカウント作成サイト)
アカウントを作成すると、APIを使用する際に必要となるAPIキーを入手できます。
ハッシュ値の一覧がまとめてあるファイルから、ハッシュ値を1つずつ自動で読み取りVirusTotalの検知件数を表示するPowerShellプログラムを作成してみました。
$target = "https://www.virustotal.com/vtapi/v2/file/
$apikey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$txt = "C:\Users\xxxx\SHA256s.txt"
$enc = [Text.Encoding]::GetEncoding("Shift_JIS")
$fh = New-Object System.IO.StreamReader($txt, $enc)
while (($hash = $fh.ReadLine()) -ne $null) {
$para = @{
resource = $hash
apikey = $apikey
}
$result = Invoke-RestMethod -Method Post -Uri $target -Body $para
if( $result.response_code -eq 0 ){
echo "No matches found"
}
$echo_str=$hash+","+$result.response_code+","+$result.positives
echo $echo_str
Sleep 20
}
結果として、ハッシュ値ごとに、検索成否と検知された製品数が出力されます。
制限事項
なお、実は、コミュニティ版のAPI利用は、1日500件に制限されています。やりすぎてこんなメールをいただいてしまいました。
500件を超えた場合は、1日以上の間を空けて再度実施することになります。
投稿者プロフィール
最新の投稿
- セキュリティ2022.06.05疑似攻撃よるレスポンス予行演習(その4)
- セキュリティ2022.05.06疑似攻撃よるレスポンス予行演習(その3)
- セキュリティ2022.04.10疑似攻撃よるレスポンス予行演習(その2)
- セキュリティ2022.03.15疑似攻撃よるレスポンス予行演習