女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

設計LSM鉤子提升Linux漏洞安全性

Linux閱碼場 ? 來源:Linux閱碼場 ? 作者:Linux閱碼場 ? 2022-07-11 10:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Tracee是一個用于Linux的運行時安全性和取證的開源項目,用于解決常見的Linux安全性問題。通過利用Linux擴展的Berkeley Packet Filter (eBPF)的技術優勢,在內核運行時跟蹤系統和應用程序,以便獲取相應的數據信息。Tracee分析收集的事件可以用來檢測可疑的行為模式,在本文中,我將分享從使用eBPF和Linux安全模塊(LSM)鉤子的角度,來分析在解決Linux漏洞(如TOCTOU類型)中學到的經驗教訓。

設計LSM鉤子來提升安全性

在正在運行的應用程序中,通常是通過系統調用與操作系統進行交互。出于這個原因,安全從業者會使用系統調用來分析運行中的應用程序的行為。重點在于選擇收集系統調用的方法,因為獲取到的參數值和操作系統實際使用的參數值之間可能存在差距。

eBPF允許在無需更改內核源代碼或加載內核模的情況下,在Linux內核中運行沙盒程序。通過使用kprobes附加到Linux Security Module (LSM)掛鉤上,我們可以收集內核實際使用的參數值。下面是具體使用LSM鉤子需要克服的一些問題:

準確理解相對路徑

在Linux中,當從用戶程序中讀取信息時,path參數可以包含一個相對路徑。

例如,當調用一個程序時,Tracee可以使用以下參數獲取一個系統調用:

·open(“。./。./directory/file”, O_RDONLY)

·open(“。/test/。./。./directory/file”, O_RDONLY)

這些系統調用中的路徑可能指向相同的位置,但問題來了,根據給定的參數,很難精確定位絕對且始終唯一的規范路徑。在構建安全策略時,規范路徑的重要性變得更加明顯,因為相對路徑的意圖和效果可能太過模糊。

找出鏈接文件

例如,用戶程序給出的某個文件的參數值可能會包含指向其他文件的鏈接。在Linux中,我們可以創建到一個文件的符號鏈接,其方式是一個文件充當另一個文件或目錄的引用。操作系統使用符號鏈接到達被鏈接的文件,并執行給定的命令。請看下面的例子,創建了一個名為python的文件,并將其鏈接到一個惡意的二進制文件my_malware:

1b2be154-00c1-11ed-ba43-dac502259ad0.png

當運行python時,我們可以看到Tracee跟蹤了兩個事件。其一是帶有參數值的系統調用 。/python。但實際上,python是象征性地鏈接到~/bin/my_malware,第二個就是被Tracee捕獲的security_bprm_check事件返回了實際執行的文件的路徑名。

1b406f3e-00c1-11ed-ba43-dac502259ad0.png

TOCTOU分析

當試圖獲取用戶程序的參數值時,如果只分析系統調用參數,結果可能會受到條件競爭的影響而錯過關鍵細節。這是因為在獲取信息后,用戶程序可以基于另一個并發線程,來進行更改系統調用參數。

例如,當調用一個程序時,Tracee可以使用以下參數獲取一個系統調用:

execve(“/bin/ls”, NULL, 0)

1b54634a-00c1-11ed-ba43-dac502259ad0.png

在進程中某一線程和內核調用執行Syscall之間會存在同一時間點。在這個時間點開始階段,通過使用指向進程地址空間中內存位置的指針,pathname參數被傳遞給內核。在這個期間,進程的另一個線程可以快速更改路徑名,最后內核來更新路徑名。

繼續我們的例子,另一個線程可以將第一個參數從/bin/ls更改為/bin/malicious,后者將由內核執行,而前者將由Tracee記錄。這個場景被稱為TOCTOU競態。攻擊者可以利用它來影響檢查和真正使用之間的記錄值,這樣會導致收集到的數據不準確,并誤導安全研究人員或自動檢測工具。

基于上面的原因,決定在Tracee中連同Syscall數據一起使用LSM鉤子來進行追蹤。像security_file_open這樣的事件,包含內核實際使用的路徑名,并與上報的常規Syscall事件交叉引用。

簡化分析過程

