Cisco Japan Blog

Snort シグネチャに見る 2017 年

1 min read



投稿者Martin Leepopup_iconVanja Svajcerpopup_icon

2017 年は、WannaCrypopup_icon や BadRabbitpopup_icon などの自己増殖型のワーム攻撃や、世界中の組織に影響を及ぼしたさまざまな脆弱性が話題を集めた、サイバー セキュリティにとって波乱の 1 年でした。2017 年、Talos の研究者は、数多くの新しい攻撃を発見しました。たとえば、CCleanerpopup_icon などの正規のソフトウェアに仕込まれたバックドア、M.E.Docpopup_icon 社などのハイテク企業をターゲットにしたもの、Nyetyapopup_icon の初期拡散を招いたものなどです。とは言え、これらの大々的に報じられた攻撃は、セキュリティ システムが日々防御しているもののごく一部に過ぎません。

この記事では、最も頻繁にトリガーされた Snort シグネチャを調査した結果判明したことをいくつか取り上げます。調査の対象は、Cisco Merakipopup_icon システムがレポートした、Snort のデフォルト ポリシー セットに含まれているシグネチャです。

上位 5 つのシグネチャ

Snort シグネチャは、検出されたアクティビティのタイプごとにいくつかのクラスに分類されます。レポート数の順では、「Trojan-activity(トロイの木馬アクティビティ)」、「Policy-violation(ポリシー違反)」、「Misc-activity(その他のアクティビティ)」となっています。「ATTEMPTED-ADMIN(管理者特権獲得攻撃)」や「Web-application-attack(Web アプリケーション攻撃)」など、レポート数の少ないクラスの中にも、悪意のあるインバウンド/アウトバウンド ネットワーク トラフィックを検出するうえで興味深いものがあります。

Snort シグネチャは、ジェネレータ ID(GID)、シグネチャ ID(SID)、リビジョン番号の 3 つの要素で識別されます。GID は、イベントを生成した Snort のサブシステムを示します。たとえば GID が「1」の場合、テキスト ルール サブシステムでイベントが生成されたことが示されています。SID は、ルール自体を一意に識別する ID です。SID に関する情報は、Snort Web サイトpopup_iconの検索ボックスに SID を入力すれば検索できます。リビジョン番号はルールのバージョンです。必ず、最新のリビジョンのルールを使用するようにします。

難しい話はさておき、ここで、ポリシー内のシグネチャの中から、年間の Snort アラート チャートでトリガー頻度上位のものを第 5 位から順に紹介します。

第 5 位 – 1:39867:3「.tk に対する不審な DNS クエリ」

.tk は、南太平洋のトケラウ自治領が所有しているトップ レベル ドメインです。.tk ドメイン レジストリは、無料でドメインを登録できるため、非常に多くのドメインが登録されています。その中にはサイバー攻撃者が登録したものも含まれ、ドメインが頻繁に悪用されています。

このシグネチャは、.tk ドメインに対する DNS ルックアップによってトリガーされます。トリガーされたからといって、そのルックアップが悪意のあるものとは限りませんが、ネットワーク上の不審なアクティビティに対する指標として有効活用できます。ネットワークでこのルールのトリガーが急増した場合、原因を調査する必要があります。特に、大部分が単一のデバイスで発生しているのであれば、重点的に調査が必要です。

他にも、.bit、.pw、.top など、ほとんど使われていないトップ レベル ドメインに対する DNS ルックアップを検出する同様のシグネチャも、上位 20 ルールに入っています。

第 4 位 – 1:23493:6「Win.Trojan.ZeroAccess アウトバウンド接続」

ZeroAccess は、Windows システムに感染するトロイの木馬です。感染したマシンにルートキットをインストールして検知されないように潜み、クリック詐欺キャンペーンを実行するためのプラットフォームとして機能します。このルールは、感染システムから、C&C サーバのネットワークに参加しているスーパー ノードに送信された UDP パケットを検出します。このルールを使用すれば、マルウェアからのアウトバウンド通信をブロックすることができます。

