在SIP环境中,有几种方法可以被动进行号码采集,其中,最简单的是监听所有的UDP和TCP端口5060上SIP的流量,分析其中的"From:"和"To:"字段。另一种方法是应用Wireshark(http://www.wireshark.org)抓包工具。
进行呼叫模式跟踪,需要监听UDP和TCP端口5060上的所有SIP信令流量。利用如voipong(http://www.enderunix.org/voipong/)等的工具,也可以自动实现这一过程,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能够用来观察在每次呼叫中的真实号码和SIP URI。运行Wireshark进行正常抓包,或者打开一个已经存在的网络抓包文件。单击"菜单统计"→"VoIP呼叫"命令(Statistics→VoIP Calls),将会弹出一个与如图1所示类似的窗口,显示所有的去话和来话。
图1 Wireshark VoIP呼叫分析
号码采集和呼叫模式追踪对策
为防止对用户呼叫模式的窥探,可以在网络层(应用IPSec)或者传输层(如SIP TLS或者应用TLS的安全模式SCCP)进行信令加密。另外,创建独立的VLAN也能减少网络上信令监听的风险。如图2所示,展示了可以应用在对信令流量的不同网络层的多种级别的安全措施。
图2 不同层安全措施