觀點

主機安全稽核(三之二)如何辨識APT

2013 / 08 / 13
田振宇
主機安全稽核(三之二)如何辨識APT

上篇文章談到主機安全稽核是事前預防重要的一環,並介紹主機安全4大區塊。而有了基本觀念後,本文將繼續延伸如何利用日誌整合與分析找出APT蛛絲馬跡。

APT 的話題,是目前業界中最熱門也最多人在探討的一個趨勢。幾乎所有跟資訊安全相關的產業及產品,都要跟APT套上關係才算是跟的上潮流。但是,有多少企業真的去了解過APT的整體過程,而不是光一直增添佈署新的設備去增加自己的安全感?

要了解如何從稽核層面去找出APT的問題,就必須先了解APT的整體過程才能著手。首先,APT的活動並不是單純的暴力攻擊,它是一個長時間的間諜活動。下圖1是整體APT活動的週期循環。

APT活動循環
從活動循環內,可以看得出來APT本身的生命週期從數個月到長達數年都有可能。而活動的最基本元素,也是從社交工程,和其他基本的資料收集為主。完成資料收集的階段後,進而才會採取更進階的攻擊行為去深入到目標企業的環境內。這些都是不可避免,也難以去防衛,因為不管一個企業如何教育員工,有某些資料或是個人行為仍會造成這些資訊外洩。往往在發現有可疑的APT行為後,真正的功課才開始:找出問題的源頭、確認攻擊者從哪裡進來、以及攻擊的影響範圍有多大?如果是這樣的話,那到底我們要如何去看出在一個企業內是否有APT的活動存在?

問題點一:電子郵件的稽核

一般的APT活動,幾乎都是由Spear Phishing 或是 Spy Phishing 開始,但是一般企業因為電子郵件的數量過大而不會去注意在信件中有沒有發生不當的使用問題。在許多的電子郵件活動中,其實可以從某些症狀看到問題點並找出是否有任何釣魚活動產生。

那具體上要怎麼去發現這些有問題的活動呢?其實要找到早期的問題並不難,在電子郵件中的被退信件,常常可以看到很多的問題所在。如下圖2所示:

圖2 從電子郵件被退信件看出問題
在一般狀況下,在初期的APT攻擊中,會有多次被退信件嘗試去找出內部有哪些使用者,因此會有大量的退信日誌出現。例如企業內如果有一個固定的信件格式,攻擊者就會利用這些固定格式亂槍打鳥看看是否能找出有哪些使用者。或者,如果企業內的電子郵件伺服器沒有管理好,也可能使用SMTP Spoofing去假裝為該企業內的員工發送郵件給其他合法的員工。

郵件伺服器內的Non-delivered 或 bounced 的信件都是可以去分析和理解的一個日誌,從錯誤訊息中,去知道是否有任何的不正當行為發生。這些行為包含了猜測內部使用者帳號,或是同時間大量的信件流量,都往往是社交活動開始的癥兆。

同時,在現今的企業中都有安裝電子郵件的病毒攔阻系統(不管是硬體或是軟體)以及各式各樣的垃圾信件的分析或是阻擋工具。但是真的問一下,有多少管理者真的去分析,或者是去看這些工具裡面有哪些訊息?絕大部分的答案都是有問題發生的時候才會去看,但往往也是在事發後才去進行分析或嘗試找出答案。

問題點二:主機系統是否有被突破

使用者登入和登出主機系統,現在是一般企業內慢慢開始重視的一環。錯誤的登入訊息在個資法公布後,大家都會收集,但實際去分析的卻是少數。可是正常的使用者登入,要如何去判斷?一個最基本的概念就是時間點,也是筆者常常跟企業溝通的一件事情。在非上班時間的登入活動,往往比錯誤登入還要來的嚴重。是正常員工的活動行為嗎?還是攻擊者登入到系統內埋後門?甚至,有時候若攻擊者已經取得權限後,也有可能在正常工作時間內登入到系統中去作業。

因此,使用者的登入訊息是不可不正視的一個問題,因為一般企業只是收集這些資訊,卻完全沒有好好的去檢視,或去稽核每個使用者的活動行為是不是正常。因為,通常攻擊的工具都是使用最高權限所能使用的工具去進行Malware的安裝,例如在Windows環境中。

最常可見到像是explorer.exe或是msvcr.dll等去協助病毒或零時攻擊等程式的安裝工作,甚至某些APT的攻擊工具也是可以迴避開系統內的病毒偵測系統。這不算是新聞,但卻是需要被檢視的問題,因為這些都是可以透過使用者登入活動去察覺的。