ZeroAccess は最新のルートキットであり、感染マシン上の通常の検出技術では検出できません。ただし、かなり顕著な通信パターンを規則的に生成するため、Snort などの IPS を使用したネットワーク検出機能で、悪意のある ZeroAccess トラフィックの送信元を迅速に突き止めることができます。

ZeroAccess は、スーパー ノードに確認用の UDP パケットを 1 秒ごとに送信するため、1 つの組織に多くのアラートが発生することになります。ZeroAccess 検出シグネチャが上位に入っているのはそのためでしょう。

第 3 位 – 1:41083:1「.bit に対する不審な DNS クエリ」

.bit トップ レベル ドメインはあまり目立った展開はしていませんが、Necurs によるマルウェア C2 システムのホスティングに使用されることがあります。Necurs は、ボットネット通信の一部として .bit ドメインを使用しているファミリの 1 つです。.bit TLD は、Namecoin(ネームコイン)を使用して管理されています。Namecoin は、Bitcoin(ビットコイン)暗号通貨の最初のフォークの 1 つで、中央管理機関のない分散型元帳方式です。.bit ドメインは分散型であるため、ドメインを解決するための DNS サーバが少なく、ドメインが停止させられることもありません。

このシグネチャは、.bit ドメインに対する DNS ルックアップによってトリガーされます。.tk に対するルックアップと同様に、シグネチャがトリガーされたからといって必ずしもそのルックアップに悪意があるわけではありません。ただし、トリガーが急増した場合は、調査が必要です。

第 2 位 – 1:42079:1「独自の User-Agent を持つ Win.Trojan.Jenxcus アウトバウンド接続攻撃」

Jenxcus は、人間が判読可能なシグネチャの記述に使用されている名称ではありますが、トロイの木馬というよりワームと言えます。リムーバブル ドライブや共有ドライブに自らをコピーすることで拡散し、攻撃者がリモートから感染システムにアクセスして制御できるようにします。システムに感染すると、多くのトロイの木馬と同様に、C2 インフラストラクチャとの通信を確立しようとします。この通信は、特定の User-Agent 文字列を使用した HTTP POST リクエストで行われます。この User-Agent 文字列自体は、Jenxcus やその亜種に固有のもので、このシグネチャで検出してブロックできます。

第 1 位 – 1:40522:3「Unix.Trojan.Mirai 亜種による侵害後のフィンガープリント取得」

Internet of Things(IoT)セキュリティについては、これまでにもその範囲の広さpopup_iconに関して記事を書いています。Mirai ボットネットとその亜種は、IoT デバイスにデフォルトのユーザ名とパスワードでログインして感染しようと繰り返し試みます。アクセスに成功すると、そのデバイスがハニーポットではなく、期待どおりに動作することをチェックしようとするので、ルールで検出します。この侵害後のアクティビティは 1 年を通して常に発生しており、ピーク時の 2 月には、日次で報告されていた全アラートの 20 % 以上を占めていました。

インバウンド、アウトバウンド、内部トラフィック

ネットワーク トラフィックは、外部から内部(インバウンド)と内部から外部(アウトバウンド)の両方向で IDS を通過します。また、内部トラフィックは、IDS を経由せずにセンサーを通過します。各トラフィックで、アラートがトリガーされてログに記録されることがあります。

2017 年中にトリガーされた頻度は、アウトバウンド シグネチャ、内部トラフィック、インバウンド シグネチャの順で、その割合は約 9:6:5 でした。アラートのプロファイルは、トラフィックの方向ごとに異なります。インバウンド アラートは、Web アプリケーションやデータベースなどのさまざまなサーバ アプリケーションを攻撃するトラフィックを検出したものが多く、アウトバウンド アラートは、マルウェアに感染したエンドポイントからのアウトバウンド トラフィックの検出が多くなっています。内部アラートは、トロイの木馬などのさまざまなアクティビティを検出する可能性が最も高くなります。

