当前位置:网站首页>ADA logics:cri-o overall safety audit project
ADA logics:cri-o overall safety audit project
2022-06-10 15:05:00 【CNCF】
author :David Korczynski + Adam Korczynski
Before the article by Ada Logics Safety research and safety engineering David Korczynski And safety engineering and safety automation Adam Korczynski stay Ada Logics Blog [1] Published on
Ada Logics Ltd. Recently on CRI-O[2] Conducted a comprehensive safety audit .CRI-O yes Kubernetes Container runtime interface [3] An implementation of , stay Kubernetes Used as the core component in the cluster , Orchestrate containers on each node . This makes it an important software package , because CRI-O The problems in will have a far-reaching impact , Because it's a lot of Kubernetes A key part of the cluster .
The main security finding of the audit project was a serious denial of service problem . For anyone who has the ability to Kubernetes Create on Cluster pod For people who , This is a node level denial of service attack . Essentially , If one can in a given Kubernetes Create a node in the cluster pod, Then it can cause a denial of service attack by running out of memory . This is for dependencies CRI-O Runtime nodes , Interestingly , The vulnerability also exists in another popular container runtime Containerd[4] in .
We want to thank CRI-O The cooperation of defenders . This job has got CNCF[5] The support of , And got OSTIF[6] With the help of . Besides our work ,Chainguard[7] Also participated in software security supply chain audit . We would like to thank all our collaborators .
In this blog post , We will give an overview of the project , Complete details can be found in CRI-O Found in the warehouse report .
Summary of audit and results
The objective of the audit project is to CRI-O Extensive analysis of the security situation , It is divided into the following tasks :
- CRI-O The threat model is formalized
- Security audit of code
- CRI-O Fuzzy test integration , Including passage OSS-Fuzz[8] Continuous fuzzy test integration
- Review documents and tests
The main safety finding of this work is a single high severity problem . Also found some small problems , however , From the perspective of completing this audit ,CRI-O Is a well written project , High level of safety assurance .
Cluster denial of service through deployment
The most serious discovery is a denial of service attack on a given cluster by exhausting node resources . The attack is by creating pod In the way of , This means that anyone can create pod Of users can be used to create pod Cause a denial of service on the given node of . Of this vulnerability CVE yes CVE-2022-1708,Github Safety bulletins can be found here :https://github.com/cri-o/cri-o/security/advisories/GHSA-fcm2-6c3h-pg6j
Interestingly , Denial of service attacks also occur in other container runtime interface implementations , Most notably Containerd. say concretely , Run out of CRI-O Memory attacks in can be used to exhaust Containerd Of memory .containerd The problem of CVE yes CVE-2022-31030, About containerd Of Github Safety bulletins can be found here :https://github.com/containerd/containerd/security/advisories/GHSA-5ffw-gxpp-mxpf
stay Kubernetes In the world of , about CRI-O and Containerd Come on , This problem can lead to denial of service of nodes through deployment without any user interaction , If the cluster uses any of these container runtime interface implementations , The cluster will be enabled effectively DOS. Patching is highly recommended .
CRI-O Continuous fuzzy test integration
We aim at CRI-O The infrastructure integrates an extensive fuzzy test suite . The main challenge in this regard is to build infrastructure , send CRI-O The fuzzy test can work , It's very difficult , because CRI-O Is an interconnected system , Depends on many components , For example, binary files on the system , Mainly through Kubelet communicate ,kubelet Restrict sending to CRI-O The data of , It also uses a fairly complex testing framework , Many, many simulations are involved .
in general , We aim at CRI-O Code 、containers/image[9] and containers/storage[10] The warehouse implements 14 A blur Tester , And integrate the project into OSS-Fuzz. The blur tester can be accessed from https://github.com/cncf/cncf-fuzzing/tree/main/projects/cri-o get ,OSS-Fuzz The integration of is in https://github.com/google/oss-fuzz/tree/master/projects/cri-o.
The main focus of fuzzy testing is on gRPC The handler . This is mainly due to fuzz_server[11] complete , It is a fairly large blur Tester , contain 900 Line code . This blur tester starts a gRPC The server , And send a random message sequence to the server . In this way , The blur tester is CRI-O Has a significant impact on the entire code .
Reference resources
- complete PDF The report :https://github.com/cri-o/cri-o/blob/main/security/2022_security_audit_adalogics.pdf
- CRI-O Safety notice :https://github.com/cri-o/cri-o/security/advisories/GHSA-fcm2-6c3h-pg6j
- Containerd Safety notice :https://github.com/containerd/containerd/security/advisories/GHSA-5ffw-gxpp-mxpf
- OSTIF Notice :https://ostif.org/our-audit-of-cri-o-is-complete-high-severity-issues-found-and-fixed/
Reference material
[1]
Ada Logics Blog : https://adalogics.com/blog/cri-o-security-engagement
[2]
CRI-O: https://github.com/cri-o/cri-o
[3]
Kubernetes Container runtime interface : https://github.com/kubernetes/cri-api
[4]
Containerd: https://containerd.io/
[5]
CNCF: https://www.cncf.io/
[6]
OSTIF: https://ostif.org/
[7]
Chainguard: https://www.chainguard.dev/
[8]
OSS-Fuzz: https://google.github.io/oss-fuzz/
[9]
containers/image: https://github.com/containers/image
[10]
containers/storage: https://github.com/containers/storage
[11]
fuzz_server: https://github.com/cncf/cncf-fuzzing/blob/main/projects/cri-o/fuzz_server.go
CNCF (Cloud Native Computing Foundation) Founded on 2015 year 12 month , Affiliated to the Linux Foundation, It's a non-profit organization .
CNCF( Cloud native Computing Foundation ) Committed to fostering and maintaining a vendor neutral open source ecosystem , To promote cloud native technology . By democratizing the most cutting-edge model , Let these innovations be used by the public .
边栏推荐
- 2022第十五届南京国际工业自动化展览会
- WordPress的管理员用户名是如何泄露的
- Insight Technology a été sélectionné dans le rapport panorama des fournisseurs d'analyse de l'amour et d'informatique de la vie privée et a été évalué comme représentant des fournisseurs de solutions
- 【报名】解决科技创业者核心关切,「星云计划公开课」线上招生开启
- Google Earth engine (GEE) - real time global 10 meter land use / land cover (LULC) data set based on S2 images
- NC | Wang Jun / song Mozhi combined with third-generation sequencing to analyze the structural variation and function of intestinal flora
- 详解OpenCV的函数filter2D(),并提醒大家它做的运算并不是卷积运算而是相关运算
- JMeter 中如何实现接口之间的关联?
- 自媒体视频热门思路分享
- 小程序网络请求Promise化
猜你喜欢