當然,筆者前面所提的都是一般主機日誌應稽核的基本層面,但卻也是每個企業內最無法落實的一部分。其中主機稽核,也需要包含在每個系統中的程式活動和其他輔助的資安防衛系統(如:防毒、DLP、HIDS等),進行綜合分析後也可對整體主機的活動得到更深一層的了解。

除了這些以外,主機本身提供的服務,以及主機是否有異常的連線行為,也都是可以從主機的服務日誌中觀察出來。現今市面上已經有很多免費的日誌分析軟體,可以提供給管理人員將主機本身的服務日誌導入後進行分析。同時,產出的日誌報告中可以清楚的看到系統本身有哪些網路連線行為。這都是攻擊活動的蛛絲馬跡,不能不被重視。

筆者也曾在實際的環境中,在某資安事件事發後協助進行稽核時,發現該企業內的伺服器主機其實已經被潛伏了一年以上的時間。中間實際上有多次的對外連線活動是指向已知的BOTNET(殭屍網路),而攻擊者也實際是使用這些BOTNET進行資料的傳輸。但是問題的源頭卻是出在於該伺服器的服務被駭客攻擊後,並未有任何人察覺到多次非正常時間點的登入活動,而是在筆者進行事後稽核時才發現這些問題行為。因此企業不得不注意日常主機系統及其服務的日誌稽核。

問題點三:網路活動的稽核

在今天的攻擊活動,有很多都已經能跳過已知的資安防禦設備。即使在縱深防禦的架構上,很多攻擊型態也不是這些設備可以抵擋的。BOTNET的成長及複雜性,以及越來越多的零時攻擊的出現,已經不是單單的黑白名單或是特徵性可以去阻擋。黑白名單和特徵雖然可以做出一些有效的阻擋,但是攻擊的變動性只會越來越快速,設備難以跟的上,腳步也永遠慢一步。

坊間也出現越來越多以APT為號召的資安設備,但是每種可阻擋APT的設備做的再好,也不是你安裝到網路上就可以什麼都不管。即使廠商說這個設備可以 Install & Forget,其實也是需要積極去觀察並了解該設備所收到的資料裡有沒有任何異常行為,而不是真的認為它放在那邊就一切都沒事。

在網路環境中,也必須注意每個設備是否有被攻擊的傾向。設備上的規則設定跟設備的通訊訊息,也都是必須要注意和分析。常常設備被攻擊後,攻擊者也會針對他所需要的一些IP或是他所屬的BOTNET需要的通訊協定去開啟這些規則。因此,每個設備規則的稽核也可以看出是否有異常。

很多的管理人員,會因為人力的問題而無法確切的落實設備的稽核。通常都是放任這些設備,只有在需要去進行設定的時候才去動這個設備的設定,往往就會變成亡羊補牢,發現的太晚,關的也太晚,無法去補強或者去阻止問題的發生。

甚至在筆者的經驗中,即使企業內有針對網路活動進行分析,也通常只有在分析連進到企業內的連線作業而已,而沒有放太多的心思在對外的連線分析上。

總結:APT網路攻擊的有效偵測及防禦

綜觀目前APT攻擊的活動模式,不外乎是需要在竊取資料時能夠與外部主機連線並傳輸資料。攻擊活動中,也需要與相關的命令控制伺服器(Command & Control Server) 進行聯繫,或是帶有Malware的信件在開啟後要與外部的BOTNET伺服器進行傳輸。而一般的APT活動也為了要避免在外部連線活動中被發現,會用通用的port 80 和443進行連線活動,甚至也有做SSL加密,就是為了不被當做是一個不正常的行為,或是被看出在傳什麼樣資料。甚至很多在APT活動上所使用的零時攻擊,在攻擊成功時,系統層面往往看不出來有被攻擊的跡象。可是在攻擊後,網路上的流量傳輸會有些許的不正常行為產生,若在此時,系統管理人員在平日有針對對外流量做基本的分析,就可以從這個層面看出不正常行為,更進一步對被感染的系統進行追蹤。不管如何,APT的弱點就在於它仍需要跟外部聯繫,因此在各方面(系統、服務、網路等)的日誌收集跟分析上,會是一個必須要落實的工作。

當然,更進階的資安人員可以透過Netflow或是封包分析去解析出更多的資訊。但在現實環境中,一個企業要去培養一個資安分析人員去進行這類的工作是需要花費相當的時間跟精力,而一般企業內的資安團隊也鮮少會有此類型的人存在。

不論如何,日誌收集與稽核,是在今天的APT攻擊活動中最有效也最能找出問題的癥結點。確實一個網路系統是不可能不被攻擊,也沒有一個網路是絕對不會被攻破。但是好的日誌收集跟分析機制,是能有效在攻擊未擴散開前,將攻擊有效的阻擋下來,也是對APT的攻擊行為上,一個最有效,也最好的防衛機制。