NFLabs. エンジニアブログ

セキュリティやソフトウェア開発に関する情報を発信する技術者向けのブログです。

今日からできるサイバー脅威インテリジェンスの話-実践編-

本記事は『今日からできるサイバー脅威インテリジェンスの話-導入編-』の続きであり、具体的なサイバー脅威情報の収集方法やプラットフォームについて紹介する記事です。 『サイバー脅威インテリジェンスって何?』という方がいらっしゃれば前の記事を参考にしてください。

Let's CTI

私が個人レベルでやっている CTI の活動を分類してみると、以下の3つの方法になると思います。

  1. 無料で利用できるインテリジェンスサービス・データベースを活用する
  2. オンラインサンドボックスを活用する
  3. SNS や外部のコミュニティを利用する

それぞれ長所やカバーできる領域が異なるので、自分の興味や組織の CTI の目的に合わせてどの方法を取るべきか検討してみると良いでしょう。 では、詳細に説明していきます。

1. 無料で利用できるインテリジェンスサービス・データベースを活用する

世の中には優秀なインテリジェンス分析者がたくさんいて、分析結果をいろいろなサービス・プラットフォームに投稿してくれています。 CTI 業務をしている方々は、これらのインテリジェンスをもとに自分たちのシステムの検知ロジックを見直したり、 自組織で本来観測されるであろう脅威の傾向との照らし合わせができるようになります。 一番網羅性・信頼性ともにしっかりしていて、インテリジェンスとして効果が出やすい手法だと思います。 現場の人がよく見ているサービス・プラットフォームも多いと思うので、興味のある方はこの機会にアクセスしてみてください。