一文带你了解J.U.C的FutureTask、Fork/Join框架和BlockingQueue

WordPress的管理员用户名是如何泄露的

消息中间件的消费模式

Super practical operation! Calibration and registration of Kinect depth map and RGB camera for hands-on teaching

初试c语言之第二次笔记

How to realize ERP extranet connection?

2022 the 15th Nanjing International Industrial Automation Exhibition

这个牛逼的低代码生成器,现在开源了!

Comment construire un plan de produit axé sur le client: conseils du CTO

CVPR 2022 oral | SCI: fast, flexible and robust low light image enhancement
随机推荐
what‘t the meaning of “de facto“
.NET C#基础(7):接口 - 人如何和猫互动
Applet network request promise
[logodetection data set processing] (2) draw the label box of the training set picture
AutoRunner自动化测试工具如何创建项目-Alltesting|泽众云测试
[registration] to solve the core concerns of technology entrepreneurs, the online enrollment of "nebula plan open class" was opened
【LogoDetection 数据集处理】(2)画出训练集图片的标注框
Usage Summary of call () method and apply () method in JS
One-way hash function
数据库创建触发器的问题
在什么场景下,我们不能使用箭头函数?
洞察的力量
共创地市价值空间,2022年华为商业分销地市百城行·宁波站成功举办
QT interface nested movement based on qscrollarea
[reward publicity] [content co creation] issue 16 may Xu sublimation, create a good time! You can also win a gift package of up to 500 yuan if you sign a contract with Huawei cloud Xiaobian!
WordPress的管理员用户名是如何泄露的
3、再遇HandyControl之窗体
LeetCode_ 21 (merge two ordered linked lists)
JS get the maximum value in the array
二分查找详解