空腹

空腹を満たすためいろいろなものに、食いつこう

知らないともったいない、「Windowsコマンドライン」をセキュリティ対策に使う方法

2014-11-04 15:02:34 | 日記
知らないともったいない、「Windowsコマンドライン」をセキュリティ対策に使う方法 という記事を見つけました

 セキュリティインシデント(事象)発生後の組織的な対応であるインシデントレスポンスは、企業の情報セキュリティプログラムにおいて重要な役割を担っている。セキュリティインシデントの原因となることが往々にしてあるのが、企業環境で最も普及しているOSである米Microsoftの「Windows」だ。Windowsが危険にさらされているかどうかを検出することは、インシデントレスポンスにおいて重要な作業になる。

 ここ数年、Windowsのインシデントレスポンスの基本は変化していない。だが企業のインシデントレスポンス計画に組み込むことができる多数の新しいツールと技法が誕生している。こうしたツールの多くはサードパーティーから提供されており、デフォルトではWindowsにインストールされていない。

 ここで注意事項が1つある。それは、サードパーティーのセキュリティツールやフォレンジックツールを装った悪意のあるツールが少なくないことだ。そのため、標準的なインシデントレスポンスのツールキットを使用するのが最も安全で簡単かもしれない。

 本稿では、Windowsに搭載されている新しいコマンドラインツールの関数と、クライアントPCが危険にさらされているかどうかをIT管理者とセキュリティ管理者が判断するのに役立つツールを紹介する。また、危険にさらされていることが判明した場合に使用できる技法とヒントも取り上げる。

PCが危険にさらされているかどうかを判断する

 インシデントレスポンスの最初の手順は、クライアントPCが危険にさらされているかどうかを判断することだ。「wmic」「netstat」など、以前からある管理用のコマンドラインツールは今でも使用できる。

 Windowsのコマンドラインツールにおける恐らく最大の進歩は、Microsoftが「Windows PowerShell」を開発したことだろう。Windows PowerShellは、以前の組み込みのコマンドラインユーティリティよりも大幅に多くの機能を搭載した、タスクの自動化と構成管理のためのコマンドラインインタフェースだ。MicrosoftのOnline Services Security & Complianceチームのメンバーであるラス・マクリー氏が、潜在的なセキュリティインシデントの調査にWindows PowerShellを使用する方法を自身のブログ記事で解説している。

 Windows PowerShellは高度なスクリプト機能を備えており、一般的なコマンドラインユーティリティの代替として使うことが可能だ。例えば、プロセスの一覧を表示する「PsList」やプロセスを強制終了する「PsKill」など、Windows管理ツール群「Windows Sysinternals」が含むツールの代わりに使える。

 企業は独自のWindows PowerShell標準スクリプトを記述して、自社の環境で最も重要な証拠を収集できる。収集したデータは、危険にさらされていないシステムや基本イメージと比較して、詳しい調査の手掛かりを特定する手段としても使える。疑わしいネットワーク接続やプロセス、ファイルなどの異常があれば、侵入検出システム(IDS)またはシステム管理ツールのデータを使用し、システムにインストールされているアプリケーションやシステムにあるファイルと比較すべきだろう。

 Windows PowerShellでプロセスの一覧を表示するには、次のコマンドを実行する。


Get-Process | Out-Gridview


 次のコマンドを実行すると、インストールされているプログラムの一覧を表示する。


Get-ItemProperty HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize


 IPアドレスの構成一覧を表示するには、次のコマンドを実行する。


Ipconfig /all


 次のように「netsh」というコマンドを使用して、ファイアウォールのステータスの一覧を取得することも可能だ。


netsh advfirewall export "firewall.txt"


 「Driverquery」というコマンドを使用すると、使用中のドライバ一覧を表示する。この一覧は、悪意のある可能性があるドライバを特定するのにも役立つ。次のように「>」演算子を使用して、情報を指定のファイルに出力できる。


driverquery /v /fo csv > drvlist.csv


 情報をファイルに出力すれば、管理者はシステムの状態を記録しやすくなる。セキュリティが確保されたシステムでファイルをさらに分析したり、他のツールで利用することも可能だ。

危険にさらされているPCに対処する方法

 クライアントPCが危険にさらされていることを特定したら、次は、そのシステムをさらに調査するか、問題を修正する必要がある。さらなる調査は、市販のツールや「Volatility」「PyFlag」といったオープンソースのフォレンジック(不正追跡)ツールを使って進めることができる。悪意のあるプロセスやネットワーク接続で特定したマルウェアを分析する場合もあるだろう。こうした分析をすると、副産物が得られる。例えば、危険にさらされている他のシステムやアカウントの検出・特定、攻撃者がキャプチャーしたデータの把握などが可能になる。

 システムがマルウェアに感染したり、攻撃者によって危険にさらされている場合、最も安全で簡単なシステムの復旧方法は、システムの再インストールだ。だがシステムによっては、再インストールが実用的な選択肢でない場合もある。危険にさらされたクライアントPCから機密データへアクセスされたと考えられる十分な理由がある場合は、そのクライアントPCがどのようにして危険にさらされたのかを綿密に調査して、根本的な原因を特定し、修正しなければならない。修正方法は複数ある。例えば、パッチをインストールする、他のシステム構成を変更してシステムのセキュリティを強化する、システムに新しいセキュリティ制御を追加する、などだ。

マルウェアに感染したクライアントPCが機密データを処理/保存しておらず、ユーザーがそのようなデータへのアクセス権を持っていなかった、という場合もあるだろう。インシデントレスポンスでは、問題がないことが分かっている状態のバックアップを使って再インストールするという標準的なアドバイスで終わるかもしれない。一方、攻撃者を現行犯で取り押さえ、攻撃者による管理者権限の入手を阻止できた場合、システムの完全な再インストールは不要になる可能性がある。ここでいう現行犯の取り押さえとは、攻撃者が実行しているプロセスの強制終了、悪意のあるファイルの削除、根本的な原因の特定と修正などが相当する。

 Microsoftは「Windows 8」で「Recimg.exe」という名前のコマンドラインツールを導入した。Recimg.exeを使用すると、独自のシステムイメージを作成してシステムを回復できる。このイメージは、システムが危険にさらされた場合に、システムを問題がない状態へ復元するために使用できる。システムの完全な再インストールと比較すれば、カスタムイメージの作成は大した作業ではないだろう。


 Windowsは、新しいバージョンがリリースされるたびに多くの点が変更される。だが幸いなことに、危険にさらされたクライアントPCのインシデントレスポンスには、従来のWindowsと同じツールや技法の多くを利用できる。これらのツールからは、危険にさらされたクライアントPCに対処する技法と手掛かりを得ることができる。

 企業は定期的にツールとプログラムを更新して、修正プログラムがリリースされている既知の問題の餌食にならないようにすべきだ。インシデントレスポンス計画を施行すれば、ツールとプログラムでは自然と小さな更新が必要になるだろう。

 役に立ちそうだが 簡単に使いこなせるかどうかだ

コメントを投稿