システム・ネットワーク保護(SC)/監視(SI)とコンポーネントマネジメント(CM)

本記事では、システム・ネットワーク保護(SC※1)/監視(SI※2)とコンポーネントマネジメント(CM)について解説する。前回の記事では、NIST Cyber Security Frameworkでいうところの「防御」として「認証(IA)とアクセス制御(AC)/追跡(AU)」について解説を実施したが、本記事ではより複合的に「特定、防御、検知、対応、復旧」に関連する内容を扱うため、特段強くCSFのステップを意識するよりも、システムとネットワークに大別される構成要素を、どのような観点から保護/監視すべきかについて読んでいただきたい(あえて言うなら防御、検知、対応の3つを跨ぐ)。また、当該ファミリーに関しては対応製品が数多く市場に存在する。製品選定におけるポイントについても記載するので参考となれば幸いである。
※1 SC:System and Communications Protection
※2 SI:System and Information Integrity
エンドポイント保護の重要性(EDR編)
サイバー攻撃の典型的な入口としては、今も昔もエンドポイント端末への攻撃である。とは言っても、ネットワーク越しに直接エンドポイントアプリケーションの脆弱性を突く攻撃などそう容易くはできない。だからこそ、メールなどの手段は最もマルウェアを感染させるために用いられる手法なのである。また、典型的であるが故に、攻撃者はいかにしてメールに添付したマルウェアを実行させるかに躍起になっている。昔のようにメールタイトルや本文が外国語だったり、競馬の予想アプリなどと書いてあるわけではないのだ。
メールの攻撃手法
メールでの攻撃は「Microsoft Office アプリケーションのマクロ機能を悪用するマクロマルウェアファイル」「アプリケーションの脆弱性を突く特殊なファイル」の大きく分けて2種類で実施されることが多い。
1.Microsoft Office アプリケーションのマクロ機能を悪用するマクロマルウェアファイル
マクロマルウェアは皆さんも一度は聞いたことがあるかもしれない。皆さんがいつも便利に使っているエクセルにはVBAマクロという、エクセルの中でプログラムを書いてエクセル内のデータを操作できる機能がある。貴社の中にも一人はエクセル職人と呼ばれるマクロの達人がいることだろう。マクロマルウェアとは、まさにこのVBAマクロでマルウェアを実行するプログラムを指すのである。
例えば、あなたの元に見積もり依頼のメールが来て、見積条件の詳細をまとめたエクセルを添付したので確認してほしいと書いてあるとする。あなたが見積もりを作るために当該エクセルファイルを開くと、「マクロを実行しますか?」という警告のポップアップが表示される。何のことか分からずOKを押すと、マルウェアをダウンロードして実行するためのプログラムが実行されて、あなたの端末はたちまちマルウェアに感染してしまうといった流れだ。
2.アプリケーションの脆弱性を突く特殊なファイル
こちらはマクロマルウェアよりももっと高度な攻撃を指す。詳しく解説すれば1万文字でも10万文字でも使えるので、ここでは物凄く簡単に書くとする。
攻撃者はA社のPDF閲覧ソフトに脆弱性を見つけ、その脆弱性は「プログラムが想定しているよりも大きなデータが含まれるファイルを当該ソフトで開いた場合に、システムがクラッシュする」というものだったとする。攻撃者は更にこれを進化させて、クラッシュさせるのではなく、攻撃者が実行したいプログラムを実行できるようにする。このように特殊に細工したPDFファイルを作って、メールで送付するというのがざっくりとした流れである。
つまり、先程のマクロマルウェアに比べて、拡張子やアイコンで見分けがつかないし、実行した時にご丁寧な警告など一切でないのである。あらゆる拡張子のファイルが疑わしいのが恐ろしいところである。
Microsoft Defender では万が一の状況に対応できない
SC/SIファミリーではこの問題に対処すべく、「悪意のあるコードを検出して排除せよ」ということが書かれている。つまり、マクロマルウェアであれば、不正なVBAプログラムが含まれていないか、脆弱性を突くような特殊な細工が施されたファイルでないかどうかを判別せよということである。これをやってくれるのが、EDR(Endpoint Detection and Response)と呼ばれるものである。筆者はよくクライアントから Windows 純正の Microsoft Defender (旧 Windows Defender)でも良いのではないかという言葉をもらう。もう何千回同じことを答えたかわからないが、Microsoft Defender とEDRとでは圧倒的に違う点がある。Microsoft Defender は怪しいか否かを判定し、怪しくないと判断したファイルやプロセスが実はマルウェアだった場合に無力なのに対して、EDRは攻撃が成立した直後にそれを検知して対応することができるのである。つまり、Microsoft Defender は優秀ではあるのだが、万が一の状況に対応できないのである。
NIST CSFのステップを思い出してもらえばこれが致命的であることをわかっていただけるだろう。EDRは怪しそうなプロセスにメモリーインジェクションという手法を用いて、監視を実施する。いざ攻撃が成立しそうになるとそれを検知して不正なコードが実行される前にそれらを差し止めてくれるのである。ただし、昨今のサイバー攻撃は更に高度であり、Living off the land(LoTL)と呼ばれる手法は、EDRをもすり抜けてしまうのであるが、その話は別の機会にすることとする。
EDRを選ぶポイント
EDRを選ぶ際のポイントはもちろんその検出率なのであるが、実は皆さんが知っているくらい有名な各社のサービスであれば大した違いは無いし、我々玄人が自慢げに技術解説をするためのものなので、皆さんは集中管理機能や、SOC(Security Operation Center)との連携のしやすさなどを気にかけて選定するのが良いだろう。
また、これまでメールの添付ファイルの話を前提にしてきたが、同様のことを不正なリンクにも適応できる。メール等で不正なリンクを踏んでしまった際には、攻撃用の細工されたサイトに誘導されてしまうのである。この際の攻撃の原理は実はすでに解説している。「アプリケーションの脆弱性を突く特殊なファイル」で解説した攻撃原理と同等なのである。つまり、アプリケーションがブラウザであり、ファイルがサイトに変わったということだ。ブラウザとはサーバーから受信したHTML構文を解釈して我々にWebサイトを表示してくれるものである。だからこそファイルと同じように特殊にサイトを細工することで、ブラウザの脆弱性を突くことができるのである。このような問題にもEDRは対応することが可能なのである。皆さんはまだ Microsoft Defender で十分だと言えるだろうか。
ネットワーク保護の重要性(境界面保護)
前述したEDRとて完璧ではない。LoTLなどの極めて高度な攻撃によってEDRをすり抜けた攻撃が来たとしよう。もしくはリモートワークのために導入したVPN装置が攻撃されたとしても良い。何らかの権限を持ったユーザーのコントロールが奪われ、ファイルの持ち出しや破壊活動が更に多くのシステムに伝搬してしまう危険性に晒されるのである。こういった状況にはアクセス制御やネットワークの保護と監視で対応をすることが一般的である。アクセス制御は前の記事で解説しているためそちらを参照してほしい。

