インターネットの通信は、単にIPアドレスだけで動いているわけではありません。
その裏側には ASN(Autonomous System Number) という仕組みがあり、これが世界中のネットワークをつないでいます。
本記事では、
- ASNとは何か
- なぜ存在するのか
- セキュリティ運用でどう役立つのか
を順番に解説します。
ASNとは何か
ASNは:
インターネット上の「組織単位の番号」
です。
もう少し正確に言うと:
独立したネットワークを運用する組織に割り当てられる識別番号
です。
例えば:
| 組織 | ASN |
|---|---|
| Amazon AWS | AS14618 |
| AS15169 | |
| Microsoft | AS8075 |
| NTT | AS2914 |
IPアドレスが「端末の住所」だとすると、ASNは「プロバイダや企業の名前札」
のようなものです。
なぜASNが必要なのか
インターネットは巨大なネットワークですが、実態は無数のネットワーク同士の集合体です。
各プロバイダ、クラウド事業者、大学、企業はそれぞれ独立したネットワークを持っています。
この独立した単位をAutonomous System(AS)
と呼びます。そしてその識別番号が ASNです。
郵便で例えると
- IPアドレス = 家の住所
- ASN = 市区町村
と考えていただくと分かりやすいでしょう。
郵便物はまず「市区町村」に届き、そこから各家庭へ配送されます。
インターネットでも:
- まずAS単位でルーティング
- その中でIP単位に配送
という仕組みになっています。
BGPとASN
ASNが本領を発揮するのは:
- BGP(Border Gateway Protocol)
というルーティングプロトコルです。
BGPは「どのネットワークがどのIPを持っているか」
を世界中で共有する仕組みです。
例えば:
このIPレンジはAS14618(Amazon)が持っています
という情報を各AS同士が交換しています。
これによって世界中のルータが最適な経路を選べる
ようになります。言い換えるなら、ASNとBGPがなければ、現在の規模のインターネットは成立しません。
セキュリティ運用でのASNの意味
サーバーログを見ると攻撃IPがどこから来ているかを知りたくなりました。
そこで、ASN単位でみることにしました。
なぜ運用者はASNを見るのか
筆者が運用しているVPSはONE OUTSという独自防御システムを敷いていますが、ここでの防御は
- IP単体BAN
- ASN単位防御
なぜなら、多くの攻撃者は海外の規制が緩いプロバイダ/組織を隠れ蓑にしています。
- 利用の際に厳格な身分証明がなく
- 当局の規制が緩い(どころかそういう行為を推奨している
(『鬼平犯科帳』で言うなら「盗人宿」の概念です。
実際の例
では、そういったASNをどのように調べるのか?
Linuxでは使いやすいコマンドが存在します。
whois -h whois.cymru.com " -v 8.8.8.8"
と打ってみます。(言わずと知れたGoogleのDNSです
AS | IP | BGP Prefix | CC | Registry | Allocated | AS Name
15169 | 8.8.8.8 | 8.8.8.0/24 | US | arin | 2023-12-28 | GOOGLE - Google LLC, US
- ASN
- 国
- 事業者
- IPレンジ
が見えてきたという次第。これをサーバのログから調べるのはかなり困難なので、以下のようなワンライナーを組んでみました。
エラーログからIPを抽出し、一意にソートしてWHOIS情報(AS番号、国、事業者名)を取得します。
grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' /var/log/apache2/web_server_error.log \
| sort -u \
| while read ip; do
whois -h whois.cymru.com " -v $ip" | tail -n1
done
以下、無害化した解析結果テーブルです。(無害化に関してはAIの力を借りています
AS | IP | BGP Prefix | CC | Registry | Allocated | Info (Sanitized)
--------|------------------|---------------------|----|----------|------------|-------------------------------------------
58466 | 106.75.x.x | 106.75.144.0/20 | CN | apnic | 2011-03-23 | Major ISP / IDC Network (CN)
4837 | 123.139.x.x | 123.138.0.0/15 | CN | apnic | 2007-02-28 | China Network Backbone
8075 | 13.86.x.x | 13.64.0.0/11 | US | arin | 2015-03-26 | Global Cloud Service Provider (MS)
14061 | 144.126.x.x | 144.126.208.0/20 | US | arin | 2020-01-09 | Cloud Hosting / VPS Provider (DO)
212238 | 149.40.x.x | 149.40.50.0/24 | US | arin | 1992-01-28 | International Content Delivery Network
396982 | 162.216.x.x | 162.216.150.0/24 | US | arin | 2013-07-02 | Global Cloud Infrastructure (G)
51167 | 173.212.x.x | 173.212.224.0/20 | DE | ripencc | 2009-10-26 | European VPS/Dedicated Server Provider
211298 | 185.247.x.x | 185.247.137.0/24 | GB | ripencc | 2018-03-01 | Cyber Security Research Entity
213412 | 195.184.x.x | 195.184.76.0/24 | FR | ripencc | 2022-11-09 | Internet Scanning & Security Platform
398324 | 206.168.x.x | 206.168.34.0/24 | US | arin | 2022-10-26 | Global Threat Intelligence Scanner
14618 | 34.224.x.x | 34.224.0.0/12 | US | arin | 2016-09-12 | Global Cloud Services (AWS)
132203 | 43.153.x.x | 43.153.0.0/18 | SG | apnic | 1989-02-21 | Asia-Pacific Cloud Network (T)
6939 | 65.49.x.x | 65.49.0.0/17 | US | arin | 2007-10-04 | International Internet Backbone Provider
200593 | 91.202.x.x | 91.202.233.0/24 | RU | ripencc | 2008-03-03 | Eastern European Network Services
注意点
ログが数万行に及ぶ環境ではこの解析は膨大なものになります
head -50 /var/log/apache2/web_server_error.log | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' \
| sort -u \
| while read ip; do
whois -h whois.cymru.com " -v $ip" | tail -n1
done
とした方が良いでしょう。
まとめ
こうして、ASNを調べることができれば、先に示した「悪辣な攻撃を行うクローラー/攻撃者が潜む盗人宿」的な事業体/ASNという、「盗人宿」ごとの対策が容易に行えます。
悪を知らぬものが悪を取り締まれるか
という「鬼平」の言葉を元にログを調べていく手法について紹介しました。
コメントを残す