当前位置:网站首页>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 .
边栏推荐
- How the WordPress administrator user name was leaked
- 几种方式可以实现 JMeter 参数化?
- 博主自白
- 竟然还有人说ArrayList是2倍扩容,今天带你手撕ArrayList源码
- Explain the opencv function filter2d() in detail and remind you that the operation it does is not convolution but correlation operation
- How to realize ERP extranet connection?
- Comment construire un plan de produit axé sur le client: conseils du CTO
- Problems with database creation triggers
- Huawei cloud SRE deterministic O & M introduction
- 小程序实现全局数据共享
猜你喜欢

NC | Wang Jun / song Mozhi combined with third-generation sequencing to analyze the structural variation and function of intestinal flora

In what scenario can we not use the arrow function?

AutoCAD - set text spacing and line spacing

如何構建以客戶為中心的產品藍圖:來自首席技術官的建議

QT interface nested movement based on qscrollarea

2022第十五届南京国际数字化工业博览会

如何构建以客户为中心的产品蓝图:来自首席技术官的建议

This awesome low code generator is now open source!

Remote monitoring and data acquisition solution

Problems with database creation triggers
随机推荐
At the early stage of product development, do you choose to develop apps or applets?
KaTeX问题 —— csdn编辑时中打出等号对齐的样式
【Rust日报】2022-04-19 Rust异步框架的性能评估
rk3399_ 9.0 first level menu Network & Internet without setting
欧几里得算法求最大公因数 Go语言实现
Kubernetes 1.24: avoid conflicts when assigning IP addresses to services
【LogoDetection 数据集处理】(3)将训练集按照类别划分为多个文件夹
Comment construire un plan de produit axé sur le client: conseils du CTO
2022 Nanjing International Smart site equipment exhibition
Consumption mode of Message Oriented Middleware
WordPress的管理员用户名是如何泄露的
As a programmer, is it really that important for the underlying principles?
Remote monitoring and data acquisition solution
LeetCode_ 21 (merge two ordered linked lists)
自推荐-深入理解RUST标准库内核
JS中的call()方法和apply()方法用法总结
Day10/11 recursion / backtracking
[logodetection data set processing] (2) draw the label box of the training set picture
CANN的接口调用流程概述
Several reasons and solutions of virtual machine Ping failure