CTF問題「C&Cサーバと社内PCのパケットキャプチャーから機密情報を見つけるには?」から学べる知識とは:CTF問題から学ぶセキュリティ基礎知識(2)
情報セキュリティの技術を競うコンテスト「CTF」の問題から情報システムの仕組みやセキュリティを理解する連載。第2回は、「C&Cサーバに送信された機密情報を特定せよ」という問題について解説します。
情報セキュリティの技術を競うコンテストであるCTF(Capture The Flag)は、セキュリティ教育や優秀な人材発掘に役立てようとする組織や企業が注目する、実践的な学習の環境でもあります。本連載「CTF問題から学ぶセキュリティ基礎知識」では、筆者が所属する会社で実施している社内向けCTFの問題を中心に毎回一問一答をしていきます。
例えば、前回はアクセス制御に問題のあるWebサーバから公開前の情報が漏えいしてしまう状況の問題でした。このように、現実に起こりそうなストーリー仕立ての問題にすることで、参加者に、業務において気を付けなければならないポイントを実感してもらえるようにしています。
問題
さて、今回は「ネットワーク」ジャンルの問題です。今回も、調査対象のファイルの解析を実際に試すことはできませんが、ファイルの内容を一部、画像として添付していますので、どのような観点で調査すればよいか、解き方を考えてみてください。
ジャンル:ネットワーク
H社が契約しているセキュリティ監視ベンダーから、「あなたの会社にある一部のPCが、C&C(Command and Control)サーバと通信しているようだ」と連絡が入りました。その後、セキュリティ監視ベンダーからパケットキャプチャーのファイルが送られてきました。
C&Cサーバと通信しているということは、PCがマルウェアに感染して機密情報が漏えいしている可能性があります。
あなたは、パケットキャプチャーを解析して、機密情報が含まれていないか、確認することになりました。機密情報を見つけることができるでしょうか?
※問題の都合上、PCとC&CサーバにはプライベートIPアドレスが割り振られています。
この問題から学べる知識
この問題に取り組むことで、以下のようなセキュリティに関する知識を学ぶことができます。
- 通常と異なる通信の検出方法
- 暗号化されていない通信の問題点および暗号化の重要性
問題の解き方
前提としてCTFは、その名の通り、「フラグ」を見つけることが正解の条件です。フラグは、大会ごとに決められた特定の形式の文字列であることが多く、今回の場合、「HSCTF{xxx}」(xxxは問題ごとに割り当てられた任意の文字列)という形式です。この問題文では、機密情報を見つけることが目的なので、この機密情報がフラグであり、それを見つけることができれば正解となります。
解き方の方針
パケットキャプチャーを確認すると、2つのIPアドレス間でICMP(Internet Control Message Protocol)のエコー要求(応答)、通称「ping」で通信していることが分かります。ICMPのエコー要求(応答)は通常、ネットワークの疎通確認や機器の死活監視に使われますが、任意のデータを送信することもできます。そのため、今回はICMPのエコー要求(応答)が機密情報の送信に使用されているという観点で解いてみましょう。
機密情報が格納されているパケットの判別
C&Cサーバとの通信は通常の業務とは異なるネットワークトラフィックである可能性が高いので、まずは通常と異なる通信を検出する必要があります。
今回、IPアドレスは問題のものだけに絞り込まれており、プロトコルもICMPのみです。IPアドレスが192.168.109.128の機器が192.168.109.1の機器にリクエストを送り、192.168.109.1の機器がリプライを返していることから、192.168.109.128の機器がPC、192.168.109.1の機器がC&Cサーバだと推測できます。
それ以外に気になる点がないか確認していきましょう。ここで、各パケットの長さ(Length)に注目します。ICMPのエコー要求(応答)のパケットは、基本の設定なら一定の長さで繰り返し送信されます。1組だけ長さの違うリクエストとリプライの組み合わせがあります。
通常と異なるパケットの詳細を確認
17、18番目の長さが「75」となっているパケットの詳細を確認します。ICMPのエコー要求(応答)のパケットの形式はRFC(Request for Comments)で以下のように定義されています。
Wiresharkはこの形式に従って各パラメーターを自動で見やすいように成形して、パケット詳細欄に表示してくれます。注目したパケットは長さが他と異なることから、可変長のData領域に機密情報が含まれている可能性が高いと考えられます。Data領域に注目してみましょう。
送信されているデータを確認すると、フラグ形式の文字列を発見することができました。
解析が可能だった理由
解析の結果、無事に通信内容から機密情報を検出できました。H社では、この後、漏えいした情報やその経路についてさらに調査し、しかるべき経路で公表して説明責任を果たすことでしょう。ではなぜ、C&Cサーバとの通信はこんなに簡単に解析できてしまったのでしょうか? 理由として、以下の2つが考えられます。
通常と異なる通信だった
幾つかあったICMPのエコー要求(応答)のパケットのうち、長さが異なるものを確認することで、機密情報を送信している箇所を発見できました。このように、期待されるパターンまたはデータセット中の他のアイテムと一致しないアイテムやイベントや観測結果を識別することを、データマイニングにおいて「異常検知」「アノマリ検知」と呼びます。
今回はこの異常検知の仕組みによって、問題の通信を検出できたといえます。
ネットワークの異常検知
ネットワークの異常検知は、サイバー攻撃やマルウェアの検知において重要な観点です。通常と異なる通信を判別する観点の例には下記があります。
- 極端に多い、あるいは少ない通信量
- 普段使用しないIPアドレス、あるいはポート番号(プロトコル)
- 業務時間外、サービス時間外の通信
なお異常検知には、通常時のトラフィックを記録しておくことが必要です。問題が発生していないときも継続的に監視しておくことで、異常が発生したときに効果的に検知できます。このような監視や検知は、運用コストがかかる部分でもありますが、システムの重要度に応じて適切なソリューションを活用して、強化することをお勧めします。
暗号化されていないデータを送信していた
C&Cサーバに送信されていたデータは、平文で書かれていました。そのため、簡単に内容を知ることができました。もし送信データが暗号化されていたら、漏えいした機密情報の特定は困難になり、H社はさらなる説明や対応に追われ、問題の原因特定などの他の調査にも遅れが生じたことでしょう。
平文通信のリスクと対策
暗号化されていない通信データは、簡単に傍受することができます。今回、平文で通信していた攻撃者は“うかつ”だったといえますが、逆に考えれば、皆さんが業務で通信しているデータがこのように平文で通信されていれば、簡単に傍受されてしまうことになります。この問題を通して実感した、平文で通信しているデータのセキュリティリスクについて、適切に対策することが重要です。
通信データが暗号化されているかどうかは、下記3つの観点で確認できます。
- データの暗号化
- 通信プロトコルによる暗号化
- 通信経路の暗号化
データの暗号化は、3つのうち、最も小さい単位での暗号化です。送信するデータそのものを暗号化します。ICMPのエコー要求(応答)には暗号化の仕組みはありませんが、あらかじめ暗号化されたデータを送っていれば送信した内容を解析されずに済んだことでしょう。例えば、パスワード付きの圧縮ファイルなどはデータの暗号化に該当します。
通信プロトコルによる暗号化は、HTTPSやSSHなどの暗号化された通信プロトコルを用いることです。例えばHTTPはWebページを取得する際に使われるプロトコルですが、暗号化されていないので、通信途中で内容を傍受されたり、改ざんされたりするリスクがあります。それに対してHTTPSはSSL/TLSを用いてHTTPの通信を暗号化したプロトコルです。Webページの閲覧中、ブラウザのアドレスバーに鍵のマークが付いている場合、そのページはHTTPSで取得されており、通信中は暗号化されていることを示しています。もし、暗号化されていないプロトコルでユーザー名やパスワードのような重要な情報を送信してしまうと傍受される可能性があるので注意しましょう。
通信経路の暗号化は、VPNや無線LANの暗号化などにより、特定の経路が暗号化されているようなものを指します。この場合、あくまで暗号化されているのは特定の経路のみなので、その他の部分には別の配慮が必要となります。VPNを利用していても内部ネットワークで通信経路が暗号化されていない場合、一度内部に攻撃者の侵入を許してしまうと暗号化されていない通信は無防備な状態になってしまいます。また、正規の利用者でも、自分の権限を越えた通信を傍受できる可能性があり、内部不正のリスクにもなります。
システムやデータの重要度に応じた適切な暗号化通信を心掛けましょう。
おわりに
問題の内容は理解できたでしょうか? 暗号化の観点は通信以外でも非常に重要です。ユーザーが意識しなくても適切に暗号化されるような、安全性の高いシステムを作っていきましょう。セキュリティ機能は、後から付け足そうとするとコストが高くなりがちです。暗号化や監視、検知など、必要な機能は設計からしっかり盛り込むことをお勧めします。
今回は攻撃者の手口をログから解析する問題でした。このように、攻撃の痕跡は攻撃者の挙動を理解する重要な手掛かりとなります。興味を持った方は、パケットキャプチャーはもちろん、さまざまなログに目を通してはいかがでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
ルートユーザーって使っちゃダメなの?――クラウドを始める前に覚えておきたいセキュリティの基礎知識
親子の会話で出てくるような素朴な疑問点から、クラウド環境における情報セキュリティの技術を学習する連載。初回は、クラウドを始める前に覚えておきたいセキュリティの基礎知識について。なぜ、「標的型攻撃」で情報が漏れるの?――標的型メールのサンプルから攻撃の流れ、対策の考え方まで、もう一度分かりやすく解説します
近年取り上げられるセキュリティ関連のさまざまなキーワードについて、「素朴な疑問」から出発し、セキュリティ初心者の方にも分かりやすく解説することを目指した本連載。第1回のテーマは、「標的型攻撃」です。「セキュリティ人材」って、何ですか?――本当に必要なセキュリティ教育を考える
昨今「情報セキュリティ人材の不足」がしきりに叫ばれていますが、本当に人材は不足しているのでしょうか。そもそも、「セキュリティ人材」とは一体どのような人材を指すのでしょう? セキュリティ教育に現場で携わってきた筆者が、今求められる人材育成について考えます。