GreyNoise (https://viz.greynoise.io/)
インターネット上に存在するあらゆる端末をスキャンしているサービスとして Shodan や Censys が非常に有名だと思いますが、 GreyNoise もそんなサービスの一つです。 ただし、用途は微妙に異なり、「サービスのどこに穴があるか」といったどちらかというと攻撃者目線で使う Shodan とは違い、 GreyNoise は「どこの IP から攻撃が飛んできているか」という防御者目線で使うことが多いです。 簡単な例をあげると、「SMBGhost のスキャンをしてくる IP を教えろ」とクエリ書くだけで、 その結果と Malicious かどうかの判定まで出してくれます。

f:id:YamakaNoriko:20210720105547p:plain

Blue Team 側としては、Malicious 判定のついた IP を自動で収集してきて、 もし通信をしていた場合はアラートをあげさせることでインテリジェンスになったりします。 また、「自社関連で誰かマルウェア感染していないか?」というのも簡単ながら調査できます。 例えば、ntt というワードで検索すると、自社の提供する ISP 配下で、明らかに Mirai に感染して bot 化されたような端末が見つかります。

f:id:YamakaNoriko:20210720105619p:plain

インシデントハンドリングを行っているチームだと、この情報を有効に活用できるのではないでしょうか。

mquery (http://mquery.net/)
CTI の業務を行っていると、自社に着弾したマルウェアと同種のものを捕まえて解析し、 攻撃の分析に役立てようとする営みをすることがあると思います。 これを Threat Hunting と言い、後々話す「データを基にしたインテリジェンス」を行っていくうえでは重要な活動となります。 では、インテリジェンス分析者はどうやって「同種のもの」を捕まえてきているかというと、 最も多くの場合「Yara rule」と呼ばれるシグネチャマッチングで行っています。 つまり、我々で同種のものを捕まえられるようなルールを書き、大量のデータセットに対して検索することで捕まえてくるというわけです。 また、Yara rule で検体を Hunting できた場合は自組織の EDR やネットワークフォレンジック装置にルールを組み込むことで、 より高度で効果的な防御をすることができます。

では、Hunting 対象のデータセットはどこにあるでしょうか? もっとも有名なのは Virus Total というオンラインのウイルススキャンサービスですが、 Hunting の機能は少々高額で初心者がいきなりこれを試すことはハードルが高いです。 そこで役立つのが、CERT.PL が提供している mquery というサービスです。 mquery は自社でマルウェアのデータセットを提供しており、我々が Yara rule を提出するとルールにマッチしたマルウェアの検体を提供してくれます。 マルウェアのデータセットも 76,000 近くあるため、試しに Hunting するには十分です。 試しにすでに答えがわかっている Yara rule で試します。例えば、APT15 bs2005 のルールだとこんな感じでサンプルの情報が出力されます。便利でしょう?

f:id:YamakaNoriko:20210720105659p:plain

これの強みは、オンラインサンドボックスでできないようなシグネチャマッチングによる検索を、擬似的に mquery が代用してくれているという点です。 mquery を使ってシグネチャマッチした検体のハッシュ値がわかれば、 他のオンラインサンドボックスやインテリジェンスサービスに投稿された検体に到達することができ、非常に有用です。 また、mquery と同じくYara ruleでHuntingできるサービスとして、CrowdStrike が提供してくれている Hybrid Analysis というオンラインサンドボックスがあります。こちらでもHunting, ルール検証ができるので、良性・悪性入り混じったサンプルでのルール検証がしたい場合などは有効活用できると思います。

https://www.hybrid-analysis.com/

Open CTI (https://github.com/OpenCTI-Platform)
見ただけで、うわなんかめっちゃCTIしてる!と思わせられる UI を持ったプラットフォームです。 実際のところめっちゃカッコよいのでとりあえず画面広げてるだけでセキュリティしている感が出ます。(笑)

f:id:YamakaNoriko:20210720105800p:plain

Open CTI 自体はオープンソースの脅威情報蓄積プラットフォームで、 インターネットに接続すると他の分析者が蓄積したインテリジェンスを閲覧することができます。

f:id:YamakaNoriko:20210720105834p:plain

Open CTI は docker image から build して内部にプラットフォームを建てる形で利用することになるのですが、 ThreatPursuit VM を利用している人は docker-compose コマンドを叩くだけで建つのですぐに利用できます。 情報の網羅性としては高いわけではなく MISP のような他イベントとの関連性の面は弱い一方、 APT の活動やばらまき型メール, マルウェア解析情報といった有力な情報も流れてくるので、1日1回 Activities をざっと眺めるだけでも損はないです。 以下のURLからデモ版を見ることができるので、興味がある人は是非クリックしてみてください!!

https://demo.opencti.io/dashboard

Malware Bazaar (https://bazaar.abuse.ch/)
観測されたマルウェア検体を分析者に投稿してもらい、 アンチウイルスベンダーや情報セキュリティ担当への情報共有用途で一般公開しているデータベースです。 これらの投稿には、分析者がすでに「どのような攻撃で使われた検体か」をタグ付してくれているものが非常に多いです。 そのため、リアルタイムの投稿を追うだけでどのようなマルウェアが世界で飛び交っているかがパッとわかります。

f:id:YamakaNoriko:20210720105921p:plain

例えば、2020/12/21 の投稿を見ると Emotet タグが大量についている投稿が並んでいることが確認できます。 このことから、しばらく活動を停止していた Emotet が活動再開したことが伺えます。

URLhaus (https://urlhaus.abuse.ch/)
マルウェアが通信する悪性な通信先の情報や、侵害された URL の一覧が投稿されてくるデータベース。 投稿されてくる URL は Malware Bazaar と同じくタグ付けがされているので、 毎日投稿を上から眺めるもよし、特定のキーワードを一定間隔で収集するもよしです。 例えば、「マルウェアの置き場にされてしまっている日本企業を調べたい!」と思った場合は「.co.jp」なんかで調べると大量に結果が返ってきます。

f:id:YamakaNoriko:20210720110024p:plain

この結果を見ると、タグに Emotet があることからすでにいくつかの企業の Web サイトが侵害されて Emotet の置き場にされていることがわかります。 例え co.jp ドメインでも、通信先にこれらのドメインがあった場合は、悪性の可能性が高くなると言えるでしょう。

PhishTank (https://www.phishtank.com/)
URLhaus のフィッシングサイト特化版だと思っていただければ問題ありません。 日本向けのフィッシングサイトの登録があまり多くないためあまり見ませんが、 業務をしていて多く観測した場合なんかにチラッと眺めたりします。

f:id:YamakaNoriko:20210720110057p:plain

こちらもうまく使えば、自組織を対象にしたフィッシングサイトが作られたことがすぐにわかるので有効だと思います。

2. オンラインサンドボックスを活用する

オンラインサンドボックスには世界中から悪性だと思われる検体が投稿されています。 また、一部の検体の中には投稿者がコンプライアンスなどをあまり考えずに投げたであろう興味深いファイルも見つかったりします。 そのため、オンラインサンドボックスの結果を眺めていると、現在の攻撃の流れに加えて非常に興味深い情報を収集できます。 ここで紹介するのは、初心者でも活用しやすいオンラインサンドボックスの利用法についてです。 ただし、面白い情報を見つけたからといって自組織に結びつくかというとそうでないことも多いです。 最初のうちは時間が無駄に取られることの方が多いかもしれませんが、慣れてくれば毎日の日課でさっと眺めて、 面白いものだけ読むなり傾向だけ抽出できるようになり、あんまり苦にはならなくなると思います。 いいもの見つかったら 掘り出し物だぜ! くらいのモチベでやりましょう。

Intezer(https://analyze.intezer.com/)
実行ファイル(.exe, .dll ファイル)を投下すると、コードの類似性を評価してどんなマルウェアファミリか判定してくれる Web サービスです。 サンドボックスというよりもインテリジェンスサービスに近いんですが、Intezer はオンメモリで展開されたコードの類似性も評価してくれるため、 ほぼ動的解析してくれるサービスということでサンドボックス枠に入れました。 基本的な使い方は実行ファイルそのものを入れることになるのですが、マルウェアのファミリ名(Emotetなど)で検索をかけられるので 検体を持っていなくても流行りのマルウェアを追うことができます。 2020年12月時点で話題の SUNBURST を探してみると、こんな感じで評価してくれていました。

f:id:YamakaNoriko:20210720110151p:plain

そして、Intezer の強力なメリットの1つとして、「Track this threat」というボタン1つで特定のファミリが投稿されたときにフィードバックしてくれる機能があります。 利用者数がそこまで多くないので数多く通知されないのがちょっと悲しいのですが、通知された際にはすぐにインテリジェンスへ繋げることができるでしょう。

f:id:YamakaNoriko:20210720110230p:plain

Any.Run(https://app.any.run/)
使いやすい、ビジュアルかっこいいという個人的には最強のオンラインサンドボックスです。 かなり有名なサービスなので非常にたくさんの投稿があり、全部の投稿を追うのはたいへんですが、 投稿数のサマリや国別検索の結果を見るだけでも流行りの攻撃などがわかります。

f:id:YamakaNoriko:20210720110307p:plain

Any.Run の優れている点は、投稿されている検体やサンドボックスの解析で得られた2次検体を無料アカウントでダウンロードできる点です。 一時期日本でも観測された ”LODEINFO” のような標的型攻撃検体もここから入手することができるため、 有効に使うことさえできれば非常に強力なサービスです。 しかし、通知や Yara rule Hunting といった機能はないため、恒常的なインテリジェンス活動とするは少し工夫する必要があります。Any.Run の投稿を観測している分析者を見つけて、効率的に必要な情報を収集できるようにしましょう。

3. SNS や外部のコミュニティを利用する

最後は、ちゃんとしたレポートのような形になっているものではなく、SNS やコミュニティの投稿を拾ってインテリジェンスにつなげるような活動です。 やること自体は非常に単純で特定の Twitter アカウントをウォッチするだけなのですが、簡単そうに見えて4つの中で最も始めるのが難しいことだと思います。 理由はいくつか考えられると思います。

  • そもそも誰の情報を見ればいいかわからない。
  • ネタとガチ技術の区別がつかない。
  • 投稿だけだとインテリジェンスになるかわからないことが多い(タイトルとかもないので自組織に関連ある情報かは先をきっちり読まないとわからない)
  • ノイズが多い。

などです。 しかし、ある程度の人数を監視しているだけでその日のセキュリティ関連ニュースをだいたい追うことができたり、情報の伝達速度が早めでかなりタイムリーに情報を得ることができます。 しかし、いきなり”始めてみて!!”と言うだけだと不親切だと思うので、本当に参考までに自分がウォッチさせていただいているアカウントを載せさせていただきます。もし知らない人がいたらTwitterを覗きに行ってみてください。

幅広い情報呟く人

日本ばらまきメール系のことをメインで呟く人

世界の脅威情報を呟いてくれる方々

News, Report 系

主に呟くことの詳細まで書くと時間がいくらあっても足りないので残りは割愛しますが、 だいたい20人くらいウォッチしていればどこかしら経由で重要な情報は入ってくると思います。 まずはこれくらいの人数から初めてみて、自分が求める情報が入ってくるかを確認してみるといいでしょう。 このくらいの人数をフォローしておくと、オススメでだいたいセキュリティやっているユーザーにつながると思うので、 あとは組織・個人の好みに合わせてカスタマイズしていただければと思います。

まとめ

以上、我々のチームが普段やっていることの一部をまとめしてみましたが、いかがでしたでしょうか? 今日からサイバー脅威インテリジェンスできそうですかね? すぐにTo Doに落とせるレベルでありながらも普通に現場でもやっていることを詰め込んだので、 「Threat Intelligence っぽいことやってみたいけど何からしたらいいの??」という人の参考になれば幸いです。 また、NFLabs.のDefensiveチームではこれらの内容に加えて、

  • Malware Analysis
  • Threat Hunting
  • Dark Web Scraping

といったより専門的な脅威情報収集・分析業務を行っています。 少しでも興味を持ってくれた方がいらっしゃれば、NFLabs.の採用担当までご連絡をお待ちしています。