@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

ホワイトリストによる通信制限

マルウェアへの感染が発覚した場合、該当端末を一時的にネットワークから隔離し、その後、より詳細に調査を行うという手順が一般的に取られるかと思います。

明確な対応手順が決まってない組織では、ネットワークからの隔離後に色々と操作をしてしまい、せっかく残っていた痕跡を消してしまう事があるようです。

「隔離後は触らずに、次の正しい手順を確認する」としていただけると、その後の対応コストを抑える事ができるかもしれません。*1

次の手順として、セキュリティベンダへ連絡する、というのは時間がかかりますので注意してください。窓口へ連絡し、事情を説明したり、守秘義務契約や対応コストの見積もりを取るなどしていれば、すぐに数時間は経過してしまいます。

必要最低限のことは、自組織内で対応できるようにしておかないと、復旧までの時間が長引きコストが増える事になります。

 

ここ最近の流れとしては、標的型攻撃を受け侵入された事が判明した場合には、感染端末の隔離後、上流でネットワークを一旦遮断する方向になりつつあるようです。

昨今、インターネット接続が完全に遮断されると業務への多大な影響(コスト)が発生しますので、いかに早く復旧していくかが課題になります。

事案発生後、一時的に通信を遮断するとして、その後はホワイトリストに従い安全かつ必要な通信は許可する必要があります。例えばWindows Updateや、ウイルス対策ソフトのアップデートなどは行う必要がありますので、それらに対するWebの通信は許可する必要があります。

ただし、マイクロソフト社へのアクセスを全て許可するというのはお薦めできません。過去にTechnetのフォーラムがC&C通信で利用されていた事があったようですので、マイクロソフト社のサイトでも必要最低限な範囲に絞って通信を許可する方が安全です。

その他、過去にはアプリケーションをアップデートする仕組みが悪用されたケースもありますので、アプリケーションの更新であれば全てホワイトリストに含める、というのは危険です。

 

自社のWebサイトやポータルもホワイトリストへ登録する事は危険です。いわゆる水飲み場攻撃では、安全と考えられているサイトが改ざんされ攻撃に利用されるケースがある為です。

例えば、年金機構に関連した報道の中には、攻撃者が侵入した機器でWebブラウザが保存していたパスワードを搾取する事例について紹介がありました。

最近のマルウェアは標的型に関わらず、感染した機器に保存されている認証情報を収集する機能が備わっているようです、該当機器から漏えいした自社のWebサイトに関する認証情報などが悪用されるケースにも備える必要があります。

Webサイトに限らず、メールサーバへのログオン情報や(個人が利用している)SNSに関するアカウント情報なども保存していれば盗まれていきます。

標的型攻撃によるマルウェアに感染した端末では、これらのパスワード変更も急ぎ必要になります。社外サイトの場合にはそこにアクセスしてパスワードを変更する必要が出てきますが、通信が完全に遮断されているとうまく対応できない可能性があります。

この他、クラウド上のストレージなどを含め様々なサービスがある(便利な仕組みは攻撃者も利用する可能性がある)ので、Webの通信だけを考慮しても、ホワイトリストの整備はかなりのコストがかかる事になります。

 

ホワイトリストの厳格な適用とは別に、侵害範囲の特定、侵害されていない安全な機器を素早く確認し、安全性が確認でき、一定の基準をクリアした機器からの通信は許可する基準や仕組みを構築しておけば、復旧に要する時間や全体コストを下げられる可能性があります。

そして、その基準を考慮する際には、端末機器におけるホワイトリストの整備が必要になってきます。

米国では NIST が National Software Reference Library(http://www.nsrl.nist.gov/)としてハッシュ値を公開しています。しかし、日本国内ではこういった取り組みをどこか国の機関が実施し公開しているというのは聞いた事がありません。

日本国内で流通しているOSやアプリケーションなどのハッシュ値を適宜収集、ホワイトリストとして提供されていると役立つと思うのですが、何処もやらないのでしょうか?

 

 

 

*1:ネットワークケーブルを抜いたり、無線LANを無効化する前に、メモリダンプの取得なり、netstat -nab コマンドを実行しておくと、マルウェアプロセスの特定が簡単になるかもしれません。なお、ネットワークケーブルを抜いた後でもプログラムの実行・通信先がすぐに確認できる仕組みを運用しておくのが理想でしょうか。