★☆★JNSAメールマガジン 第33号 2014.4.18.☆★☆
2011年ころから、日本でもAPT(Advanced Persistent Thread)や標的型攻撃という言葉が使われるようになりました。これらの攻撃は、メール、Webアクセス、USBメディなどを使って、直接イントラネット内に侵入する場合が多く、対策が難しいとされています。
このような攻撃に対して効果的であるにも関わらず、忘れられることが多いのが特権ユーザー管理です。特権ユーザー管理は、管理者権限をできる限り使わないという、シンプルなアプローチですが、極めて有効な対策の一つです。ここでは、攻撃を防ぐ上で重要となる二つの特権管理、PCレベルの特権ユーザー管理とサイトレベルの特権管理について考察をします。
PC(Personal Computer)の特権ユーザー管理という言葉は、矛盾した言い方かもしれません。もともとPCは、MS DOSが搭載されたコンピューターで一般化した呼び方ですが、MS DOSにはユーザーやアカウントという考え方がありませんでした。このため、電源を入れると、DOSプロンプトが表示されすぐに利用できました。考えてみればこれが本来のPersonal Computerかもしれません。
Windows システムでは、Windows NTではじめてアカウントという考え方が導入されます。つまり、シングルユーザー・シングルタスクであるMS DOSから、マルチユーザー・マルチタスクのOSに移行したことになります。そして、マルチユーザーになったことで、ユーザー(アカウント)ごとの権限の分離が必要となりました。そして、通常の利用者の他にコンピューター全体への特権を持った、管理者権限という考え方が必要になりました。
個人で利用しているPCの場合は、実質的にはシングルユーザーなので、管理者権限で使用しても良いように思われますが、管理者権限を使ったコンピューターの利用は大きなリスクが伴います。
たとえば、利用者自身が操作ミスをした場合に、システムに致命的な影響を与える事があります。UNIX系のシステムで、ディレクトリーごとファイルを削除する際に次のようなコマンドを使う場合があります。
% rm -r *
もし、ここでカレントディレクトリが / (root)であった場合、一般ユーザー権限で実行される分には、自分が所有するファイル以外には削除権限がないためシステムに対する影響はありませんが、管理者特権を持っている場合、本当にすべてのファイルが消えてしまいます。
一般にアプリケーションは起動したアカウントの権限で動作します。つまり、管理者権限でログオンしている場合、メーラー、Microsoft OfficeやAdobe Readerといったプログラムは、管理者権限で実行されることになります。そして、プログラムに対する攻撃が成功した場合、攻撃者は管理者権限を奪取し、PCのすべての権限を掌握したことになります。ウィルスが感染した際に、「PCを再起動した際にも動作するようになっている」場合がありますが、これは管理者権限がないと出来ない処理です。
これも、見落とされやすいポイントですが、管理者権限で利用していると攻撃が成功しやすいという側面もあります。Avecto社の調査では、管理者権限を持たない一般ユーザーでPCを利用した場合90%以上の脆弱性は悪用ができず、Internet Explorerでは、すべての脆弱性の影響の脆弱性の悪用が出来ないという、ある意味衝撃的な数字が公表されています。
一方で、現実論として、管理者権限を持たずにPCを利用することは難しい面があります。UNIX系のシステムでは一般ユーザーでログインし、管理者権限が必要な時に限りsu, sudoを使って管理者権限を取得するという使い方が一般的になっています。
Windows でも、Vista以降では、同様の仕組みとしてUAC(User Access Control)が導入されています。UACでは、管理者権限を持ったアカウントであっても、(評判の悪い真っ暗な画面で)明示的に指示をするまでは、一般ユーザー権限で動作しています。つまりメールの操作や、Internet Explorerでのブラウジングといった日常的な操作は、管理者特権を持たずに実行されていることになります。
Windows で特権利用を避けるための一番簡単な方法は、UACが実装された Windows Vista以降を利用することかもしれません。
ウィルス感染が報道される際に、「全てのメールがアクセス可能な状態にあった」や、「機密情報を管理するサーバーから情報が盗まれた」などと報道される場合があります。
このようなケースでは、Domain Administratorなどのサイトレベルの管理者特権を奪取されたことが原因となっていることが多いようです。
攻撃する側の立場で考えれば、権限の高いアカウントを狙うことは当然のことだと言えますが、PCを一般ユーザー権限で利用するだけで対策になることは、あまり認識されていないように思います。
一般に、イントラネットに侵入に成功した場合、侵入したPCを起点に、より権限の高いアカウントやサーバーへのアクセス権の奪取を試みますが、この際に、キーロガー、ネットワークの盗聴、PC内の認証情報の取得などの手法が悪用されます。これらの攻撃は、基本的に管理者特権がないと実行できません。逆にいえば、一般ユーザー権限で動作しているPCが、標的型攻撃でマルウエアに感染したとしても、他のPCやサーバーへのアクセス権を取得される可能性は、格段に低いことになります。
加えて、Domain Controllerなどの重要なサーバーへのログオンを、管理ネットワークなど、分離されたネットワークの安全が確保された専用のPCに限定をすることで、ドメインアドミニストレータの奪取といった、致命的な攻撃への対策を行うことができます。
ここで紹介している攻撃手法は、Pass the Hashと呼ばれます。Pass the Hashについては、以下のホワイトペーパーをご参照ください。
Mitigating Pass-the-Hash (PtH) Attacks and Other Credential Theft Techniques
http://download.microsoft.com/download/7/7/A/77ABC5BD-8320-41AF-863C-6ECFB10CB4B9/Mitigating%20Pass-the-Hash%20(PtH)%20Attacks%20and%20Other%20Credential%20Theft%20Techniques_English.pdf
セキュリティを専門にしている立場では、管理者特権を利用しないことは対策のイロハですが、現実的には実施が難しい対策の一つである事に加え、境界領域防御とウィルス対策ソフトがセキュリティ対策の中心として考えられていたため、特権管理はあまり注目されていませんでした。
しかし、標的型攻撃などイントラネットに直接攻撃を行い、PCやサーバーの認証を悪用して、イントラネット深く侵入するといった攻撃手法が一般化したこと、ネットワークの発展によって、無線LAN等のネットワークが容易に利用できるようになり、イントラネット内にPC等のデバイスを閉じ込めておくことが難しくなったことから、改めてPCやサーバーといったノードレベルの全般的な対策、そして今回取り上げた「管理者特権を使用しない」というアプローチは、より有用性が増していると考えています。