ウイルス対策の切り札! 悪用され得るソフト/機能の制限

 ご存じですか。ウイルスやマルウェアへの感染は、かなりの割合で普段は使いもしないソフトや機能が知らぬ間に悪用されて起こるということ。知らぬ間に悪用されるのはなぜ?と疑問を抱かれるかもしれませんが、これは、Windowsパソコンが未だに何でもできる汎用性を一定のセキュリティが確保できる範囲で維持しているからです。換言すれば、ソフト/機能は、悪用される、あるいは悪意のある可能性があるとしても一定のセキュリティ要件さえ満たせば、起動あるいは実行が許容されているからです。しかし、このような汎用性は、ブラウザ、メールソフト、MS Officeに、いくつかの特定業務アプリしか使わない大半のユーザにとっては、感染リスクを負うだけで、全く意味がありません。自分の使うアプリだけが、好きなタイミングで起動あるいは実行できれば十分だからです。

 このように限られたアプリしか使わない一般ユーザに向けて、Windowsで提供されている機能制限手段にフォルダへの書き込みを登録済みのアプリに制限するWindows Defenderの「コントロールされたフォルダーアクセス」があります。アンチウイルスとしてWindows Defenderを利用する場合、ランサムウェアにより暗号化されるのを防止するには、是非とも、有効化すべきアクセス制限機能ではあります。しかし、Windows Defenderをすり抜けるマルウエアへの感染自体は防止できませんので、感染による情報漏洩リスクが軽減できるわけではありません。

 これに対して、ここで紹介する悪用され得るソフト(Powershell等のシステムソフトや所定のロケーションにインストールされていないソフト[マルウェアも含む])の起動/実行を制限する手法は、これまでのウイルス対策ソフトでは対応できない0day、ファイルレス等の高度な攻撃にまで効力を発揮する効果的な防御法です。Simple Software-Restriction Policy(SSRP)は、ソフトの起動/実行を制限するApplocker(Windows 10 Enterprise版でしか利用できないマイクロソフト製ツール)相当のフリーソフトウェアですが、tempフォルダにおけるリネームや新たなtempフォルダの追加が出来ないデフォルトの設定により、実行制限が無力化されることのない強固なセキュリティ耐性(Windowsクライアントの要塞化)を実現します。また、書き込み可能なフォルダ内のソフトの実行可否、普段使わない.exeファイルや.exe以外の拡張子のソフト一式の実行可否、およびアプリのインストール/アンインストールの可否が、ロック/アンロックの切換により瞬時に行えます。このため、PowerShellのようなEmotet、IcedID等のファイルレス攻撃に悪用される可能性のあるソフトを、必要な時以外はロックして動かなくするセキュアな環境がWindows Home版でも簡単に実現できます。もっとも、マクロには無縁のユーザが、マクロウイルスを利用するEmotetやIceIDの防御のためにだけ行うのならば、Word、Excelのマクロを完全に止める対策の方が簡単ではあります。

 ここでは、このSSRP にComodo Firewallによる実行機能制限を組み合わせることで、SSRPアンロック時まで、Webあるいはメール経由で侵入する大半の実行可能ファイルの実行を制限するセキュリティ強化法を示します。

1. SSRPのインストールとロック/アンロック

 Simple Software-Restriction Policyの左端メニューのSourceforgeを左クリックして表示されるページのダウンロードボタンを左クリックします。ダウンロードが完了したら、そのダウンロードファイルのSoftwarePolicy220Setup .exeをダブルクリックしてインストールを開始します。Welcome to Simple Software-Restriction Policy Setup Wizardのウインドウが開いたらNextボダンを左クリックします。Licence Agreementのウインドが開いたら、Software Policy License Conditionsの内容を確認の上、I accept the agreementの先頭の〇を左クリックによりチェックして、Nextボダンを左クリックします。Select Destination Locationが開いたらデフォルトのC:\WINDOWS\SoftwarePolicyのまま、Nextボダンを左クリックします。ここで、インストール先のフォルダは変更可能ですが、無条件ではないので、デフォルトのままにしておくことが推奨されています。Select Additional Tasksが開いたらチェックをはずさずNextボダンを左クリックします。Ready to Installが開いたら、表示内容を確認の上、installボタンを左クリックします。Completing the Simple Software-Restriction Policy Setup Wizardのウインドーが開いたら、チェックをはずさずにFinishボダンを左クリックして、右下のタスクトレイにSSRPアイコンが追加されます。そのアイコンにマウスのカーソルをあてることでSoftware Policy Activeが表示されれば、インストールは完了しています。この状態でSSRPはロック状態になっており、ソフトによっては起動やインストール、アンインストールが制限されます。この制限により支障を来す場合には、タスクトレイのSSRPのアイコンを右クリックしてConfigureを左クリックするか、-:Software Policy:-を左クリックするかして立ち上がるSSRPのウインドーのアンロックボタンをクリックしてロックを解除することが必要です。ただし、デフォルトではロックし忘れ対策として解除後30分を経過すると自動的にロックされるようになっていることには注意が必要です。


2. SSRPの通常ロック対象ソフトのダメ押し的な追加設定

 SSRPのインストールを済ませ、アプリのインストール・アンインストール時以外はロックで運用するるだけで、セキュリティを大幅に向上させることができます。それでも、Emotet、IcedID等のファイルレス攻撃、未知のウイルスによる、あるいは未知の脆弱性をつく攻撃等を防ぐにはまだ十分でない可能性があります。そこで、ダメ押し的ではありますが、悪用され得るソフトのうち普段使わないものについて、その実行を徹底的に制限することとします。具体的には、タスクトレイのSSRPのアイコンを右クリックしてConfigureを左クリックするか、-:Software Policy:-を左クリックして立ち上がるSSRPのウインドーのConfigureボタンをクリックするかして、Softwarepolicy.iniファイルを開き、本ブログ末尾に示す編集後のSoftwarepolicy.iniファイルの通り追加、変更(アンダーライン付き太字部分参照)を行います。ロックをかけて実行を制限するインストール済みの.exeと.dllとしては、ファイルレス攻撃に悪用され得るPowerShell関連とマイクロソフト推奨ブロック規則とから選定しています。なお、IncludeDLLsは、性能の観点から0とすべきですが、それではファイルレス攻撃に対抗できませんので、性能が多少犠牲になることを覚悟の上で、1としております。


3.Comodo Firewallによる外部から来たソフトの実行可否の要確認化

 従来型のマルウェアは実行可能ファイルとして外部から取り込むか送り込まれた上で、ユーザが気づかぬうちに実行されることで感染します。ユーザが気づかないのは、その起動にユーザが直接関わらないか、あるいは偽装ファイルであることに気づかず起動してしまうからです。このようなマルウェアの知らぬ間の起動を防ぐのに効果的な実行可能ファイルに対する実行可否の要確認化がComodo Firewallで実現できます。これは、外部から来る実行可能ファイルに対しては、起動時に、実行、ブロック、仮想コンテナで実行のいずれを指定するかの選択メニューが表示されるようにして、ユーザに実行可能ファイルであることを認識させた上で、実行の可否をいちいち指示させるものです。この実行可否要確認化設定は以下の通り行うことができますが、残念ながら、インストーラーを介したりZIPファイルから解凍したりする場合には効かない上に、Windowsシステムあるいはそのアップデート関連のアプリケーションの実行を許可するルール設定を適切にしないと頻繁に実行可否の確認を求められる弱点がありますので、SSRPアンロック状態での作業が多くないのなら組み込む必要はないかもしれません。

