
UNIX Cafe 第113回
イントロダクション
サーバーのログを眺めていると、ときどき夜の住宅街に足音だけが続くような、不気味な気配に出会います。今回は複数サイトのログから、そうした「招かれざる客」の足跡が見えてきました。
検出された送信元IPは、ばらばらに見えて実はかなり整っています。「188.212.135.x」という同じ帯域に属するIPが、複数のホスト名に対して継続的に現れているのです。
これは偶然というより、ある程度まとまりを持ったスキャン活動と見る方が自然です。
現状分析
今回観測されたIPは次の通りです。
188.212.135.5, .15, .17, .20, .32, .39, .43, .51, .57, .59
188.212.135.21, .26, .29, .31, .35, .39, .42, .54, .55, .59注目すべきなのは、どちらのサイトにも 188.212.135.x という同じネットワーク帯域からアクセスが来ていることです。しかも .39 や .59 のように重複して現れているIPもあります。これは、広い意味で「同じ住所の一帯から順番に様子をうかがっている」ような動きです。
セキュリティの現場では、こうした挙動を組織的なスキャンとみなします。泥棒が一軒だけでなく、通りの家のドアノブを端から軽く回していくのに似ています。まだ侵入されたとは限りませんが、「鍵が甘い家がないか」を探している気配として十分に警戒すべきです。
技術解説
こういうとき、1つ1つのIPを全部個別に拒否設定することもできます。しかし、それではいたちごっこになりがちです。そこで使うのが /24 という考え方です。
188.212.135.0/24 と書くと、先頭24ビットが同じIPアドレス群をひとまとめにできます。IPv4アドレスは4つの数字の並びですが、それぞれが8ビットです。つまり先頭3区画は、「$8 \times 3 = 24$」 ビットです。だから /24 は、「最初の3つの数字が同じなら同じ仲間として扱う」という指定になります
たとえるなら、住所の「○○市△△町3丁目」までは同じなので、その丁目ごとまとめて見るようなものです。あるいは電話番号で言えば、下四桁だけ違っても、市外局番と局番まで同じなら同じまとまりとして扱う感覚です。怪しい着信がその範囲から何本も来るなら、下四桁を1つずつ拒否するより、もっと大きな単位で考えたほうが合理的です。
つまり今回なら、個別の .5 や .15 を並べて対処するより、「188.212.135.0/24」 という面で見るほうが、現実的で管理しやすい防御になります。
POSIXの哲学
この「まとめて扱う」発想は、CIDR(Classless Inter-Domain Routing)という仕組みに通じています。CIDRは、昔ながらの固いクラス分けよりも柔軟にネットワークを表現するために広まりました。必要な範囲を、必要なだけ、短く正確に書けるのが強みです。
ここにはPOSIXやUNIX文化が大事にしてきた「簡潔さ」があります。個別IPを10件、20件と並べるより、「188.212.135.0/24」 と1行で書けたほうが、人間にも読みやすく、機械にも優しいのです。
サーバーはアクセスのたびに「このIPは拒否対象か」を照合しますから、ルールが散らばりすぎるとCPUの比較回数も増えます。もちろん現代のCPUは高性能ですが、不要な照合を減らすのは、古典的でありながら今でも筋のよい設計です。
UNIXの道具が好まれる理由の1つは、「短く、意味が明快で、無駄が少ない」ことです。CIDRで帯域をまとめるやり方も、まさにその延長線上にあります。
結論
ログに現れたのは、点ではなく面として見える挙動でした。ですから守る側も、点ではなく面で考える必要があります。
個別IPだけを追いかける対策は、落ち葉を1枚ずつ拾うようなものです。風が吹けばまた散らばります。けれど /24 のように帯域で捉えれば、「この一帯からの不審な動き」をまとめて抑えられます。
今回の記録は、まさにその必要性を静かに教えてくれています。なるほど、だからこの設定が必要なのだ、と腑に落ちる場面ではないでしょうか。
🚫:Signal to Noise Ratio|静寂を乱す「招かれざる客」の記録


