BPFdoor:隱形Linux惡意軟件繞過防火墻進行遠程訪問
最近發現的一種名為 BPFdoor 的后門惡意軟件已經悄悄地針對 Linux 和 Solaris 系統,五年多來一直沒有被發現。
BPFdoor 是一個 Linux/Unix 后門,它允許攻擊者遠程連接到 Linux shell 以獲得對受感染設備的完全訪問權限。
該惡意軟件不需要打開端口,無法被防火墻阻止,并且可以響應來自網絡上任何 IP 地址的命令,使其成為企業間諜活動和持續攻擊的理想工具。
解析“魔術”數據包
BPFdoor 是一個被動后門,這意味著它可以在一個或多個端口上偵聽來自一個或多個主機的傳入數據包,攻擊者可以使用這些端口將命令遠程發送到受感染的網絡。
該惡意軟件使用 Berkeley Packet Filter(后門名稱中的 BPF),它在網絡層接口上工作,能夠查看所有網絡流量并將發送數據包發送到任何目的地。
由于定位在如此低的級別,BPF 不遵守任何防火墻規則。
它有適用于 Linux 和 Solaris SPARC 系統的版本,但它也可以移植到 BSD,BleepingComputer 從 Sandfly Security 的創始人 Craig Rowland 那里了解到,該公司提供無代理解決方案來保護 Linux 系統。
安全研究員 Kevin Beaumont在 BPFdoor 上發表了 一篇博文,他告訴 BleepingComputer,操作員使用“魔法”密碼來控制植入物的行為。
BPFdoor 僅解析 ICMP、UDP 和 TCP 數據包,檢查它們的特定數據值,以及后兩種數據包的密碼。
BPFDoor 的突出之處在于它可以監視任何端口的魔術包,即使這些端口被其他合法服務使用,例如網絡服務器、FTP 或 SSH。

Beaumont 告訴我們,ICMP 數據包不需要密碼,這使他能夠使用 ping 功能掃描互聯網以運行 BPFdoor 植入程序。
“ping 功能允許您指定 IP 地址和端口以供其回復 - 因此我能夠讓受害者植入物回復我控制的完全不同的 IP” - Kevin Beaumont
研究人員能夠在不同地區的組織網絡上找到 BPFdoor 活動,其中最著名的是美國、韓國、香港、土耳其、印度、越南和緬甸。
令人驚訝的是,他發現了 11 臺 Speedtest 服務器感染了 BPFdoor。研究人員表示,目前尚不清楚這些機器是如何受到損害的,特別是因為它們運行在閉源軟件上。
繞過本地防火墻
Rowland在一份關于 BPFdoor 的綜合 技術報告中指出 ,該惡意軟件采用了一些巧妙的反規避策略:
- 駐留在系統內存中并部署反取證操作(擦除進程環境,盡管它沒有成功,因為它使其為空)
- 加載伯克利包過濾器 (BPF) 嗅探器,使其能夠在任何本地運行的防火墻前工作以查看數據包
- 接收相關數據包時修改“iptables”規則以允許攻擊者通過本地防火墻進行通信
- 以類似于常見 Linux 系統守護程序的名稱偽裝二進制文件
- 重命名并運行為 /dev/shm/kdmtmpflush
- 將二進制文件(timestomping)的日期更改為 2008 年 10 月 30 日,然后再將其刪除
Rowland 認為,在這種情況下,作為一種反取證技術,timestomping 的解釋可能是攻擊者可能會嘗試保護二進制文件以防刪除失敗。
研究人員表示,偽造日期的目的可能是隱藏惡意軟件,使其無法在系統上尋找新文件。
更改防火墻規則特別重要,因為它允許攻擊者通過防火墻無法標記為可疑的流量與后門通信。
Rowland 解釋說,當受感染的主機收到一個特殊的 BPFdoor 數據包時,惡意軟件“將生成一個新實例并更改本地iptables規則,以從請求主機重定向到 shell 端口。”
“例如,植入程序可以使用 TCP 端口 443(加密網絡)將來自攻擊者的所有流量重定向到外殼。在外部,流量看起來像 TLS/SSL 流量,但實際上攻擊者正在與系統上的遠程根 shell 交互”。
為了進一步澄清,Rowland 表示,對于本地 shell,惡意軟件會修改“iptables”配置,以將來自攻擊者的所有流量通過合法端口重定向到惡意軟件中定義的端口范圍。

命令和檢測
威脅情報和事件響應公司 ExaTrack的 Tristan Pourcelot 對 BPFdoor 的另一項 技術分析指出,該惡意軟件帶有幾個硬編碼名稱,這些名稱與相關數據包中的命令字符串相匹配:
justtryit、justrobot和justforfun在端口 42391 到 42491 上建立綁定 shell
socket或sockettcp為數據包中存在的 IP 地址設置反向 shell
BPFdoor 逃避檢測的部分技術是使用以下選項重命名二進制文件以顯示為普通的 Linux 守護進程:
/sbin/udevd -d /sbin/mingetty /dev/tty7 /usr/sbin/console-kit-daemon --no-daemon hald-addon-acpi: listening on acpi kernel interface /proc/acpi/event dbus-daemon --system hald-runner pickup -l -t fifo -u avahi-daemon: chroot helper /sbin/auditd -n /usr/lib/systemd/systemd-journald
Pourcelot 說,攻擊者定期更新 BPFdoor,用不同的命令、進程或文件名稱改進每個版本。
例如,較新的植入程序變體從使用命令關鍵字切換到 MD5 哈希,可能是為了避免微不足道的檢測。
目前在Virus Total掃描平臺上檢測到的BPFdoor至少有21個版本,最早的版本是2018年8月提交的。