この記事の続きです。
シェルスクリプトによって、スペースで区切られただけのIPアドレスをリスト化することに成功したので、
192.168.1.2
192.168.1.3
172.28.1.3
172.28.1.5
...
といったIPアドレスのリストを
2, 192.168.1.0/24
2, 172.28.1.0/24
というように、/24で区切ったアドレス帯と件数を表示するスクリプトをchatGPTに作成いただきました。
スクリプト内容
- network-address-count.sh
#!/bin/bash
# ファイルのパスを引数として受け取る
file_path=$1
# ファイルが存在するかを確認する
if [ ! -f "$file_path" ]; then
echo "指定されたファイルが見つかりません。"
exit 1
fi
# ネットワークアドレスごとにIP数をカウントして表示
awk -F. '{print $1"."$2"."$3".0"}' $file_path | sort | uniq -c | while read count address; do
echo "$count, $address/24"
done
あとは実行権を付与します。
スクリプトの動き
./network-address-count.sh /path/to/log/file
# 上述のリンク先でのログファイルを指定します。
結果
2, 71.6.146.0/24
1, 71.6.158.0/24
1, 71.6.199.0/24
11, 71.6.232.0/24
のように、攻撃をしてきたIPアドレスをネットワークアドレスごとにカウントすることができました。
これは、今後の防御手段をしる手段として有効です。