当前位置:网站首页>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 .
边栏推荐
- Day10/11 递归 / 回溯
- Kubernetes 1.24:statefulset introduces maxunavailable copies
- At the early stage of product development, do you choose to develop apps or applets?
- 几种方式可以实现 JMeter 参数化?
- AutoRunner自动化测试工具如何创建项目-Alltesting|泽众云测试
- My first go program
- 4. Meet panuon again UI. Title bar of silver form
- 自推荐-深入理解RUST标准库内核
- 小程序警告:Now you can provide attr `wx:key` for a `wx:for` to improve performance.
- Blogger Confessions
猜你喜欢

2022 the 15th Nanjing International Digital Industry Expo

消息中间件的消费模式

How to realize ERP extranet connection?

3、再遇HandyControl之窗体

Hutool使用总结(VIP典藏版)

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

Consumption mode of Message Oriented Middleware

如何实现erp外网连接?

CVPR 2022 oral | SCI: fast, flexible and robust low light image enhancement

数据库创建触发器的问题
随机推荐
虚拟机ping不通的几种原因及解决办法
Notes on the second test of C language
How to build a customer-centric product blueprint: suggestions from the chief technology officer
[cloud native | kubernetes] in depth RC, RS, daemonset, statefulset (VII)
小程序网络请求Promise化
Huawei cloud SRE deterministic O & M introduction
Applet network request promise
Interview question details
Google Earth Engine(GEE)——基于s2影像的实时全球10米土地利用/土地覆盖(LULC)数据集
cmake实战记录(一)
How to implement the association between interfaces in JMeter?
One-way hash function
如何实现erp外网连接?
How to solve the problem that SVN cannot open the URL address
CVPR 2022 Oral | SCI:实现快速、灵活与稳健的低光照图像增强
[cloud native | kubernetes] in depth RC, RS, daemonset, statefulset (VII)
几种方式可以实现 JMeter 参数化?
【云原生 | Kubernetes篇】深入RC、RS、DaemonSet、StatefulSet(七)
碰撞检测 Unity实验代码
Jiabo gp2120tu label printer installation and use tutorial (PC)