継続的なリアルタイムの脅威ハンティングは今や、企業や組織が必要とする重要な機能の1つとなっています。この記事では、当社の脅威ハンティングチームおよびインシデント対応チームが採用している戦略を紹介することで、お客様のセキュリティ運用における不可欠な要素として、お使いのネットワークに脅威ハンティングを導入する方法をご説明します。

脅威ハンティングとは何か?

脅威ハンティングとは、すでに検知されたインシデントに対応するだけのよくある事後対応型アプローチとは対照的に、ネットワーク上の敵対的なアクティビティをプロアクティブに探そうとする行為です。脅威アクターは、さまざまなセキュリティソリューションを回避するために、常に進化と適応を続けています。

防御者としての企業や組織は、悪意あるファイルのハッシュやドメインといった単一の静的なアイテムや振る舞いだけでなく、一連の振る舞いを識別する方法を学ぶ必要があります。特定の組み合わせにおいて、一連の振る舞いは極めて稀である場合もあれば、攻撃者にとっての優位性を表している場合もあります。また、企業や組織は、これらの正規のツールが正しく利用される場合と、悪意ある行為のために利用される場合とを区別する方法も知っておく必要があります。

ファイアウォール、アンチウイルス(AV)EDR(Endpoint Detection and Response)製品などの自動化されたソリューションを使うと多くの攻撃を検知できますが、脅威ハンターによるプロアクティブなアプローチを通じてしか発見できない手法や振る舞いの行動パターンもあります。たとえば、「LOLBins(living off the land binaries)」の実行は、悪意ある目的のために正規のツールを利用するものであるため、これを検知するには人間の目が必要となります。

脅威ハンターは、様々なテレメトリデータを継続的かつプロアクティブに分析し、個々の調査で新たな側面を明らかにすることを通じて、無害な「ノイズ」を実際の攻撃から分離します。企業や組織は、このような作業を通じて、新たに発見された手法やパターンを自らのソリューションに統合することで、検知能力を強化できます。

脅威ハンターは、テレメトリデータやログを解析することで、次のことを行います。

  • エンドポイント上で、プロセスのアクティビティや接続などに関して悪意ある振る舞い(または振る舞いの痕跡(IOB))がないかどうか調べます。
  • 既知の脅威から得られた「侵害の痕跡(IOC)」に依存するのではなく、IOBを活用して未知の脅威を特定します。
  • 戦術、手法、手順(TTP)を戦術的なハンティングクエリに変換することで、攻撃をその初期段階で表面化させます。

ハンティングの方法論

ハンティングの方法論と、その例を下記に紹介します。

知識の整理

最初のステップは、TTPをはじめ、サイバーセキュリティの世界で現在利用されているものに関する情報にアクセスすることです。

脅威ハンティングに活用できる多くの有用なリソースが存在しています。例としては次のものが挙げられます。

  • TwitterやLinkedIn上のセキュリティ研究者@CR_Nocturnusなど)
  • セキュリティベンダーによるブログ記事Cybereasonのブログ、FireEye、Cisco Talos、SecureListなど)。
  • 脅威レポート – 自分の業界に関連する脅威インテリジェンスレポートを見つけましょう。そして、同じ業界で働く他のサイバーセキュリティ専門家と協力するようにしましょう。多くの人は、自らの業界の脅威アクターに対する防御努力を結集することを望んでいます。その好例として、Reddit上のこの記事が挙げられます。
  • MITRE ATT&CK – ハンティングクエリに関するアイデアを得るための素晴らしいリソースです。関連する手法を読むことから始めて、ゆくゆくはお使いのネットワークでそれらの手法に関するハンティングを行います。

これらのリソースは、IOCやYaraルールを含む非常に単純な場合もあれば、IOBとハンティングクエリを作成できるような深い分析をもたらす場合もあります。脅威ハンティング手法の開発に投資することは、将来的に、貴社が持ちうるスキルと知識の充実化に貢献します。

LOLBinsに関するハンティング

