セキュリティコンサルタントの日誌から

セキュリティに関するエッセイなど

Intelligence-Driven Threat Intelligenceの解説

先日、Internet Week 2019にてActive Defenseに関する講演を行ってきました。その中の一つとして、Threat Huntingについて紹介を行いました。

Internet Week 2019の公式サイトより、資料はこちらからダウンロードしてください。

www.slideshare.net

今回は、Threat Huntingについて講演の内容から外した部分も含めてまとめたいと思います(一年前ぐらいに同じような記事を書いているため、一部重複します)。

www.scientia-security.org

Threat Huntingの定義(復習)

Amazonのクラウド部門に買収されたSqrrl社のホワイトペーパー``A Framework for Cyber Threat Hunting''の定義が今でも有効です。

We define hunting as the process of proactively and iteratively searching through networks to detect and isolate advanced threats that evade existing security solutions. 

(筆者簡易訳)

既存のセキュリティ対策を回避する高度な脅威を検知・隔離するために、能動的かつ再帰的にネットワーク内を探索するプロセス

プロセスモデル(復習)

プロセスモデルも様々存在します。但し、「どのようにThreat Huntingをやるか?」という点に尽きる為、好きなモデルを使えばよいと考えています。

Intelligence Driven Threat Hunting

最近色々研究した中は、SANS CTI Summit 2018でKeith Gilbert氏が発表したモデル(Intelligence-Driven Threat Intelligence)が一番実効性が高いのではないかと考えています。理由としては、Threat Intelligenceの活用を意識していることが挙げられます。

f:id:security_consultant:20191214135123p:plain

以下にそのプロセスを説明していきます。また、以下に彼の講演ビデオを示します。

www.youtube.com

Step 1 : Intelligence Inputs(脅威インテリジェンスの入手)

第一のステップでは、脅威インテリジェンスを入手し、脅威ハンティングのネタ・手がかりを入手します。ここでは、「良い脅威インテリジェンス」を入手することが重要となり、そのためには、4要素(4A)を満たすことだといえます。*1

  • Acuracy(正確性)
  • Audience Focusd(消費者目線)
  • Actionable(アクショナブル)
  • Adequate Timing(適切なタイミング)

また、入手先として、以下の3種類が挙げられます。

  • 外部ソース(Open):ベンダーレポート・ブログ・無償の脅威インテリジェンス情報
  • 外部ソース(Closed):有償の脅威インテリジェンスサービス・情報コミュニティ
  • 内部ソース:アラート・ベースラインからの差異・ユーザからの通報

Step 2 : Decompose Action(アクションの分解)

第2ステップは、脅威インテリジェンスを読み解き、検証可能な単位に分割するフェーズです。これを正確に理解するためには、IOCの文脈、どんな攻撃手法やツールが利用されているか、攻撃者による可変性(変更しやすいIOCなのか?)について分析を行う必要があります。

Step 3 : Create Hypothesis(仮説構築)

第3ステップは、仮説構築フェーズです。Threat Huntingは「既存のセキュリティ対策を回避する」未知の攻撃を洗い出すことです。そのため、(野生の勘が鋭い人を除き)闇雲に探しても時間を浪費してしまいます。そのため、科学的アプローチ(検証可能な仮説→検証)を行う必要があります。

仮説構築は、大きく2種類の方法があります。

アプローチ1:初級者向け(IOCをそのまま適用)

最近のベンダーレポートは、IOCが一覧として載っているケースも少なくありません。そのため、はじめてThreat Huntingをやられる方々には、当該IOCを利用して仮説構築を行うことを推奨しています。

但し、こうしたIOCは既に公開されている時点で過去の攻撃であり、多くの製品にはシグニチャとして反映されていることが想定されます。そのため、セキュリティ製品が十分でない場合を除き、ほとんどの場合引っかかることはないとは言えます(とはいえ、Threat Huntingのイメージを持つうえでは非常に有効です)

また、クローズドな情報(例:ISACからAmberなどで共有される情報)にアクセスできる場合、その情報はまだセキュリティ製品に反映されている可能性は低いのでそのままIOCを活用することは意味があるといえるでしょう。

アプローチ2:中級者向け(IOCを活用する)

中級者の場合、IOCをそのまま活用するのではなく、一歩踏み込み、攻撃手法(TTPs・IoA)に注目する方法が一般的です。本プロセスを提唱したKeith Gilbert氏によれば、IOCの一般化(Generalization of IOC)という手法を取り上げています。これは、IOCを一段高い目線に引き上げるという考え方です。

f:id:security_consultant:20191214142750p:plain

例えば、攻撃者がマルウェアの持続性メカニズムとして、サービスを悪用したとします。その時、当該サービス名がIOCと共有されるはずです。但し、サービス名はいくらでも変更できますので、直接探してもヒットする可能性は低いでしょう。そのため、この点について一般化を行い、サービス名の作成・変更を検知するというIOCを作成すれば、名前に依存せず検索で引っ掛けることができます。

