Amazon Findings Format(AFF)を読み解いてSecurity Hubを理解する #reinvent

こんにちは、臼田です。

re:Intent2018で発表された新しいセキュリティサービスのSecurity Hubの内部で取り扱っているAmazon Findings Format(AFF)を読み解いて、Security Hubでどんなことが出来るのか掴んでいきたいと思います。

AFFが使われるFindingsやInsightについて先に理解しておくとAFFに興味が出てくると思うのでまずは下記をご参照ください。

Security HubのInsightとFindingsを深掘りしてみた #reinvent

Security Hubのドキュメントは下記にあります。

What Is AWS Security Hub? - AWS Security Hub

AWS Security Hub | Amazon Web Services (AWS)

Amazon Findings Formatとは

Security HubはAWSの各種サービスや様々なプラットフォームから情報を集約する基盤です。

これまでは例えばGuardDutyとInspector、Macie等各サービス毎に検知した内容はそれぞれのダッシュボードで確認していました。しかしこれはセキュリティ管理者やアナリスト等が確認するには非常に不便です。

フォーマットも違えば見る場所も違い、行ったり来たりしながらそれぞれの情報を噛み砕いていく必要があります。

Security Hubは分散している情報をまとめるという役割に加えて、それぞれの情報を共通のフォーマットで管理する役割を持っています。

その共通のフォーマットがAmazon Findings Format(AFF)です。

Security Hubと連携できるサービスは、情報をインポートする際にこのAFFにして渡すことになります。

逆に言えば、AFFを理解することによりSecurity Hubで扱うことの出来る情報、対応できる内容が理解できると思います。

AFFの構文

ドキュメントは下記にあります

AWS Security Finding Format - AWS Security Hub

JSONフォーマットになっていて、全て扱うと大変なので主要なものをピックアップしていきます。

情報の分類に役立つ情報

  • AwsAccountId
    • 対象のAWSアカウント
    • 大分類するための情報の一つ
  • Resource.Type
    • 対象のリソースタイプ
    • 具体的にはEC2インスタンスやS3バケット、IAM等
    • それぞれのタイプごとに対応手法を検討することができる
    • 面白いのは、コンテナのタイプもある
      • ImageId、ImageNameも取れるのでこれをベースに対応もできる
  • Severity
    • 重要度です
    • 発行元の情報(Product)とSecurity Hub上で共通化された重要度(Normalized)がある
    • Normalizedを利用して分類することで様々な情報を一元的に優先順位付けできる
    • Normalizedされた値をベースにHIGH | MEDIUM | LOW | INFORMATIONALのSeverity Levelに分類される
  • Types
    • 情報自体の分類
    • namespace / category / classifierという形式
    • 脆弱性情報(CVE)であればSoftware and Configuration Checks/Vulnerabilities/CVEという分類になる
    • 分類の種類はこちら
    • コンプライアンス系(PCI, ISO, SOC)やベストプラクティス、異常な行動などが表現され、対応するチームを分類するのに役立つ

このあたりの情報は下記のようにInsight画面で集約と絞り込みのために表示されます

情報の詳細

  • Malware
    • 情報の対象がMalwareの場合の詳細
    • Malware.TypeとしてADWARE | BLENDED_THREAT | BOTNET_AGENT | COIN_MINER | EXPLOIT_KIT | KEYLOGGER | MACRO | POTENTIALLY_UNWANTED | SPYWARE | RANSOMWARE | REMOTE_ACCESS | ROOTKIT | TROJAN | VIRUS | WORMをとる
    • パスや状態なども持つ
  • Network
    • ネットワーク関連の場合の詳細
    • src/dstのIPやポート、プロトコル、ドメイン等の情報を持つ
    • 内部/外部の分類や隔離のための情報として利用できる
  • Process
    • 対象がプロセスの場合の詳細
    • パス、pid、親pid等を持つ
    • 親pidをベースに追加の調査をカスタムアクションで行ったりできる
  • ThreatIntelIndicators
    • 脅威情報の詳細
    • ThreatIntelIndicators.CategoryではBACKDOOR | CARD_STEALER | COMMAND_AND_CONTROL | DROP_SITE | EXPLOIT_SITE | KEYLOGGERをとる
    • ThreatIntelIndicators.TypeはDOMAIN | EMAIL_ADDRESS | HASH_MD5 | HASH_SHA1 | HASH_SHA256 | HASH_SHA512 | IPV4_ADDRESS | IPV6_ADDRESS | MUTEX | PROCESS | URLをとる
  • Compliance
    • コンプライアンス系の場合の詳細
    • PASSED | WARNING | FAILED | NOT_AVAILABLEをとる

次のアクションに役立つ情報

  • Remediation
    • 修正のために必要な情報
    • RecommendationのテキストとURLを含む
    • よくあるのは「yum update...」など。単純なものはこれをそのままやっていくだけで対処できそう
  • Resources
    • 関連リソースの詳細が羅列されている
    • EC2ならインスタンスIDやS3ならバケット名、IAMならAccessKey等
      • これを利用して対象リソースにカスタムアクションを実行できる
    • 地味にリージョンやタグも含まれていて、名前だけでは分かりづらい判別もSecurity Hub上でやりやすくなっている
      • マルチリージョンで利用している場合、対応先のリージョンを特定できるだけで探しやすくなる
      • プロダクト名や組織名などがタグであるとより特定しやすい

まとめ

Amazon Findings Formatについて項目をピックアップして内容と主な用途について並べました。

情報のトリアージやブレークダウン、ネクストアクションに必要な情報が共通のフォーマットで得られるので、AWS上のリソースに対して対処を行うにはAFFの有用性を感じられるかと思います。

AFFを理解してSecurity Hubを使いこなしていきましょう!