これらのデータ セットをより詳細に調べると、次のことがわかります。

「TROJAN-ACTIVITY(トロイの木馬アクティビティ)」クラスのアラートは、Mirai による侵害後のフィンガープリント取得の試みに対するものが多数を占めていましたが、このカテゴリには、プレーン テキストに見せかけた実行可能ファイルをダウンロードしようとする試みがブロックされたものや、Zeus、Swabfex、Soaphrish、Glupteba マルウェアに関連するトラフィックも含まれています。

「ATTEMPTED-USER(ユーザ特権獲得攻撃)」クラス タイプは、ユーザ レベルの脆弱性を突く攻撃が対象です。このセットで最も頻繁にトリガーされたシグネチャの多くは、Internet Explorer の脆弱性を突く攻撃を検出するものでした。

アウトバウンド シグネチャのうち、内部ネットワーク トラフィックを検出してトリガーされた中で最も報告数が多かったクラス タイプは、「Misc-activity(その他のアクティビティ)」と「Trojan-activity(トロイの木馬アクティビティ)」です。

「Trojan-activity(トロイの木馬アクティビティ)」シグネチャ クラスの中で最もトリガーされたシグネチャは、上記の Jenxcus と .bit に対する DNS アクティビティに関するものです。その他は、ZeroAccess、Cidox、Zeus、Ramnit などのトロイの木馬に関連しています。

内部トラフィック シグニチャで最も報告数が多かったタイプは、「Misc-activity(その他のアクティビティ)」と「Trojan-activity(トロイの木馬アクティビティ)」です。

その他のアクティビティ シグネチャには、特定のクラス タイプに当てはまらない、さまざまなトラフィック パターンを検出したものが含まれています。たとえば、.top、.win、.trade などのあまり一般的でないトップ レベル ドメインへの DNS リクエストの検出、アドウェアやその他の「望ましくない可能性があるアプリケーション(PUA)」に使用されることが知られているドメインへのトラフィックの検出、HTTP の不審な User-Agent 文字列の検出などです。

ピークと底

攻撃は常に発生しています。攻撃者のアクティビティによって繰り返し発生するバックグラウンドのノイズによって、四六時中シグネチャがトリガーされています。ただし、特定の期間に発生した悪意のあるアクティビティよってトリガーされたことが明確なシグネチャもあります。

Apache は、2017 年 3 月 6 日に、Apache Struts におけるコマンド インジェクションの脆弱性 CVE-2017-5638popup_icon を公開しました。Talos は、当該脆弱性のエクスプロイトを検出してブロックするためのシグネチャ 1:41818popup_icon をリリースしましたが、この脆弱性が公開されてから数日の内に、広範なキャンペーンpopup_iconによって脆弱なシステムが特定され、侵害されてしまいました。

以下のグラフに示すように、CVE-2017-5638 の脆弱性をエクスプロイトしようとする試みは、ピーク時には、トリガーされたシグネチャ全体の 20 % 以上を占めていました。勢いはすぐに弱まりましたが、完全に収まることはなく、10 月末には 6 日間にわたる 2 番目の大きなピークが発生しました。

このグラフからわかることは、パッチを適用し、新しい脆弱性に対応したシグネチャをできるだけ早くインストールして有効化することが重要だということです。脆弱性の情報開示から脅威アクターによるエクスプロイトまでほんのわずかな時間しかない場合があります。

同様に、最初の攻撃が終わっても、しばらくしてから同じ攻撃が再開される場合もあるため、システムのセキュリティを維持するには、継続して防御する必要があります。

別の興味深いパターンとして、アクティビティが複数回急増しているシグネチャ 1:40843popup_icon があります。このシグネチャは、OpenSSL の「SSL Death Alert」という Denial of Service(DoS)の脆弱性(CVE-2016-8610popup_icon)を検出してブロックするものです。攻撃者は、ネットワークを利用して脆弱なシステムをエクスプロイトし、CPU を 100 % 消費することで該当システムが正当な要求に応答できない状態にします。