IOCの議論において、Pyramid of Pain(痛みのピラミッド)と呼ばれる概念がありますが、まさに名前などのレイヤーが低い部分からTTPsという高い目線に切り替えることを推奨しているのが、この「IOCの一般化」という概念です。

f:id:security_consultant:20170113154400p:plain

 

また、仮説構築のベースとなるのは、入手した脅威インテリジェンスですが、それ以外にも加味する要素が2つあります。

第一に、「自社環境が置かれている状況」(IT環境・業種・ビジネス動向)です。脅威インテリジェンスには、IOCのような戦術的インテリジェンス(Tactical Intelligence)もありますが、そのIOCの原点となるThreat Actorは特定の技術を活用したり、特定の業種を狙いうちにするIntent(敵対的な意図)があるはずです。通常、それがマッチしていないと、狙われる可能性は低いといえるはずです。そのため、自社が置かれている環境などを正確に把握することは意味があるといえるでしょう。

第二に、「過去の経験」です。TTPsは色々なバラエティに変化しますが、検知の観点から攻撃に気付けるポイントという点については過去の知見に頼ることができます。また、自社の環境に詳しいアナリストであれば、攻撃されやすいポイントやCrown Jewelに基づいたHuntingができるはずです。以下に、IOCの優先度を高める観点から、検知によく使われるIOCのランキング(*2*3)を示します。

f:id:security_consultant:20191214154145p:plain

Step 4 : Hunt!!

第4ステップは、(仮説の)検証フェーズです。このステップを行う前提として、十分な可視化(Full-Spectrum Visibility)が確保されている必要があります。逆に言えば、行くら具体的で検証しやすい仮説を構築できたとしても、検証を行うすべがなければ、意味がありません。

もちろん、EDRやSIEMなど、可視化するツールが十分に整っている組織はそれらを使えばよいですし、別の方法としてフリーツールを活用する方法もあります。

以下に、Threat Hunting界隈で名前がよく上がるツールを示します*4

f:id:security_consultant:20191214165519p:plain

 

Step 4.5 : After Hunting

仮説検証が終わると、以下の二つの状態になるはずです。

ハンティング成功の場合

あまりないはずですが、「仮説が正しく、攻撃の痕跡を確認できた場合」です。つまり、これは攻撃が既に行われた、あるいは現在進行形でやられていることを意味します。すると、ハンティングプロセスを終了し、Incident Responseモードへ移行します。

また、ここでハンティングに成功した場合、ナレッジをISACなどの各種コミュニティに還元できると非常にベターです。

ハンティング失敗の場合

攻撃の痕跡が確認できない場合」です。原則的にはStep 1 ~ 3へ戻ります。

但し、ここでは「攻撃が行われていない」と短絡的な結論に飛びつかず、なぜ痕跡見つからないか、(いちいち原因究明しないまでも)その理由は意識しておくことが大事です。現在のような高度な攻撃が行われる場合、「攻撃が行われていない」と証明することは「悪魔の証明」で、検証することは難しいといえるでしょう。そのため、こうしたハンディングでも、「○○と××の痕跡がないから、APT XXの攻撃は受けていない」と、一定の蓋然性・合理性をもって判断ができるようにしなければいけないと考えます。

さて、元の議論に戻ると、「攻撃の痕跡が確認できない場合」の理由は複数挙げられます。この理由を考えながら、進めることにより、どのステップに戻るべきなのか、次のHuntingへ入る前に何を気を付けなければいけないか気付くことができます。

  • 「(攻撃の痕跡の)探し方が悪い」
  • 「仮説が正しくない」
  • 「選択した脅威インテリジェンスが適切ではない」

Step 5 & 6 : Enrich Actions & Form Activity Group

さて、Step 5 & 6とは、Diamond Modelを軸にした高度な分析手法を前提としており、Internet Week 2019では説明を省きました。また、通常の組織はStep 4.5までできれば十分だと思います。

ここでは、少し詳細に踏み込みたいと思います。

まず、Step 5 : Enrich Actions とは、今回活用できた仮説(IOC)を既存の情報と結び付け、脅威インテリジェンスの充実化を図ることを意味します。脅威インテリジェンスやフォレンジックの活動において、ピボット(Pivoting)という概念があります。『インテリジェンス駆動型インシデントレスポンス』によれば、「情報の1つを使って、既知、あるいは未知の情報群の特定につなげる技術」と定義されていますが、見つけた新しいIOCから、次のIOCを芋づる式に引き出していくイメージとなります。

例えば、先ほどの「IOCの一般化」で説明した通り、「サービスの作成・変更」という軸で調査を行うと、直近怪しいサービスが作成されていたとしましょう。その場合、サービスの作成時刻、作成したプロセスを新たなキーワードとすることでさらに新しいIOCを見つけ出すことができます。

