chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

設(shè)計LSM鉤子提升Linux漏洞安全性

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

掃碼添加小助手

加入工程師交流群

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

設(shè)計LSM鉤子來提升安全性

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

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

準確理解相對路徑

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

例如,當調(diào)用一個程序時,Tracee可以使用以下參數(shù)獲取一個系統(tǒng)調(diào)用:

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

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

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

找出鏈接文件

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

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

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

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

TOCTOU分析

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

例如,當調(diào)用一個程序時,Tracee可以使用以下參數(shù)獲取一個系統(tǒng)調(diào)用:

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

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

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

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

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

簡化分析過程

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

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

結(jié)論

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

原文標題:利用LSM鉤子打破系統(tǒng)調(diào)用跟蹤桎梏

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

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

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213839
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2953

    瀏覽量

    68398
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3337

    瀏覽量

    59041

原文標題:利用LSM鉤子打破系統(tǒng)調(diào)用跟蹤桎梏

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何維護i.MX6ULL的安全內(nèi)核?

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

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

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

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

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

    如何實現(xiàn) HTTP 協(xié)議的安全性

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

    集中告警管理如何提升設(shè)施安全性

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

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

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

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

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

    socket編程的安全性考慮

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

    UWB模塊的安全性評估

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

    智能系統(tǒng)的安全性分析

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

    云計算安全性如何保障

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

    如何提升SoC的安全性

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

    固態(tài)電池安全性怎么樣

    固態(tài)電池在安全性方面表現(xiàn)出顯著的優(yōu)勢,這主要得益于其獨特的固態(tài)電解質(zhì)結(jié)構(gòu)。以下是對固態(tài)電池安全性的詳細分析:
    的頭像 發(fā)表于 09-15 11:47 ?2149次閱讀

    樓宇自控系統(tǒng):提升建筑安全性的隱形盾牌

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

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

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