2017 年にこの脆弱性が重点的な標的となった期間はあまり長くありませんでしたが、この脆弱性をエクスプロイトするキャンペーンが実施されていた期間は非常に明確です。

第一のアドバイスは、できるだけ早くパッチをインストールすることです。ただし、ソフトウェア パッケージの中には、この脆弱性に対応したパッチが適用済みのバージョンがリリースされていないものもあります。その場合、脆弱性のないバージョンにアップグレードすることが推奨されますが、アップグレードできない場合も考えられます。関連するシグネチャをインストールして有効化し、パッチが適用されていない脆弱なシステムを IPS で保護し、悪意のあるトラフィックの影響を受けないようにすることができます。

詳細

Snort シグネチャは、悪意の可能性があるネットワーク アクティビティを検出します。特定のシグネチャがトリガーされる理由と、システムを保護する方法を把握することは、ネットワークのセキュリティを確保するために重要です。Snort シグネチャによって、脆弱なシステム対する攻撃を検出してブロックすることができます。また、システムが攻撃を受けている場合や侵害されている場合に通知を受け、悪意のあるシステムとの通信でユーザが危険にさらされることのないように保護することも可能です。さらに、攻撃者が組織のセキュリティ ポスチャの弱点を特定しようとしていることを示す、偵察や攻撃前のアクティビティの検出に使用することもできます。Snort シグネチャのこれらの機能によって、組織は、現在発生しているアクティビティや、生成されるセキュリティ アラートに対して警戒を強化すべき時期を把握することができます

脅威の環境が変化するのに合わせて適切なシグネチャを設定し、システムを確実に保護する必要があります。通常の場合、最新のシグネチャ セットをすぐにダウンロードしてインストールすれば対応できますが、Apache Struts の脆弱性データに示されているように、脆弱性の発見からエクスプロイトまでの時間が短い場合もあります。

2017 年に最もトリガーされたシグネチャ 1:40522:3「Unix.Trojan.Mirai 亜種による侵害後のフィンガープリント取得」により、IoT デバイスを攻撃から保護する必要性が浮き彫りになっています。Mirai などのマルウェアは、IoT デバイスを侵害してボットネットの一部として使用することで、さらに悪意のある行為に利用しようとします。ネットワーク アーキテクチャは、これらの攻撃を考慮し、デバイスの数に関係なく、すべてのネットワーク デバイスを確実に保護するものでなければなりません。

セキュリティ チームは、ネットワーク アーキテクチャを把握し、その環境でトリガーされるルールの重要性を理解する必要があります。トリガーされた検出の意味を完全に理解するには、シグネチャがオープン ソースであることが重要です。シグネチャがトリガーされたネットワーク コンテンツを確認すれば、ネットワークに関する情報が得られます。また、脅威の環境や利用可能な保護機能についての最新情報を常に把握することもできます。

Talos は、オープ ンソースの Snort ルール セットを維持し、Snort に貢献する研究者コミュニティpopup_iconを支援して、ネットワークを攻撃から保護することを誇りに思っています。また、Cisco Networking Academypopup_icon での活動や新たなオープンソース ツールpopup_iconのリリース、Talos ブログにおける攻撃の解説などを通じて、ネットワーク エンジニアのトレーニングに貢献していると自負しています。

2018 年にまた新たなセキュリティ上の課題が生じることは間違いありません。新たな脅威に対応して検出機能が進歩していくことを 1 年を通じてフォローしながら、読者の皆様には、組織やネットワークに関連するイベントの最新情報を提供してまいります。

 

本稿は 2018年1月29日に Talos Grouppopup_icon のブログに投稿された「2017 in Snort Signatures.popup_icon」の抄訳です。

 

コメントを書く