丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當前位置:首頁 > 問答

【oz9966sn怎么去保護】使用Seccomp過濾器保護容器

本文提出了一種使用后保護集裝箱應(yīng)用程序的新方法。這種額外的保護稱為Seccomp-BPF。

許多企業(yè)使用容器作為管理和運行應(yīng)用程序的基本技術(shù)。如果經(jīng)常使用容器,很容易理解原因。換句話說,它提供了新級別的可移植性和可擴展性。但是,與其他新技術(shù)一樣,容器的采用意味著開發(fā)應(yīng)用程序的新方法。

根據(jù)容器配置的不同,使用中的應(yīng)用程序最終可能會傷害運行容器的主機。容器中還存在其他需要考慮的影響,包括作為環(huán)境變量存儲的潛在秘密和可以訪問的內(nèi)容。如果想進一步了解Docker容器安全最佳實踐,gitGuardian提供了有用的備忘錄。

經(jīng)驗證的軟件開發(fā)生命周期已經(jīng)包含漏洞掃描和軟件配置分析等安全流程,但需要更多的安全流程。大多數(shù)可用的應(yīng)用程序安全技術(shù)都是為了防止應(yīng)用程序受到攻擊而存在的,但不包括成功使用應(yīng)用程序時可能發(fā)生的損壞。為了解決這個問題,一直在研究保護和利用容器應(yīng)用程序的新方法。在這個軟件中,我將分享這個軟件是什么,以及如何無縫集成到已經(jīng)設(shè)置的句子開發(fā)過程中。我說的額外保護稱為Seccomp-BPF。在詳細知道如何使用之前,必須說明它是什么。

背景

我們在電腦上運行的程序嚴重依賴基本操作系統(tǒng),什么都做。打開文件和創(chuàng)建新進程等任務(wù)從現(xiàn)代編程語言中抽象出來,但在底部,代碼正在發(fā)出稱為系統(tǒng)調(diào)用(或系統(tǒng)調(diào)用)的內(nèi)核請求。系統(tǒng)調(diào)用對程序的執(zhí)行有多重要?嗯,在Linux內(nèi)核中可以使用大約400個系統(tǒng)調(diào)用,甚至基本的“Hello,World!”也有。用c語言編寫的程序有兩個:寫作和結(jié)束。

在所謂的“用戶空間”中運行的代碼不經(jīng)過內(nèi)核就不能執(zhí)行任何操作。最終,一些聰明的Linux內(nèi)核開發(fā)者決定利用這一事實創(chuàng)建強大的安全功能。2012年7月,Linux 3.5版增加了對Seccomp-BPF的支持。

Seccomp-BPF是Linux內(nèi)核功能,允許您創(chuàng)建特殊過濾器來限制進程可以執(zhí)行的系統(tǒng)調(diào)用。理論上,可以創(chuàng)建Seccomp-BPF過濾器,該過濾器接受只需要運行一個進程的準確系統(tǒng)調(diào)用。如果應(yīng)用程序被意外使用,以便對方能夠生成其他流程,則這很有用。如果進程不允許調(diào)用新系統(tǒng),Seccomp很可能會攔截攻擊者。

Seccomp非??幔€可以集成到容器運行時和編排工具(如Docker、Kubernetes)中。那是“為什么Seccomp沒有被廣泛使用?”提出問題。我認為,答案是,缺乏資源來填補Seccomp等低級內(nèi)核功能與現(xiàn)代軟件開發(fā)過程之間的差距。(約翰f肯尼迪,美國電視劇)并非所有組織都有對系統(tǒng)調(diào)用很熟悉的低級代碼開發(fā)者。此外,還必須確定程序所需的系統(tǒng)調(diào)用,并使用代碼中實現(xiàn)的每個新功能進行更新。

