Tuesday, September 05, 2006

漫談IP新世代電信服務(5)IP電信的安全議題—我的電話被入侵了!?


文/iThome (記者) 2006-09-05

目前企業用戶發生網路電話安全事件並不多,但未來使用人數增加後,涉及隱私權、電話盜打和惡意攻擊等問題勢必加劇,所有的網路電話用戶都將無可倖免。


網路電話既然是在IP網路上運行,甚至是在Internet上傳遞,和網路安全之間的關連性不言可喻,網路電話的安全性議題非常廣泛,除了避免無聊的駭客,透過癱瘓攻擊致使SIP網路電話無法正常運作之外,還要小心高明的駭客破解SIP網路電話系統,藉此盜打電話。

試想,如果SIP電話已像Email一般普及時,該如何認證發話端以防堵垃圾網路電話?網路電話交談過程是否有可能被非法竊聽?如何防止?VoIP使用者 防止被竊聽,而治安單位卻千方百計想辦法監聽VoIP,到底是道高一尺?還是魔高一丈?以上都是網路電話安全的熱門話題。

偽造身份以欺騙登錄(Identity Theft)
「欺騙」是在網路上隱藏某人真正的識別身份,要建立假的識別身份,攻擊者必須在封包中使用偽造來源來取代真實位址。「欺騙」可用來隱藏攻擊的原始來源或愚弄網路存取控制清單 (ACL),而且無法追蹤到欺騙封包的原始傳送者。

雖然SIP話機無法以搭線的方式盜打電話,但經由IP網路管理的漏洞或是透過Sniffer等軟體,仍可竊取SIP語系統管理的密碼、SIP話機的登錄密碼,非法用戶仍可取得相應的語音功能和許可權。

圖(一)是兩種典型的偽造身份以欺騙登錄,或偽造身份通知代理伺服器轉移呼叫的方法,駭客會不斷的發送REGISTER註冊訊息,除了嘗試登錄系統以遂其盜撥電話的陰謀外,也能癱瘓一定程度的代理伺服器處理效能。

圖(一) 欺騙登錄(Identity Theft)與呼叫攔截(Call Hijacking)

服務竊取問題在類比話機中同樣存在,我們在一根普通模擬話機線並接了多個電話時,也會出現電話盜打的問題。在SIP話機首次登錄時,會要求提示輸 入分機碼和密碼;如密碼外洩,任何人登錄到別人的分機號碼;如果獲得可自由撥打國內甚至國際長途號碼的許可權,將會給企業帶來巨大的損失,且很難追查。

另一種欺騙的方法,是圖(一)下半部中以302 Moved Temporarily 訊息的攻擊方法,攻擊者會先發送一個偽造來自UAC_1的302 Moved Temporarily訊息給代理伺服器。如果代理伺服器設計不夠嚴謹,就會誤認UAC-1已經主動要求暫時移轉呼叫到攻擊者UAC去。這同時也是呼叫攔 截的一種手法。

防止SIP電話被盜打是IP電信時代的新問題,要避免IP電話被盜打,就要保護好用戶名和密碼。這個要求是和用戶保護好自己其他的帳戶是一樣的, 最主要的作法是在用戶端需要防止木馬,以及其他盜號病毒的入侵。對於企業來說,最好是能綁定帳號(也就是虛擬電話號碼)和IP位址甚至MAC位址,就算帳 號被竊,也不能在其他地方撥出電話。但是這又讓網路電話失去移動性(Mobility)的效益。

呼叫攔截
呼叫攔截(Call Hijacking)也稱為連線劫持,亦稱為「中間人(Man in the middle)」攻擊。連線劫持會欺騙伺服器或用戶端,把操控網路的攻擊者主機當成實際合法的上游主機,讓攻擊者的主機看起來像是所要的目的地。 SIP的典型連線劫持方式如圖(一)下半部中所示。

這種手法也有人叫它重定向攻擊,劫持者透過發送偽造來自UAC的302 Moved Temporarily訊息給代理伺服器,使代理伺服器誤以為UAC要求暫時移轉所有的呼叫到UAC 攻擊者去,此時一旦有SIP UAC_1發送邀請UAC對話的連線,就會被代理伺服器轉至到假的UAC,變成由SIP UAC攻擊者接聽電話,而真正的UAC不會有任何感覺,頂多覺得今天電話特別少而已。

預防連線劫持的因應對策包括有使用加密的SIP協定和Secure RTP通訊管道等。由於呼叫攔截者往往來自於企業內部,將SIP UA裝置重新註冊的時間縮短多少可以增加進行呼叫攔截的難度。

竊聽
「竊聽(Sniffing)」或「截聽(Eavesdropping)」是監視網路資料傳輸 (例如純文字密碼或組態資訊)的行為。使用簡單的封包竊聽程式,攻擊者就可以輕易的讀取所有純文字的資料傳輸。同樣的,攻擊者可以使用精簡的雜湊演算法破 解封包加密,以及解密您認為安全的內容。竊聽封包需要在伺服器/用戶端通訊的路徑上設有封包竊聽程式。最後是RTP媒體串流的偵聽問題。

在VoIP環境下這個問題依然存在。一個典型的VoIP呼叫需要信令和媒體流兩個建立的步驟,RTP/RTCP是在基於封包的網路上傳輸即時語音 資訊的協定。由於協議本身是開放的,即使是一小段的媒體串流都可以被重放出來而不需要前後資訊的關聯。如果有人能在資料網路上通過Sniffer的方式記 錄所有資訊並通過軟體加以重新播放,那麼所有用戶間的私密談話內容就都不保了。

現今大多數SIP設備製造商都不對語音資料進行加密,這是基於實用性的考慮,因為加密要佔用CPU資源。終端用戶的SIP設備和軟交換機必須對資訊進行幾乎是即時的加密和解密,並且不能影響呼叫品質。這個問題需要增加硬體和基礎設施的投資才能解決。

要位於呼叫通過的路徑上,才能截獲呼叫設置或SIP呼叫過程中的語音資料,由於呼叫的路徑可能會改變,因此想截獲SIP呼叫只有幾個可實施點,即在SIP用戶端、代理伺服器前端或者在兩個終端所使用的ISP上。

想防止攻擊者破解竊聽來的封包,可以完整地加密通訊,並且驗證相關憑證。SSL和IPSec是加密的兩種方式,一樣可以和SIP應用配合運作,能 有效增加竊聽者的「竊聽成本」,或延長竊聽者的解讀時間,以避免外洩具有時效性的通話內容,但目前並沒有廠商敢保證能夠100%不會被竊聽。

竊聽行為也有合法的,那就叫做監聽了,為有效進行犯罪偵防,立法單位希望將網路電話也納入電信監聽法的管制,此舉勢必凸顯出如何有效執行監聽的問題。

目前的網路監聽產品或技術,多鎖定在企業內部等小規模的監聽行為,針對以監聽VOIP內容為目地而設計的更少;監聽系統在設計上首要考量的就是處 理效能,在效能上是否能夠做到完全不漏失任何呼叫,需要多大的儲存空間,如何部署實現,都需要精確計算與實作;下一階段的重要問題,就是如何建構出一套有 效的虛擬空間和實體位置的定位管理架構,也就是要能得知收發話端的實際地理位置,如果能掌握即時定位出收發話雙方接入網實際地點的技術,和構建出跨國合作 的機制,監聽網路電話的動作,在犯罪偵防上也將更具意義。

法律的健全和科技的進步似乎難以構成消滅犯罪的要件,監聽是一把雙面刃,獲得這項授權的治安機關,能夠在與犯罪者的鬥爭中取得了得力的武器;但是使用不當,傷害的是未來整個資訊社會的發展方向。這些議題,都有待後續研究者加入探討的行列。

拒絕服務癱瘓攻擊(DoS)
「拒絕服務(Denial of Service,DoS)」攻擊會阻止合法使用者存取伺服器或服務,從攻擊方法和破壞效果來看,DoS是一種既簡單又有效的攻擊方式。攻擊者向伺服器發送相當多帶有虛假位址的服務請求,伺服器會等不到回傳的消息,就會耗盡所有資源。

TCP SYN氾濫攻擊是常見的網路層級「拒絕服務」攻擊,很容易發動卻又難以追蹤。攻擊會利用 TCP/IP 連線建立機制中的潛在弱點,並且塞爆伺服器的等待連線佇列,網路電話協定都是TCP或UDP,網路電話的伺服器或終端裝置都有可能遭受到TCP SYN的攻擊。

再者網路電話技術已經有很多知名的服務埠,像H.323的1719、1720、SIP的5060等,還有一些埠是產品本身需要,用於遠端管理或是私有資訊傳遞的用途。只要是攻擊者的PC和這些應用存在於同一網段,就可以通過簡單的掃描工具來獲得更詳細的資訊。

市場上很多採用H.323協定的VoIP系統,在建立H.245通訊過程中都存在漏洞,容易在1720埠上受到DoS的攻擊,導致系統的不穩定甚 至癱瘓。除了上述傳統網路層級的DoS攻擊方式外,在SIP環境中,還可以運用再見攻擊(BYE Attack)和取消攻擊(CANCEL Attack)兩種手法,以惡意癱瘓正常的SIP服務,如圖(二)上半部所示。

圖(二) 再見(BYE)攻擊與取消(CANCEL)攻擊

劫持者偵測到SIP UAC和SIP UAS正在通話中,就發送一個偽造來自SIP UAC的BYE訊息給代理伺服器,使代理伺服器誤以為SIP UAC要結束通話了,或是如案例中直接發給一個偽造來自代理伺服器的BYE訊息給SIP UAC,讓SIP UAC誤以為SIP UAS要求結束通話,這就是再見攻擊,通常會讓SIP用戶感覺很困惑,為什麼常常電話一接通、或是講沒幾句話,怎麼莫名其妙掛斷了呢?

取消攻擊的原理和再見攻擊相差不大,如圖(二)下半部所示。劫持者偵測到UAC正試圖和UAS進行通話,就透過發送一個偽造來自代理伺服器的 CANCEL訊息給UAC或UAS,或者反過來偽造一個來自UAC或UAS的CANCEL訊息給代理伺服器,目的是讓代理伺服器誤以為UAC或UAS要取 消剛剛的通話要求,這就是取消攻擊,其效果是讓SIP話機永遠都接不到來電,或是往往電話鈴響一聲就隨即斷了線。

無論再見攻擊或是取消攻擊,都是源自於不嚴謹的程式碼撰寫,大多問題都能用更新軟體或軔體的方式解決。
垃圾網路電話
您很可能還沒聽過SPIT(Spam for Internet Telephony)-「垃圾網路電話」,也有人稱之為Spam Call,一些科技觀察家表示,這個字眼很快地就會橫掃全球。

SPIT的議題是Yahoo的通訊產品副總裁Brad Garlinghouse在加州聖荷西舉行的InBox IT 2005電子郵件會議中首度提出的,他認為IP通訊匯流中的VoIP正促使一種新型態的垃圾郵件產生。他並提到在2004的美國總統大選期間,他的IP電 話開始收到了幾通來自有名的競選機構如Karl Rove所傳送的自動語音回覆電話。數以百計的自動外撥電話開始在網路中氾濫,兩年之內SPIT將成為一個嚴重的問題。

將來SPIT的威脅比電子郵件信箱的垃圾嚴重許多,畢竟收到垃圾電子郵件,直接刪除就好,可是垃圾網路電話卻會中斷您目前的工作來接聽它,您能想 像一天收到100封垃圾郵件的景況,但是您如果一天接到100通垃圾電話,內容不外是市調、推銷、騷擾,甚至於詐騙等,可能所有的網路電話使用者都會瘋掉 吧?或是寧可選擇關機?

雖然SPIT議題還是在討論初期,網路電話市場在一兩年內暫時還沒有熱到會出現太嚴重的Spam Call情況,但是具有「前瞻性」的生意人已經為了爭奪SPIT的「市場」而摩拳擦掌。除了一些認為網路電話是新興行銷工具的廣告公司外,在防禦的一方, 不少從事網路安全產品的公司已展開初步的合作,一起研發一套偵測與避免垃圾網路電話的架構。

防止來路不明的SIP呼叫,最簡單有效的方法就是發話端識別(Caller-ID Verify),居心不良的發話者,通常不願意在對方的話機顯示來電號碼(Caller-ID),以避免身份的曝光或是讓被叫端得知主叫端的聯絡方式,如 此他們就可能會被人找到。接不接受匿名撥出(Anonymous Call)是建置網路電話服務時第一個要考慮到的政策,是否拒絕匿名來電(Anonymous Call Reject)則和前面的問題一體兩面,是同時也必須思考到的問題。

最通常的作法是利用強制顯示來電號碼方法,做為最基本的發話端身份識別功能,代理伺服器可由UA註冊的帳號資訊,比對其發出INVITE訊息中的 發話端識別資訊(From欄位)是否一致,若否則拒絕其呼叫,回應403 Forbidden的訊息,唯有正確填入發話端識別資訊的呼叫得以被系統接受,也才能在被叫端的話機上正確顯示來電訊息。範例中顯示的是由代理伺服器管理 的程序,若不透過代理伺服器,話機本身亦可做到相同的功能,或當鈴響時由人工觀察是否顯示來電,以決定是否接聽,是最直接的做法。

至於利用來電號碼的顯示做為發話端身份的識別,其實還有一些問題存在,原因是SIP對相關欄位的定義並不嚴謹,一般實作上也並不會強烈要求,甚至有的話機軟體上也允許用戶隨意填入發話端資訊。

其本身的判斷上也有不明之處,通常的判斷方法是利用From或Contact欄位內的訊息,比對與IP Header中的Source IP Address是否一致,但問題是,廠商通常會在Contact欄位填入IP,但SIP並沒有規定一定要如此,因此有的廠商會在Contact欄位填入 SIP URI,也就是代理伺服器的Domain Name,甚至於填入MAC Address以做為自己產品間的識別。

若透過From欄位內的訊息來判斷也有問題,From欄位跟Email的From概念類似,只是一個暱稱,SIP一樣沒有規定一定要填入甚麼資 訊,雖然很多廠商慣例上會填入發話端的SIP URI。換言之,如果嚴謹的要求,很多應該能通的電話也會被擋下了。這些都是目前發話端身份識別上的問題。

反騷擾電話在SIP UA終端裝置中可以很容易的實現,系統收到來電時可以自動比對這通電話是否在拒絕接聽的表列之內,若是則自動拒絕該來電。

但是這個方法也有一些盲點,一是更換SIP UA終端裝置後設定的移轉過程會很麻煩。二是這種方法只能拒絕同一個發話源的第二次騷擾呼叫,除了使用者設定上的時間浪費外,一定會接到第一通騷擾電話也 是問題,發話源不斷變化發話端的身份,使用者還是會不斷收到騷擾電話,更不論新的騷擾電話發話源會不斷出現。

對用戶而言,只要騷擾電話能成功的送出振鈴,就已經達到騷擾的目的了。 在ITSP業者的營運層面,也可以設置一套反騷擾服務(Anti-SPAM Call System)系統。系統的核心概念是由前台的IVR系統和後台的SPIT資料庫整合,使用者則負責提供回報機制,由用戶檢舉Spam Call並列入SPIT黑名單中,業者具有很大的處理彈性;消極部分可以列入Presence功能中,標注為「不受歡迎者」,也可以在來話顯示中標示 「SPAM」字眼,讓接聽者自己決定是否接聽該通來電。積極的處理方式可以乾脆通知該發話端的ITSP直接將其停權,或直接阻斷來自該特定發話端的所有 INVITE要求等。

至於用戶檢舉SPAM Call的機制設計,可以設計一個網頁接受用戶的申告。以客服人員接聽用戶的申告電話,並手動鍵入系統。最經濟有效的是是設置一個IVR系統,每當用戶接 聽到一通騷擾電話,在掛掉後可立即回撥一個「騷擾電話申告專線」如「1XX」的免付費公眾服務號碼,接通後系統會提示「您的騷擾電話申告已經被處理」的語 音訊息,用戶不必輸入任何資訊即可掛掉。因為系統將自動調閱出你的前一通被呼叫記錄,把發話端的記錄到騷擾電的表列之內,這套系統為避免誤報,可以採用投 票制。譬如說當一個發話源在一段時間內被超過10個不同的用戶舉報,才會真正被列入騷擾電話的黑名單之列,而且還要有能讓用戶提出申訴的管道,以避免可能 的爭議。

正視網路電話安全問題
雖然現階段還很少聽到企業用戶遭受網路電話發生安全事件,可能是普及率和整合程度都還沒有達到「對網路電話進行攻擊,即產生足夠經濟效益」的地 步,一旦未來使用人數增加之後,有心人士「研發」網路電話攻擊技巧的動機就會增加,涉及隱私權、電話盜打和惡意攻擊等問題勢必加劇,所有的網路電話用戶都 將無可倖免。

目前廠商所提的網路電話安全技術都還是基於網路安全的層次,「網路安全,則網路電話安全」;但是網路電話設備特有的使用行為和將產生特有的功擊模式,未來如何整合安全方案仍有待廠商通盤考量,而企業在導入VoIP之際更必須格外謹慎做好防護工作。

作者/賈文康
第一線技術顧問、台北市電腦商業同業公會顧問、NICI全國IPv6建置發展計畫,應用推廣分項計畫協同主持人、開放網路電話交換聯盟 (IPOX)計畫顧問,專精研究領域為網路系統整合、TCP/IP 通訊協定核心設計、多媒體通訊、NAT穿越、網路流量暨話務量工程,在IT產業擁有15年研究開發、技術支援、產品行銷等經歷,並著有「SIP會談啟始協 議操典」、「3G第三代行動通信網路技術」等書籍。

No comments: