在SIP環(huán)境中,有幾種方法可以被動進(jìn)行號碼采集,其中,最簡單的是監(jiān)聽所有的UDP和TCP端口5060上SIP的流量,分析其中的"From:"和"To:"字段。另一種方法是應(yīng)用Wireshark(http://www.wireshark.org)抓包工具。
進(jìn)行呼叫模式跟蹤,需要監(jiān)聽UDP和TCP端口5060上的所有SIP信令流量。利用如voipong(http://www.enderunix.org/voipong/)等的工具,也可以自動實(shí)現(xiàn)這一過程,voipong能夠記錄所有IP地址的去話和來話呼叫。
# voipong -d4 -f EnderUNIX VOIPONG Voice Over IP Sniffer starting... Release 2.0-DEVEL, running on efe.dev.enderunix.org [FreeBSD 4.10-STABLE FreeBSD 4.10-STABLE #0: Thu Dec i386] (c) Murat Balaban http://www.enderunix.org/ 19/11/04 13:32:10: EnderUNIX VOIPONG Voice Over IP Sniffer starting... 19/11/04 13:32:10: Release 2.0-DEVEL running on efe.dev.enderunix.org [FreeBSD 4.10-STABLE FreeBSD 4.10-STABLE #0: Thu Dec i386]. (c) Murat Balaban http://www.enderunix.org/ [pid: 71647] 19/11/04 13:32:10: fxp0 has been opened in promisc mode, data link: 14 (192.168.0.0/255.255.255.248) 19/11/04 13:32:10: [8434] call detected. 19/11/04 13:32:10: [8434] 10.0.0.49:49606 <--> 10.0.0.90:49604 19/11/04 13:32:10: [8434] Encoding: 0-PCMU-8KHz 19/11/04 13:38:37: [8434] maximum waiting time [10 sn] elapsed for this call, call might have been ended. 19/11/04 13:38:37: .WAV file [output/20041119/session-enc0-PCMU-8KHz-10.0.0.49,49606-10.0.0.90,49604.wav] has been created successfully.
Wireshark能夠用來觀察在每次呼叫中的真實(shí)號碼和SIP URI。運(yùn)行Wireshark進(jìn)行正常抓包,或者打開一個已經(jīng)存在的網(wǎng)絡(luò)抓包文件。單擊"菜單統(tǒng)計"→"VoIP呼叫"命令(Statistics→VoIP Calls),將會彈出一個與如圖1所示類似的窗口,顯示所有的去話和來話。

圖1 Wireshark VoIP呼叫分析
號碼采集和呼叫模式追蹤對策
為防止對用戶呼叫模式的窺探,可以在網(wǎng)絡(luò)層(應(yīng)用IPSec)或者傳輸層(如SIP TLS或者應(yīng)用TLS的安全模式SCCP)進(jìn)行信令加密。另外,創(chuàng)建獨(dú)立的VLAN也能減少網(wǎng)絡(luò)上信令監(jiān)聽的風(fēng)險。如圖2所示,展示了可以應(yīng)用在對信令流量的不同網(wǎng)絡(luò)層的多種級別的安全措施。

圖2 不同層安全措施