我在考慮如何解決這個問題,我想到了一個主意?!叭绻覀冊谶\行程序時記錄發(fā)送的系統(tǒng)調(diào)用,會發(fā)生什么?”“我在跟我的一個同事說我的想法。第二天,他發(fā)送了指向在GitHub上找到的工具的鏈接。Red Hat的一些人制作了OCI-seccomp-bpf-hook,這是一款完全滿足我需求的工具!

創(chuàng)建Seccomp-BPF過濾器

此工具oci-seccomp-bpf-hook用于Linux容器。OCI是指“開放容器發(fā)起”,是一組定義需要提供何種類型接口的容器運行時標準。與OCI兼容的容器運行時(例如Docker)提供了一種稱為“掛接”的機制,使您能夠在容器啟動之前和容器刪除后執(zhí)行代碼。比起解釋紅心的工具如何使用這個鉤子,演示似乎更明確。

Red Hatoci-seccomp-bpf-hook是為與容器運行時podman一起使用而開發(fā)的。Podman向后兼容Docker,因此如果使用過Docker,則我示例的語法看起來很熟悉。此外,除非源代碼安裝,否則OCI掛接當前僅在Red-Hat特定的DNF存儲庫中可用。為了使這個演示不那么復雜,我只用了一個Fedora服務(wù)器。(如果沒有Fedora環(huán)境,最好從Virtualbox和VMware等東西運行Fedora虛擬機。)

要開始使用,首先要做的是確保oci-seccomp-bpf-hook與podman一起安裝。為此,可以運行以下命令:

sudo dnf install pod man OCI-sec comp-bpf-hook

現(xiàn)在我們有了podman和OCI鉤子。我們終于可以深入了。

入研究如何生成 Seccomp-BPF 過濾器了。從自述文件中,語法是:

sudo podman run --annotation io.con;if:[absolute path to the input file];of:[absolute path to the output file]" IMAGE COMMAND


讓我們ls在基本容器中運行命令并將輸出通過管道傳輸?shù)?dev/null. 當我們這樣做時,我們將記錄該ls命令發(fā)出的系統(tǒng)調(diào)用并將它們保存到/tm.

sudo podman run --annotation io.containers.trace-syscall=of:/tm fedora:35 ls / > /dev/null


由于我們將ls命令的輸出通過管道傳輸?shù)?dev/null,因此終端中應(yīng)該沒有輸出。但是,在命令完成后,我們可以查看保存系統(tǒng)調(diào)用的文件。在那里我們看到該命令確實有效,并且系統(tǒng)調(diào)用被捕獲:

cat /tm {"defaultAction":"SCMP_ACT_ERRNO","architectures":["SCMP_ARCH_X86_64"],"syscalls":[{"names":["access","arch_prctl","brk","capset","chdir","close","close_range","dup2","execve","exit_group","fchdir","fchown","fstatfs","getdents64","getegid","geteuid","getgid","getrandom","getuid","ioctl","lseek","mmap","mount","mprotect","munmap","newfstatat","openat","openat2","pivot_root","prctl","pread64","prlimit64","pselect6","read","rt_sigaction","rt_sigprocmask","seccomp","set_robust_list","set_tid_address","sethostname","setresgid","setresuid","setsid","statfs","statx","umask","umount2","write"],"action":"SCMP_ACT_ALLOW","args":[],"comment":"","includes":{},"excludes":{}}]}


這個文件是我們的 Seccomp 過濾器,我們現(xiàn)在可以將它與任何支持它的容器運行時一起使用。讓我們嘗試將過濾器與ls我們剛剛運行的相同容器化命令一起使用:

sudo podman run --security-opt seccomp=/tm fedora ls / > /dev/null


沒有輸出也沒有任何錯誤,表明該命令能夠在應(yīng)用了 Seccomp 過濾器的情況下成功運行。有趣的來了。我們將向容器添加一些在記錄系統(tǒng)調(diào)用時不存在的功能,以制作我們的 Seccomp 過濾器。我們要做的就是將-l標志添加到我們的ls命令中。