我們都知道在Linux中,Everything is a file這句著名的口號(https://en.wikipedia.org/wiki/Everything_is_a_file),是的,所有東西都是文件,需要使用文件描述符才能與之交互。當打開一個文件時(例如使用open),你會收到一個文件描述符。使用這些系統調用openat, unlinkat, execveat, accept, connect, bind, listen等等來與打開的文件進行交互。由于這個原因,如果我們想要分析在一個文件上執行的操作,那就必須跟蹤其打開的文件描述符,而Socket允許在不同的程序之間傳遞打開的文件描述符,這樣就會使分析更加困難。

對于使用Tracee的LSM鉤子事件,跟蹤文件描述符變得無關重要,因為LSM事件已經包含了相關的數據,比如完整的路徑名。這使得在分析問題時可以避免上述的影響,更加簡化分析流程。

結論

Tracee是一個易于使用的Linux運行時安全和取證工具,采用了目前最為火熱功能更為強大的eBPF技術,可以讓我們更好地理解程序的運行時行為,并打破對類似安全軟件構成困難和挑戰的桎梏,為安全分析人員提供進一步深入分析的方案。

原文標題:利用LSM鉤子打破系統調用跟蹤桎梏

文章出處:【微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11509

    瀏覽量

    213719
  • 源代碼
    +關注

    關注

    96

    文章

    2953

    瀏覽量

    68348
  • 應用程序
    +關注

    關注

    38

    文章

    3334

    瀏覽量

    59018

原文標題:利用LSM鉤子打破系統調用跟蹤桎梏

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何維護i.MX6ULL的安全內核?

    為 5.15.158。 因此,我們想知道:是否有可能基于這個 BSP 平臺實現安全的 i.MX 6ULL 系統?您會推薦上游的 linux-fslc 還是 linux-imx (BSP) 內核樹?顯然,
    發表于 04-01 08:28

    意法半導體與HighTec合作提升汽車軟件安全性

    意法半導體與HighTec EDV-Systeme公司攜手合作,共同開發了一套先進的汽車功能安全整體解決方案。該方案旨在加速安全關鍵的汽車系統開發進程,同時提升軟件定義汽車的安全性和經
    的頭像 發表于 02-18 09:52 ?512次閱讀

    AGV在工作時如何保持高強度安全性

    AGV實現高效低成本物料運輸,安全性高,通過安全裝置、交通管制避免碰撞。區域控制、傳感器控制、綜合控制等方式實現交通管理。AGV提升企業技術進步,有望在更多領域發揮廣泛作用。
    的頭像 發表于 01-02 11:46 ?442次閱讀
    AGV在工作時如何保持高強度<b class='flag-5'>安全性</b>

    如何實現 HTTP 協議的安全性

    協議的安全性,可以采取以下幾種方法: 1. 使用HTTPS HTTPS(安全超文本傳輸協議)是HTTP的安全版本,它在HTTP的基礎上通過SSL/TLS協議提供了數據加密、數據完整
    的頭像 發表于 12-30 09:22 ?927次閱讀

    集中告警管理如何提升設施安全性

    在工業或商業建筑中,集中告警管理已成為確保安全性或檢測故障的必備工具。它是如何提升設施安全性的?歡迎大家閱讀文章了解~
    的頭像 發表于 12-13 15:51 ?424次閱讀
    集中告警管理如何<b class='flag-5'>提升</b>設施<b class='flag-5'>安全性</b>?

    電池的安全性測試項目有哪些?

    電池的安全性測試是保證電池在實際使用過程中穩定、安全的重要手段。通過一系列嚴格的測試項目,能夠有效評估電池在不同條件下的表現,并提前發現潛在的安全隱患。對于消費者而言,了解這些測試項目不僅能幫助他們
    的頭像 發表于 12-06 09:55 ?2100次閱讀
    電池的<b class='flag-5'>安全性</b>測試項目有哪些?

    在電氣安裝中通過負載箱實現最大效率和安全性

    在電氣安裝中,負載箱是一種常用的設備,主要用于模擬實際的電力負載,以便進行各種電氣設備的測試和調試。通過負載箱,可以實現最大效率和安全性,從而提高電氣設備的運行性能和使用壽命。 負載箱可以實現最大
    發表于 11-20 15:24

    socket編程的安全性考慮

    在Socket編程中,安全性是一個至關重要的考慮因素。以下是一些關鍵的安全性考慮和措施: 1. 數據加密 使用TLS/SSL協議 :TLS/SSL(傳輸層安全性/安全套接層)是網絡
    的頭像 發表于 11-01 16:46 ?742次閱讀

    UWB模塊的安全性評估

    UWB(超寬帶)模塊的安全性評估是一個復雜而關鍵的過程,涉及多個方面,包括技術特性、加密機制、抗干擾能力、物理層安全等。以下是對UWB模塊安全性評估的分析: 一、技術特性帶來的安全性
    的頭像 發表于 10-31 14:17 ?836次閱讀

    智能系統的安全性分析

    智能系統的安全性分析是一個至關重要的過程,它涉及多個層面和維度,以確保系統在各種情況下都能保持安全、穩定和可靠。以下是對智能系統安全性的分析: 一、數據安全性 數據加密 : 采用對稱加
    的頭像 發表于 10-29 09:56 ?741次閱讀

    云計算安全性如何保障

    云計算的安全性是一個復雜而多維的問題,涉及多個層面和多種技術手段。為了保障云計算的安全性,需要采取一系列綜合措施,以下是具體的保障方法: 一、數據加密 數據加密是保護云計算安全性的核心手段之一
    的頭像 發表于 10-24 09:14 ?878次閱讀

    如何提升SoC的安全性

    安全啟動確保SoC從可信的固件開始啟動,防止未授權或惡意軟件加載。SoC內置一個只讀存儲器(ROM)中的Bootloader,這段代碼不可更改,用于執行初始啟動。固件鏡像在編譯完成后使用開發者的私鑰
    的頭像 發表于 10-21 14:19 ?778次閱讀

    固態電池安全性怎么樣

    固態電池在安全性方面表現出顯著的優勢,這主要得益于其獨特的固態電解質結構。以下是對固態電池安全性的詳細分析:
    的頭像 發表于 09-15 11:47 ?2115次閱讀

    樓宇自控系統:提升建筑安全性的隱形盾牌

    樓宇自控系統:提升建筑安全性的隱形盾牌 在城市的鋼鐵森林中,每一座建筑都是人類智慧與創造力的結晶。然而,隨著建筑規模的不斷擴大和復雜的增加,其安全性問題也日益凸顯。在這個背景下,樓宇
    的頭像 發表于 08-22 13:43 ?452次閱讀

    請問DM平臺訪問安全性如何控制?

    DM平臺訪問安全性如何控制?
    發表于 07-25 06:10