感染端末特定のTips〜Fortinet セキュリティソリューション活用事例

  • 執筆者:Fortinet Japan 技術本部 内藤正規
    2016年3月29日

印刷用PDF

精神論になってしまった「怪しいメールは開かないこと!」という通達


三菱東京UFJ銀行注意喚起ページより引用

昨今、標的型攻撃が実際に行われていて、実際に流出や侵入の痕跡が発見されていることが報道され始めました。報道にはやはり旬という物があるらしく、年金機構からの情報流出を機に増えたように見えなくもありません。また、実はよく見てみると英文のPhishing メールというのは珍しくもないのです。あなたにFAXが届きました。あなたの給与明細です、荷物の伝票です......。大抵はマルウェアがくっついており、UTMのAnti Virus機能で検知したり、亜種でFortiSandboxで検知したり、と観察はそう難しくありません。大体はメールの画面イメージと差出人を見れば関係ないことは解るので読みもせずに捨ててますよね。また、英語でそんなメールを受け取るはずがない、というのは日本で生活する上でひとつ楽なことかも知れません。しかし実際には日本語のコンテンツを用いたPhishing メールというのも流れるようになっていて、例えばオンラインゲームの偽のサポートポータルへの操作を要求する物などが注意喚起されています。また、年金機構からの情報流出事件も発端は日本語でしっかりと書かれた組織内文書を装ったお知らせでした。

もちろん組織の運用として「怪しいメールは開かないこと」という教育を施すことは必須なのですが、標的型攻撃というのは狭義には一般的に広く興味を引きそうな物を用いるだけではなく、対象を調べた上でソーシャルエンジニアリングを含めて未知の攻撃を仕掛けてくる物です。この詳細は本題ではないので今回は割愛しますが、既知の脅威の検出、怪しいメールを開くな、と言う教育だけでは十分な効果を得られない時代がやってきたという結論になります。そこで、今回はそのメールの添付ファイルなりURLなりを踏んでしまって内部に入られてしまった前提で本コンテンツを作成しました。初期の対応に必要とされる作業の一つが感染端末の特定です。

ログとレポート、活用していますか?

本コンテンツでは目的を絞って解説しますが、ログはセキュリティには必須です。日本のお客様はログを重視する傾向にあるので少なくとも保存は大抵のお客様でされているのですが、UTM側から見た場合、インシデント対応にはログは不可欠です。そもそもログがなければ後から何があったか確認するのは不可能ですし、平常状態を確認しておくことでインシデントに気付くことが出来ると言えます。そしてこれを実行するには統計情報が不可欠となります。膨大なトラフィックログの中からこのポート宛の通信がいくつ、と数えるのは余り現実的ではありません。慣れた人ならgrepだけでもいけますし、集計スクリプトを作るのは技術的には容易いことですが管理リソースは有限ですので、管理者が数値を見るだけで済ませられるようにすることが省力化、運用コスト低下に繋がります。FortinetではFortiAnalyzerというログ管理に特化した製品をご用意していて、ログの保存と上記のような統計レポートを自動的に作成する機能を持っています。


Webカテゴリーレポート

普段はどんな感じでしょうか?

レポートを確認すると、さらなる情報が浮かび上がってくると思います。普段のポリシーはどれぐらい効果を発揮しているのか、外からのトラフィックはWebサービスなどを提供していなければあくまでも外界の傾向として抑えておけば十分という程度でしょう。もしかしたらDMZではなくVDOM(FortiGateの仮想化機能)の方が適切ではないか、とか環境改善のヒントが浮かんでくることもあります。内から外への通信が今回のテーマとしては重要な位置づけです。管理者として止めたい、止めている通信にどれぐらい違反がでているのか。昨今のOSや周辺のソフトウェアは自らのアップデート確認やら勝手に通信するのが一般的とさえ言えます。またWebメールやSNSも含めたコミュニケーションツールや、ライセンスの確認。ほっといても最近のPCは通信を行います。結果、FortiGateでドロップされているログも多数見つかることでしょう。蛇足ながら全部通している場合、止めているログは特定の物以外でませんが、内から外への通信ポリシーを見直してみるタイミングをSEとしては提案したいところです。重要なのは、普段どのような端末群がどのような通信を行っているのか、です。これを把握することでモバイルデバイスの活用やBYOD統制などへの道筋も立てやすくなりますし、平時がどのような状況かを理解できます。ここから次の一手を模索するのも良いでしょう。それでは本題の感染端末の特定についてお話ししたいと思います。

