アンチウィルス系のテストで使うテストウィルスといえば、eicarという実行ファイルというか、テキストファイルというか、どんな形としても使えるテストウィルスがある。これは、かなり古くからあって、少なくとも20年以上前から存在する。もちろん、普通の文字列なので悪さをすることはない。(とわいえ、コマンドを組み合わせて、文字列だけでOSが止まるものもあったような)
思い出としては、当時SIerにいて、納品に全てのモジュールを入れろ(当時URLだけで済ます文化はなかった)となったので、eicarを含めて納品して、納品物を自社のファイルサーバに入れたら、案の定、反応されてしまい始末書とか。(人生初の始末書)Web Proxyのテストで、httpsに置いてあるeicarが検知されないというクレームが来たが、httpsの通信の中身は見れるわけないじゃんといくら説明しても納得してもらえずとか(その時のSSLの脆弱性を知っていれば検知できたかもしれない)
閑話休題
今更ながら、eicarのテストをしてみる。eicarは、単なるテキストファイルのテストウィルスなので、文字列さえ知っていれば、ファイルも不要。ただし、eicarは、全てのアンチウィルスソフトウェアで検知されてしまうので、ダウンロード、作成した瞬間、検知されて隔離されてしまう。ブラウザからもダウンロード難しいかもしれない。
eicarの入手
検索エンジンで検索してもリンクが進めないかもしれない。(Googleは辿れたがMS Bingはダメだった。)なので、URLを直打ちをする。
ここからダウンロードをする。
https://www.eicar.org/download-anti-malware-testfile/
一応書いてあるが、自己責任で。
やる人はいないかと思うが、会社貸与の管理された端末でダウンロードをするということではしないように。あと、落としたファイルは、必ず管理をしておかないとあらぬところで検知されてしまうかもしれない。おすすめは使う直前に落とし、使い終わったらすぐ消して、「保存をしておかない」ことに心がけることをおすすめする。また、httpでは落とせない。アンチウィルスと連携したWeb Proxyで検知されてしまうので不要かと思うが。そのテストをする場合は、別途Webサーバにeicarを置かなければならない。(が、今時httpのWebサーバを立ち上げることも少ないので影響も需要もないかと。)
で、ブラウザからクリックしてもファイルのダウンロードはできない。理由は、ダウンロードした瞬間にアンチウィルスで検知されるため。
2つの方法で回避することが可能
- リアルタイムスキャンを止める
- ダウンロードした場所を除外設定する
リアルタイムスキャンを止める場合
GUIでも止められるが、以下のPowerShellで止められる。
Set-MpPreference -DisableRealtimeMonitoring $True
リアルタイムスキャンの停止確認
$Preferences = Get-MpPreference
$Preferences.DisableRealtimeMonitoring
スケジューラーから呼び出されるのも停止
schtasks /delete /tn "Microsoft\Windows\Windows Defender\Windows Defender Cache Maintenance" /f
schtasks /delete /tn "Microsoft\Windows\Windows Defender\Windows Defender Cleanup" /f
schtasks /delete /tn "Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan" /f
schtasks /delete /tn "Microsoft\Windows\Windows Defender\Windows Defender Verification" /f
ダウンロードした場所を除外設定する場合
C:\TestとC:\Users\Administrator\Downloadsを除外している
$folders = @("C:\Test",
"C:\Users\Administrator\Downloads")
foreach ($folder in $folders){
Write-Output "Adding folder exclusion: $folder ..."
Add-MpPreference -ExclusionPath $folder
}
$Preferences = Get-MpPreference
$Preferences.ExclusionPath
リアルタイムスキャンを止めてもブラウザから落とせないのでInvoke-WebRequestで落とす。
New-Item C:\test -ItemType Directory
cd C:\test
Invoke-WebRequest "https://secure.eicar.org/eicar.com" -OutFile "eicar.com"
よくよく考えたら、テキストファイルなので、ダウンロードしなくてもechoコマンドとかでもできそう。ただ、今度はその文字列を保存しているアプリのファイルでアンチウィルスが発動しそう。となると厄介。
気がついた人もいると思うが、PowerShellは、何でもできてしまう。PowerShellの利用はセキュリティ的にはかなりの注意が必要。使うことがなければ抑止をしておいてもいいかもしれない。セキュリティソフトによっては、PowerShellを起動するだけでもアラートが出る製品もある。
まぁ、初期構築のときには積極に使って、運用では使わないというのが落とし所かもしれない。