実行可否要確認化の設定

 始めにタスクトレイのComodo Firewallアイコンを右クリックして表示されるメニューの自動コンテナ仮想化にカーソルを移動し表示される設定をクリックします。次いで、左端のコンテナ仮想化の中の自動コンテナ仮想化を左クリックして開くウインドーのメニュー左端の追加をクリックします。新たに開くウインドーの最上段のアクションを右端の▼をクリックして開くプルダウンメニューで条件付きで実行を選びます。次いでその下の編集をクリックし、新たに開くウインドーの最上段のファイルの場所を、右端の参照をクリックしファイルグループに行き、最上段の実行可能ファイルを選びます。続いて、数段下のファイルの入手先の右端の追加をクリックし、インターネットを選択します。この追加を繰り返し、リムーバブルメディア、イントラネットも選択します。終わったら、最下段のOKをクリックして、このウインドーを抜けます。これで戻ったウインドーも、やはりOKをクリックして抜けます。戻った自動コンテナ仮想化のウインドーのリストの最上段に追加したアクションが登録されていればプリケーションコントロールの設定完了です。ただし、この設定では、インストール済みのアプリケーションの自動アップデートに対しても要確認化が効くようになってしまうので、外部から来る特定の実行可能ファイル(例えば、Edgeブラウザアップデートの場合は、C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe)については、無視するになるよう個別のルール設定を追加しておくと良いでしょう。


-----

; Software Policy inifile

[CustomPolicies]

; Software in standard locations such as Program Files can always run.

; Add any extra locations from which software can be run here.

; (LAN users note - drive mappings are accepted, but may need a manual policy update if they are changed.)

; Format is disk_location=1 Examples:

; C:\Sage=1

; \\server=1

; \\server2\share=1

; J:\=1

[General]

; Do we run the programs listed in the LimitedApps section of this file as a restricted user?

; No if 0, Yes if 1, Always (even when unlocked) if 2

; These days we advise the use of UAE instead since some of the later programs, especially browsers,

; don't like the LimitedApps approach. However if you're still on WinXP it would be a good idea to

; activate LimitedApps as it gives you similar benefits to UAE.

LimitedApps=0

; Allow the system-tray applet to be closed:

AllowExit=1

; Require a password to unlock the policy or use admin-menu shortcuts:

; 1=any password, 2=Admin-level password only

AdminMenuPasswordLevel=0

; Minutes to remain in unlocked mode whilst installing software:

UnlockTimeout=30

; Time during which you don't need to repeat the password for admin functions:

PasswordRetention=5

; Show install/uninstall items on traymenu (not needed if installer is used)

ShowInstallOptions=0

; Warn user to unlock before uninstalling any software:

WarnOnUninstallCpl=1

; Use a different restricted-rights app loader: (for advanced users only)

AppProxy=StripMyRights.exe /D /L N

; Minutes between automatic reload of settings. (not yet implemented)

AutoReload=60

; Show Web link for contributions to project:

; 1 GUI menu only, 2 menu and tray.

; (You may remove this if you wish)

WebLink=2

[SoftwarePolicy]

; Your list of restricted extensions, comma-separated, no spaces or fullstops - for advanced users only.

; -This can be commented out in which case a default list applies.

FileExtensions=VBS,JS,JSE,OTF,SCT,SHB,VBE,WSF, WSH,PS1,A3X,BAT,CHM,CMD,COM,CPL,CRT,EXE,HLP,HTA,INF,INS,ISP,MSC,MSI,MSP,MST,OCX,PIF,REG,SCR,SHS,JS,JSE,VB,WSC,APPLICATION,XPI

; Allow programs to be run from ProgramData, AppData\Roaming and AppData\Local folders.

; This is necessary on Windows 10 to allow 'packaged apps' to run, and sometimes on Windows 7.

; Considerably weakens security, so set to zero if you don't use packaged apps.

; Number is the minimum build version of Windows to activate this on.

; Set to 7000 for Windows 7+, 1 for all versions, or zero to deactivate the feature completely.

AddAppData=10000

; Allow programs to be run from desktop - ** UNWISE **

AddDesktop=0

; Allow programs to be run from root folders of the C: drive.

; Occasionally needed for very old software which installs itself into a root folder.

; Windows 7/8/10 have several root folders which are writable by a limited user, so OFF is preferred.

AddRootDirs=0

; Automatically add drive letters created by a LAN login script. Generally OK on trusted networks.

AddMappings=1

; Bypass security for local admins. ** UNWISE ** unless user is a genuine restricted account.

AdminBypass=0

; Allow software to run from Temp folder in userprofile. ** UNWISE **

; Accepts build numbers, see AddAppData.

AddTempDir=0

; Allow Windows Defender updates (mpam-*.exe) to run from the Temp folder on Windows 10 or later..

Add Defender=10000