sudo podman run --security-opt seccomp=/tm fedora ls -l / > /dev/null ls: /: Operation not permitted ls: /proc: Operation not permitted ls: /root: Operation not permitted …


如您所見,我們現(xiàn)在收到一堆錯誤,告訴我們無法執(zhí)行命令嘗試執(zhí)行的某些操作。在-l我們的命令中添加標志為ls進程添加了一些新的系統(tǒng)調(diào)用,這些系統(tǒng)調(diào)用不在我們的 Seccomp 過濾器的允許列表中。如果我們使用該命令生成一個新的 Seccomp 過濾器ls -l,我們可以看到新過濾器有效,因為它現(xiàn)在具有所有必需的系統(tǒng)調(diào)用。

sudo podman run --annotation io.containers.trace-syscall=of:/tm fedora ls -l / > /dev/null sudo podman run --security-opt seccomp=/tm fedora ls -l / > /dev/null


如您所見,將 Seccomp 過濾器應(yīng)用于您的容器極大地限制了它的功能。在攻擊者可以利用您的應(yīng)用程序的情況下,它可能會阻止他們造成損害,甚至完全阻止利用。

通過使用 Red Hat 的 OCI 掛鉤,您不再需要深入了解 Linux 內(nèi)核的系統(tǒng)調(diào)用來創(chuàng)建 Seccomp 過濾器。您可以輕松地創(chuàng)建一個特定于應(yīng)用程序的過濾器,該過濾器不允許您的容器做任何超出它需要做的事情。這是彌合內(nèi)核特性和高級軟件開發(fā)之間差距的一大步。

結(jié)論

盡管如此,oci-seccomp-bpf-hook該工具本身并不能完全達到我將 Seccomp 集成到成熟的軟件工程工作流程中的期望。運行該工具仍然存在開銷,作為軟件開發(fā)人員,您不希望每次更新應(yīng)用程序都花時間手動更新 Seccomp 過濾器。為了彌合最后的差距并盡可能輕松地在企業(yè)應(yīng)用程序中使用 Seccomp,我們需要找到一種方法來自動生成 Seccomp-BPF 過濾器。幸運的是,當我們看到現(xiàn)代軟件開發(fā)是如何發(fā)生的時,已經(jīng)有一個完美的地方可以實現(xiàn)這種自動化:在 持續(xù)集成 (CI)期間。

CI 工作流已經(jīng)是成熟軟件開發(fā)生命周期中成熟的一部分。對于那些不熟悉 CI 的人,它使您能夠在每次將代碼提交到 git 存儲庫時執(zhí)行自動化單元測試和代碼安全掃描等操作。那里有很多 CI 工具,因此它是為您的容器化應(yīng)用程序自動生成 Seccomp 過濾器的理想場所。

這篇文章的時間已經(jīng)不多了,所以我將在另一篇文章中展示如何創(chuàng)建一個 CI 工作流程,每次更新代碼時都會生成一個 Seccomp 過濾器。然后,您最終將有能力利用 Seccomp 的系統(tǒng)調(diào)用限制并保護您的應(yīng)用程序!

1.《【oz9966sn怎么去保護】使用Seccomp過濾器保護容器》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《【oz9966sn怎么去保護】使用Seccomp過濾器保護容器》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。

3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/why/3090123.html

上一篇

【三星顯示器怎么拆開】拆卸液晶屏和維護LED背光電路的經(jīng)驗

【oz9966sn怎么去保護】教你打開手機驗證碼保護和惡意網(wǎng)站攔截開關(guān),提高手機支付安全

  • 【oz9966sn怎么去保護】教你打開手機驗證碼保護和惡意網(wǎng)站攔截開關(guān),提高手機支付安全
  • 【oz9966sn怎么去保護】教你打開手機驗證碼保護和惡意網(wǎng)站攔截開關(guān),提高手機支付安全
  • 【oz9966sn怎么去保護】教你打開手機驗證碼保護和惡意網(wǎng)站攔截開關(guān),提高手機支付安全

