在Systemd中發現了一個新漏洞

systemd
在systemd中發現了一個漏洞,該漏洞已在 (CVE-2019,6454), 什麼 允許導致控件初始化過程(PID1)阻塞 通過D-Bus向非特權用戶發送特製消息時。

很多 Red Hat開發人員也不排除使用該漏洞以root特權組織代碼執行的可能性。,但尚未確定發生這種攻擊的最終可能性。

關於systemd

對於那些不了解Systemd的人 我可以告訴你 這是一個Linux初始化系統和服務管理器 其中包括諸如按需守護程序啟動,自動掛載和掛載點維護,快照支持以及使用Linux控制組的進程跟踪等功能。

Systemd 提供註冊表守護程序以及其他工具和實用程序,以幫助完成常見的系統管理任務。 Lennart Poettering和Kay Sievers撰寫了SystemD,靈感來自發布的macOS和Upstart,目的是創建一個現代,動態的系統。

特別是,systemd提供了積極的並行化功能和基於依賴項的服務控制邏輯,從而允許服務並行啟動並縮短了啟動時間。 這兩個方面都存在於Upstart中,但由systemd進行了增強。

Systemd是主要Linux發行版的默認引導系統,但它與SysV啟動腳本向後兼容。

SysVinit是在systemd之前的初始化系統,並使用簡化的方法啟動服務。 Systemd不僅管理系統初始化,而且還提供其他知名工具(例如cron和syslog)的替代方法。

關於新的系統漏洞

通過操縱通過D-Bus發送的消息的大小, 攻擊者可以將指針移動到分配給堆棧的內存限制之外,繞過“堆棧保護頁”的保護,該保護基於調用異常(頁錯誤)的邊緣上的內存頁的替換。

成功的攻擊在具有systemd 18.10的Ubuntu 239和具有systemd 7.6的CentOS 219上得到了證明。

解決方法是,可以在GCC中使用“ -fstack-clash-protection”選項使用編譯,在Fedora 28和29中默認使用該選項。

應當指出的是,MUSL系統庫的作者在2014年指出了主要的體系結構問題,即過度充氣的PID1處理程序,並質疑實現PID1級控制器API以與總線鏈接的可行性,因為它是一個嚴重的問題遭受攻擊,並可能對整個系統的可靠性產生不利影響

據一位安全研究員說 揭示了一個漏洞,只有未使用的內存頁面才可能更改堆棧指針 (未分配),它不允許在PID1進程的上下文中組織代碼執行,但允許攻擊者在隨後的Linux內核轉換為“緊急”狀態時啟動PID1鎖定(對於PID控制器1故障,整個系統掛起)。

在systemd中,安裝了一個信號處理程序,該信號處理程序試圖捕獲PID1進程的故障(分段故障)並啟動外殼進行恢復。

但是由於在攻擊過程中會調用非重複(未分配)的內存頁,因此內核無法調用此信號處理程序,而只是使用PID 1終止進程,這反過來會無法繼續工作並進入“緊急”狀態,因此需要重新引導系統。

已經有解決問題的方法

像已經描述和報告的任何安全問題一樣,只有在解決了該問題並且 針對SUSE / openSUSE,Fedora的漏洞補丁更新已經發布,也適用於Ubuntu,部分適用於Debian (僅限Debian Stretch)。
儘管問題仍未在RHEL中糾正。


本文內容遵循我們的原則 編輯倫理。 要報告錯誤,請單擊 這裡.

4條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   朱利索 他說:

    正是systemd具有成為大型特洛伊木馬的所有用途。 打破UNIX的“做一件事情,做好一件事情”的哲學,我們最終將為此付出代價。

    1.    大衛·納蘭霍 他說:

      我也是這麼想…

  2.   巴勃羅·馬蒂利亞(Pablo Matilla) 他說:

    我個人對啟動系統相當保守,我認為就像傳統和原始UNIX的最老和最傳統的用戶一樣:我建議系統V INIT或永遠成為傳統SYSVINIT。 系統化(我在8.3年450月偷了我的THINKPAD T2017中保留了LIMUX DEBIAN XNUMX)

  3.   路易士 他說:

    系統的吸!