; Convert drive letters in CustomPolicies section into UNC path permissions.

; Seems to work better on most Windows versions,

; and no it doesn't mean that you don't have access them by UNC path.

TranslateMappings=1

; Control whether disallow policies may be set. A predetermined set of disallow policies exists

; which match the folders under \Windows which may be writable by an ordinary user.

; 0 No disallow action, 1 Disallow custom folders, 2 Disallow custom list AND predetermined system subfolders.

; As from v1.11, disallow policies are controlled by lock/unlock action instead of being permanently on.

DisallowSpecificFolders=2

; Control where dynamic link libraries can be launched from, as well as executables:

; Note that this has a performance hit, therefore only use where max security is needed.

IncludeDLLs=1

; AutoInstall applies the policy in this inifile as soon as the main program is run. 1=normal, 2=silent, -1 applied.

; AutoInstall=1

[Safety]

; Ensure that Windows system components can always be launched.

; Do NOT change this item unless you understand the implications!

AlwaysAllowSystemFolders=1

[Disallowed]

; Add paths or executables which should never be run.

; Wildcards allowed. Be careful here as mistakes could cause problems.

; Note that this list is ignored unless DisallowSpecificFolders is non-zero

powershell.exe=1

powershell_ise.exe=1

system.management.automation.dll=1

System.Management.Automation.ni.dll=1

addinprocess.exe=1

addinprocess32.exe=1

addinutil.exe=1

aspnet_compiler.exe=1

bash.exe=1

bginfo.exe=1

cdb.exe=1

csi.exe=1

dbghost.exe=1

dbgsvc.exe=1

dnx.exe=1

dotnet.exe=1

fsi.exe=1

fsiAnyCpu.exe=1

infdefaultinstall.exe=1

kd.exe=1

kill.exe=1

lxssmanager.dll=1

lxrun.exe=1

Microsoft.Build.dll=1

Microsoft.Build.Framework.dll=1

Microsoft.Workflow.Compiler.exe=1

msbuild.exe=1

msbuild.dll=1

mshta.exe=1

ntkd.exe=1

ntsd.exe=1

powershellcustomhost.exe=1

rcsi.exe=1

runscripthelper.exe=1

texttransform.exe=1

visualuiaverifynative.exe=1

wfc.exe=1

windbg.exe=1

wmic.exe=1

wsl.exe=1

wslconfig.exe=1

wslhost.exe=1

[LimitedApps]

; Run these apps with limited priveleges, such that they can typically only save files to the user-profile.

; Format is name=executable where the name is purely for display. Not case sensitive, and the executable need not have a path.

Mozilla Firefox=Firefox.exe

Opera=opera.exe

SeaMonkey=seamonkey.exe

Chrome=chrome.exe

Iron=iron.exe

Microsoft Edge=msedge.exe

Safari=safari.exe

; If you use a non-Webmail email client, you might also want to include it here.

; IE may malfunction if run restricted, therefore off as supplied. Remove the semicolon below to activate.

; Microsoft Internet Explorer=iexplore.exe

[AdminMenu]

; Provides a tray-menu of useful functions. Use as you wish, or remove if not wanted.

; For local admins, these always run unrestricted. Examples:

; (C:\)=explorer.exe C:\

Control Panel=control.exe

; Printers and Faxes=control printers

; Network Connections=ncpa.cpl

; Computer Management=compmgmt.msc

; Disk Management=diskmgmt.msc

; Registry Editor=regedit.exe

; Task Manager=taskmgr.exe

; Windows Firewall=firewall.cpl

; Command Prompt=cmd.exe

; Salamander=salamand.exe

0コメント

  • 1000 / 1000

持ち運び易さで選り抜く軽量ノートパソコンとその整備補強

①Office込み10万以下で望みの機種が簡単に選べる選定フロー図、 ②Dell、HP、ASUS等のコスパ良好機の性能と携帯性の違いが一目わかる比較グラフ ③学習に必要最小限の実用スペックとその簡単で効果的な強化法(容量拡大,チューンアップ等) ④テレワーク対応のコストをかけないウイルス対策 などをToshi(パソコン歴30年以上、 パソコン教室の構築/運営経験7年)が示しています。