詳しく調べたいテーマが決まったら、まずはその知識を深めることから始めましょう。今回のブログでは、手軽に始められるトピックとしてLOLBinsを取り上げます。LOLBinsは、ここ数年、業界で最もホットなトピックの1つとなっています。

LOLBinsとは何か?

LOLBinsとは、正規の信頼できるバイナリを悪意ある行為のために利用することを意味します。ここ数年、LOLBinを使用して検知を回避しようとする脅威アクターが増えています。LOLBinsを利用することで、MITRE戦術のほぼすべての局面において、さまざまな活動を実行できます。

脅威アクターはLOLBinを使用することで、ファイルのダウンロード/実行/アップロード、パーシステンスの維持、UACの回避、列挙、ラテラルムーブメント、流出などを行うことができます。LOLBinsに関する豊富な情報を紹介しているリソース(ブログ記事、ツイート、GitHubページなど)は多数存在していますが、そのいくつかを下記に紹介します。

  • Chaesマルウェア – 大規模な電子商取引プラットフォームの顧客を標的とした攻撃であり、msiexecwscriptinstallutilを悪用します。
  • Egregorランサムウェア – 最近、世界中の組織に対するいくつかの巧妙な攻撃で確認されたランサムウェアのバリアントです。Egregorはrundll32bitsadminを悪用します。
  • Astarothマルウェア – Astaroth Malware – 欧州で確認され、主にブラジルに影響を与えたインフォスティーラーであり、regsvr32wmicbitsadminを悪用します。
  • トロイの木馬Ramnit – 英国とイタリアに対する持続的なキャンペーンにおけるsLoadとRamnitを組み合わせた攻撃であり、bitsadmincertutilwscriptを悪用します。

LOLBAS Projectと呼ばれるこのGitHubページは、フォローすべき素晴らしいリソースの1つです。このGitHubページでは、悪意ある行為のために利用される可能性のある、広く知られた信頼できるバイナリに関する情報がまとめられています。

あらゆるバイナリに関して、いかなる種類のアクションを悪用できるかという情報に加えて、それらを悪用した場合の事例が掲載されています。これらの例は、企業や組織がハンティングクエリを作成し、それらのプロセスの異常を探す場合に役立ちます。

脅威ハンターとして、トレンドのバイナリに注目し、それらが実際にどのような挙動を示すのかを見ていきましょう。ここではBITSadminを例に取り上げます。まずは、このツールが何に使われるのかをネットで調べてみることにします。Googleで検索すると、「BITSAdminはジョブの作成、ダウンロード、アップロード、およびその進行状況の監視に使用できるコマンドラインツールである」と書かれているMicrosoftのドキュメントが見つかります。

次のステップでは、攻撃者がこのツールをどのように悪用するかを調べましょう。LOLBAS ProjectのBITSadminに関するページを読むと、BITSadminは外部からのファイルのダウンロード、ファイルの実行、ADSへのデータのコピーや追加に利用できることが分かります。同ツールに関するブログ記事を読むことで、実際の攻撃でこのツールが実行された例を見つけることができます。使用されるコマンドライン、プロセスツリーの動作、疑わしいファイルイベントについて学習することで、それらのアクティビティに基づいてハンティングクエリを実行できるようになります。

いくつかのブログ記事を使って、実際にBITSadminを悪用した例を見ていきましょう。

  • Egregorランサムウェア攻撃では、BITSadminがペイロードの1つをダウンロードするために使用されました。

  • ▲BITSadminの悪用(Cybereason XDR Platformでの表示)

  • このツイートからは、BITSadminを使ったファイルのコピー方法およびファイルの移動方法を知ることができます。
  • Astaroth攻撃の1つからは、BITSadminが、コマンド&コントロール(C2)サーバーから複数のバイナリブロブをダウンロードするために使用されていたことがわかります。
  • VirusTotalのサンドボックスレポートを見ることは、関連する実行チェーンの理解にも役立ちます。たとえば、Astarothのサンプルを見ると、VirusTotalでCMD、wscript.exe、BITSadminが使用されていることが分かります。

また、このツールを自分でテストすること、すなわちこのツールを悪用したツールやマルウェアを安全な環境で実行することで、その動作を確認することをお勧めします。

