システム内に存在するユーザー名が、「取得されること=侵入可能」となるケースが存在するという重大さについてご理解いただけただろうか。一度、システム内に侵入されてしまうと、その後の被害は計り知れないと考えた方がいいだろう。たとえ、それが管理者権限を有するユーザーではなく、一般ユーザーレベルの侵入であってもだ。
一般ユーザーで侵入されてしまうことは、限定的ではあるもののそのユーザーに許された行動はすべて行われてしまうことはいうまでもない。だが、危険である点は、それだけではない。
攻撃者から見て、そのシステムの脆弱性の露見範囲が広がるということを忘れてはいけない。
脆弱性の発現経路は、大きく分けて「リモート」と「ローカル」の2点である。
システムに侵入を試みようしている段階の攻撃者は基本的にリモートから影響を受ける脆弱性のみしか利用することはできない。しかし、いったんシステムにログオンすることに成功するともう1つの脆弱性の発現経路である「ローカル」を利用できるようになるため、その範囲は大きく広がるのである。
皆さんは、「〜の権限昇格の脆弱性」「〜の脆弱性により特権昇格が行われる」などのいい回しを聞いたことがあるだろう。これらは、いったん何らかの権限でシステムへのログオンに成功しなければ発現させることのできない脆弱性である。逆にいい換えれば、何らかの権限でログオンすることさえできれば脆弱性を発現させ、ログオンした権限よりも上の権限に昇格することが可能ということである。
最後に1つの例を紹介しよう。
下図は、前述のオンラインパスワードクラッキングでパスワードが設定されていないこと(Nullパスワード)が判明した「zoom」というユーザーでログオンした後、とあるWindowsの脆弱性を利用し、権限昇格に成功した結果を示している。
青のラインで囲われているところは、「whoami」コマンドにより、ユーザー「zoom」でシステムにログインしているということが表示されている。
[User] = "W2KSV-VM-VICTIM\zoom"
そして、ユーザー「zoom」の属するグループが「Users」グループであることを示している。
[Group 3] = "BUILTIN\Users"
次に、黄色のラインで囲われている部分である。ここは、システム上で脆弱性実証コード(Exploit Code)を実行している部分である。
そして、脆弱性実証コード実行後、はじめに実行した「whoami」コマンドを実行し、権限昇格に成功しているかの確認を行っているのが、赤ラインで囲われている部分である。ユーザーが「SYSTEM」となり、属するグループが「Administrators」グループ、つまり、管理者権限のグループへと昇格していることを示している。
[User] = "NT AUTHORITY\SYSTEM"
[Group 1] = "BUILTIN\Administrators"
このように、1つのユーザーが攻略されることにより、脆弱性の露見範囲が広がるという危険性についてご理解いただけただろうか。
管理者権限を有するユーザーのみ強固なパスワードを用い、一般ユーザーやテスト用アカウントには、容易に推測可能なパスワードを設定しているというシステムをペネトレーションテストの現場では、よく見掛ける。
このように推測可能なパスワードを設定している理由は、
など、さまざまであると思う。ただ、これがシステムに対して、甚大な被害を及ぼす可能性があるということを認識していただきたい。
今回の記事で、1つの情報取得で発現する脆弱性、被害の範囲が拡大してしまうということがお分かりいただけたと思う。そしてそれはシステムすべてが掌握されかねない可能性を秘めているのである。
これを踏まえ、現在行っている、または行おうとしているセキュリティ対策はどれくらいの範囲の、どのような脅威への対策なのかを考える機会となれば幸いである。
辻 伸弘(つじ のぶひろ)
セキュリティエンジニアとして、主にペネトレーション検査などに従事している。
民間企業、官公庁問わず多くの検査実績を持つ。
自宅では、趣味としてのハニーポットの運用、IDSによる監視などを行っている。
Copyright © ITmedia, Inc. All Rights Reserved.