政府のお仕事なのに、なぜ汎用ドメインを使ってしまうのか?

新型コロナ・ウィルス感染症対応の一環で始まった、中長期業や個人事業者向けに始まった持続化給付金の支給制度の方、サイトがオープンして申し込みが始まったみたいなんですが、相変わらずのお役所仕事というか

という、いつものパターンでサイトが作られたようです…。

この手のドメイン、 Web サイトが目的を達して閉鎖されたあとの管理が甘くて、ドメインの期限切れによって第三者に取得されてしまい、全く関係ない Web サイトに使われてしまう、ドメインが競売にかけられてしまう、ということが過去に起きているのも関わらず、ですよ。

観光庁では、3年前にプロジェクトを終了しており、正規サイトを2015年5月ごろに閉鎖。ドメインの利用を中止し、2016年3月にドメインの有効期限が切れ、その後第三者に取得されたという。

[From 【セキュリティ ニュース】旧政府サイトのドメインを第三者が取得 - なりすましサイトを発信(1ページ目 / 全2ページ):Security NEXT]

環境省などが実施していた「エコポイント制度」のドメイン(インターネット上の住所)がネットオークションに出品されていることが19日、分かった。制度を紹介する複数の中央省庁のサイトにリンクが残っており、このドメインを取得した第三者が政府サイトに成り済まして、アダルトサイトなどに誘導する可能性もある。

[From 「エコポイント」競売に=ドメイン、悪用恐れも-複数省庁サイトにリンク:時事ドットコム]

それってほんとに、攻撃だったんすかね…?

香川県でネット・ゲーム依存症対策条例の成立をめくって、このところ議論が活発に行われていましたが、残念ながら成立してしまいましたね。
個人的には、このたぐいの条例に関しては否定的な立場にいるわけですが、今回のエントリーはそっちに関してではなくて、この条例の採決の前後で香川県の Web サイトでアクセス障害が起きていたという件に関して。

ちょっと気になって調べてみたら、 Web サーバの手前に UTM 的な何かが設置されているっぽいんですよね、どうも…。

パスワードの扱いについて、中学の技術・家庭ではどう教えることになっているのだろう?

4 月頃になって、急に話題になった「パスワード定期変更不要論」ですが、

総務省は「国民のための情報セキュリティサイト」で昨年11月、パスワード流出やアカウントの乗っ取りなどがなければ「定期的な変更は不要」と記載を改めた。従来はパスワードの定期的な変更を求める内容だった。

[From ヤフーがパスワードの定期変更求める記載削除へ 総務省も「安全なもの」前提呼びかけ - ITmedia NEWS]

中学校では、パスワードに関する扱いを、どういうふうに教えることになっているんだろう?というのが気になって、息子が使っている技術・家庭の教科書を見せてもらったら、

注意点に「定期的にパスワードを変更する」という記述が。
まぁ、発行のタイミングもあるんで仕方がないのだろうなというのもわかるので、このあたりはガチガチに教科書通りに教えるのではなく、社会のトレンドにに合わせて指導していってもらえればと思うわけです。

息子の使っている教科書と違う会社のものだと、どうなってるんだろう?

教科書そのものは、複数の会社で発行しているので、「じゃあ、会社が変わると、どう変わるんだろう?」というのも気になって、発行されている教科書全てを閲覧できるところはないかと探してみると、いくつか存在しているを見つけた。

チャイルドフィルターを信用することが出来ない、いくつかの理由

サイバーセキュリティ財団が運営するサービスであるチャイルドフィルター、前のエントリも含めて何度か取り上げているわけですが、自分的に最も信用ならない点をまとめてみました。

チャイルドフィルターには、そもそも仕組み的な疑念点があるので、その点についても判りやすくまとめておきたいな、とは思うのですが…。

