つきまといアクセスの排除完了

  1. 現状

2025年7月下旬頃から、特定の組織的な挙動に起因する可能性がある不審なアクセスが継続していました。
これに対し、先日新たに攻撃ログ収集用のサーバーを構築したことで、本ブログを含む正規サイトの運用を「国内限定」に制限しつつ、不審な挙動を分離・監視できる体制が整いました。

そもそも、私のサーバーには外部からのアクセスは極めて限定的です。
そのため、攻撃ログの観測・分析そのものが運用上の主要な意義となっていますが、国内限定とした場合、これらのアクセスも同時に遮断されてしまいます。

そこで、攻撃ログの観測・分析専用サーバーを別IPで構築することにより、正規サイトを国内限定とすることによるデメリットを補完する構成としました。

現在の正規サイト用ルーター構成では、iptables を用いて以下のように防御を構築しており、海外VPS経由の「つきまといアクセス」は事実上排除されています。
本運用は、今後も恒久的な措置として継続する予定です。

Chain INPUT (policy DROP 2198 packets, 142K bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     114K   19M ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2     4572  519K ACCEPT     0    --  br0    *       0.0.0.0/0            0.0.0.0/0
3      750 34579 DROP       0    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            match-set firehol_level1 src
4      451 22657 DROP       0    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            match-set firehol_level2 src
5     1521 82559 DROP       0    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            match-set firehol_level3 src
6        0     0 ACCEPT     17   --  ppp0   *       0.0.0.0/0            0.0.0.0/0            state NEW udp dpt:500
7        0     0 ACCEPT     17   --  ppp0   *       0.0.0.0/0            0.0.0.0/0            state NEW udp dpt:4500
8        2    80 ACCEPT     17   --  ppp0   *       0.0.0.0/0            0.0.0.0/0            state NEW udp dpt:1194
9        0     0 ACCEPT     0    --  lo     *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     229K  154M ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2       49  2060 DROP       0    --  ppp0   br0     0.0.0.0/0            0.0.0.0/0            match-set firehol_level1 src
3       57  2924 DROP       0    --  ppp0   br0     0.0.0.0/0            0.0.0.0/0            match-set firehol_level2 src
4       66  3448 DROP       0    --  ppp0   br0     0.0.0.0/0            0.0.0.0/0            match-set firehol_level3 src
5        0     0 DROP       6    --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            tcp dpts:137:139
6        0     0 DROP       17   --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            udp dpts:137:139
7        5   260 DROP       6    --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            tcp dpt:445
8        0     0 DROP       17   --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            udp dpt:445
9        0     0 DROP       6    --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            tcp dpt:111
10       0     0 DROP       17   --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            udp dpt:111
11    4384 2676K ACCEPT     0    --  br0    ppp0    192.168.1.0/24       0.0.0.0/0
12       0     0 DROP       0    --  ppp0   br0     0.0.0.0/0            192.168.1.1          match-set other_block src
13      22  1320 DROP       0    --  ppp0   br0     0.0.0.0/0            192.168.1.1          match-set gcloud src
14       0     0 ACCEPT     6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:22 match-set jpnet src
15       2   112 ACCEPT     6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:25
16       0     0 ACCEPT     6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:80 match-set jpnet src
17       2   120 ACCEPT     6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:80 match-set searchengines src
18       0     0 ACCEPT     6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:443 match-set jpnet src
19     134  7784 ACCEPT     6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:443 match-set searchengines src
20       0     0 ACCEPT     6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:587 match-set jpnet src
21       0     0 ACCEPT     6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:993 match-set jpnet src
22      10   500 DROP       6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:22
23      47  2764 DROP       6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:80
24      83  4528 DROP       6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:443
25       2    96 DROP       6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:587
26       1    52 DROP       6    --  ppp0   br0     0.0.0.0/0            192.168.1.1          tcp dpt:993

Chain OUTPUT (policy ACCEPT 118K packets, 8744K bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     0    --  *      lo      0.0.0.0/0            0.0.0.0/0

・ipset の内容
firehol_level1~3 : FireHOL で公開されているブラックリストを DROP
jpnet : 日本国内からのアクセスのみ許可
searchengines : 主要サーチエンジンのみ許可

  1. 個人情報の取り扱いに関する問題点

今回の事象の経緯として、元職場からのメールアドレス漏洩が発端である可能性を疑っています。
仮にこれが事実であれば、相手方の行為には以下のような法的・倫理的懸念が存在します。

特に問題と考えるのは、業務上の権限や設定を通じて取得した個人情報(メールアドレス等)を、個人の動向を監視する目的で利用している点です。
このような行為はコンプライアンスの観点から極めて不適切であり、以下の問題を含むものと考えられます。

・個人情報保護法への抵触(目的外利用の禁止)
企業が取得した個人情報は、あらかじめ特定された利用目的(業務連絡等)の範囲内でのみ取り扱われるべきものです。
これを私的な監視や動向把握に流用することは、同法における「利用目的による制限」に抵触するおそれがあります。

・内部統制およびガバナンスの欠如
管理権限を私的目的で行使できる状態は、組織としてのガバナンスが機能していないことを示唆します。
ITリソースの私的利用や職権乱用は、企業の社会的責任(CSR)を問われる重大な背信行為に該当し得ます。

・プライバシーの侵害と法的リスク
特定の個人情報を起点として通信環境や行動を追跡する行為は、私生活の平穏を脅かすものであり、看過できない問題です。
法的リスクを伴う不適切な介入と言わざるを得ません。

もし相手方が本記事を目にすることがあれば、自身の行為が内包するリスクについて、改めて認識されることを望みます。

  1. 最後に

長期間にわたり、私のサーバーに対して貴重なリソースと時間を費やしていただき、お疲れ様でした。

海外VPSまで契約して「つきまとい」に尽力された点については敬意を表しますが、
今後はその技術と労力を、自社の脆弱性診断やコンプライアンス体制の強化に向けられることを推奨します。

本環境はこれにて「完全密室」となりました。
これ以上、出口のないパケットを送り続ける必要はありません。

どうぞ、ゆっくりとお休みください。