Active Directory

【Active Directory】AppLockerでアプリの実行を制御する

2019年4月30日


Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548

Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548

Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548

Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548

Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548

Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548

Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548

こんにちは!SE ブログの相馬です。

 

 

 

今回は、グループポリシーの機能である、AppLocker を使ってアプリの実行を制御する方法について書きました。

 

 

AppLocker の概要については以下の記事を見て頂くと良いかと思います。

 

 

 

 

事前準備

 

 

上の記事でも書きましたが、AppLocker を設定するにあたってどのグループ、どのユーザーに対して、何を、どう制御するのかを明確にする必要があります。一方でユーザーからの問い合わせがあって、このスクリプトを許可して欲しいというリクエストがあれば、それを許可して問題ないかどうか確認した上で設定する必要があります。

 

 

つまり運用ルールが明確になっている必要があると思います。また管理上、誰に対して何のアプリ・スクリプト・インストーラをいつ拒否・許可したのか台帳のようなものも必要だと思われます。

 

 

何も運用ルールが無い状態で、ここのエンジニアが個人的にこれは拒否すべきだから拒否したとか、ユーザーに直接言われたので許可したとかという理由で、管理台帳も無い状態でで運用してゆくと後で色々と不要なトラブルが出てくるか思います。当然それは避けるべきでしょう。

 

 

 

 

注意点

 

 

必ず事前にテスト環境で充分にテストしてから、問題無い事を確認した上で本番環境に展開しましょう。

 

 

例えばスクリプトの実行を全て拒否してしまうと、クライアント PC にログオンした後に色々と問題が発生します。こういった問題が起こらないよう、特定のフォルダでは実行が出来るようにするなど、事前に適切な設定を考えなければなりません。

 

 

また、AppLocker が適用されるクライアント PC 側では Application Identity というサービスが常に起動している必要があります。AppLocker の GPO が適用される前に当該のサービスが起動していなければならない為です。

 

 

方法としては、グループポリシーで Application Identity サービスを自動・開始する GPO を作成して適用すれば良いでしょう。

 

 

 

 

GPO の作成方法

 

 

それでは GPO の設定をしてゆきましょう。今回は、コマンドプロンプトの実行をブロックする設定を作ります。cmd.exe は署名済みのアプリなのでハッシュで作る必要はありません。

 

 

1. グループポリシー管理エディターを起動し、[コンピューターの構成] - [ポリシー] - [Windowsの設定] - [セキュリティの設定] - [アプリケーションの制御ポリシー]  - [AppLocker] - [実行可能なファイルの規則] を右クリックして、[新しい規則の作成] をクリックします。

 

ルール 説明
実行可能ファイル .exe や .com などの拡張子に対応している。
Windows インストーラー .msi や .msp のインストーラに対応している。
スクリプト .ps1 や .bat、.cmd、.vbs 、.js に対応している。
パッケージアプリ Microsoft ストアからインストールしたアプリに対応している。

 

 

 

 

2. [発行元] をクリックし、[次へ] をクリックします。cmd.exe は署名済みのアプリなのでハッシュで作る必要はありません。

 

条件 説明
発行元 ソフトウェアの発行元によって署名されている場合は特定でき、また全バージョンのルールも作成できる。
パス フォルダやプログラムファイルのパスを指定する事で特定が可能。環境変数、UNC パスやワイルドカードが使える。
ハッシュ ソフトウェアの発行元によって署名されていない場合はハッシュで特定する。設定的にはソフトウェアの制限ポリシーと同等だが簡単に設定できる。

 

 

 

またファイルのハッシュを確認する場合、Windows 10 には標準の機能で確認する事ができます。以下の記事を参考にして頂きファイルからハッシュを確認できますので参考にしていただければと思います。

 

 

 

条件について詳細を確認したい場合は、Microsoft の AppLocker 規則条件の種類について を確認してください。

 

  • AppLocker での発行元規則条件について
  • AppLocker でのパス規則条件について
  • AppLocker でのファイル ハッシュ規則条件について

 

 