[From チャイルドフィルターとあんしんフィルター for ✕✕を比較してみた - Soukaku's HENA-CHOKO Blog]

「ソフトウェア」ではなく「サービス」である

サイバーセキュリティ財団は、チャイルドフィルターのことを「ソフトウェア」と説明しています。
しかし、実際にはソフトウェアはインストールさせることはなく、CSF が指定するVPNサーバと接続するための設定用プロファイルを読み込ませることで、 CSFの用意した VPN サーバと iPhoine/iPad の間でVPN 接続を行い、その VPN セッションを経由してプロキシーサーバを利用させる「サービス」というのが実態ですから、まずチャイルドフィルターの説明が実態と齟齬のある状態になっています。

VPN 接続であるゆえの懸念事項

VPN (Virtual Private Network) は、公衆網である Internet の上に通信路に対する暗号化を行い、擬似的な専用線接続環境を構築する技術です。外出先のネットワークを経由してノート PC から社内システムへ安全にアクセス出来るようにする、離れた拠点間でデータ送受信するのをインターネット経由で安全に行いたいといった場合に、そのノート PC と社内システムの間や拠点間の通信路の安全性を確保するために利用されることが多いものです。
実際、外出先から社内システムに接続するために VPN を利用しているという人は多いんじゃないでしょうか?

チャイルドフィルターとあんしんフィルター for ✕✕を比較してみた

1 年ほど前に書いた以下のエントリー。

なにしろ、現時点でチャイルドフィルターに関して提供されている情報は、Web にある説明ページが一つとマニュアルの PDF と利用規約の PDF だけ。HTTP/HTTPS の扱いもよく判らないブラックボックスなのに、 HTTP/HTTPS 以外の通信がどう扱われるのかは、まったく闇の中…。

[From ボクがチャイルドフィルターをオススメしない理由 - Soukaku's HENA-CHOKO Blog]

このところ、アクセス増えてるなぁ〜と思って、確認してみたら、

やっぱり、有意に増えている。
入学式や新学期を控えて、子供にスマホもたせようと考えている方々が、検索結果から辿りつたいのかしら?なんて思ってるんですが、そういやキャリアの提供しているフィルタリングサービスと、チャイルドフィルターの機能比較はやってなかったなぁ、ということでまとめてみた。

havp を我が家の Web アクセスの経路に組み込んでみた

ということで、前エントリーからの続き。

我が家のネットワーク環境については、さらにちょっと前のエントリーで既出なわけですが

我が家のネットワーク構成概要 2017/12/16版

概略としては上の図の通りで、 Web アクセスの流れだけを抜き出してみたのが、下の図。

Webアクセス時の経路

まぁ、まんまこの図の通り、家中の PC やスマホからの Web アクセスを内部サーバ上で動いている Squid に集約して、更にそれを VyOS で有効にした webproxy (これも Squid なわけだが)を上位プロキシにしている、というわけ。
で、内部サーバで動いてる Squid 周りの設定を変更して、インストール済みの havp を更に挟み込む、というのが今回の内容。

HAVP (HTTP Anti Virus Proxy) を利用してWebアクセスにもアンチウィルス

多分、自分が見落としていただけなのだと思うのだけど、 Web アクセス時のアンチウィルスを実現するためのものとして、 HAVP というのがあるのに気がついた。

Short Description

HAVP (HTTP Antivirus Proxy) is a HTTP proxy with an antivirus scanner. It supports the free ClamAV , but also commercial solutions e.g. Kaspersky, Sophos and F-Prot.

[From HAVP – HTTP Anti Virus Proxy – The Free HTTP Anti Virus Proxy]

プロキシとして機能して、ウィルスチェックについては ClamAV などを呼び出して実行するというもの、だそうで。

「子供たちにネット使わせるには、Web アクセスのタイミングでもウィルスチェックしたほうがいいんだろうなぁ…。」と漠然と考えていたんですが、どう実現させるかというとこまでは至っていなかったので、コレは渡りに船とばかりに試してみた次第。

インストールは、コマンド一発!

インストールはそんなに難しいものではなくて、 Debian の場合( jessie 以降)であればコマンドラインから "aptitude install havp" 一発で関連パッケージまで含めてインストール完了。

root@vhost01:~# aptitude install havp
以下の新規パッケージがインストールされます:
clamav{a} clamav-base{a} clamav-freshclam{a} havp libclamav7{a}
更新: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
アーカイブの 2,100 kB を取得する必要があります。展開後に 4,666 kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?]
取得: 1 http://debian-mirror.sakura.ne.jp/debian sid/main amd64 libclamav7 amd64 0.99.3~beta1+dfsg-4 [936 kB]
取得: 2 http://debian-mirror.sakura.ne.jp/debian stable/main amd64 havp amd64 0.92a-4+b2 [135 kB]
取得: 3 http://debian-mirror.sakura.ne.jp/debian sid/main amd64 clamav-base all 0.99.3~beta1+dfsg-4 [303 kB]
取得: 4 http://debian-mirror.sakura.ne.jp/debian sid/main amd64 clamav-freshclam amd64 0.99.3~beta1+dfsg-4 [362 kB]
取得: 5 http://debian-mirror.sakura.ne.jp/debian sid/main amd64 clamav amd64 0.99.3~beta1+dfsg-4 [364 kB]
2,100 kB を 0秒 秒で取得しました (3,778 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ libclamav7:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 381379 個のファイルとディレクトリがインストールされています。)
.../libclamav7_0.99.3~beta1+dfsg-4_amd64.deb を展開する準備をしています ...
libclamav7:amd64 (0.99.3~beta1+dfsg-4) を展開しています...
.../havp_0.92a-4+b2_amd64.deb を展開する準備をしています ...
havp (0.92a-4+b2) を展開しています...
以前に未選択のパッケージ clamav-base を選択しています。
.../clamav-base_0.99.3~beta1+dfsg-4_all.deb を展開する準備をしています ...
clamav-base (0.99.3~beta1+dfsg-4) を展開しています...
以前に未選択のパッケージ clamav-freshclam を選択しています。
.../clamav-freshclam_0.99.3~beta1+dfsg-4_amd64.deb を展開する準備をしています ...
clamav-freshclam (0.99.3~beta1+dfsg-4) を展開しています...
以前に未選択のパッケージ clamav を選択しています。
.../clamav_0.99.3~beta1+dfsg-4_amd64.deb を展開する準備をしています ...
clamav (0.99.3~beta1+dfsg-4) を展開しています...
clamav-base (0.99.3~beta1+dfsg-4) を設定しています ...
libclamav7:amd64 (0.99.3~beta1+dfsg-4) を設定しています ...
libc-bin (2.25-6) のトリガを処理しています ...
havp (0.92a-4+b2) を設定しています ...
グループ `havp' (グループ ID 138) を追加しています...
完了。
There is already /var/lib/havp/havp.loop, maybe from an earlier or custom installation, not building loopback-device
Job for havp.service failed because the control process exited with error code.
See "systemctl status havp.service" and "journalctl -xe" for details.
invoke-rc.d: initscript havp, action "start" failed.
● havp.service - LSB: HAVP virus-scanning HTTP proxy
Loaded: loaded (/etc/init.d/havp; generated; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2018-01-03 15:49:19 JST; 14ms ago
Docs: man:systemd-sysv-generator(8)
Process: 26029 ExecStart=/etc/init.d/havp start (code=exited, status=1/FAILURE)

1月 03 15:49:19 vhost01 systemd[1]: Starting LSB: HAVP virus-scanning HTTP proxy...
1月 03 15:49:19 vhost01 havp[26029]: Cleaning up /var/spool/havp... done
1月 03 15:49:19 vhost01 havp[26029]: Starting havp: Starting HAVP Version: 0.92
1月 03 15:49:19 vhost01 havp[26029]: LibClamAV Error: cli_loaddbdir(): No supported database files found in /var/lib/clamav
1月 03 15:49:19 vhost01 havp[26029]: One or more scanners failed to initialize!
1月 03 15:49:19 vhost01 havp[26029]: Check errorlog for errors.
1月 03 15:49:19 vhost01 havp[26029]: Exiting..
1月 03 15:49:19 vhost01 systemd[1]: havp.service: Control process exited, code=exited status=1
1月 03 15:49:19 vhost01 systemd[1]: havp.service: Failed with result 'exit-code'.
1月 03 15:49:19 vhost01 systemd[1]: Failed to start LSB: HAVP virus-scanning HTTP proxy.
E: Error starting service (could be due to port 8080 already in use), ignoring...
systemd (236-2) のトリガを処理しています ...
man-db (2.7.6.1-4) のトリガを処理しています ...
clamav-freshclam (0.99.3~beta1+dfsg-4) を設定しています ...
Created symlink /etc/systemd/system/multi-user.target.wants/clamav-freshclam.service → /lib/systemd/system/clamav-freshclam.service.
clamav (0.99.3~beta1+dfsg-4) を設定しています ...
systemd (236-2) のトリガを処理しています ...

と、インストール時に表示されるメッセージ、 havp のインストール後の起動のところで、エラーが出ている。

AppArmor に蹴躓く

11 月末ぐらいから、 bind9 のログが出力できないとか統計情報のファイルが作れないという状況になっていたのですが…。
ログに関しては syslog 経由で出すように設定変えて凌いだんですが、統計情報( rndc stats で出力されるやつ)が出力できないのが正常にならなくて、「 bind の設定いじってないのに、なんででなくなった?」と悩んでいたわけです。

で、今日。ふと思い立って出力ファイル名である named.stats をキーにして、/varlog/syslog に grep を実行してみたところ…。

Dec  6 10:20:14 nexus01 kernel: [927197.495080] audit: type=1400 audit(1512523214.458:3455): apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/var/log/bind9/named.stats" pid=13306 comm="named" requested_mask="ac" denied_mask="ac" fsuid=109 ouid=109
Dec 6 10:25:01 nexus01 kernel: [927484.822757] audit: type=1400 audit(1512523501.782:3456): apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/var/log/bind9/named.stats" pid=13306 comm="named" requested_mask="ac" denied_mask="ac" fsuid=109 ouid=109

apparmor って、コレかよ、原因は…。 orz

「何かの依存関係で、インストールされてたなぁ…」というのは、微かに記憶の片隅にあったのだけど、これが原因になっていたとは、予想だにせず。
パッケージのインストールログ( /var/log/aptitude )を漁ってみたら、確かにインストールしてるし、bind のログ出力周りがおかしくなったタイミングとインストールした日時が、ほぼ合致しているので、間違いなく AppArmor をインストールしたことの影響だったようです。

Aptitude 0.8.10: log report
Fri, Nov 24 2017 14:42:09 +0900

IMPORTANT: this log only lists intended actions; actions which fail
due to dpkg problems may not be completed.

Will install 8 packages, and remove 0 packages.
252 MB of disk space will be used
========================================
[HOLD, DEPENDENCIES] openssl:amd64 1.1.0f-5
[HOLD] libssl1.1:amd64 1.1.0f-3
[INSTALL] apparmor:amd64 2.11.1-3
[INSTALL] linux-compiler-gcc-7-x86:amd64 4.14-1~exp1
[INSTALL] linux-headers-4.14.0-trunk-amd64:amd64 4.14-1~exp1
[INSTALL] linux-headers-4.14.0-trunk-common:amd64 4.14-1~exp1
[INSTALL] linux-image-4.14.0-trunk-amd64:amd64 4.14-1~exp1
[INSTALL] linux-kbuild-4.14:amd64 4.14-1~exp1
[UPGRADE] libmariadbclient18:amd64 1:10.1.29-5 -> 1:10.1.29-6
[UPGRADE] mariadb-common:amd64 1:10.1.29-5 -> 1:10.1.29-6
========================================

Log complete.

===============================================================================

# bind9 側に何か変更があった?と思って調べてたんだけど、そちらは全部ハズレだったよ。

Rspamd の設定を細かくやってみる - 力技で正規表現フィルタリング

正規表現でのフィルタリング、「一応」出来るようになったので、メモとして残しておく。

modules.d ディレクトリの中を見ると、 SpamAssassin と連携するための spammassassin.conf や メールヘッダや本文中の文字列を正規表現で引っ掛けるための regexp.conf といったものがあるので、このあたりを使いこなせれば更に検知精度が上げられそうです。正規表現での検知は、実際には Rspamd デフォルトのものが有効化されているので、使われていないわけではないんですけど。

[From Rspamd の設定を細かくやってみる - Soukaku's HENA-CHOKO Blog]

但し、「正しい」方法ではないので、参考にしたいという方は、その点自己責任でお願いします。

本来の「正しい」設定方法

/etc/rspamd/local.d/regexp.conf というファイルを作って、そこにブロックしたいメールのヘッダ情報から、フィルタしたい条件を正規表現で記述します。

nexus01:/etc/rspamd# more local.d/regexp.conf
--
config['regexp']['RECEIVED_worldstream'] = {
re = 'Received=/ customer\\.worldstream\\.nl/i',
score = 2.5,
group = 'header'
}

--
config['regexp']['RECEIVED_93034net'] = {
re = 'Reveived=/\\.93034\\.net/i',
score = 2.5,
group ='header'
}

それが終わったら、rspamadm コマンド使って、フィルタしたい内容が認識されているところ確認して〜、と書きたいところなんですが、これが上手くいかない。
ドキュメント通りに設定書いてるのに、local.d/regexp.conf の記述内容が反映されない…。反映されなので、正しく記述できているのかもわからないという困った状況に陥ってしまいました。

サイバーセキュリティ財団の ZERO DAY を読んでみた

「大手書店、コンビニで発売中」と謳っているにも関わらず、東京だと Amazon 以外での入手経路のないサイバーセキュリティ財団の ZERO DAY 。遅ればせながら入手したんで、読んでみて感じたことなど。

自分的に気になったのは、Capter03 で取り上げられている WordPress の脆弱性について。
WordPress のインストールから、実際にページの不正な書き換え手法についてまでが書かれているわけですが、そのパートの最後のほうに


また、このグループ名で検索するとまだ書き換えられたことに気づかず放置されているサイトが見受けられます。被害サイトは日本のサイトもまだ多く含まれます。

とか、対応策として

WordPressのバージョンを最新のバージョンへアップデートを行ってください。

という記述があるんですがね…。
財団メンバーのサイトが、記事に記載されている手法でと思われる改竄被害を受けていた上に、

未対策なままサイトが再公開されて、再び改竄されるという被害を受けていたのを見つけてしまった自分としては、「ZERO DAY に書いたことすら、財団メンバーのサイトで実践出来てないのかよ…。」と微妙な気持ちになるわけですが…。(ちなみに、 Capter03 を書いたのは、財団理事の一人である田口氏…。)