【oz9966sn怎么去保護】最大w本體設(shè)定OZ-06毫秒里約系列

  • 【oz9966sn怎么去保護】最大w本體設(shè)定OZ-06毫秒里約系列
  • 【oz9966sn怎么去保護】最大w本體設(shè)定OZ-06毫秒里約系列
  • 【oz9966sn怎么去保護】最大w本體設(shè)定OZ-06毫秒里約系列

【oz9966sn怎么去保護】[液晶小型干燥產(chǎn)品]液晶高壓板保護方法

  • 【oz9966sn怎么去保護】[液晶小型干燥產(chǎn)品]液晶高壓板保護方法
  • 【oz9966sn怎么去保護】[液晶小型干燥產(chǎn)品]液晶高壓板保護方法
  • 【oz9966sn怎么去保護】[液晶小型干燥產(chǎn)品]液晶高壓板保護方法

【oz9966sn怎么去保護】昌維液晶電視50E6100這樣改變背光電流

  • 【oz9966sn怎么去保護】昌維液晶電視50E6100這樣改變背光電流
  • 【oz9966sn怎么去保護】昌維液晶電視50E6100這樣改變背光電流
  • 【oz9966sn怎么去保護】昌維液晶電視50E6100這樣改變背光電流
【oz9966sn怎么去保護】“華宇”FPC/PCB降低工業(yè)生產(chǎn)成本的秘訣:Sn 188錫保護劑。

【oz9966sn怎么去保護】“華宇”FPC/PCB降低工業(yè)生產(chǎn)成本的秘訣:Sn 188錫保護劑。

oz9966sn怎么去保護相關(guān)介紹,Sn-88錫表面保護劑 Sn-88石棉保護劑是深圳市華宇節(jié)能消費電子有限公司自主開發(fā)的新型節(jié)能環(huán)保專利產(chǎn)品,目前已廣泛應(yīng)用于PCB行業(yè)。 使用該產(chǎn)品時,無需更換設(shè)備,直接添加到蝕刻線退膜筒中,結(jié)果高分...

【oz9966sn怎么去保護】談?wù)撘壕б壕щ娨暫惋@示器的保護(適用于大多數(shù)CCFL)

【oz9966sn怎么去保護】談?wù)撘壕б壕щ娨暫惋@示器的保護(適用于大多數(shù)CCFL)

oz9966sn怎么去保護相關(guān)介紹,本文適用于使用冷陰極熒光燈(CCFL)背光技術(shù)的液晶電視和顯示器(不包括LED背光)。 大多數(shù)機械師都遇到了屏幕閃現(xiàn)的故障,這個故障的原因大部分是電燈輕微老化造成的,相信這個時候我們要使用保護技術(shù)。(...

【oz9966sn怎么去保護】液晶背光驅(qū)動芯片解除保護實用材料

【oz9966sn怎么去保護】液晶背光驅(qū)動芯片解除保護實用材料

oz9966sn怎么去保護相關(guān)介紹,芯片OZ9939GN保護3英尺接地。 芯片OZ9938CN 3或6發(fā)接地短路 芯片TL494保護2 ~ 14英尺10K電阻?;?和16接地 保護芯片mp1008es,接地4發(fā)即可。 Mp1007es三...

【oz9966sn怎么去保護】康佳液晶電視LED42S2260N閃屏(背光閃光燈)故障維修

【oz9966sn怎么去保護】康佳液晶電視LED42S2260N閃屏(背光閃光燈)故障維修

oz9966sn怎么去保護相關(guān)介紹,故障圖像:KOCA圖標打開后,屏幕背光變亮,揚聲器根據(jù)背光亮度和暗度的變化發(fā)出咔嗒聲。(大衛(wèi)亞設(shè))。 維修費:300元(友情價) 維修分析:通過查看聲音,可以確定電源操作異常(電源前操作異?;蚝筘撦d短...