感染が発生した場合

FortiGateはMalwareそのものを検知するAnti Virusや想定外の経路から組み込まれる際のExploit検出、そのMalwareが置かれた水飲み場攻撃に使われるURLだけでなく、感染してしまったあとでもBotnet IPアドレスだけでなくBotnet通信方式の検出機能等を持つUTMですので、どこかに既知の物があればそれを止められる可能性を常に管理者に提供しますが、テーマに合わせて「全てが未知の攻撃で感染してしまった」状況を想定して本題に入ります。サンドボックス製品であるFortiSandboxでは未知の脅威を検知できますが、攻撃者がこれらの製品を回避する方法を生み出す可能性もあり、それを検知すべくFortinetも含めて業界全体が製品の強化を続けているものの、話が進みませんので、ここは「何をしても止まらなかった」という想定で行きましょう。


脅威スコア

気付くきっかけは色々なところにあるものです。PCが普段に増して重い、(セキュリティ対策の結果)ネットワークに繋がらなくなった、わかりやすいところでは、FortiGateのログに感染を示すログがあった、攻撃の痕跡がFortiAnalyzerからレポートされた、アンチウィルスソフトが反応した、等々。ただ、少なくとも気付くのは感染が発生した後となります。それぞれ既知のデータも常に更新され続けますが、間に合わない可能性にも備えておかねばなりません。何かおかしいな、と言っている内にデータが持ち去られている可能性もあります。その場合に大きな情報源となるのが「見慣れないログ」です。あれ、こんなプロトコルの通信してたかな?こんなに一杯通信してたかな?この端末って普段こんなに外部と通信してたかな?75セント多くない?等々、平常時とは違うアクティビティをレポートやログが知らせてくれます。特に見ておくと便利なレポートの一つに「Client Reputation」という物があります。日本語で書くと「クライアント(の)評判」、ですね。これは管理者からみて望ましくない、してほしくないけど一律禁止にはしづらい、(技術的に難しい)といった行動にスコアを付け、クライアントごとに積み重ねていく物です。このスコアは重大度に従って1~100まで傾斜配分し、積算していくことで一つのクライアントに付き一つのスコア、と可視性をとても重視した方式になっています。各種イベントの数を数えるより、もう一段階おおざっぱな情報とも言えます。もちろんそのスコアが大きければ大きいほど怪しいとも言えるのですが正しい使い方は、平常時のスコアと比べてみることです。こうして一次元化した指標というのは色々丸まっておりそう大きく変動しやすい物でもありません。逆にこれが大きく変動することがあれば、「何かが変わった」可能性に気付くことができます。
個人的にはもう少し傾斜配分をきつくして使うことをお奨めしていますが、これをレポート化すると以下のようになります。

レポートの見方

FortiAnalyzerではいくつものテンプレートがデフォルトで用意していますが、その中でもClient Reputationを例に出してみます。以下は一週間分のとあるネットワークのClient Reputationレポートの一部です。(このレポートでは外部からの攻撃もカウントしているため外部の攻撃者、スキャナーも表示されています) 例えばこのように、スコアの増減を図ると新参者や内部で大きく動きの異なった端末/アドレスを発見しやすくなります。)このグラフで見ると、172.16.11.1というアドレスが最もスコアが大きくなっています。(このIPアドレスはFortiSandboxの確認用外部ポートなので、Botnetへの通信など悪さをすることも多く、結果としては正しい傾向が見て取れます)


期間ごとのスコアの変化