これらの数少ない例を活用するだけでも、私たちは、自らのネットワーク内でいかなる種類の脅威ハンティングクエリを構築できるかを学習できます。最初にお勧めするのは、ネットワーク内で当該ツールの実行を探した上で、すべての正規の実行をそこから除外することです。正規のインスタンスを除外する方法は数多く存在しています。

まずはパターンを探すことです。これには正規のコマンドライン、親プロセス、マシン名、ユーザー名などが含まれます。悪意のあるインスタンスを見落とさないよう、できるだけ具体的に記述するようにします。次に攻撃のタイムラインを調べることです。これは、攻撃フェーズの特定時刻の前後で発生したTTPを探すことを意味します。時には攻撃が並行して発生し、実行フローに含まれないこともあるため、その場合、より広範なタイムフレームに検索を拡大する必要があります。

この手順は常に成功するとは限りません。時には、異なる実行インスタンスが多すぎて、すべてを除外するのが非常に難しい場合があります。そのような場合は、フィルタを追加してパターンを探すことになります。私が使っている最も便利なフィルタは、コマンドラインとプロセスツリー(親または子)です。上記の例に着目するならば、Cybereasonの調査画面や、プロセスの実行をログに記録する他のツール上で、ハンティングクエリを簡単に作成できます。下記に例を示します。

  • 「“/transfer” または “http” または “/download” または “/addfile”」を含むコマンドラインを伴うすべてのBITSadminプロセス

    https://.cybereason.net/#/s/search?queryString=0<-Process"elementDisplayName:@bitsadmin,commandLine:@%2Ftransfer%7Chttp%7C%2Fdownload%7Caddfile"&grouping=elementDisplayName

  • 親プロセス名がWscriptであるすべてのBITSadminプロセス

    https://.cybereason.net/#/s/search?queryString=0<-Process"elementDisplayName:@bitsadmin"->parentProcess”elementDisplayName:$wscript.exe”&grouping=elementDisplayName

最重要資産に関する詳しい調査

方法論に戻ると、企業や組織が自らの環境でハンティングを行うためにできることは他にもたくさんあります。ここでは、お使いのネットワークアーキテクチャについて学習し、企業の最重要資産を見つける方法を紹介します。

外部接続/発信接続の見直し – MITRE:流出

これを行うには、ファイアウォール、ディープパケットインスペクションツール、Cybereasonの調査画面、およびその他のネットワークログ/ツールが生成したログを追いかける必要があります。そこで異常な接続を探すことになります。異常な接続の例としては、お使いの内部ネットワークの外部への接続、奇妙なDNSリクエスト、クラウドサービスへのアップロードなどが挙げられまます。

Cybereasonで簡単に実行できるクエリの例を、下記にいくつか紹介します。

  • 特定のマシンからのすべての外部接続(マシン名をお使いのマシンのリストへと編集します)

    https://.cybereason.net/#/s/search?queryString=0<-Connection"isExternalConnection:true,ownerMachine:@

  • 特定のマシンからのすべての発信接続(これは、プロキシを使用する環境では有効なクエリになりえます)

    https://.cybereason.net/#/s/search?queryString=0<-Connection"ownerMachine:@,direction:%3DOUTGOING%7COUTGOING_GUESSED”

  • 外部接続を持つシェルプロセス(cmd、PowerShellなど)を探すことに重点を置きます。攻撃者は、コマンド、スクリプト、バイナリを実行するために、シェルを悪用する可能性があります。このため、これらの接続を実行するプロセスアクティビティを確認する必要があります。このクエリは、ユーザーが確認したいと思う他のプロセスにも簡単に適用できます。また、一時フォルダからの実行や署名されていないプロセスからの接続を探すなど、その他のフィルタを追加することもできます。

    https://.cybereason.net/#/s/search?queryString=0<-Connection"ownerMachine:@,isExternalConnection:true”->ownerProcess”productType:%3DSHELL”

パーシステンスメカニズム – MITRE:パーシステンス

