[サーバ] お行儀の悪いアタック国ランキング

  • このエントリーをはてなブックマークに追加
  • LINEで送る
この記事は 2019年2月4日 に書かれたものです

前回の続きです。
狙われやすいアカウント名ランキングに続きまして、どこの国からアタックを受けているかも調査してみました。…まぁなんとなく結果はわかっていましたが、数値化するのが大事ですよね!(虚空を見つめがら)

結果発表

IPアドレス単位

#カウントIPアドレス国CD国名
143,148218.92.1.163CN中国
243,14758.242.83.7CN中国
343,147218.92.1.174CN中国
443,147218.92.1.173CN中国
531,139112.85.42.196CN中国
627,063218.92.1.181CN中国
721,800112.85.42.238CN中国
820,223112.85.42.197CN中国
913,908218.92.1.172CN中国
1010,678112.85.42.232CN中国
119,605112.85.42.233CN中国
128,584112.85.42.151CN中国
136,73558.242.83.17CN中国
146,666193.201.224.216UAウクライナ共和国
153,559122.194.229.49CN中国
163,359112.85.42.231CN中国
173,228112.85.42.193CN中国
182,558101.91.215.199CN中国
192,548101.91.215.80CN中国
201,818188.92.77.235LVラトビア共和国
211,505122.194.229.18CN中国
221,483106.13.34.94CN中国
231,209188.92.75.248LVラトビア共和国
2498059.46.135.42CN中国
25828146.0.228.106DEドイツ連邦共和国
26719206.189.149.126SGシンガポール
27606112.85.42.235CN中国
2857554.169.36.191SGシンガポール
29408185.246.128.25SEスウェーデン王国
30402103.207.38.197VNベトナム

国単位

#行ラベル合計 / カウント割合
1中国353,34187.5079%
2アメリカ合衆国8,1282.0130%
3ウクライナ共和国6,9391.7185%
4フランス共和国4,7291.1712%
5ラトビア共和国3,0390.7526%
6シンガポール2,8930.7165%
7ドイツ連邦共和国2,2700.5622%
8インド1,9750.4891%
9ロシア1,6290.4034%
10大韓民国1,5040.3725%
11ブラジル連邦共和国1,4430.3574%
12イギリス1,3460.3333%
13オランダ王国1,1760.2912%
14カナダ9220.2283%
15ベトナム8990.2226%
16インドネシア共和国8570.2122%
17イタリア共和国6880.1704%
18ポーランド共和国6340.1570%
19コロンビア共和国6260.1550%
20スウェーデン王国5250.1300%
21日本4940.1223%
22メキシコ合衆国4830.1196%
23香港4450.1102%
24中華民国4410.1092%
25アルゼンチン共和国4280.1060%
26タイ王国3880.0961%
27スペイン2760.0684%
28イラン・イスラム共和国2220.0550%
29南アフリカ2150.0532%
30マレーシア2110.0523%

結論

中国からのアクセスをブロックすれば80%以上のアタックを防げる結果になりました\(^o^)/

ちなみに日本からのアタックは494件、0.1223%でした。

- Sponsored Link -

集計方法

IPアドレスの割当国を見つける

geoip-countryというNode.jsのモジュールを利用しました。こちらはMaxMindから提供されているフリーのデータを利用しているようです。

インストール

$ mkdir geoip; cd geoip
$ npm install geoip-country
$ node node_modules/geoip-country/scripts/updatedb.js

最後の行はMaxMindの国データをネットワーク越しに取得するスクリプトです。便利ですねー。

集計元データの準備

$ sudo grep Failed /var/log/secure* | gawk 'match($0,/from (.*) port/,a){print a[1]}' | sed 's/invalid user //' | sort | uniq -c | sort -nr > ip.txt

ip.txtをEXCELで開いてタブ区切りテキストで保存し直しました。若干の敗北感がありますが気にしない方向でお願いしますw このip.txtを先ほど作成したgeoipフォルダに放り込みます。

この時点では以下のようなデータとなっています。

$ head ip.txt
43148   218.92.1.163
43147   58.242.83.7
43147   218.92.1.174

集計スクリプト

雑なコードで恐縮ですw

/**
 * ipsearch.js
 */
const geoip = require('geoip-country');
const fs = require('fs');

let buff = fs.readFileSync("./ip.txt", {encoding: "utf-8"}).split(/\r\n/);
for(let i=0; i<buff.length; i++){
  let [count,ip] = buff[i].split(/\t/);
  let geo = geoip.lookup(ip);
  let country = ( (geo!== null) && ("country" in geo) )?  geo.country:null

  console.log([count, ip, country].join("\t"));
}

あとは実行するだけです。

$ node ipsearch.js
43148   218.92.1.163    CN
43147   58.242.83.7     CN
43147   218.92.1.174    CN

全件データ

IPアドレス単位

国単位

補足

あくまでアクセス元のIPアドレスですので、他国を踏み台にしてリクエストしてきている可能性がありますのでご注意を。
また、中国からのアクセスが膨大で霞んで見ているだけで、アメリカやウクライナなど上位の国のリクエスト数も尋常じゃないですw

セキュリティのためのログ分析入門 サイバー攻撃の痕跡を見つける技術 (Software Design plusシリーズ)
折原 慎吾 鐘本 楊 神谷 和憲 松橋 亜希子 阿部 慎司 永井 信弘 羽田 大樹 朝倉 浩志 田辺 英昭
技術評論社
売り上げランキング: 15,209

コメント

コメント欄は休止中です。お問い合わせはこちらからどうぞ。ご質問はTwitterにリプを投げてください。

このブログを応援する

お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。

PayPal(ペイパル)
PayPalで300円支払う
※金額は任意で変更できます。
※100円でも泣いて喜びますw
※住所の入力欄が現れた場合は「no needed」を選択ください
これまでのご協力者さま
- Sponsored Link -