はじめに
不審なアクセス元IPの素性を、whois だけで読み解くための入門資料です。
対象: whois をこれから使う初級セキュリティ担当者
ねらい: 手動操作の手順 + その理由を理解する
目次
- whois とは何か/なぜ使うのか
- 準備(インストールの確認)
- 基本: 1つのIPを調べる
- 出力の読み方(主要フィールド)
- 「最小範囲のサブネット」を手で求める
- 要注意: 移管・プレースホルダの見分け方
- 別レジストリに聞き直す(
-hの使い方) - 国コードの落とし穴
- 手動調査チェックリスト
- 用語集
- 注意事項・倫理
1. whois とは何か/なぜ使うのか
whois(フーイズ) は、ドメイン名やIPアドレスの「登録情報」を問い合わせる仕組みです。
セキュリティ業務では、ファイアウォールのログなどに出てきた不審なアクセス元IPアドレスが、どの組織・国に割り当てられているか、どの範囲(サブネット)に属しているかを調べるために使います。
💡 なぜ「1つのIP」ではなく「サブネット(範囲)」を知りたいのか
攻撃者は同じ割り当て範囲の中で別のIPに乗り換えて攻撃を続けることがよくあります。
1つのIPだけをブロックしても回避されますが、そのIPが属する範囲(例:203.0.113.0/24)ごと対処を検討できれば、より効果的にリスクを下げられます。だから「所属する最小範囲のサブネット」を確認します。
IPアドレスは誰が管理している?
世界のIPアドレスは、地域ごとのレジストリ(RIR) が分担して管理しています。
whois に問い合わせると、その地域のRIRのデータベースが応答します。
| RIR | 担当地域 | whois サーバ |
|---|---|---|
| ARIN | 北米 | whois.arin.net |
| RIPE NCC | 欧州・中東・中央アジア | whois.ripe.net |
| APNIC | アジア太平洋 | whois.apnic.net |
| LACNIC | 中南米・カリブ | whois.lacnic.net |
| AFRINIC | アフリカ | whois.afrinic.net |
日本のIPはAPNICの下部組織 JPNIC(whois.nic.ad.jp)が扱います。
2. 準備(インストールの確認)
多くの環境には whois コマンドが標準で入っています。まず動くか確認します。
# インストール済みか確認(パスが表示されればOK)
which whois
# 入っていない場合(Debian / Ubuntu 系)
sudo apt-get install -y whois
Windows では標準で入っていないため、Microsoft Sysinternals の whois.exe を使うか、WSL(Linux環境)から実行するのが簡単です。
3. 基本: 1つのIPを調べる
調べたいIPアドレスを whois の後ろに付けるだけです。
# 書式
whois 調べたいIPアドレス
# 例
whois 216.73.216.191
💡 なぜサーバを指定しなくても答えが返るのか
whois IP(サーバ指定なし)は、whoisクライアントが「そのIPはどのRIR管轄か」を自動で判断し、適切なサーバへ転送してくれます。
まずはこの形で十分です。自動転送がうまくいかない例外的なケース(第6章)だけ、手動でサーバを指定します。
4. 出力の読み方(主要フィールド)
whoisの出力は項目(フィールド)の羅列です。RIRごとに項目名が少し違いますが、見るべき場所はほぼ決まっています。下の表の項目だけ拾えば十分です。
| 見るフィールド | 意味 | 使うRIR |
|---|---|---|
inetnum |
割り当てられたIPの範囲(開始 − 終了) | RIPE / APNIC / LACNIC / AFRINIC |
NetRange |
同上(範囲) | ARIN |
CIDR |
範囲を x.x.x.x/y 形式で表したもの |
ARIN |
route |
インターネットに経路広告されている範囲(多くは大きめ) | 各RIR |
netname |
その範囲の名前(用途のヒント。例 GOOGLE-CLOUD) |
各RIR |
country |
登録上の国コード(ISO 2文字) | 各RIR |
OrgName / org-name / owner
|
保有する組織名 | 各RIR |
実際の出力例(抜粋)
# whois 216.73.216.191 の抜粋
NetRange: 216.73.208.0 - 216.73.219.255
CIDR: 216.73.208.0/21, 216.73.216.0/22
NetName: AMAZO-4
OrgName: Amazon.com, Inc. (AMAZO-4)
Country: US
これだけで「このIPは 216.73.216.0/22 という範囲に属し、米国(US)の Amazon 社の割り当て」と読めます。
5. 「最小範囲のサブネット」を手で求める
1回のwhoisで複数の範囲が返ることがよくあります。大きな親の区画と、その中の小さな子の区画の両方が表示されるためです。
調査では、そのIPを含む中で“いちばん小さい範囲” を選びます。
💡 なぜ「いちばん小さい範囲」を選ぶのか
大きな範囲(例/13)は通信事業者全体を指し、無関係な利用者を大量に含みます。
小さな範囲(例/24)の方が実際の利用者・組織に近く、巻き添えが少ない。
対処や原因特定の精度を上げるため、最も具体的(最小)な範囲を採用します。
手順
- 出力から範囲を表す行をすべて拾う
inetnum/NetRange/CIDR/routeの行を全部見ます。 - 「数字 / 数字」の右側(プレフィックス長)を比べる
/8より/24の方が範囲は狭い。スラッシュの後ろの数字が大きいほど小さい範囲と覚えます。 - 調べているIPを含むものの中で、最も数字が大きいものを選ぶ
これが「所属する最小範囲のサブネット」です。
プレフィックス長と範囲の大きさ
| 表記 | 含まれるアドレス数 | イメージ |
|---|---|---|
/8 |
約1,677万 | 非常に大きい(国・大事業者級) |
/16 |
65,536 | 大きい |
/24 |
256 | 小さい(よくある最小単位) |
/28 |
16 | とても小さい |
例: 複数候補から選ぶ
# 同じIPに対し2つの範囲が返った例
CIDR: 216.73.208.0/21 ← /21(大きい・親)
CIDR: 216.73.216.0/22 ← /22(小さい・子)★こちらを採用
どちらも 216.73.216.191 を含みますが、より小さい /22 を選びます。
⚠️ range(開始−終了)しか無いときは?
inetnum: 125.205.128.0 - 125.205.255.255のように範囲で書かれている場合、これは/17に相当します。
慣れないうちは「開始アドレス + プレフィックス長」をサブネット計算サイトや電卓で確認すると安全です
(手計算では256→/24, 512→/23, ……, 32768→/17のように、アドレス数から逆算します)。
6. 要注意: 移管・プレースホルダの見分け方
IPの管理は、RIR間で移管(引っ越し) されることがあります。
すると元のRIRには「引っ越しました」という案内(プレースホルダ)だけが残り、中身(本当の保有者・国・細かい範囲)は引っ越し先のRIRにあります。
⚠️ たとえ話
プレースホルダは、空き家に貼られた「転居先: ○○」の張り紙のようなものです。
範囲や国が書いてあっても、それは引っ越し元の大ざっぱな情報や“転送係”の住所であって、実際の住人の情報ではありません。
「これはプレースホルダだ」と気づく目印
出力に次のような語があれば、その範囲はそのまま採用してはいけません。
| 目印の語 | 意味 |
|---|---|
Transferred to ... |
別のRIRへ移管済み |
Early Registrations, Transferred to RIPE NCC |
古い登録でRIPEへ移管済み |
NON-RIPE-NCC-MANAGED-ADDRESS-BLOCK / not managed by the RIPE NCC
|
RIPEの管理外(実体は別の場所) |
ARIN-CIDR-BLOCK / RIPE-CIDR-BLOCK
|
「ここは自分の管轄外」を示す枠だけの応答 |
country: ZZ / EU / AU(管轄外応答時) |
実体のないダミー国コード |
OrgName: RIPE Network Coordination Centre などRIR自身の名前 |
保有者ではなく“転送係” |
実例: ARINに聞いたら「張り紙」だった
# whois 132.196.82.129 → 最初は ARIN が応答
NetRange: 132.195.0.0 - 132.196.255.255
CIDR: 132.196.0.0/16, 132.195.0.0/16 ← 大ざっぱな親区画
NetType: Early Registrations, Transferred to RIPE NCC ← 移管の張り紙!
OrgName: RIPE Network Coordination Centre ← 転送係。実保有者ではない
Country: NL ← RIPE本部の国。実体ではない
ここで分かるのは「有効な情報が何も得られていない」ということです。
範囲は大ざっぱ、組織はRIR自身、国はダミー。つまり採用できる候補がゼロ。
だから案内に従って引っ越し先(RIPE)に聞き直します(次章)。
7. 別レジストリに聞き直す(-h の使い方)
問い合わせ先のサーバを指定するには、-h(host の意味)を付けます。
コマンドは同じ whois、違いは -h サーバ名 を足すだけです。
# サーバ指定なし(自動判断。最初はこれ)
whois 132.196.82.129
# サーバ指定あり(引っ越し先のRIPEに直接聞く)
whois -h whois.ripe.net 132.196.82.129
# --host=... と書いても同じ意味
whois --host=whois.ripe.net 132.196.82.129
RIPEに聞き直した結果
# whois -h whois.ripe.net 132.196.82.129
inetnum: 132.196.0.0 - 132.196.127.255 → 132.196.0.0/17 ★本物・最小範囲
netname: cloud
country: US ★本物の国
大ざっぱな /16(張り紙)ではなく、実際に登録された /17 と国 US が得られました。
💡 なぜ自動転送(サーバ指定なし)で済まないことがあるのか
whois IPの自動転送は便利ですが万能ではなく、「移管の張り紙」までしか追ってくれないことがあります。
その場合は人間が「張り紙の宛先(例: RIPE)」を読み取り、-hで明示的に聞き直す必要があります。
⚠️ どのサーバに聞き直すか分からないときのコツ
出力中のReferralServer:や、案内文中のwhois.ripe.net/whois.arin.netといったサーバ名がヒントです。
それでも不明なら、5つのRIRを順に試すのが確実です(北米なら ARIN、欧州中東なら RIPE …)。
管轄外のRIRに聞くと、また「枠だけ・ダミー国(AU/ZZ等)」が返るので、その応答は捨てます。
8. 国コードの落とし穴
🚫 whois の country は「登記上の国」であって「実際の所在地」ではない
多国籍企業やクラウド事業者では、登記国(例: US)と実際にサーバがある場所(例: シンガポール)が食い違うことが普通にあります。
whoisの国コードはあくまで参考と考え、地理的な所在地を断定しないでください。
よくある例
| 状況 | 注意点 |
|---|---|
| クラウド(AWS / GCP / Oracle / Azure 等) | 多くが US 登記。実リージョンは別国のことが多い |
country: GB だが London の data center 事業者 |
登記は英国でも、貸出先は世界中 |
country: ZZ / EU |
「不明」「世界全体」を意味するダミー。実体ではない |
用途のヒント: netname / OrgName を見る
クラウドかどうかは netname や OrgName で見分けられます。
| 見えた語 | 推定 |
|---|---|
AMAZON / AWS-...
|
AWS(Amazon のクラウド) |
GOOGLE-CLOUD |
GCP(Google Cloud Platform) |
GOGL / Google LLC(CLOUDの語なし) |
Google 本体(コーポレート網) |
ORACLE |
Oracle(Oracle Cloud 含む) |
同じ「Google」でも、クラウド貸出(GCP)か Google 自社利用かを区別すると、調査の精度が上がります。
9. 手動調査チェックリスト
1つのIPを調べるときの流れを図にまとめます。
[1] whois <IP> を実行(サーバ指定なし)
│
▼
[2] 出力に Transferred to / NON-...-MANAGED / -CIDR-BLOCK や
RIR自身の名前・country ZZ/EU/AU があるか?
│
┌────┴───────────────┐
いいえ はい(=張り紙だけ/中身なし)
│ │
▼ ▼
[3] 範囲行を全部見て [2'] 案内先サーバへ whois -h <RIRサーバ> <IP>
(inetnum/NetRange/ で聞き直す(不明なら5RIRを順に試す)
CIDR/route) │
│ ▼
▼ (本物の応答が返ったら [3] へ)
[4] IPを含む中で / の数字が最大=最小範囲を選ぶ
│
▼
[5] その範囲の country / OrgName / netname を控える
(ダミー国・RIR名は採用しない)
│
▼
[6] 検算: 選んだ範囲に 調べたIPが本当に含まれるか を確認
✅ 最後に必ず「検算」を
選んだサブネットに元のIPが本当に入っているかを必ず確認します。
例:132.196.0.0/17は132.196.0.0〜132.196.127.255。調べた132.196.82.129はこの中に入る → OK。
入っていなければ範囲の選択ミスなので、やり直します。
10. 用語集
- whois: ドメインやIPの登録情報を問い合わせる仕組み/コマンド。
- RIR(地域インターネットレジストリ): 地域ごとにIPを管理する組織。ARIN / RIPE / APNIC / LACNIC / AFRINIC の5つ。
- サブネット / CIDR表記:
x.x.x.x/yの形で範囲を表す。/yが大きいほど範囲は小さい。 - プレフィックス長: CIDRの
/の後ろの数字。範囲の細かさを示す。 - inetnum / NetRange: 割り当て範囲(開始−終了)。前者はRIPE系、後者はARIN。
- route: インターネットに経路広告されている範囲。割り当てより大きいことが多い。
- プレースホルダ: 移管・管轄外を示す「中身のない案内」レコード。範囲や国を鵜呑みにしない。
- 国コード(country): ISOの2文字。登記上の国であり、実所在地とは限らない。
ZZ/EUは不明・ダミー。
11. 注意事項・倫理
- 登録情報は誤り・古いことがある。1つの情報源だけで断定せず、複数の項目(範囲・組織・netname)を突き合わせる。
- 国コードで人や組織を決めつけない。クラウド経由なら実際の利用者は別国・別組織のことが多い。
- ブロックの最終判断は範囲の影響を考えてから。大きな範囲を遮断すると正規利用者を巻き込む恐れがある。
- 大量のIPを短時間に問い合わせるとレジストリ側でレート制限されることがある。常識的な頻度で。
✅ この資料の要点
①whois <IP>で調べる → ② 「張り紙(移管・管轄外)」なら-hで正しいRIRに聞き直す → ③ IPを含む中で最小の範囲と、その本物の国・組織を採用 → ④ 最後にIPが範囲に入るか検算。
さいごに
かんたんでしたね