防御したIPアドレスのクラスタマップ[Cyber Defense Map]

<Cyber Defense Mapはここ>

概要

我が家のWebサーバやMailサーバに対するアクセスを解析し、あやしいアクセスをFWで自動防御し、そのIPアドレスを記録してます。そして、2022年12月から情報を表示しています。(2022年12月は、今の記録フォーマットになった時期です。記録自体はサーバ導入時からしてるんですけど、データクリーニングが面倒くさいので除外しました。)

そして、それらのIPアドレスの位置情報をクラスタマップにリアルタイムで表示しています。GWの空いた時間にツールを作成し、今日から公開するようにしました。

(補足、IPアドレス、位置情報については特定や攻撃の参考用などに悪用されちゃいけないので少し補正をかけています。リアルタイムといいながら、そこまであやしいアクセスがあるわけではないので、実際は日に数件程度しか更新されていない感じです。😅)

興味のあるところは、戦争や紛争、政治的イベントとかが始まると関連する場所のIPアドレスが増えてくる傾向があったりします。それらを除くと、海外のデジタル化が進んでいる国ほど多くなっていますね。そういった活動があるのかなぁ?不思議なのは、あっても良さそうな某弾道ミサイル国からのアクセスが無いですね。他には、よく調べてないのですが、もしかすると、ほとんどのアクセスがTor(The Onion Router)やVPNの出口からのアクセスかもしれないですね。

 今思えば、機能として対象期間の指定ができたらよかったななんて思っています。(近い将来、検索できる機能を追加しようと思います。ほかの情報もログに記録しているので、どのような攻撃方法だったのかをデータベースを閲覧できる機能とかいいですね。その他、今はFWの機能で自動的に防御している下位レイヤのアクセスについては対象外にしてますけど、将来はそれも地図表示に追加したいと思ってます。)

仕組み

(バックエンド)

メールやWebのアクセス異常(HTTPレスポンスのステータスが400以上のものが連続するとか、メールの認証エラーや拒否とかが、一定時間で閾値を超えるものや、外部への通信が長時間持ちきったものとか、あと、まれに誤検知があったり😅)が発生したらそのIPアドレスから位置情報を含む詳細情報をipinfo.ioで調べて、自分にメール通知するのと同時にJSON形式で記録しています。

(フロントエンド)

保存したJSON形式の情報を地図(Mapbox)を利用したJavaScriptのアクティブページから参照するようにしています。細かい仕組みはソースコードやJSONデータを参照していただければと思います。ちょっと残念なのが、同時にクラスター攻撃されたものがネットワークアドレスで記録しているので、一つの情報になったり、別の時期で同じエリアからの攻撃が同じ位置になってしまって、一つしか表示できないなどの改善点があります。(その他、相手情報の保護の観点で、相手について特定につながるような情報は、除外してます。)

2024.05.26に表示機能を改善しました。詳細は(ここ

この地図は、サービス(Mapbox)を利用しているんだけど、月あたりの表示数が一定数を超えると課金されちゃうので、アクセスキーが悪用されちゃいけないように、その対策で定期的にリフレッシュしなきゃいけないのが面倒くさいのと、それとは別にアクセスが一定量を超えると、自動的にページリンクの変更や一時的閉鎖をする機能を追加しました。(ちなみに利用しているIPジオロケーションサービスのipinfo.ioも月あたりの上限があります。)

2024.06.01に表現を一部変更しました。

Attackという言葉をDefenseに、ブロックという言葉を防御に変更しました。ちょっとしたこだわりです😛。ファイル名については、変更しなかったので、リンクには影響ありません。(そこはこだわらんのんかい‼️🤣)

注意事項

一応ですけど、リンク(ブックマーク🔖)する場合は、リンク切れを防ぐために直接ではなく、このブログページかホームページからのリンクを保存したほうが良いです。(リンク切れは404エラーとなり、連続して閾値を超えるとFWで接続を遮断してしまいます。)

これまで

昨年の1月に使い始めたばかりのChatGPTで調べたりして、検討したことがあるんだけど、今回は、結局全然違う構成になってしまった😅。

一回目の検討(2023/1/3)はここ

二回目の検討(2023/1/7)はここ

この時検討した内容は構成もプログラムもだいぶ漠然とした感じだったんだけど、最近のChatGPTは、すごく詳しく教えてくれるようになって、いろんなサービスを教えてくれたので、想定より簡単に導入することができた。でも、どのサービスがいいのかまだよくわかっていないので、今の機能(位置が思ってるよりズレている模様)も含め比較検討して、今後、どれを組み込むかを検討する予定。

アクセス分析(参考)

アクセス分析して異常検知するプログラムは、以下の文献を参考にしました。その他は過去の自分の経験とかです。これまでもbashのツールで監視や分析をしているだけど、今回の見直しのタイミングでだいぶ問題点が見つかったので、いい機会となった。まだまだ勉強不足だけど、、、

ArcLayer

なんだかカッコいいんだけど、今度、時間があるときにこのパターンに変える(追加する)かなぁ、データ構造を変更する必要があるんだけど、改造のタイミングだったらちょうど良さそう。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA