監聽IM防制機密外流
以IMSpector實作 即時通訊軟體側錄

2010-05-05
即時通訊軟體(Instant Messenger,IM)的出現,實現了咫尺天涯的夢想,彈指之間即可與遠在天涯的好友相互交心。但在便利的背後,往往跟隨著其他的問題。以資安角度而言,瞬間即可能將公司的機密傳到競爭對手上。目前市面一般的資安產品還是著重在郵件的審查上,對於即時通訊軟體的控管往往不是那麼的注重。
以管理者角度來說,每位老闆都不喜歡自己的員工上班時打混聊天,但這卻可能是即時通訊軟體最主要的價值所在。因此,在一般公司的內部管理政策通常會禁止使用即時通訊軟體,如Skype、MSN等等,有些公司甚至會因此安裝即時通訊側錄軟體。但一套側錄設備往往所費不貲,因此本文將利用開源碼資源,提出一套可即時側錄即時通訊軟體交談訊息的解決方案。在此解決方案中,將希望達到下列的功能:  

●可記錄即時通訊軟體交談的訊息。
●可利用白名單或黑名單封鎖即時通訊軟體的使用或限定只能與某幾個用戶交談。
●可禁止即時通訊軟體使用傳遞檔案功能。
●可過濾即時通訊軟體訊息內容,當出現敏感的關鍵字時,能即時地過濾。
●具有示警效果,由於監控即時通訊軟體的訊息,在隱私權侵犯的議題上尚有爭議,而且「不教而殺,謂之虐」,因此當使用者在使用即時通訊軟體時能即時告知對方已安裝即時通訊側錄系統。  

IMSpector介紹  

IMSpector是一種即時通訊側錄軟體,通常安裝在閘道器(Gateway)上,側錄來往即時通訊軟體的訊息。  

IMSpector除了可以側錄通訊雙方的通話內容外,也可設定關鍵字過濾功能(一旦通話內容包含所設定的關鍵字即會自動攔截並封鎖)及ACL(Access control list,可用來設定可通訊的用戶對象),另外並具有禁止傳遞檔案和禁止網路攝影機的功能,目前IMSpector支援下列的即時通訊的軟體:

●MSN:微軟所開發維護的即時通訊軟體,也是目前應用最廣泛的即時通訊軟體。
●Jabber/XMPP(Extensible Messaging and Presence Protocol),前身為Jabber,是一種以XML為基礎的開放式即時通訊協定,XMPP主要的關鍵特色在於分散式的即時通訊架構,以及使用XML串流。目前以Google Talk為代表性軟體。
●AIM:是一個由AOL以廣告收入來支持的個人即時通訊軟體。
●ICQ:意思近似英文I seek you(我找你),為最早出現的即時通訊軟體之一。
●Yahoo! Messenger:由雅虎(Yahoo)開發維護的即時通訊軟體。
●IRC(Internet Relay Chat):網路聊天室,為最早期的即時通訊軟體。  

IMSpector除了可利用檔案來記錄相關的通話訊息,也支援MySQL及PostgreSQL等資料庫,可將側錄到的訊息存入資料庫,以進行更有效的應用。

安裝啟用IMSpector

在本解決方案中,須將把IMSpector裝在閘道器上,因此會先利用Iptables建立NAT(Net Address Translation)功能,並將IMSpector安裝在此主機上。  

建立NAT主機  

礙於篇幅,這裡就不說明NAT的原理,請讀者自行參閱相關文件說明。首先,依序下達下列指令:  

echo “1”>/proc/sys/net/ipv4/ip_forward #開啟主機ip forward功能 iptables -t nat -A POSTROUTING -o XXX.XXX.XXX.XXX -s 192.168.2.0/24 -j MASQUERADE  

利用MASQUERADE功能設定NAT功能,在本例中對外實際IP為XXX.XXX.XXX.XXX,而192.168.2.0網域的內部主機均能以此真實IP上網,請依據本身環境自行調整。在設定完成後,可將內部主機的閘道器指向此台主機,如果可以正常上網,即表示設定正確。  

至此,內部主機所有的連線資訊均會經過XXX.XXX.XXX.XXX。即時通訊軟體的資料當然也不會例外,而IMSpector將安裝在此主機上解析並記錄即時通訊相關的資訊。  

安裝IMSpector  

由於希望當使用者使用即時通訊軟體時能夠跳出警告訊息,警告使用者系統已安裝即時通訊的側錄軟體,而此種示警功能必須加裝SQLite資料庫軟體,因此須事先安裝好。可利用yum來安裝資料庫軟體,安裝指令為「yum install sqlite-devel」。  

在安裝好SQLite之後,即可至「http://www.imspector.org」取得IMSpector的最新版本。截至目前為止,筆者取得的版本是0.9,解開後,為了新增示警功能因此執行指令「make dbresponderplugin.so」,然後以指令「make」進行編譯。接著執行指令「make install」將相關的檔案安裝至系統上。為了新增MySQL支援功能,將側錄到的資訊存入MySQL資料庫中,所以輸入指令「make mysqlloggingplugin.so」,然後執行指令「cp mysqlloggingplugin.so /usr/lib/imspector/」將MySQL加到plugin。或者,乾脆使用指令「make all && make install」安裝所有plugin的功能套件。IMSpector相關的檔案和目錄如下表所示:  

完成安裝IMSpector後,可先設定imspector.conf中的一般功能參數,如下表示:  

設定轉埠  

由於IMSpector在16667通訊埠上運作,因此必須將即時通訊所使用的埠,轉埠到IMSpector所服務的埠,可下達如下的指令:  

將送往MSN服務埠的資料轉向到16667埠,以供記錄。  

iptables -t nat -A PREROUTING -p tcp --destination-port 1863 -j REDIRECT --to-ports 16667  

將送往Yahoo! Messenger服務埠的資料轉向到16667埠,以供記錄。  

iptables -t nat -A PREROUTING -p tcp --destination-port 5050 -j REDIRECT --to-ports 16667  

將送往IRC服務埠的資料轉向至16667埠,以供記錄。  

iptables -t nat -A PREROUTING -p tcp --destination-port 6667 -j REDIRECT --to-ports 16667  

將送往Jabber服務埠的資料轉向到16667埠,以供記錄。  

iptables -t nat -A PREROUTING -p tcp --destination-port 5222 -j REDIRECT --to-ports 16667  

將送往ICQ/AIM服務埠的資料轉向至16667埠,以供記錄。  

iptables -t nat -A PREROUTING -p tcp --destination-port 5190 -j REDIRECT --to-ports 16667  

將送往Gadu-Gadu服務埠的資料轉向到16667埠,以供記錄。  

iptables -t nat -A PREROUTING -p tcp --destination-port 8074 -j REDIRECT --to-ports 16667  

啟動IMSpector  

在設定完成後,即可執行指令「imspector -c /usr/etc/imspector/imspector.conf」啟動IMSpector。也可以多加一個「-d」參數,執行除錯模式,將所有的記錄訊息顯示在螢幕上。  

在啟動後,可利用指令「netstat -an | grep 16667」驗證IMSpector是否正常運作,其用意是檢查16667埠是否在LISTEN狀態下,如果在LISTEN狀態,即表示IMSpector已啟動成功,正在16667埠服務,如下圖示。  

接下來,將以MSN為例測試相關的功能,將測試下列情況:

1. 以檔案記錄MSN交談訊息。
2. 以MySQL資料庫記錄MSN交談訊息。
3. 設定關鍵字過濾,一旦發現MSN交談的訊息含有關鍵字即封鎖。
4. 設定ACL控制以限制MSN所能連接的對象。
5. 測試示警功能,當使用者使用MSN時,會跳出一個文字訊息告知使用者,MSN目前正被側錄中。
6. 測試其他功能,例如禁止傳檔及禁止使用網路攝影機。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!