Windowsの設定変更だけでセキュリティリスクを下げる方法

セキュリティレベルを高めるためには?

自社のセキュリティレベルを高めるためには「新しいシステムを導入する必要がある!」と思われていませんか?
セキュリティレベルを高めるために、新しいシステムを導入することは有効な手段のひとつです。しかし、必ずしも新しいシステムを導入することだけがセキュリティ強化策ではないと私は考えています。お金をかけずに取り組めることもたくさんあるからです。

このブログでは、お金をかけずに取り組めるセキュリティ対策の一例として、Windowsの設定変更によるセキュリティリスク低減策を1つ紹介します。
「自社のセキュリティ、どこから手をつければよいか分からない」とお困りの方へ、はじめの一歩となるヒントを提供できたら嬉しく思います。

以下、『アクセシビリティ機能』を悪用した手口と、この攻撃から守るための対策案を紹介いたします。動画を交えながらわかりやすく解説いたしますので、最後までお付き合いいただけますと幸いです。

アクセシビリティ機能とは?

ここからは、アクセシビリティ機能とそれを悪用した手口について紹介していきます。

アクセシビリティ機能とは、高齢者や障がい者なども含めたあらゆる人が、どのような環境においても柔軟にPCを使えるように提供されるものです。
たとえば、Windows端末でShiftキーを5回押下すると『固定キー機能』というポップアップが表示されます。
(※実際に試された方、有効化する必要はないので「いいえ」を押してくださいね)

図1 アクセシビリティ機能の一例である『固定キー機能』の有効化画面

この「固定キー機能」は2つ以上のキーを同時に押すことが困難な方に向けた機能です。例えば「&」記号を入力する際、通常であれば「Shift」キーを押しながら「6」キーを押す必要がありますが、この機能を使うと「Shift」キーを1回押した後に、「6」キーを押して「&」が入力できるようになります。

他にも『拡大鏡』や『スクリーンキーボード』(画面上にキーボードを表示する機能)などもあり、Windowsでは様々なアクセシビリティ機能が用意されています。

表1 Windowsのアクセシビリティ機能一覧
ツール名 プログラムパス
スクリーンキーボード C:\Windows\System32\osk.exe
拡大鏡 C:\Windows\System32\Magnify.exe
ナレーター C:\Windows\System32\Narrator.exe
ディスプレイスイッチャー C:\Windows\System32\DisplaySwitch.exe
アプリスイッチャー C:\Windows\System32\AtBroker.exe
ユーティリティマネージャー C:\Windows\System32\utilman.exe

あらゆる利用者がいつでも使えるようにWindowsではアクセシビリティ機能が初期状態から実装されていますが、これを逆手に取り攻撃に悪用する攻撃者が存在します。

アクセシビリティ機能をどうやって悪用する?

アクセシビリティ機能を悪用するために「Image File Execution Options」(以下、IFEO)という設定を利用するテクニックがあります。IFEOはソフトウェア開発者が“デバッグ用途”で使うことが多い“レジストリ”です。

デバッグというのはバグの原因を探して取り除く作業のことを言い、プログラム開発においては必要不可欠な作業です。
たとえばPowerPointの開発者が「発表スライドが表示できない」などのバグを見つけた場合、なぜ想定した動作をしないのか?という原因を探して直します。これがデバッグという作業です。

レジストリというのは、Windowsの特徴的な機能で、「コンピュータ設定の情報集」と思っていただいてよいかと思います。パソコンを使う上でユーザがレジストリを意識することはほぼありません。前提知識のない状態でレジストリの設定を変更するとパソコンが起動しなくなったりする可能性もあるので、直接ユーザが変更することは想定されていません。

さてIFEOの話に戻りますが、このレジストリの値を変更するとなにができるのかというと、「任意のプログラムの起動を代用させること」が可能になります。
実際に検証を行いましたので、動画でご確認ください。

動画1 メモ帳の代わりにコマンドプロンプトを起動させることが可能

では、このIFEOを、冒頭で説明した『アクセシビリティ機能』と組み合わせると、どうなるでしょうか?

繰り返しますが、アクセシビリティ機能は“どのような環境においても”柔軟にPCを利用できるために提供されます。そのため、アクセシビリティ機能は“ログイン前の認証画面”でも使うことができます。アクセシビリティ機能の実行を、任意のプログラムに置き換えることができるとどうなるでしょうか?

こちらも実際にやってみましたので、動画で確認してみてください。動画内で置き換えているosk.exeは『スクリーンキーボード』というアクセシビリティ機能の一種です。

動画2 IFEOとアクセシビリティ機能を組み合わせて悪用する手口

このテクニックの最大のポイントは、ログイン画面から起動すると、プログラムを「システム権限」というユーザ権限よりも強い権限で起動することができることです。本来ログイン中であればログインしているユーザの権限で動作するのですが、まだログインしていないので「誰の権限で動作すればよいか」分からず、システム権限で動作するという仕様になっています。
この手法を利用することで、(前提として何らかの手段でユーザをリモートで操作する権限は必要となりますが)IFEOレジストリを変更した後、管理者権限を用いてユーザの新規追加や、別の端末への横展開などが行える可能性があります。

アクセシビリティ機能を悪用する手口の対策方法

では、どのように対策すればよいのでしょうか。

対策方法の1つが、「NLAの有効化」です。NLA(Network Level Authentication) というのは、リモートデスクトップ接続時の認証方式の仕組みを言います。
下記の設定画面の枠内のチェックを入れると、NLAが有効になります。
Windows Vista以降ではデフォルトで有効になっています。
加えて、そもそもリモートデスクトップ接続が不要な端末については、接続を許可させないことでセキュリティが高まります。

図2 リモートデスクトップの設定画面

NLAを有効化するとなにが変わるのでしょうか。
下記が、NLA無効化時と、NLA有効化時の比較です。

図3 NLA無効化時のログイン画面
図4 NLA有効化時のログイン画面

NLAの有効化は上記で説明したIFEOの悪用以外にも、外部公開されているサーバに対するRDP接続試行からの保護にも有用な対策です。

Windows vista以降はデフォルトで有効化されていますが、一貫したポリシーで運用するために、GPO(Group Policy Object:グループポリシー)を利用して一括で設定変更することも可能です※1。また、ユーザ権限ではレジストリの設定変更ができないように、レジストリの操作権限を管理者のみに絞っている企業も多くあります。

このようにお金をかけてシステムを導入しなくても、Windowsの設定項目を見直す、権限を絞るなどの対策で、攻撃者が侵入しづらい環境を作ることが可能なのです。

「はじめの一歩」を少しずつ。

今回ご紹介した例のように、攻撃者・サイバー犯罪者たちの手口を知り1つ1つ地道に対応していくことも、有効なセキュリティ対策となり得るということをご実感いただけたでしょうか。
攻撃者の手口を学んでいくためにMITRE ATT&CK※2などのフレームワークを利用することをおすすめします。MITRE ATT&CKは、実際の攻撃をフェーズごとに分類したフレームワークで、攻撃者の手口と対策を学ぶのに最適です。攻撃手法と一緒に、具体的な「検知方法」や「緩和策」を載せているため、組織のセキュリティ改善に活かせる点もおすすめのポイントです。実は、今回ご紹介した手法も、MITRE ATT&CKのT1546.008(Event Triggered Execution: Accessibility Features)で定義されている内容なのです※3。ここで紹介した対策は、複数あるWindowsの設定変更によるセキュリティリスク低減策の中の1例にすぎませんが、MITRE ATT&CKではOS設定変更で防げる攻撃手法をまとめたページも用意されていますので併せてご確認ください※4

このような小さな改善を積み重ねていくことで、攻撃者が攻め入りづらい環境をつくることができるようになります。攻撃者・サイバー犯罪者たちにとっての手間やリスクを増やすことも極めて有効な対策なのです。一歩一歩対策していくことで、セキュリティ向上に努めていきましょう。

執筆者
丸山恵里奈 Maruyama Erina
サイバーセキュリティ・イノベーション研究所
スレット・インテリジェンス・センター
シニアセールスエンジニア