次にIPSレポートを見てみましょう。IPSレポートを見ることで内外で起きている事を手っ取り早く把握することができます。ただ、注意が必要なのは「外の動向を気にしすぎてはならない」と言うことです。セキュリティ一般として、自組織がどんな攻撃を受けているか知ることは有効なことです。普通は攻撃のコネクションが成立しない=IPSログに出るまでのことにはならない、ということで公開サービスがなければ見える物も少ないでしょう。Firewall/UTMの外側の動向はあくまでも世間一般として、それ以上の労力を限られたリソースから割くのは得策ではありません。必要なのは内から内への通信、そして内から外への通信です。内から外の通信についてはIPSの脅威レポートやSecurity Analyticsレポートを活用するとわかりやすく、普段はこんな感じになります。今週も何もなくてよかったよかった、と。

Malware Detectedについてはこのレポートでは感染したかまでは確定されず、通信にMalwareを検知したという記録ですので、メールを受け取っただけでちゃんと破棄したという事もありますが、Botnetの方は誤検知を除けば現行犯のようなものです。ここにログが上がってきた場合、該当する通信元のIPアドレス/クライアントに対しては一通りの調査はすべきでしょう。蛇足ながら、誤検知をこれまでに二回経験しています。二度とも宛先のIPアドレスが攻撃に使われてReputationが悪い物になっている(けども回復している)というケースです。移動しつつヒットエンドランを狙うのが典型的なMalicious Siteなのでサードパーティ広告(ユーザーが意図していないサイトからコンテンツを取得する)を出しているサーバーで、クラウドサービス上に構築されているもの(攻撃側の移動がしやすい)だとそういったこともありうるでしょう。確率的に当たり前と言えば当たり前ですが。これ以外にも、例えば日本語でも英語でもない、業務に関係ないようなURLへのアクセスが急に発生している、ダイナミックDNSサービスにアクセスをしている(通常の業務では余り発生することがないアクセスです)そういった情報はレポートで概ね得ることができます。

感染端末の特定

と、ここまで読まれた方は大体お気づきなのではないかと思いますが、大体材料は揃っています。典型例で言えば、UTMを全て抜けてしまったもののFortiSandboxで発見できた。メールではなくWebコンテンツだったのでクライアントは感染してしまっている。最終的に発見できたのであればFortiSandboxのレポートから、トラフィックログを見ればどのデバイスが取得してしまったのかわかりやすいものとなります。最終的に発見できなくて活動が始まってしまった、という場合でも上記のように何かしら「異常な」特徴を表す例です。実際にはそれとトラフィックログを付き合わせて確認する作業なので、これ自体そんなにすごく大変と言うことではありません。ただし、そのためには平常時を把握しておくことがとでも重要です。


Malware/Botnet アクティビティレポート

一つ残った課題に、内→内の通信をどうすれば良いのか?という点があります。出口対策、入り口対策をしていても内部の動きが解らないと。これについては適切に境界を設けて内A→内Bとすれば後の要領は内→外と同じ、しかも管理もしやすく外の情報がノイズとなって見づらいと言うことも起こりづらくなります。この議論は実はFirewallやUTMのコストが下がり、パフォーマンスが上がる度に繰り返されてきたことで、エクストラネットでのFirewallはVPN装置と一体化することで責任分界点、境界シンボルとしてもほぼ普及した感があります。しかしながら、内部に関してはVLANで別れている程度のケースが多く、トラフィックログの取得、更にUTMなんてコストのバランスが合わないかもと。しかしここから先の事情を考えると、内部に仕切りがあれば、感染端末による被害や特定の範囲も狭めることができ、最も高コストなカテゴリであるセキュリティ担当者のパワーを倍増することが可能となります。 Fortinetでは Internal network Segmentation (内部ネットワークを区分けする)FireWall = ISFWと呼んでソリューション化しています。また、これについて紹介する機会もあるかも知れませんが、今回のテーマ、感染端末の特定 Tipsとしては以上となります。