<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>

    輕松應對木馬源攻擊的三種方法

    VSole2021-11-11 09:23:48

    盡管木馬源攻擊的通用漏洞評分高達9.8,但企業完全沒必要驚慌失措。

    劍橋大學研究人員發現的木馬源(Trojan Source)攻擊會誘使編譯器讀取隱藏的Unicode字符,并生成帶有開發人員或安全分析師不知道的額外指令和后門的二進制文件。由于默認情況下特殊字符不可見,因此在代碼審查期間難以發現惡意代碼。

    利用Unicode顯示文本方式的攻擊并不新鮮,但“木馬源”更具威脅的原因是從公共站點(例如StackOverflow、GitHub和其他社區論壇)復制和粘貼的大量代碼會直接進入源代碼文件。如果有問題的Unicode字符隱藏在文件中,這些字符也會被復制進來。

    nVisium高級應用程序顧問Jon Gaines表示:“這對源代碼審查的能力是一次考驗,當下建議暫時不要復制和粘貼代碼,最好是自己重寫一遍。”

    方法一:“顯影”Unicode字符

    開發人員可以通過啟用他們正在使用的IDE或文本編輯器來顯示Unicode字符,從而檢測潛在的惡意Unicode字符。或者可以使用命令行十六進制編輯器,例如HexEd.It,在文件中搜索特定的Unicode字符。

    一些主要的源代碼控制平臺已經做出回應:GitHub、GitLab和Atlassian(用于 BitBucket)已經發布了針對Unicode BiDi字符的警報(CVE-2021-42574)。

    對于容易遭受木馬源攻擊的文本編輯器Visual Studio Code ,一種可行的方法是將編碼轉換為非unicode。JFrog安全研究高級主管Shachar Menashe表示,這會將惡意的Unicode字符(對于BiDi字符)標記為損壞字符,在手動代碼審查期間可以發現這些損壞的字符。

    這是在Visual Studio Code中進行轉換后 Unicode BiDi 的樣子:

    有些同形文字很難與合法字符區分開來。這是在Visual Studio Code中進行轉換后這些字符的顯示方式:

    Visual Studio、Notepad++和Sublime Text實際上不受BiDi字符的影響,因為該行要么被破壞,要么整行顯示為注釋:

    方法二:過濾字符

    Menashe認為木馬源攻擊方法的威脅“在現實世界中影響有限”,因為常規源代碼通常不包含研究人員列舉的特殊Unicode字符(BiDi和同形文字)。它們“很容易被檢測到、發出警報,甚至可能會自動過濾掉”。

    下面的Linux命令可以警告或刪除單個源代碼文件中的所有Unicode字符:

    • Alert:iconv-f utf-8 -t ascii input.cpp
    • Strip:iconv-c -f utf-8-t ascii input.cpp-o filtered_output.cpp


    或者,此Linux命令將檢查文件列表并標記找到特殊字符的實例:

    • for file in filelist;do hexdump-C “$file”|grep RTLcharacters;done


    以下命令不僅可以發出警報,還可以僅從單個代碼文件中刪除木馬源攻擊針對的特定字符。

    例如以下這兩個Linux命令去除了Unicode BiDi字符CVE-2021-42574):

    • CHARS=$(python-c'print u"\u202A\u202B\u202D\u202E\u2066\u2067\u2068\u202C\u2069".encode("utf8")')
    • sed's/['"$CHARS"']//g'<input.cpp>filtered_output.cpp


    對于Unicode Homoglyph字符(CVE-2021-42694),這兩個命令生成了僅用于剝離西里爾字母同形文字的部分列表:

    • CHARS=$(python-c'print u"\u0405\u0406\u0408\u0410\u0412\u0415\u0417\u041D\u0420\u0421\u0422\u0425\u0430\u0440\u0441\u0443\u0445\u0455\u04AE\u04BB\u04C0".encode("utf8")')
    • lsed 's/['"$CHARS"']//g'< /tmp/utf8_input.txt>/tmp/ascii_output.txt

    方法三:更新工具

    為編譯器安裝更新,這樣可阻止木馬源攻擊。在應用得到更新前,自動檢測和清理文件的命令也可以緩解這些問題。雖然可以在更改文本編輯器設置后執行手動源代碼審核以查找這些特殊字符,但這將是“處理此問題的最糟糕方法”,Menashe指出,因為某些字符在某些情況下來自合法的拉丁字符。

    “最好的解決方案是運行自動化工具來標記和/或刪除這些字符,”Menashe說道。

    在擁有大型代碼庫的組織中,對文件的單獨審計很難大面積開展。Red Hat發布了一個簡單的Python腳本(https://access.redhat.com/security/vulnerabilities/RHSB-2021-007#diagnostic-tools:)來識別整個代碼庫中的潛在問題。該腳本可以集成到持續集成/持續交付工作流中,或者作為預提交檢查添加,以確保惡意代碼不會進入生產環境。

    Rapid7的首席安全數據科學家Bob Rudis還推薦了一個簡單的緩解措施:“如果你只用英語或只用阿拉伯語編寫代碼,則可禁止在代碼庫中使用BiDi指令”。

    盡管木馬源攻擊的通用漏洞評分高達9.8,但企業沒必要驚慌失措。Rudis認為9.8分顯然是“夸大了”,因為實施木馬源攻擊需要攻擊者直接訪問開發人員的工作站、源代碼管理系統或持續集成管道。

    “如果攻擊者可以直接訪問你的源代碼管理系統,坦率地說,你可能會遇到比這次攻擊更大的問題。”Rudis說:“我們建議在擔心需要本地或物理訪問的源代碼級攻擊之前,優先考慮真正關鍵的補丁并防止服務和系統暴露。”

    源代碼unicode
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    劍橋大學的研究人員發表論文,介紹了在源代碼中隱藏人眼看不見的漏洞的攻擊方法。
    幾乎所有的編譯器都容易受到惡意攻擊。
    劍橋大學研究人員發現了一個可影響當今大多數計算機軟件代碼編譯器和軟件開發環境的漏洞。這個漏洞來自數字文本編碼標準Unicode的一個組件,Unicode目前在154中不同的編程語言腳本中定義了超過14.3萬個字符(除了一些非腳本字符集,例如表情符號)。
    作為一只網安新人小白,在RCE方向上的求知經高人指點落腳在了Struts2上。
    利用Unicode顯示文本方式的攻擊并不新鮮,但“木馬源”更具威脅的原因是從公共站點(例如StackOverflow、GitHub和其他社區論壇)復制和粘貼的大量代碼會直接進入源代碼文件。如果有問題的Unicode字符隱藏在文件中,這些字符也會被復制進來。
    2021年11月1日,國際信息安全資訊網站the Record報道,來自英國劍橋大學的安全研究人員發現了一種新的理論攻擊技術,可以通過注釋字段將惡意代碼插入合法的應用程序中,從而加載惡意軟件或關閉安全防護功能。
    函數h()是function g { var b = ""; 16 > a && ; return b + a.toString}function h { for e = a.charCodeAt, 255 >= e ?55^10055 =0011 0111100 =0110 0100結果 =0101 0011十進制 =83. def octToHexStr: if number < 16: return '0' + str[2:]. for chr in data: e = ord if e <= 255: enData += octToHexStr else: enData += octToHexStr
    Ceye DNS:DNS oob平臺 http://ceye.io/. TLS證書信息查詢Censys:https://censys.io. 網絡空間搜索Fofa:https://fofa.info/
    0x00 目標情況一個web站點111.*.*.63,只有一個登陸框,測試了沒有注入,沒有弱口令,掃描了全端口,沒有發現什么有用的信息。0x02 找網站絕對路徑判斷是不是dba權限uname=test';if(1=(select?判斷是否是站庫分離uname=test';if?sqlmap查看建表成功,sqlmap -r 1.txt --dbms "Microsoft SQL Server" -D "tempdb" --tables查找網站文件并把路徑寫入到表tt_tmp. python sqlmap.py -r 1.txt --dbms="Microsoft SQL Server" --technique=S -D "tempdb" -T "tt_tmp" -C "tmp1" --dump -v 30x03 嘗試在111.*.*.59主機getshell嘗試寫一句話先在下面的路徑中寫入txt文件驗證網站路徑到底是哪一個D:\bak\20170226\bak\20170403.2\webapp\Content\layer\. 依次寫文件然后訪問,在寫入?
    Ceye DNS:DNS oob平臺 http://ceye.io/. TLS證書信息查詢Censys:https://censys.io. 網絡空間搜索Fofa:https://fofa.info/
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类