<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    欺騙防御新方法:rMTD

    VSole2021-09-21 22:41:45

    如果運行的操作系統和應用中存在漏洞,那攻擊者大概率會找到一個利用它的方法。唯一確定的解決隱患方式就是從程序庫中修復問題。但是,在安全補丁發布前,系統依然有被攻陷的風險。許多人不得不接受這種情況。

    不過,事情可能出現了轉機:輪換移動目標防御技術(rotational Moving Target Defense, rMTD)。

    rMTD是一種讓已有的漏洞難以被利用的理念。這個理念可以用多種不同技術實現:可以是靜態的,在應用編譯的時候植入,又被稱為“編譯時應用自我防護(Compile Time Application Self Protection, CASP)”;也可以是在運行時動態使用,稱為“運行時應用自我防護(Runtime Application Self Protection, RASP)”。CASP和RASP并不互斥,完全可以結合到一起。

    CASP通過在編譯的時候修改應用產生的匯編代碼,從而確保沒有任何兩個匯編會產生完全相同的匯編指令組。攻擊者一般會基于從一個生成的靜態編譯中獲得的已知匯編布局,進行他們的攻擊。一旦他們構建了自己的攻擊方式,就會針對系統中有同樣二進制碼的位置進行操作。他們會利用應用或者操作系統的靜態編譯特性,劫持系統。

    如果要類比的話,就像一個小偷獲得了你的保險箱的復制品,并有足夠的時間來發現如何破解它。唯一的區別是,對于黑客攻擊人員而言,他們相比保險箱,會更容易獲得軟件的復制品,同時相關漏洞已知并且已經被發布。而通過CASP防護,同一個保險箱(也就是應用)會在遮掩(二進制布局)下看上去不一樣。

    RASP則是在應用運行的時候創建無序狀態。二進制布局會在每次應用運行的時候動態變化。攻擊者無法再對應用的堆棧布局,或者函數和庫的地址做出猜想。類比的話,就是在高速公路上狂奔的同時,車子在切換引擎并重新設置車內組件。

    CASP和RASP會通過一系列的技術實現,以下是一些總結:

    CASP技術

    1、匯編代碼修改

    將程序庫中原有的匯編指令組替換成一個完全不同,但是邏輯上一致的指令組。ABI(Application Binary Interface,應用二進制接口)是和程序庫進行函數調用的接口。對于匯編指令的修改不會影響到ABI。應用和二進制之間的接口保持不變。

    攻擊者會檢查匯編指令組的布局,然后規劃攻擊。他們的工具能讓他們檢查編譯后的代碼以及產生的匯編指令,從而能夠去尋找代碼漏洞(比如緩沖區溢出、緩沖區反向溢出、整型溢出、雙自由調用等)。一旦一個漏洞被發現,攻擊者會根據二進制的匯編布局來對修改附近的匯編指令進行攻擊。通過修改對攻擊者而言未知的匯編代碼,就能無效攻擊,因為二進制的匯編布局被修改了。

    2、隨機化每個程序庫中每個函數的起始地址

    每個程序庫或者模組都會顯示應用能調用的函數。默認情況下,每個函數的起始地址在編譯的時候都會被固定。

    攻擊者可以檢查編譯后的二進制內容,然后輕易得到每個函數的地址,而不需要對源代碼進行檢查。這個信息之后就會被用于攻擊。當堆棧被劫持的時候,攻擊代碼能夠指定攻擊者想調用的程序庫中的地址,從而打開一個shell。

    3、數據結構防護

    二進制中的數據結構記憶布局會在編譯的時候隨機化,數據字段會實時被動態加密,防止它們被改寫或者讀取。

    數據結構經常會包含緩沖,比如字符串緩沖或者數組緩沖。這些都會成為實現緩沖區溢出攻擊的目標。為了能夠通過定義在數據結構中的緩沖對堆棧進行劫持,攻擊者必須找到在數據結構中緩沖區的位置。通過在編譯時隨機化數據結構布局,就能讓攻擊者無法再在數據結構中定位緩沖區的位置。

    RASP技術

    1、隨機化動態程序庫地址

    在運行時,程序庫的地址會隨機化。所有涉及到程序庫里的引用都會被更新顯示新的地址。這個方式會讓攻擊者更難在劫持進程的時候,從應用內調用外部程序庫。

    2、隨機化動態函數地址

    程序庫中定義的每個函數的地址都在編譯的時候給予了一個靜態地址。除了隨機化程序庫的地址外,每個函數的地址也會在執行的狀態下,在一個應用調用它的時候發生改變。

    3、動態stack canary

    相比于一個容易繞過的固定隨機值的靜態stack canary,動態的canary可以隨著時間動態隨機化。通過動態隨機化stack canary,攻擊者沒有足夠的時間在它變化前猜對其數值。

    4、影子堆棧

    影子堆棧是指在編譯中生成的堆棧的復制,但是影子堆棧中至儲存返回地址。返回地址在影子堆棧中被加密,這樣就不會被攻擊者所修改。在應用從堆棧讀取返回地址跳轉到前一個執行狀態前,返回地址會被加密并且會和影子堆棧中的數值進行對比。如果兩者匹配,執行就會跳轉到返回地址指向的下一個指令;如果兩者不匹配,那就可能是被攻擊者修改了地址,那就出現了應用故障,造成應用崩潰,然后事件會被記錄。

    5、PLT

    PLT(Procedure Linkage Table,程序鏈接表)是一個定位其他程序庫中函數的搜索表。外部程序庫的函數地址在進程執行過程中隨機存儲在PLT中,而非靜態的。

    這樣就可以防止攻擊者從一個已知的程序庫里調用函數來生成一個終端。比如攻擊者可以通過發現PLT中的strcpy()函數并調用實現攻擊;但是如果通過動態改變定義在外部程序庫的函數位置,攻擊者就無法在通過發現外部函數的地址實現return0to-PLT攻擊。

    rMTD可能是下一代防范0day攻擊的前線能力,能使計算機和系統對攻擊者有更強的抵御能力。隨著這項技術更加成熟并在行業內得到廣泛使用,它可能像防毒軟件一樣普及。

    數世點評

    安全所在的階段越早,最后的安全效果也就越明顯。在應用、系統的代碼層面就嵌入安全能力,可以讓安全防線進一步前置,從而拓寬防御的縱深,使得攻擊者的攻擊難度增大。這兩年,國內的RASP產品在逐漸發展,因為RASP產品更多適用于應用在運行時的防護,是傳統的網站應用防護中的新武器;而CASP則更多需要在開發早期就投入使用,無論是市場的信任度,還是技術的穩定性都還需要一定時間來提升。但是,rMTD確實是未來開發安全值得重視的方向。

    堆棧二進制
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    二進制程序分析
    2021-09-25 17:18:46
    分析惡意軟件的第一步是收集二進制程序在主機上執行的行為事件,研究人員根據這些行為大體形成一個思路來描述惡意軟件的功能。 這包含應用釋放或者從互聯網下下載的文件,寫入什么樣的注冊表、訪問了什么網絡地址,修改讀寫本地的什么文件等等。那么研究人員通過行為會確定惡意樣本的類型。通常類型如下:
    交互式反匯編器,簡稱為IDA。是目前最棒的一個靜態反編譯軟件,為眾多0day世界的成員和ShellCode安全分析人士不可缺少的利器!此章節讓我們熟悉通過IDA修改參數、函數、返回值,同時詳細解讀標志位的概念,熟悉堆棧及詳細解讀ARM三級流水線概念和ARM編碼編譯為二進制的全過程。
    概述在windows系統上,涉及到內核對象的功能函數,都需要從應用層權限轉換到內核層權限,然后再執行想要的內核函數,最終將函數結果返回給應用層。本文就是用OpenProcess函數來觀察函數從應用層到內核層的整體調用流程。OpenProcess函數,根據指定的進程ID,返回進程句柄。NTSTATUS Status; //保存函數執行狀態。OBJECT_ATTRIBUTES Obja; //待打開對象的對象屬性。HANDLE Handle; //存儲打開的句柄。CLIENT_ID ClientId; //進程、線程ID. dwDesiredAccess, //預打開進程并獲取對應的權限。ObjectNamePresent = ARGUMENT_PRESENT ; //判斷對象名稱是否為空
    AI安全論文第19篇介紹惡意代碼分析經典論文DeepReflect,希望您喜歡
    結果分析Hook前Hook后,我們的彈窗本該是hello的但是hook后,程序流程被我們修改了。760D34B2 55 push ebp760D34B3 8BEC mov ebp,esp通過這兩條指令,函數就可以在堆棧中為局部變量分配存儲空間,并在函數執行過程中保存和恢復現場。這樣做的好處是可以避免局部變量和其他函數之間的沖突,同時也可以提高函數的可讀性和可維護性。
    蘇黎世聯邦理工學院的研究人員發現了一種新型瞬態執行攻擊,能在所有型號的 AMD Zen CPU上執行特定命令并泄露敏感數據。
    據Akto稱,該平臺可以在大約一分鐘內完成部署。BoostSecurity于2022年結束潛水模式正式在業界亮相。Priori能持續監控系統是否存在惡意活動。當發生數據泄露時,Priori會立即發送警報,其中包含有關哪些端點已遭到入侵的信息。該公司成立于2022年。Kintent科技成立于2020年。
    CS:GO 從0到0day!
    2023-05-31 14:30:11
    ,并詳細介紹了4種不同的邏輯漏洞。公共研究眾所周知,該公司并不是第一個在CS:GO游戲中尋找漏洞的組織,因此,可以在互聯網上搜索到很多有用的博文和PPT。專門下載舊版本,但同時該功能似乎已被 Valve 公司禁用。為了全面測試并制定漏洞利用策略,該組織決定用 Python 實現自己早期階段的服務器。函數將字符串的長度限制為 256 個字符,從而從文件名中截斷不需要
    微軟修復了Microsoft Kernel Streaming Server(一個Windows內核組件,用于相機設備虛擬化和共享)中的一個關鍵漏洞,即CVE-2023-36802。
    嚴格來說,生成式人工智能已經存在了近十年,但最近這項技術的蓬勃發展激發了人們應用它來尋找潛在信息安全挑戰的新興趣。要想找到這些挑戰,就必須進行“大海撈針式”的搜索,而這其中包括每天都會涌入網絡的全新二進制文件、文檔、域名和其他工件,任務的艱巨性可想而知。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类