web-dev-qa-db-ja.com

Windows GPOソフトウェア制限ポリシーが%TEMP%変数で機能しない

* .exeの実行をいくつかの場所(特に、さまざまな圧縮ツールが解凍する一時フォルダー)で制限することにより、いくつかの追加のマルウェア防止対策を導入しようとしています。 Zipファイルから直接実行可能。

TechNet記事 http://technet.Microsoft.com/nl-nl/library/cc786941%28v=ws.10%29.aspx

パス規則で環境変数を使用できます。パスルールはクライアント環境で評価されるため、環境変数(たとえば、%Windir%)を使用する機能により、ルールを特定のユーザーの環境に適応させることができます。

...

パスルールには、?および*ワイルドカード。 "*。vbs"などのルールがすべてのVisual Basicスクリプトファイルと一致することを許可します。次の例は、ワイルドカードの使用を示しています。

  • 「\ DC-??\login $」は、\ DC-01\login $、\ DC-02\login $と一致します
  • 「*\Windows」はC:\ Windows、D:\ Windows、E:\ Windowsと一致します
  • 「c:\ win *」は、c:\ winnt、c:\ windows、c:\ windirに一致します

私はこれらのパスルールを持っています(これを単独で、およびさまざまな組み合わせで適用しました)。

  • %APPDATA%\*.exe
  • %APPDATA%\*\*.exe
  • %LOCALAPPDATA%\*.exe
  • %LOCALAPPDATA%\*\*.exe
  • %TEMP%\*.exe
  • %TEMP%\7z*\*.exe
  • %TEMP%\wz*\*.exe
  • %TEMP%\Rar*\*.exe

...理論的にはshouldユーザーの一時フォルダ直下の実行可能ファイル、およびWinzip、WinRAR、7-Zipが一時フォルダに名前を付ける方法で名前が付けられた一時フォルダ内の実行可能ファイル(例:%TEMP%\7zSF20.tmp\the_file.exe)を表します。

%APPDATA%%LOCALAPPDATA%は機能します。 %TEMP%のものはそうではありません。実行可能ファイルappearは%TEMP%でブロックされますが、これはデフォルトのセットアップで%LOCALAPPDATA%\*\*.exeルールにも一致するためです(TempはデフォルトでAppData\Localの下にあります)。

これは、部分的なフォルダー名のワイルドカードの問題であると当初考えていましたが、これは%TEMP%変数の使用に固有のようです(そのため、書き換えられます)。

私が確認した2つの回避策(およびそれらを使用したくない理由)は次のとおりです。

  1. %LOCALAPPDATA%\Tempの代わりに%TEMP%を使用する

    • 厳密に言うと、%TEMP%変数は%LOCALAPPDATA%\Tempと異なるように設定できるため、これは正しくありません。
  2. %HKEY_CURRENT_USER\Environment\TEMP%の使用

    • レジストリベースのパスルールはすべてのサブフォルダーに適用されるようです-少し軽いタッチを好みます(そのため、ホワイトリストに移動する必要はありませんeverything else)
    • レジストリベースのルールは制限されているように見えるため、具体的なことはできません。 %HKEY_CURRENT_USER\Environment\TEMP%\7z*\*.exe
      • 私はそれ以来、%HKEY_CURRENT_USER\Environment\TEMP%7z*が近くなることを発見しました(変数とサブフォルダー間の\は指定しないでください。後でファイル名マスクを指定することはできません)
    • また、このレジストリの場所には、プロセスのstartにあるはずの値のみが含まれ、変更される可能性のある値ではないコース中にが含まれるため、技術的にも正しくありません。そのプロセスの-例コマンドプロンプトを開いてSET TEMP=C:\を発行し、プロンプトからプログラムを実行した場合は適用されません。

(価値があるのは、GPOのコンピューターセクションとユーザーセクションの両方でSRPを個別に同時に試した場合です。一方が他方を上書きした場合、または%TEMP%がコンピューターレベルとユーザーレベルで異なって解決された場合に備えています。)

%TEMP%のような何かがここで適用されないのに対して、%LOCALAPPDATA%\Temp\\wz*\\*.exeのようなものは何ですか?


更新:

制限は特に%TEMP%環境変数にあるようです。質問を編集しました。

6
jimbobmcgee

プログラムがcmd.exeまたはcommand.comで確認すると、%TEMP%の内容がユーザーとは異なる場合があります。時には彼らは同じではありません。

ただし、マルウェアが変数を変更する可能性があるため、ソフトウェア制限ポリシーで環境変数を使用することはとにかく悪い考えです。

1
Klaus Hartnegg

これを使用して%TMP%と%TMP%* \からのexeファイルをブロックします。奇妙に見えますが、ここではWin7プロクライアントで動作し、UACが有効になっており、現在のユーザーの管理権限がありません。

%HKEY_CURRENT_USER\Environment\TEMP%*exe
%TEMP%\*\*.exe

%TEMP%\Rar*\*.exeを使用しようとしましたが、%TEMP%\Rar15\PuTTY.exeおよび%TEMP%\Rar14.tmp\PuTTY.exeからの実行をブロックしました

%TEMP%に特別なことはないと思います。再確認しましたが、使用したレジストリキーのパスは%TEMP%\Rar*\*.exeに影響しません

0
Zulgrib

これを試してください:

%HKEY_CURRENT_USER\Environment\TEMP%7z*/*.exe

%を閉じた後でバックスラッシュ(\)を省略し、サブディレクトリにスラッシュ(/)を使用する場合

私はこの参照を見つけました: https://www.sysadmins.lv/blog-en/software-restriction-policies-rule-creation.aspx

0
David Hatch