<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/%e8%bf%90%e7%bb%b4%e5%ae%89%e5%85%a8/12313

            0x00 前言


            從事互聯網安全研究有些年了,研究殺毒軟件,安全套裝,防火墻,IPS之類的監控設備也有一段時間了,開始對現有和下一代安全防護有一點自己的想法,并且開始琢磨更為安全的架構,致力于讓互聯網更安全。

            0x01 現狀


            先說一下現有安全設備或者服務。

            第一個肯定是說殺毒軟件或者相應殺毒安防套裝。殺毒軟件或者安防套裝應該為現如今最主流的安防手段。國內,不管從事什么職業的人,安裝完系統,第一件事就想著安裝什么殺毒軟件更能保護我不受惡意軟件的入侵。大眾已經開始比較殺毒軟件優劣了,安全意識能到達如此高的地步,甚是欣慰。但是這也從側面印證了一個問題,傳統殺毒軟件已經過時了,不具有在當今互聯網社會中提供高安全防護的能力,無法對高水平滲透行為進行防御。不論是通過多年研究經驗,還是通過分析各大安全公司的追蹤報告,都能得出印證,現有殺毒軟件不足以對尖端滲透行為(APT)提供足夠的安全防護 。甚至按照某些報告中的敘述,滲透人員只需要相應的免殺一下,就能完全忽略殺毒軟件所帶來的威脅。

            縱觀FireEye在2013年,2014年的APT報告中,就可以看出,APT行為針對的目標前三位為政府,服務類機構,高科技企業,再說下排第七位的,航空國防類工業。這四類企業是現有安全水平最高的幾類企業。Symantec,Mcafee這類最主流的病毒防護軟件,都不一定被他們認為是可靠的。更不用說國內的一些防護類的軟件。

            咨詢了一些專門做滲透測試的朋友,他們直言,從來沒有出現過被這類病毒防護軟件發現,趕出內網的情況。

            所以照此看,如果一個企業相信售前,指望這類殺毒軟件保護自身不被入侵,只能說很天真。

            再說說硬件設備,各類防火墻,IPS。Cisco ASA系列,Juniper SSG系列,Fortinet FortiGate系列,再或者像Palo Alto一樣的硬件的應用層防火墻,見識的實在是太多了,就算在白皮書中說的再怎么智能,動態識別行為,只能說規則還是太死,不足以阻攔APT的行為。更何況國內的某些廠商還掙扎在性能數據上,一加上防火墻,網絡延遲增加了太多。線速轉發,吞吐量什么都上不去,智能化只能淪落為笑談。

            在校期間,有幸見識了國內某銀行支行的建設,使用國產設備,由于處于私有網絡中,防火墻只是用來啟動,耗電,都沒插網線,只是因為他們的員工說有他網速太卡。

            接觸防火墻這么多年,不考慮性能問題,覺得它最有用處的就兩個功能,在三層隔離網絡,依照規則進行過濾。其他的特性基本沒有阻攔滲透行為。

            最后說說IDS與各類監控設備。這是公司網絡最后一道防線了,但是這道防線的作用卻是受到了極大的限制。各類日志與監測服務,包含所有內網的行為,如果能精確判斷各類行為,將會直接導致滲透行為的暴露。但是滲透行為觸發的報警經常不是emerg或者alert,經常是notice甚至為info級別。所以這類行為往往被忽略,只能進行仔細的分析才能發現。

            0x02 下一代安全防護


            如果仔細分析日志,是能發現現有滲透行為的,所以大家都在說下一代網絡安全防御方式。國外已經給我們做出了一個例子,那就是FireEye與旗下的mandiant,應該是我們所謂的下一代防護。在經過分析FireEye的報告和各種討論,提出了如下可能實現的方案:

            打造一個“管理員”,能在日志海中耐心,快速地識別所有的流量,將每一個流量識別成一個行為或者一個行為的一部分,再將這個行為對應到發起人,可能是一個IP或者是一個域賬戶,判斷是不是這個人可能的或是合法的行為。

            通過這個方案,不合法的行為將會串聯起來,變得異常明顯。當然這個方案在之前,需要極大的成本,其中的重點就是在打造這個機器學習,或者叫做人工智能。但是在最近,Google公開了他的神經網絡算法,并且遵循Apache協議,給每個程序員打造人工智能伙伴并且產品化的可能。

            阿里,360等也全部在研發下一代防護服務。絕對逃不出識別流量行為,分析行為的這個模式,相信也是在學FireEye的做法,或者說是本土化。機器學習的開源,只能說每個安全人員都有可能適用自身的下一代防護系統。

            那么下一代防護系統是否能滿足現有最高安全級別的防護要求呢,我們來做個小小的舉例:假設我們的監測系統已經學習了一周或者更長時間網絡流量日志。

            危險系數應該是累加,到達一個閾值,就會總結行為,提取日志,上報分析人員。遇到warning就會更加關注該源產生的流量。兩個alert就應該是閾值。

            我們按照同樣的思路測試我們自己的遠控,也不能很好的逃避監測。目前的設計思路還只是根據流量日志進行的分析,流量日志包括源與目的地址,時間,協議,大小這些數據流量的基本數據。如果能更深入的對數據包的內容進行檢測,將會極大的增強識別能力。我們的學習數據是流量日志,所以我們存在于旁路,甚至不存在于公司網絡,對用戶完全透明。

            如果我們繼續擴展,像Mandiant一樣,將信息收集點放入客戶機器,標識所有進入內網的流量,把所有的PC機器當成自己的蜜罐,精確的標記每一個流量,然后深度收集每一個流量最后的行為,再利用神經網絡學習并且識別出來哪些流量的行為是異常的。例如,一個被標記的流量來了,由瀏覽器接收,然后瀏覽器創建了一個新的進程,下載了一個EXE,在新的進程下執行。這個行為明顯不是一個正常網頁應該產生的效果,將該行為,加上所有的流量數據,內存執行數據提交分析人員,之后應該就能出現0day與遠控的分析報告。這種監測機制能高效的捕獲EXP,木馬及滲透行為。

            目前提出的網絡防御手段,即使名字叫做下一代防護,也都只能對當前滲透手段進行防御,不可能做到一勞永逸。因為下一代攻擊手段就是為了應對下一代防護,之后下下一代防護才能防御這種攻擊。

            舉個例子,bit9,白名單防護軟件,非白名單的可執行文件不允許被執行,如果嘗試執行,將會被阻止并且引發報警。當時應該可以號稱EXP+木馬組合的克星,就算你擁有0day,并且執行成功了,將遠控下回本地,但是你的遠控不能被執行,并且還會引發報警。結果就是0day與遠控都爆了。

            這種防御方式基本是不可逾越的,但那只是在poweshell+wmi出現之前,這種方式能完美的繞過文件白名單機制,完爆了bit9。而暴露這種攻擊手法的,就是行為檢測,因為就算滲透軟件發生了巨大的變化,但是你的滲透行為仍然不會有本質的改變。相信就是這樣,該攻擊方式已被FireEye曝出。

            0x03 探討


            那么,如果阿里360什么開發完善了這種檢測服務,那是不是網絡就安全了,那是不可能的。我們就來小小地討論下在這種環境下,究竟如何能長期生存下去。

            這種檢測的核心就是行為,如果我們的行為不能被發現,或者被識別成用戶行為,再或者是一個被信任的流量,那么是不是我們就能在這個網絡中生存下去了。我在這里有三個沒有經過實際驗證的想法,跟大家討論下。

            方案一、我們的行為被識別成用戶的行為

            我們的遠控在系統中寄存,但是主程序只是一個守護進程,不論是劫持系統進程還是什么的,只是存在,進行守護,但是不完成任何通信。然后通過注入劫持用戶正常通信進程,例如瀏覽器,劫持Chrome進程,當用戶啟動瀏覽器的時候,我們的通信進程隨即啟動或者略有延遲,進行絕對正常的通信,dns,http轉https,或者直接進行https通信,客戶端取回指令,執行進程執行,然后在傳回指令結果。整個過程類似聊天,你一句,我一句。如果用戶關閉瀏覽器,所有連接隨即關閉,但是服務器的最后一句話仍然會在服務器上,直到下一次開啟瀏覽器,在繼續整個過程。

            在這個過程中,我們的所有行為會被理解成用戶瀏覽器的某些行為。因為網頁不可能只存在于一臺服務器上,一定會有圖片服務器,js服務器,廣告之類的。所以只要我么你的流量保持在一個很小的水平,將不會引發任何警覺。就算進行行為的橫向對比甚至,檢測服務很智能,自己也向我們的服務器進行通信進行內容判斷,我們判斷不是我們的客戶端,就直接返回一大堆js或者圖片廣告或者正常網頁什么的,因為就算你是用相同的url,cookies等信息,你也不能保證你和用戶收到的數據一定是一樣的,并且數據經過加密,https數據包不能由第三方拆解,不能進行對比。這樣就完整的偽裝成一臺不被信任但是完全不敏感的服務器。

            我們的連接就算在一個分析人員來看,也會是一個用戶訪問一個正常的網頁,產生了一些你不明白的流量,但是絲毫不敏感。但是在機器上,我們的通信進程如何跟主進程進行通信,并且能不被mandiant這類分析軟件認為敏感,是寫本地文件,還是什么的,肯定會有方式。大流量的數據,通過郵件啊之類的合法的大流量行為進行傳輸。

            這樣理論上就能繞過行為檢測,穩定地駐留在這個內部網絡中。

            方案二、我們是被信任的

            內網用戶也是需要正常使用PC,完成某些目的。這樣他就會需要各種軟件或者平臺什么的支持。這些軟件基本都會向自己公司的服務器進行交互,可能是回執報告,可能是檢查更新,可能是任何行為。如果我們使用這種流量進行通信,那是不是能被所有的檢測機制信任,即使我們的流量很大。

            我們的核心就是大范圍的網絡劫持。下面舉個例子。

            在一個工作內網中,我們的木馬使用正常的https協議上線,在系統中駐留的方式很傳統,沒有任何特別的地方,最特別是是用的域名,我們使用windowsupdate.microsoft.com,或者support.microsoft.com,抑或是chrome.google.com進行上線。進行大流量的數據傳輸,上線時間什么的行為不做任何特別的設定,唯一限制的就是使用標準的https協議或者之類的安全加密協議。那么檢測系統抑或是分析人員會如何理解這個流量行為?

            我們在設計實現FireEye這類產品方案的初期,第一個就提出的,*.microsoft.com,*.cisco.com,*.google.com(個別域名除外,像code.google.com)這樣的域名的流量日志直接扔掉,檢測這類流量行為的是沒有任何意義的。我相信很多設計者也是這樣的想法,就算不是,該類流量過大,被系統識別出來,提交分析人員,分析人員也基本就會看一眼扔掉,應為分析這樣的流量沒有什么卵用。這個行為如何定義呢,好點的人在說microsoft收集系統使用報告呢吧,有點惡意的人肯定說微軟在收集用戶個人信息。基本不會認為有人利用該域名進行滲透。

            說說實現方案,其實難度不是特別大,絕對不是不可能。劫持或者控制區域DNS,至于是投毒,滲透還是什么隨意。如果域名不夠絕對,我就直接劫持IP地址,全部使用微軟的IP地址進行通信。只要控制一個路由器就可以實現不論是劫持域名還是劫持IP。之前的文章已經實現過類似的劫持,完成了想要的目的。

            方案三、無法分析我們的行為

            第三條方案比較直接,直接讓我們的行為無法被識別到,做法就是我們直接攻擊分析服務器或者說的人工智能的核心,去尋找這些組件的漏洞。如果能執行命令更好,是刪光所有的日志,還是直接刪除服務器所有數據都是后話了。

            然后我們在短期內就可以直接無視這種行為方面的檢測。

            0x04 結語


            任何系統,軟件都會有漏洞,堅信。

            群策群力,共同邁向下一代。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线