次に、Step 6 : Form Activity Group です。まず、Activity Groupとは、以下のように定義されます。

common/similar malicious events, adversary processes, and threads

(筆者簡易訳)

共通/類似の悪意のあるイベント、攻撃プロセス、スレッド

 APT XXに狙われる企業で、かつ高度なセキュリティが施されている場合、複数回の侵入(インシデント)が発生しています。その場合、それらの複数のインシデントを横にならべ、共通となる手口・手法をならべ、APT XXの特徴をあぶり出すAttribution技術です。実際にこれを詳しくやるためには、Diamond Modelと呼ばれる手法を使いますが、(一般的な企業で)ここまで実際にやることはほとんどないため、その手法は別途解説したい思います。

 

The Diamond Model For Intrusion Analysis: A Primer (SANS CTI Summit 2014)

補足:専門ベンダーにやってもらうのはいいのでは?

こういう話をユーザ系企業にすると、専門業者(MSSP・MDR-SP)が提供するサービスを使うべき、任せるべきではないか?いう議論になります。確かに、全部とは言えませんが一部セキュリティ監視サービスを提供する企業は、サービスの一環としてこうしたThreat Huntingを実施してくれるでしょう。

それでも筆者は、(体力に余裕がある組織は)自社でもできれば実施したほうが良いと考えています。具体的には、MSSPを使いながら自社でも行う、ハイブリッドモデルを推奨しています。

第一の理由として、「脅威インテリジェンスが共有できないケースも多い」です。特に、ISACなどでは、TLP(Traffic Light Protocol)という情報共有の可能な範囲を定義しており、情報によっては自社内に閉じて検証を行わないといけないこともあるといえます。

また第二の理由として、「自社のおかれている環境」を踏まえ、コンテキストを踏まえて脅威ハンティングできる組織は自社だけだと思います。これは、自社のIT環境だけでなく、ビジネス環境なども踏まえた話になります。また、脅威ハンティングの一つの手法として、アノマリー(異常)に注目する方法がありますが、「何が異常であるか?」、「どこに弱点があるか?」は組織によって異なります。

以上のことから、自社でもやることが望ましいといえるでしょう。但し、私も実施した経験がありますが、こうしたThreat Huntingは終わりがないため、時間があれば限りなく実施することもできてしまいますので1時間なり時間を決めてやるのが望ましいと思います。

参考文献

Threat Huntingを勉強される方のため、いくつか勉強用コンテンツを紹介します。

ThreatHunting Project

このサイトは、Threat Huntingに関する情報が多数集まっているサイトです。特に、Threat Huntingの基礎作成に貢献したSqrrl社のコンテンツもアーカイブされています。私が個人的に3部作と呼んでいるコンテンツも公開されています。

  • 『Huntpedia』
  • 『A Framework for Cyber Threat Hunting』
  • 『Hunt Evil: Your Practical Guide to Threat Hunting』

SANS Institute: Summit Archives

SANSが『Threat Hunting & Incident Response Summit』や『SANS Cyber Threat Summit』と呼ばれるサミットを開いており、その中で関連するコンテンツを見るのも手です。一定の品質が担保されていると感じています。最近では、日本語でその様子をレポートしてくれているケースもあるようです。

jpn.nec.com

同様の手法として、SANSのReading Roomを利用して、関連するホワイトペーパーを読んだり、Irongeek.comなどで関連するカンファレンスの公演を聞くのも一つの手だと思います。

 

また、各種セキュリティベンダーのブログも非常に参考になるでしょう。

まとめ

この記事では、Intelligenceを軸としたThreat Huntingについて説明を行いました。こうした手法は、現在のようにツールでは検知が難しい高度な攻撃者には有効な攻撃手法です。脅威インテリジェンスを活用しようとしている組織の参考になれば幸いです。

*1:翻訳した『インテリジェンス駆動型インシデントレスポンス』によれば、3要件(Accuracy・Audience Focusd・Actionable)が定義されています。一方、Threat Intelligenceの別の書籍である『Effective Threat Intelligence: Building and Running an Intel Team for Your Organization』によれば、次の3要件(Actionable・Certainty・Timing)が説明されています。記載されていない1要素を加えることで、4要素として説明したいと考えています。

*2:https://www.youtube.com/watch?v=9Ndv0W2Uq0U

*3:https://www.darkreading.com/attacks-breaches/top-15-indicators-of-compromise/d/d-id/1140647

*4:一つ一つリンクを張るのが大変だったので、講演資料を張り付けています。気になるものが検索してみて下さい。名前が書かれていない眼のログのツールは、The Zeek Network Security Monitorというツールで以前はBroとして知られていたツールです。また最近では、RedHuntLabsという会社もいくつかという会社もいくつか面白いツールを出していそうです。