EDRで取りこぼした脅威をいかにネットワークで検知するか
まずは境界面保護について記す。境界面とはシステム同士の境界やインターネットとの境界など様々な部分を指す。これを保護するというのはつまり、ネットワークを超えた攻撃を検知して、対応するということなのである。前章を思い出してほしい。マクロマルウェアによって外部のサーバーからマルウェアをダウンロードして実行するような攻撃があったとすれば、もちろんEDRなどでコードの実行そのものを止められるのが一番良い。ただしそれをすり抜けたとしてもネットワークの境界面保護により検知、対応が可能なのである。
1つはマルウェアがダウンロードされる際の通信を監視、分析してマルウェアであることを特定し、差し止めるというもの。もう1つはマルウェアが実行された後に、命令サーバー(C2サーバー)に特殊な通信を行う際に、それらを検知して、差し止めるというものである。実はいずれもEDRの範疇としてエンドポイント側でもアプローチできるのだが、多層防御の考え方に則って、EDRが何らかの方法で無効化された際などを考えて、ネットワークでも対応をすることが望ましい。こういったことをしてくれる製品を「ネットワーク対策製品」などと呼ぶ。ファイアウォールやネットワークサンドボックスなど様々な呼び名と製品群があるため、慎重に選定が必要だが、要するにNISTが求めていることは、前述したような、EDRで取りこぼした脅威をいかにネットワークで検知するかという点にある。
サブドメイン探索への対応
また、命令サーバー(C2サーバー)の話が出たため付随して記すが、昨今のサイバー攻撃は実はこのネットワーク対策製品すらも亡き者にしようとしているのである。それはDNS Beaconという極めて特殊な通信方法である。本当は物凄く難解なのだが、簡単に説明すると、皆さんがドメインを入力して通信ができるのは「DNS(Domain Name System)と呼ばれるものがドメイン名とIPアドレスの中継ぎをしているからである」というのは聞いたことがあると思う。DNS Beaconとはまさにこれを悪用したもので、具体的にはサブドメイン探索という手法を使う。「aaa.ドメイン」の「aaa」の部分をサブドメインという。このサブドメインは存在しなかったとしても問い合わせの通信自体はドメインに対して飛ぶのである。つまりサブドメイン部分に何らか意味のある文字列を入れて名前解決を試みれば、DNSを介してサーバーに情報を送ることができるのである。これは流石にネットワーク対策製品でも対策が極めて困難であると言える。ただしここにはNISTも打ち手を用意している。それは非常に単純であり、デフォルトのDNSサーバーを固定で指定するというものである。よくわからない人は Google が提供するDNSサービスを利用するのが良いだろう。他にもCDN(Content Delivery Network)を悪用したドイメインフローティングという手法が存在するが、それはまたの機会とする。
情報漏えいへの対策(DLP)(Data Loss Prevention)
ここまでの内容から、攻撃者が数々の対策をくぐり抜けて、会社の重要情報にアクセスし、それらを持ち出そうとしているとする。もしくは、昨日まで普通に勤務していた退職直前の従業員が競合他社への転職を前に、会社の情報を持ち出そうとしているという典型的なインサイダーでもよい。余談だが、このような場合、不正競争防止法を用いることで会社の営業秘密を持ち出した社員に対して民事訴訟に加えて刑事告訴が可能であるが、不正競争防止法には3つの成立要件が存在し、その中の「秘密管理性」というのはなかなかに厄介で、十分にその営業秘密を守っていたかということが問われる。要するに、外部の攻撃者や内部犯行に対して攻撃の成立は阻止できなくとも、最後の最後、情報の持ち出しを差し止めたいということである。このような場合にはアクセス制御が第一選択肢なのであるが、それらをくぐり抜けてファイルを操作することも可能であるため、ネットワークでの対応も必要である。
この際に求められるのがDLP(Data Loss Prevention)である。DLPはファイルに仮想的なラベル情報(社外秘、極秘など)を付加することで、「このファイルはどこのネットワークに居てよいか」というのを定義する。そしてもし許容しているネットワークの外に転送処理がかかった場合にはそれを差し止めることができるし、何らかの方法でそれも回避した場合にも、次にそのファイルを開いた時にネットワーク外にあった場合には監視アラートを鳴らすことができる。
実際、筆者が身を置くコンサルティング業界では退職者の情報持ち出しも多いのだが、もっとたちが悪いのは、お客様に提案した資料が発注されずにそのまま競合他社に提示されて、「この内容をもっと安くやれ」というとんでもない手法である。完全に余談なので気にしないでいただきたいのだが、意外とコンサル会社はこういうことに敏感で、モニタリングしていたりするので、魔が差したとしてもやらないことを推奨する。
統合的なログ監視(SIEM)(Security Information and Event Management)
前述した通り、どこか一箇所への投資でサイバー攻撃を守り切るということは不可能なのである。だからこそ、それぞれの対策製品が、それぞれの状況を報告して、それらを一元管理しながら攻撃の予兆や取りこぼしなどを検出できる必要がある。それが前の記事でも紹介したSIEM(Security Information and Event Management)製品なのである。エンドポイント側のログとネットワーク側のログ、認証のログなどを横断的に監視することでより防御力を強固なものにできるのである。
次回は、NIST Cyber Security Frameworkでいうところの「対応、復旧」に該当するインシデントレスポンス(IR)、C/P-SIRTの重要性について解説する。
執筆者
