List of Malware - text.Baldanders.info
tag:text.Baldanders.info,2020-09-11:/tags
2020-09-11T13:55:11+09:00
帰ってきた「しっぽのさきっちょ」
https://text.baldanders.info/images/avatar.jpg
https://text.baldanders.info/images/avatar.jpg
最近のセキュリティ・インシデント
tag:text.Baldanders.info,2020-09-11:/remark/2020/09/recently-security-incidents/
2020-09-11T04:55:11+00:00
2022-05-04T05:22:29+00:00
帰ってきた Emotet / キャッシュレス決済の脆弱性
Spiegel
https://baldanders.info/profile/
<p>(この記事は Facebook の TL に書き散らした内容からの再構成です)</p>
<p>言い訳すると,私はもう「エンジニア」でも「管理者」でもないので,自身に直接降りかかりそうなセキュリティ・インシデント以外は知らないふりをすることにしている(一応<a href="https://text.baldanders.info/bookmarks/">ブックマークは溜め込んでる</a>けど)。
でも,まぁ,最近話題の以下の2つはブログ記事として記しておこうかな,と思ったので(笑)</p>
<ol>
<li><a href="#return-emotet">帰ってきた Emotet</a></li>
<li><a href="#docomo-account">キャッシュレス決済の脆弱性</a></li>
</ol>
<h2 id="return-emotet">帰ってきた Emotet</h2>
<p>Emotet は主に電子メールで媒介される「トロイの木馬」に分類される malware で,単独での拡散機能はない。</p>
<p>日本では2019年末あたりから報告例が上がっていて,一時は沈静化していたが,2020年7月中旬から再活性化している。</p>
<ul>
<li><a href="https://www.ipa.go.jp/security/announce/20191202.html">「Emotet」と呼ばれるウイルスへの感染を狙うメールについて:IPA 独立行政法人 情報処理推進機構</a></li>
<li><a href="https://piyolog.hatenadiary.jp/entry/2019/11/26/054443">国内で相次ぐ不審メールの注意喚起と返信型Emotetについてまとめてみた - piyolog</a></li>
</ul>
<p>Emotet の特徴は以下の通り。</p>
<figure>
<blockquote><q>Emotet は単体で感染することは少なく、認証情報を盗み出すトロイの木馬や身代金を要求するランサムウェアと一緒に感染することが多く、標的となるEメールや連絡先などの情報を盗み出し、これらの情報を利用して、実際に交わされたEメールの内容や連絡先を悪用し、偽装したEメールを配信することで新たな被害者を標的にします。受け取ったメッセージは正規のもののように見えてしまうため、ユーザーがこのフィッシングメールを判別することは極めて困難にです。Emotetは定期的にアップデートや改変が繰り返されており、Emotet自体とコマンド&コントロールチャネルが更新できるため、従来のアンチウイルスのシグネチャやネットワークレベルでの検知は困難です</q></blockquote>
<figcaption><div><q><a href="https://blog.f-secure.com/ja/emotet-returned-from-vacation-and-is-active-again-how-to-reduce-risk-in-your-environment/">活動を休止していたEmotetが再び活発に – 感染リスクを軽減するためには - F-Secure</a></q>より</div></figcaption>
</figure>
<p>つまり Emotet 侵入は「第一段階」に過ぎず,次段階の内部情報の窃盗や ransomware を使った脅迫行為に向けた情報収集に使われているようだ。</p>
<ul>
<li><a href="https://piyolog.hatenadiary.jp/entry/2019/11/29/082315">標的型ランサムウェア被害企業が1年以上前からEmotetに感染していた可能性についてまとめてみた - piyolog</a></li>
</ul>
<p>なので Emotet を検出しても,それを「除去して終わり」とはならず,内部システムの徹底的な洗い出しや情報漏洩の可能性の検討等の面倒くさい作業が待っているわけだ。</p>
<p>Emotet 特効の防御策はないが,電子メールを媒介とすることから,通常の phishing 対策の徹底が重要となる。</p>
<figure>
<blockquote><ul>
<li>身に覚えのないメールの添付ファイルは開かない。メール本文中のURLリンクはクリックしない。</li>
<li>自分が送信したメールへの返信に見えるメールであっても、不自然な点があれば添付ファイルは開かない。</li>
<li>OSやアプリケーション、セキュリティソフトを常に最新の状態にする。</li>
<li>信頼できないメールに添付されたWord文書やExcelファイルを開いた時に、マクロやセキュリティに関する警告が表示された場合、「マクロを有効にする」「コンテンツの有効化」というボタンはクリックしない。</li>
<li>メールや文書ファイルの閲覧中、身に覚えのない警告ウインドウが表示された際、その警告の意味が分からない場合は、操作を中断する。</li>
<li>身に覚えのないメールや添付ファイルを開いてしまった場合は、すぐにシステム管理部門等へ連絡する。</li>
</ul>
</blockquote>
<figcaption><div><q><a href="https://www.ipa.go.jp/security/announce/20191202.html">「Emotet」と呼ばれるウイルスへの感染を狙うメールについて</a></q>より</div></figcaption>
</figure>
<p>最近の事例として面白いのは「パスワード付き zip ファイル」をパスワードと共に添付して送るタイプである。</p>
<figure>
<blockquote class="nobox lightmode" style='margin:0 auto;text-align:center;'>
<a href="https://www.ipa.go.jp/security/announce/20191202.html#L13"><img src="./000085326.png" srcset="./000085326.png 500w" sizes="(min-width:600px) 500px, 80vw" alt="「Emotet」と呼ばれるウイルスへの感染を狙うメールについて" loading="lazy"></a>
</blockquote>
<figcaption><div><q><a href="https://www.ipa.go.jp/security/announce/20191202.html#L13">「Emotet」と呼ばれるウイルスへの感染を狙うメールについて</a></q>より</div></figcaption>
</figure>
<p>通常の添付ファイルは(企業・組織によっては)メールサーバ到達時点で拒否されることがあるため「パスワード付き zip ファイル」が使われるのだろうが,これが見事に日本の特殊商慣行というか奇習にマッチしているようで,9月に入ってから Emotet の侵入報告が激増しているらしい(笑)</p>
<p>個人的には(少なくともビジネス・シーンでは)メールにファイルを添付して送るのは今や「悪習」だと思う。
ファイルの共有を行いたいのであれば Google drive や Box, Dropbox などのストレージ・サービスを活用すべきだろう。
かといって Firefox Send のような<a href="https://text.baldanders.info/remark/2020/07/requirement-for-encryption/" title="経路の暗号化とデータの暗号化では要件が異なる">認証を omit した仕組み</a>では却ってリスクが増すけれど。</p>
<h2 id="docomo-account">キャッシュレス決済の脆弱性</h2>
<p>私もどうしても「どこもろざ」と読んでしまう。
そもそも「銀行口座」を連想させるようなネーミングからして失敗だよな(笑)</p>
<ul>
<li><a href="https://piyolog.hatenadiary.jp/entry/2020/09/08/054431">ドコモ口座を悪用した不正送金についてまとめてみた - piyolog</a></li>
</ul>
<p>Twitter の TL を眺めるに,「docomo 利用者以外は関係ない」と思っている人が意外に多そうだ。
関係ないからね。
上のリンク先の記事に挙がっている銀行の口座を持っている人は,一度は残高履歴を確認することを強くお勧めする。</p>
<p>「<a href="https://docomokouza.jp/">ドコモ口座</a>」は最近流行りの「キャッシュレス決済」サービスのひとつである。</p>
<p>いわゆる「キャッシュレス決済」の市場は既に飽和していて「パイの食い合い」状態になっている。
これに拍車をかけるのが政府主導の「<a href="https://mynumbercard.point.soumu.go.jp/">マイナポイント</a>」で,ぶっちゃけ非常にウザい。</p>
<p>キャリア系の決済サービスの強みは回線契約自体が利用者の「信用」を担保することだったと思うが,サービス対象者を不特定に拡大してしまったために「信用」の構造が変わってしまったのが今回のポイントのひとつだろう。</p>
<p>もうひとつはチャージに「<a href="https://www.chigin-cns.co.jp/services/web_service/" title="Web口振受付サービス|地銀ネットワークサービス">Web 口振受付サービス</a>」を使っていること。</p>
<figure>
<blockquote class="nobox lightmode" style='margin:0 auto;text-align:center;'>
<a href="https://piyolog.hatenadiary.jp/entry/2020/09/08/054431"><img src="./20200908053844.png" srcset="./20200908053844.png 696w" sizes="(min-width:600px) 500px, 80vw" alt="ドコモ口座を悪用した不正送金についてまとめてみた" loading="lazy"></a>
</blockquote>
<figcaption><div><q><a href="https://piyolog.hatenadiary.jp/entry/2020/09/08/054431">ドコモ口座を悪用した不正送金についてまとめてみた</a></q>より</div></figcaption>
</figure>
<p>これは結構ヤバい仕組みだ。</p>
<p>邪推だが「ドコモ口座」では「口座振替」が同一ユーザ内で完結するから問題ないと思ったのだろう。
しかし,実際には「ドコモ口座」ユーザが「誰か分からない」のだから,この前提は成り立たない。</p>
<p>まぁ「ドコモ口座」は 2020-09-10 までに全ての銀行口座登録・変更機能を停止したそうで,遅きに失したとはいえ,措置としては妥当だろう。</p>
<ul>
<li><a href="https://docomokouza.jp/maintenance/info_20200910.html">銀行口座登録の申込受付停止および一部銀行のチャージ停止について</a></li>
</ul>
<p>「ドコモ口座」では<a href="https://www.nttdocomo.co.jp/info/news_release/detail/20200909_00_m.html" title="ドコモ口座への銀行口座の新規登録における対策強化について">「本人確認」を強化すると言っている</a>が「本人確認書類」の詐取はいくらでもあり得るのだから,オンラインでの(完全な)身元確認は無理と考えたほうがいい。
むしろ「オンラインでの身元確認は無理」という前提で,どのようにサービスを設計するかが重要だろう。</p>
<p>あと,いまどき <a href="https://techcrunch.com/2016/07/25/nist-declares-the-age-of-sms-based-2-factor-authentication-over/" title="SMSを使った二要素認証を非推奨〜禁止へ、米国立技術規格研究所NISTの新ガイダンス案 | TechCrunch Japan">SMS 認証はヤメロ</a>! やる気あんのか?</p>
<p>これ,今回はたまたま「ドコモ口座」だっただけで,似たようなことをやらかしてる「キャッシュレス決済」サービスは結構あるんじゃないの? 今回のインシデントを通じてきちんとリスク・アセスメントを行い,必要なら法規制をかけないと。
野放図にやりたい放題やる季節は(<a href="https://text.baldanders.info/remark/2019/07/7id-risk/" title="7iD リスク">7pay 崩壊</a>とともに)終わってるのよ。</p>
<p>また,この手の犯罪は必ず模倣者が出る。
しばらくは残高履歴をこまめにチェックしたほうがいいだろう。</p>
<h3>【2020-09-12 追記】 暗証番号を認証に使ってはいけない</h3>
<p>Twitter で見かけたが某国営放送風テレビが「暗証番号を定期的に変える」とか馬鹿すぎることを言ってるらしい。
誰がそんな頭の悪いことを言い始めたのやら… sigh</p>
<p>言うまでもないことだと思っていたが改めて言わせてもらうと,暗証番号や PIN コードは認証(authentication)には使えない。
これらのコードは数字4桁から6桁で構成されている。
このサイズの数字列を総当り方式で解読しても,かかるコストは1円未満しかならない。</p>
<p><figure>
<table>
<thead>
<tr>
<th colspan='4'>利用する文字種類数と内訳</th>
<th colspan='4'>パスワード長</th>
</tr>
<tr>
<th>種類数</th>
<th>数字</th>
<th>文字</th>
<th>シンボル</th>
<th>4文字</th>
<th>8文字</th>
<th>12文字</th>
<th>16文字</th>
</tr>
</thead>
<tbody>
<tr><td>10種</td><td>0-9</td><td>なし</td><td>なし</td><td>1円未満<br>($2^{13.3}$)</td><td>1円未満<br>($2^{26.6}$)</td><td>約35円<br>($2^{39.9}$)</td><td>約35万円<br>($2^{53.2}$)</td></tr>
<tr><td>36種</td><td>0-9</td><td>a-z</td><td>なし</td><td>1円未満<br>($2^{20.7}$)</td><td>約100円<br>($2^{41.4}$)</td><td>約1.65億円<br>($2^{62.0}$)</td><td>約276兆円<br>($2^{82.7}$)</td></tr>
<tr><td>62種</td><td>0-9</td><td>a-z<br>A-Z</td><td>なし</td><td>1円未満<br>($2^{23.8}$)</td><td>約7,500円<br>($2^{47.6}$)</td><td>約1,120億円<br>($2^{71.5}$)</td><td>約165京円<br>($2^{95.3}$)</td></tr>
<tr><td>94種</td><td>0-9</td><td>a-z<br>A-Z</td>
<td><code style='font-size:smaller;'>! " # $ %<br>& ' ( ) =<br>~ | - ^ `<br>¥ { @ [<br>+ * ] ; :<br>} < > ? _<br>, . /</code></td>
<td>1円未満<br>($2^{26.2}$)</td><td>約21万円<br>($2^{52.4}$)</td><td>約16.5兆円<br>($2^{78.7}$)</td><br><td>約129,000京円<br>($2^{104.9}$)</td></tr>
</tbody>
</table>
<figcaption><div>パスワード解読の想定コスト例(<q><a href='https://www.ipa.go.jp/files/000026760.pdf'>情報漏えいを防ぐためのモバイルデバイス等設定マニュアル 解説編 <sup><i class='far fa-file-pdf'></i></sup></a></q> 2.4.2.2項より)</div></figcaption>
</figure> <!-- 要 MathJax --></p>
<p>たとえば <a href="https://tools.ietf.org/html/rfc6238" title="RFC 6238 - TOTP: Time-Based One-Time Password Algorithm">TOTP (Time-based One-time Password)</a> 認証では6桁の数字列を使うが,生存期間は30秒程度で,つまりその程度の信頼性しかないのだ。</p>
<p>じゃあ,永続的な暗証番号や PIN コードが何に使われるのかというと,デバイスやアプリの「アンロック」に使われる。
この場合,暗証番号や PIN コードはユーザと(手元の)デバイスの間でのみ共有されていればいいので,(アカウントのロックアウトも組み合わせれば)セキュリティ要件はかなり緩くできる。</p>
<p>しかし,暗証番号を「<a href="https://www.chigin-cns.co.jp/services/web_service/" title="Web口振受付サービス|地銀ネットワークサービス">Web 口振受付サービス</a>」のようなリモートサービスの認証で使うとなると話は変わってくる。
そもそも銀行側が「キャッシュカードの暗証番号を保持ってる」こと自体が問題だと思うが…</p>
<p>そういえば,どっかの<a href="https://baldanders.info/spiegel/log/nikki-s/200206.html#2303" title="せち日記 - 2002年06月分">説教番組</a>が「SIM の PIN コードは変更したほうが安全」とか馬鹿なことを言ったそうで,実際に試した人のトラブルが続出したらしい(笑) 暗証番号や PIN コードは頻繁に変更するように考えられてないし,もし「頻繁に変更」が必要だと言うのなら,そのサービスやシステムは完全に失敗作である。</p>
<p>あっ,でも,最近は警察や銀行関係者を装って,キャッシュカードや暗証番号を詐取する詐欺が流行ってるらしい。
詐欺に引っかからないのが一番だが,万一の事後処理として「暗証番号を変更する方法」は確認しておいたほうがいいだろう。</p>
<h2>ブックマーク</h2>
<ul>
<li>
<p><a href="https://japan.zdnet.com/article/35159322/">日本医師会、マルウェア「Emotet」の感染を公表–感染拡散メールに注意喚起 - ZDNet Japan</a></p>
</li>
<li>
<p><a href="https://unit42.paloaltonetworks.jp/emotet-thread-hijacking/">Emotetのメール攻撃手法「スレッドハイジャック」のケーススタディ</a></p>
</li>
<li>
<ul>
<li><a href="https://japan.zdnet.com/article/35161046/">マルウェア「Emotet」が「Office」アップデートを装う新たな手口 - ZDNet Japan</a></li>
</ul>
</li>
<li>
<p><a href="https://text.baldanders.info/remark/2020/09/web-account-transfer/">「Web 口振受付サービス」ってなんぞ?</a></p>
</li>
</ul>
<h2>参考図書</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/4822283100?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/51-pZ52JsUL._SL160_.jpg" width="107" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/4822283100?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">セキュリティはなぜやぶられたのか</a></dt>
<dd>ブルース・シュナイアー (著), 井口 耕二 (翻訳)</dd>
<dd>日経BP 2007-02-15</dd>
<dd>単行本</dd>
<dd>4822283100 (ASIN), 9784822283100 (EAN), 4822283100 (ISBN)</dd>
<dd>評価<abbr class="rating fa-sm" title="5"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i></abbr></dd>
</dl>
<p class="description">原書のタイトルが “<a href="https://www.amazon.co.jp/dp/B000PY3NB4?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">Beyond Fear: Thinking Sensibly About Security in an Uncertain World</a>” なのに対して日本語タイトルがどうしようもなくヘボいが中身は名著。とりあえず読んどきなはれ。ゼロ年代当時 9.11 およびその後の米国のセキュリティ政策と深く関連している内容なので,そのへんを加味して読むとよい。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2019-02-11">2019-02-11</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- セキュリティはなぜやぶられたのか -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/4757143044?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/413qoSjODUL._SL160_.jpg" width="108" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/4757143044?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">信頼と裏切りの社会</a></dt>
<dd>ブルース・シュナイアー (著), 山形 浩生 (翻訳)</dd>
<dd>NTT出版 2013-12-24</dd>
<dd>単行本(ソフトカバー)</dd>
<dd>4757143044 (ASIN), 9784757143043 (EAN), 4757143044 (ISBN)</dd>
<dd>評価<abbr class="rating fa-sm" title="5"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i></abbr></dd>
</dl>
<p class="description">社会における「信頼」とは。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2015-11-28">2015-11-28</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- 信頼と裏切りの社会 -->
Ununtu に ClamAV を導入する
tag:text.Baldanders.info,2019-05-06:/remark/2019/05/clamav-for-ubuntu/
2019-05-06T08:39:20+00:00
2019-07-25T13:49:55+00:00
こんなに面倒臭いとは思わなかった。もうしばらく運用してから評価してみるですよ。
Spiegel
https://baldanders.info/profile/
<p><a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> を <a href="https://www.ubuntu.com/" title="The leading operating system for PCs, IoT devices, servers and the cloud | Ubuntu">Ubuntu</a> に導入したのだが,思いのほか面倒臭かったので,覚え書きとして記しておく。</p>
<h2><a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> をインストールする</h2>
<p><a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> のインストール自体は APT (Advanced Package Tool) で簡単にできる。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ sudo apt install clamav clamav-daemon
</span></span></code></pre></div><p>なお <code>clamav-daemon</code> は <a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> をサービス化するためのパッケージである。</p>
<p>現時点(2019年5月)で <a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> の最新は 0.101.x なのだが APT で提供されているバージョンは 0.100.x の古いバージョンのようだ。
一応,以下の脆弱性への対応はしてあるみたいだが</p>
<ul>
<li><a href="https://blog.clamav.net/2019/03/clamav-01012-and-01003-patches-have.html">ClamAV® blog: ClamAV 0.101.2 and 0.100.3 patches have been released!</a></li>
</ul>
<p>このバージョンの古さは後々に影響を及ぼすかもしれない。
Debian には最新の<a href="https://packages.debian.org/source/unstable/clamav">ソースパッケージがある</a>ようだが,セキュリティ製品だしソースコードからビルドするのは流石に…</p>
<h2>データベースを更新する</h2>
<p>まずは手動でデータベースを更新する。</p>
<p>設定ファイル <code>/etc/clamav/freshclam.conf</code> から <code>NotifyClamd</code> の行をコメントアウトした上で <code>freshclam</code> コマンドを実行する。
コマンドラインで書くとこんな感じ。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ sudo systemctl stop clamav-freshclam
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">$ sudo sed -i -e "s/^NotifyClamd/#NotifyClamd/g" /etc/clamav/freshclam.conf
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">$ sudo freshclam
</span></span><span class="line"><span class="cl">Sun May 5 13:36:34 2019 -> ClamAV update process started at Sun May 5 13:36:34 2019
</span></span><span class="line"><span class="cl">Sun May 5 13:36:34 2019 -> ^Your ClamAV installation is OUTDATED!
</span></span><span class="line"><span class="cl">Sun May 5 13:36:34 2019 -> ^Local version: 0.100.3 Recommended version: 0.101.2
</span></span><span class="line"><span class="cl">Sun May 5 13:36:34 2019 -> DON'T PANIC! Read https://www.clamav.net/documents/upgrading-clamav
</span></span><span class="line"><span class="cl">Sun May 5 13:36:34 2019 -> main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
</span></span><span class="line"><span class="cl">Sun May 5 13:36:34 2019 -> daily.cvd is up to date (version: 25439, sigs: 1562310, f-level: 63, builder: raynman)
</span></span><span class="line"><span class="cl">Sun May 5 13:36:34 2019 -> bytecode.cvd is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">$ sudo sed -i -e "s/^#NotifyClamd/NotifyClamd/g" /etc/clamav/freshclam.conf
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">$ sudo systemctl start clamav-freshclam
</span></span></code></pre></div><p>データベースの更新自体はうまく行ってるようだが <code>OUTDATED</code> とか言われてるよ <code>orz</code></p>
<p>…見なかったことにしよう。</p>
<p>なお <code>clamav-freshclam.service</code> の状態を確認するには以下のコマンドを起動すればよい。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ sudo systemctl status clamav-freshclam.service
</span></span></code></pre></div><h2>手動で動作確認</h2>
<p>Malware 対策ソフト用の無害なウイルス(笑)があるので,これを使って <code>clamscan</code> コマンドで動作確認する。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ curl http://www.eicar.org/download/eicar.com -O
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">$ clamscan --infected --remove ./eicar.com
</span></span><span class="line"><span class="cl">./eicar.com: Eicar-Test-Signature FOUND
</span></span><span class="line"><span class="cl">./eicar.com: Removed.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">----------- SCAN SUMMARY -----------
</span></span><span class="line"><span class="cl">Known viruses: 6120222
</span></span><span class="line"><span class="cl">Engine version: 0.100.3
</span></span><span class="line"><span class="cl">Scanned directories: 0
</span></span><span class="line"><span class="cl">Scanned files: 1
</span></span><span class="line"><span class="cl">Infected files: 1
</span></span><span class="line"><span class="cl">Data scanned: 0.00 MB
</span></span><span class="line"><span class="cl">Data read: 0.00 MB (ratio 0.00:1)
</span></span><span class="line"><span class="cl">Time: 20.181 sec (0 m 20 s)
</span></span></code></pre></div><p>よーし,うむうむ,よーし。</p>
<h2>Scan On-Access の設定</h2>
<p>ファイルアクセスへの常時監視を行う Scan On-Access を有効にするために <code>/etc/clamav/clamd.conf</code> ファイルを修正する。
本当は <code>ScanOnAccess</code> を <code>true</code> にするだけでいい筈なのだが<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>,以下のコマンドで</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ sudo systemctl status clamav-daemon.service
</span></span></code></pre></div><p>サービスの状態を確認すると以下のログを吐いて停止していた。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">ERROR: ScanOnAccess: fanotify_init failed: Operation not permitted
</span></span><span class="line"><span class="cl">ScanOnAccess: clamd must be started by root
</span></span></code></pre></div><p><code>/etc/clamav/clamd.conf</code> ファイルの他の部分にも手を入れる必要があるようだ。
以下に変更・追記が必要な項目を挙げておく。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line hl"><span class="cl">LocalSocketGroup root
</span></span><span class="line hl"><span class="cl">User root
</span></span><span class="line hl"><span class="cl">ScanOnAccess true
</span></span><span class="line"><span class="cl">OnAccessMountPath /home/username
</span></span><span class="line"><span class="cl">OnAccessExcludePath /home/username/nocheck
</span></span><span class="line"><span class="cl"># VirusEvent /usr/local/bin/clamd-response
</span></span><span class="line"><span class="cl">OnAccessPrevention false
</span></span><span class="line"><span class="cl">OnAccessExtraScanning true
</span></span><span class="line"><span class="cl">OnAccessExcludeUID 0</span></span></code></pre></div>
<p>最初の3行が変更が必要な項目,以降が追加項目である。
<code>OnAccessMountPath</code> でスキャン対象のディレクトリを <code>OnAccessExcludePath</code> で除外対象を指定する。
どちらも複数指定できる。</p>
<h3>VirusEvent が効かない!?</h3>
<p>上の設定で <code>VirusEvent</code> をコメントアウトしているが,どうやら 0.100 では Scan On-Access を有効にしても <code>VirusEvent</code> の設定が効かないようなのだ(0.101 はどうなんだろう)。</p>
<p><code>VirusEvent</code> には malware を発見した際に起動するコマンドを指定するのだが,これが動かないってかなり致命的じゃないのか?</p>
<p>次善の策として以下のスクリプトを書いて cron で回すことにした。
Malware を検出すれば画面に通知が表示されるはずである。
cron で回してるだけなのでタイムラグが発生する。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="cl"><span class="cp"></span>
</span></span><span class="line"><span class="cl"><span class="nv">logfile</span><span class="o">=</span><span class="s2">"/home/username/.local/log/clamd-found.log"</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -r <span class="nv">$logfile</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nv">PRV_CNT</span><span class="o">=</span><span class="sb">`</span>cat <span class="nv">$logfile</span> <span class="p">|</span> wc -l<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl"> <span class="nv">PRV_CNT</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="cl"><span class="nv">CNT</span><span class="o">=</span><span class="sb">`</span>grep ScanOnAccess /var/log/syslog <span class="p">|</span> grep FOUND <span class="p">|</span> grep -v <span class="s2">"(null)"</span> <span class="p">|</span> tee <span class="nv">$logfile</span> <span class="p">|</span> wc -l<span class="sb">`</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="nv">$CNT</span> !<span class="o">=</span> <span class="nv">$PRV_CNT</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl"> <span class="nv">DATESTR</span><span class="o">=</span><span class="sb">`</span>date<span class="sb">`</span>
</span></span><span class="line"><span class="cl"> sudo -u username <span class="nv">DISPLAY</span><span class="o">=</span>:0 <span class="nv">DBUS_SESSION_BUS_ADDRESS</span><span class="o">=</span>unix:path<span class="o">=</span>/run/user/1000/bus /usr/bin/notify-send -t <span class="m">10000</span> <span class="s2">"</span><span class="nv">$DATESTR</span><span class="s2"> Virus Found </span><span class="nv">$CNT</span><span class="s2">"</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span></code></pre></div><p>ダサいけどしょうがない。
ちなみに <code>username</code> の部分には cron を回すログインユーザ名を, <code>1000</code> の部分にはそのユーザ ID をセットする<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>。</p>
<h2>もう一度,動作確認</h2>
<p><code>clamav-daemon.service</code> がうまく機能するか試してみよう。</p>
<p>先ほどの無害なウイルス(笑)をダウンロードする。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ curl http://www.eicar.org/download/eicar.com -O
</span></span></code></pre></div><p>これでログ等を見て検知しているか確認する(上の通知も出れば完璧)。
確認できたらとっとと削除すること。</p>
<p>今回は <code>clamdscan</code> のほうを使ってみよう。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ clamdscan --infected --remove ./eicar.com
</span></span><span class="line"><span class="cl">/home/username/work/./eicar.com: Eicar-Test-Signature FOUND
</span></span><span class="line"><span class="cl">/home/username/work/./eicar.com: Removed.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">----------- SCAN SUMMARY -----------
</span></span><span class="line"><span class="cl">Infected files: 1
</span></span><span class="line"><span class="cl">Time: 0.365 sec (0 m 0 s)
</span></span></code></pre></div><p>圧倒的に速くなった。
まぁ,バックグラウンドにサービスがいるんだから当たり前だが(笑)</p>
<h2>Thunderbird と連携したかったが…</h2>
<p>MUA である Thunderbird と連携できるアドオンがあると聞いたのだが</p>
<ul>
<li><a href="https://addons.thunderbird.net/ja/thunderbird/addon/clamdrib-lin/">clamdrib LIN :: Thunderbird 向けアドオン</a></li>
</ul>
<p>うまくインストールできない。</p>
<p><a href="https://addons.thunderbird.net/ja/thunderbird/addon/clamdrib-lin/" title="clamdrib LIN :: Thunderbird 向けアドオン">clamdrib LIN</a> の最新バージョンは2017年のもので最近のバージョン 60 以降には対応してないっぽい(互換性チェック回避のオプションも試したがうまく行かなかった)。
諦めるしかないようだ。</p>
<p>こんなんばっかだな > <a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a></p>
<h2>「ウイルス対策ソフト」は必要か?</h2>
<p>なんだか知らないが「Linux にウイルス対策ソフトは必要か?」などという頭の悪い議論があるそうで,しかも「必要ない」という人の主張は「Linux ユーザは Windows や macOS に比べて規模が小さいから狙われにくい」という,これまた頭が悪いとしか言いようがないものらしい。</p>
<p>「ウイルス」という表現は古臭くて的を得ていないので,この記事では色々ひっくるめて malware (malicious software) という表現に統一させてもらうが,ぶっちゃけて言うなら使っている OS にかかわらず「<strong>ユーザレベルでは malware 対策はセキュリティ管理の中核ではない</strong>」というのが多分正しい。</p>
<p>じゃあ malware 対策は必要ないのかと言えば「さにあらず」で,しかしそういったものは外部化され不可視になっている。
今どきの言葉で言うなら “Security as a Service” とでもいうような状況である。
そしてそのプラットフォーム OS として Linux 等のセキュリティ要件はむしろ高まっていると言えるだろう。
今回 <a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> を触ってみて感じたことだが,一般ユーザにとって <a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> がちょっと残念な感じになっているのはサーバ用途に最適化されつつあるからではないかと思うのだ。</p>
<p>セキュリティのトレンドは「防衛」中心から「監視」中心にシフトしていて,単純に malware をバラ撒いただけではすぐに検知され対策されてしまう。
故に攻撃側も時間をかけてでも密やかに確実にターゲットを追い詰める social engineering を駆使した各種ターゲティング攻撃へとシフトしている。</p>
<p>Phishing メールやそれに含まれる malware 検知などはサービスプロバイダが(有料のものも含めて)やってくれるし, Web についても Phishing サイトやマイニング・コード等を含んだサイトはブラウザレベルでかなりいい感じにブロックできるようになりつつある<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>。
そういう意味で私にとって malware 対策ソフトは「うっかり転んだときのための少額保険」みたいなもので,それ以外ではあまり出しゃばって欲しくなかったりする。</p>
<p>実際にそれまで使ってた Windows 7 でも “Microsoft Security Essentials” で必要十分な性能だったし <a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> でも同程度の性能を満たしていれば,今回はそれでよかったのだ。
それがこんなに面倒臭いとは思わなかった。</p>
<p>かといって malware 対策ソフトそのものに金銭は払いたくないし<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>,もうしばらく運用してから評価してみるですよ。</p>
<h2>ブックマーク</h2>
<ul>
<li>
<p><a href="https://www.tecmint.com/best-antivirus-programs-for-linux/">The 8 Best Free Anti-Virus Programs for Linux</a></p>
<ul>
<li><a href="https://news.mynavi.jp/article/20170420-a074/">Linux向けアンチウイルスソフト8選 | マイナビニュース</a></li>
</ul>
</li>
<li>
<p><a href="http://clamav-jp.osdn.jp/jdoc/clamav.html">Clam Antivirusに関するメモ</a></p>
</li>
<li>
<p><a href="https://help.ubuntu.com/community/ClamAV">ClamAV - Community Help Wiki</a></p>
</li>
<li>
<p><a href="https://hnakamur.github.io/blog/2018/05/21/setup-clamav-on-ubuntu-mate-18.04-lts/">ClamAVをUbuntu MATE 18.04 LTSにセットアップ</a></p>
</li>
<li>
<p><a href="https://lab4ict.com/system/archives/934">Ubuntu 18.04 LTS DesktopでClamAVによるウィルスチェックを実行 – LAB4ICT</a></p>
</li>
<li>
<p><a href="https://wiki.archlinux.org/index.php/ClamAV">ClamAV - ArchWiki</a></p>
</li>
<li>
<p><a href="https://www.sophos.com/en-us/products/free-tools/sophos-antivirus-for-linux.aspx">Free Linux Malware Scanner | Lightweight Agent for Linux Malware Detection and Removal | Sophos</a> : <a href="https://www.clamav.net/" title="ClamavNet">ClamAV</a> がダメそうならこっちにする(笑)</p>
</li>
<li>
<p><a href="https://qiita.com/gano/items/802519add83c524e3019">Ubuntu16.04(さくらVPS)で1からcronの設定をし、pythonプログラムを定期実行する - Qiita</a></p>
</li>
</ul>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>サービスのリスタートには <code>sudo systemctl restart clamav-daemon.service</code> とすればよい。 <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:2">
<p>ユーザ ID が分からない場合は <code>id username</code> とコマンドを打てば分かるだろう。 <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:3">
<p>はっきり言ってフェイク・ニュースなんかより Phishing ページなどセキュリティ・リスクの高いコンテンツに対する監視の方にもっとリソースを割いてほしいのだけど。かといって中間車攻撃で暗号通信を覗き見るなんてのは論外だが。 <a href="#fnref:3" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:4">
<p>Android 端末には <a href="https://www.f-secure.com/en/home/products/freedome">F-Secure 社の FREEDOME</a> を入れている。 FREEDOME 自体は VPN ソフトだが malware 対策機能も付いていて追跡コードもある程度ブロックしてくれる優れもの。実はこれの Linux 版があれば買ってもよかったのだがなかったのだ。仮想ネットワークについては I2P を試してみるか,と思っていたりする。 <a href="#fnref:4" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
</ol>
</div>