これを行うには、Sysinternalsの“Autoruns”をインタラクティブに実行します。これは、すべての自動起動アプリケーションを表示するほか、自動起動設定に利用可能なレジストリおよびファイルシステムの場所のリストを表示します。または、お手持ちのEDRを使用してハンティングクエリを実行することでも、これを実現できます。

レジストリキー、WMIエントリ、スケジュールされたタスク、サービスなどの異常な自動実行を探します。一時フォルダから実行されるアーティファクト、署名されていないイメージファイル、LOLBinの実行などに関するハンティングを実施します。

Cybereasonで簡単に実行できるクエリの例を下記に紹介します。

  • 不審な場所を含む自動実行レジストリキー

    https://.cybereason.net/#/s/search?queryString=0<-Autorun"value:@%5CAppData%5CRoaming%5C%7Cprogramdata%7C%5Clocal%5Ctemp,elementDisplayName:@%5Ccurrentversion%5Crun%7CMenu%5CPrograms%5CStartup"&sorting=malopAndSuspicions&sortingDirection=-1&grouping=value&viewDetails=false

  • 疑わしい場所を含むスケジュールされたタスク
    – ヒント:ソフトウェアのアップデートは、これらの疑わしい場所によく見られます。APT攻撃では、脅威アクターが既知のソフトウェアのスケジュールタスクを使用することでパーシステンスを実現している場合があるため、そのような場合は、バイナリのメタデータを確認し、それがオリジナルの署名されたものであるかどうかを確認する必要があります。

    https://.cybereason.net/#/s/search?queryString=0<-ExecutableTaskAction"executablePath:@temp%7Cappdata%7Croaming%7Cprogramdata"&sorting=malopAndSuspicions&sortingDirection=-1&grouping=elementDisplayName&viewDetails=false

  • LOLBinsを含む自動実行レジストリキー

    https://.cybereason.net/#/s/search?queryString=0<-Autorun"value:@wscript%7Cmshta%7Cpowershell%7Cregsvr32%7Cbistadmin%7Ccertutil,elementDisplayName:@%5Ccurrentversion%5Crun%7CMenu%5CPrograms%5CStartup"&sorting=malopAndSuspicions&sortingDirection=-1&grouping=value&viewDetails=false

まとめ

脅威ハンティングは、非常に幅広くかつダイナミックなテーマであるため、初心者にとってはやや取っつきにくいかもしれません。このブログ記事の目的は、読者の皆さんに脅威ハンティングの世界に触れてもらうこと、そして皆さんが試せるような比較的簡単なハンティング方法をいくつか紹介することです。

脅威ハンティングには、侵害の痕跡(IOC)や振る舞いの痕跡(IOB)の検索など、他にもさまざまなアプローチがあります。IOCとは、ファイルハッシュ、IPアドレス、ドメイン名などの静的なアーティファクトのことです。これに対して、IOBとは、ツールやアーティファクトに依存しない、特定の攻撃に関連付けられる一連の振る舞いを意味します。

このブログ記事を読んで、皆さんが脅威ハンティングの世界を探検してみようという気になっていただければ幸いです。まずはTwitterでセキュリティ研究者をフォローするか、またはサイバーリーズンのブログを読むなど、簡単なことから始めることをお勧めします。

ホワイトペーパー「インシデントレスポンスで成功するためのチェックリスト」

インシデントレスポンス(インシデント対応)プランを策定する場合、非常に詳細な部分にも注意する必要があります。

しかし、大きな成果を上げているインシデントレスポンス(インシデント対応)プランでさえも、重要な情報が欠落していることがあり、正常に業務を行うことができるよう迅速に復旧作業を実施するうえでの妨げになる場合があります。

本資料は、インシデントレスポンス(インシデント対応)プランに組み込むべきでありながら忘れがちな9つの重要なステップについて詳しく説明します。
https://www.cybereason.co.jp/product-documents/white-paper/2476/

ホワイトペーパー「インシデントレスポンスで成功するためのチェックリスト」インシデントレスポンスプランに組み込むべきでありながら忘れがちな9つの重要なステップ