3. [次へ] をクリックし、今回は実行を拒否しますので [拒否] を選び [次へ] をクリックします。

 

 

 

4. [参照] をクリックし、cmd.exe がある場所へ移動し、cmd.exe を選択し [次へ] をクリックします。例外が必要な場合は追加し [次へ] をクリックします。

 

 

 

5. 適当な名前を入力して [作成] をクリックします。規定の規則は [はい] をクリックします。

 

 

 

6. 追加したルールと規定の規則が追加されました。

 

 

 

7. GPO をコンピューター OU にリンクします。

 

 

 

 

確認方法

 

 

GPO を PC を再起動するか、gpupdate コマンドで適用します。GPO が適用されている事を確認し、コマンドプロンプトを実行すると、「このアプリは、システム管理者によってブロックされています。」と表示されます。これで OK です。

 

 

 

 

AppLocker のログ保管場所

 

 

クライアント PC のほうでしかログが保管されないようです。以下の場所がログの保管先です。

 

 

 

 

 

まとめ

 

 

以上になります。いかがでしょうか。

 

 

AppLocker を使えば、アプリやスクリプトの実行、またはインストールを制限させる事ができますので、PC の構成管理やセキュリティ、または不要な PC サポートコストの増加に役立つのではないかと思います。

 

 

充分なテストをした上で本番環境に展開する必要がありますのでご注意ください。

 

 

それでは最後までお読みいただきありがとうございました!

 

  • この記事を書いた人

そーまん

セキュリティエンジニアやってます。
ブログ歴3年。PVは月15万PV程度。
趣味はボクシング、筋トレ、登山です。
穏やかで人見知りな性格です。

人気記事

1

こんにちは!そーまんです。 今回は、PC に適用されている GPO を確認する方法について書きました。 本題に入る前に、一応参考までにGPOの適用タイミングについての記事をここに貼りましたので、必要に ...

2

こんにちは!そーまんです。 今回は sysprep について、全体的に PC をセットアップする観点から書いてみました。長々と書いてあります。まずは前置きからです。 まずはじめに 組織では PC のラ ...

3

こんにちは!そーまんです。 今回は、グループポリシー (GPO) を使って、特定のコンピューターに対して、ドメインユーザーに ローカル管理者権限 (以下は特権と記載) を付与する方法について書きました ...

4

こんにちは!そーまんです。 今回は、Windows サインイン後に一時ユーザープロファイルが読み込まれてしまった場合の解決方法について書きました。 Windows 10 の検証環境をいじってたらサイン ...

5

こんにちは!そーまんです。 今回は、ユーザープロファイルを削除する方法について書いてみました。 企業の場合よくあることですが、1 台の PC を共有 PC として複数人で使ったり、また余り無いかもしれ ...

6

こんにちは!SE ブログの相馬です。       今回は、繰り返し文について書いてみました。PowerShell では他のプログラミング言語同様、繰り返し処理を行うことが ...

7

コマンドを使って CPU とメモリの使用率をデータで取得してみましたので、例えば PC のトラブルシューティングで問題を再現させる際にデータを取得しておくと、原因の特定に役立つ場合があるかと思います。

8

既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。

9

企業で多くの GPO が適用されている環境では、PC に GPO が適用されなかったりする問題が発生する場合があるかと思います。その中でも、コンピューターの構成またはユーザーの構成のどちらかで、...

10

こんにちは!そーまんです。 今回は、Windows Server 2019 で NTP サーバーと同期する方法について書きました。 NTP サーバーの必要性や時刻同期の重要性を理解することは社内のシス ...

-Active Directory
-,


Warning: Trying to access array offset on value of type null in /home/r5652521/public_html/soma-engineering.com/wp-content/plugins/amazonjs/amazonjs.php on line 637

Warning: Trying to access array offset on value of type null in /home/r5652521/public_html/soma-engineering.com/wp-content/plugins/amazonjs/amazonjs.php on line 637