在談這件事之前,我們要先知道在網際網路的系統上通常可以透過兩種方式加以識別。一般人比較熟悉的是所謂的電腦名稱(host name+domain name,如www.google.com)。要取得這類的名稱,通常必須先向某些特定的單位申請網域名稱(如google.com)的使用權,而申請時的資料,可以透過whois的機制加以查詢。所以,只要知道電腦名稱/網域名稱,我們可以很簡單的就知道申請公司的名稱、住址、連絡人等相關資訊。識別電腦的另外一個方式就是所謂的IP位址(如72.14.235.147)。這類IP位址的發放,全球根據地區分成五個管理的單位(見註一)。各地ISP業者在申請到特定的IP位址範圍後,再發放給實際需要的客戶。所以我們可以透過相關的工具或這些單位的網站,查到擁有某特定IP位址的ISP業者。
至於電腦名稱與IP位址的對應,在網際網路上主要是透過DNS的服務來達成。所以,我們可以從電腦名稱找尋對應的IP位址(稱之為正向查詢)。也就是說我們知道電腦名稱,不但可以查到公司的名稱、住址等資訊,還可以知道所對應的IP位址之ISP業者。反之,如果我們只知道IP位址,若想知道這個IP位址是哪個公司在使用的,則必須先透過反向查詢的方式找出對應的電腦名稱。可惜的是,除非有特別提出,否則一般就算是向ISP業者申請固定式的IP位址,他們也不會主動幫你設定反向查詢(沒有正確的設定反向查詢,有些網際網路的服務可能會不正常,不過這個不是我今天的重點)。而對於動態式的IP發放,那就更不用說了。另外,有時候多個電腦名稱也可能共用一個IP位址,此時反向查詢的結果也通常不是你想要的。也因此,只知道IP位址要查到公司等資訊通常機會是比較小的。不過,一般在攻擊是先選定特定的公司(網域名稱),而不是特定的IP位址。而只針對IP位址的攻擊(如亂槍打鳥式攻擊),通常也不在乎是哪家公司。所以對攻擊者來說,這類的問題不大。
知道了上述的事情,我們來看看一般所謂IP位址對應所在區域的工具是如何透過IP位址知道這個IP位址所在的地區。根據前述,我們知道有IP位址,我們可以知道擁有該IP位址的ISP業者,甚至有可能查到對應電腦名稱的註冊公司,所以我們手邊有了ISP業者的地址與公司的地址。而一般工具所顯示的城市地區,其實就是ISP業者的地址。當然,如果兩個地址相比較,顯然ISP業者的地址是比較可信的,因為公司可以到任何國家註冊網域名稱,但是ISP業者的業務區域卻是固定的。不過ISP業者的業務區域雖然固定,但卻不是侷限於一個城市內,所以這樣的資訊,其實準確度依舊是有很大的疑問。我服務的公司剛好有南北兩個辦公室,我查了一下我們南部辦公室使用的IP位址,幾乎所有的工具都顯示所在地是台北。是的,我們申請的ISP業者是註冊在台北,但是該IP卻不是使用在台北的區域。僅有兩個工具,正確的顯示了我們南部辦公室所在的區域。一個是IP Address Locator,另一個則是IP2Location Database。前者是免費的工具,後者則是要付費的。前者在網站也特別提到他們是透過分析網路流量的方式,找出特定IP位址所在的區域,而不是透過前述的註冊資料。而且IP Address Locator也對應到了Goolge Map,算是一個方便而實用的小工具。所以,下次當你想到知道使用某個IP位址/電腦名稱的主機來自哪裡,別忘了問一下IP Address Locator。
註一(參考自The CEH Prep Cuide):
- American Registry for Internet Numbers (ARIN): North America
- RIPE Network Coordination Centre (RIPE NCC): Europe, the Middle East and Central Asia
- Asia-Pacific Network Information Centre (APINC): Asia and the Pacific Region (台灣)
- Latin American and Caribbean Internet Address Registry (LACNIC): Latin America and the Caribbean region
- African Network Information Centre (AfirNIC): Africa