《Clair二次开发指南1——Clair编译与使用》
Clair是容器静态漏洞分析器,可以用以评估Docker镜像的安全性。Clair目前共发布了21个release,这里我们使用其第20个release版本,即V2.0.0进行源码剖析。下载地址为:https://github.com/coreos/clair/archive/v2.0.0.zip
Clair简介:
Clair是一个开源项目,用于对应用程序容器中的漏洞进行静态分析,目前支持的容器有appc和docker。
Clair目前共发布了21个release,这里我们使用其第20个release版本,即V2.0.0进行源码剖析。下载地址为:https://github.com/coreos/clair/archive/v2.0.0.zip
Clair会定期从一组配置的源中获取漏洞元数据,并将其存储在数据库中。
客户端使用Clair API来索引他们的容器图像; 这将解析已安装的源包列表并将它们存储在数据库中。
客户端使用Clair API来查询数据库; 关联数据是实时完成的,而不是需要重新扫描的缓存结果。
当发生漏洞元数据更新时,一个包含受影响的镜像的webhook可以配置为页面或阻止部署。
Clair架构:
Clair主要包括以下模块:
-
获取器(Fetcher)- 从公共源收集漏洞数据
-
检测器(Detector)- 指出容器镜像中包含的Feature
-
容器格式器(Image Format)- Clair已知的容器镜像格式,包括Docker,ACI
-
通知钩子(Notification Hook)- 当新的漏洞被发现时或者已经存在的漏洞发生改变时通知用户/机器
-
数据库(Databases)- 存储容器中各个层以及漏洞
- Worker - 每个Post Layer都会启动一个worker进行Layer Detect
更多推荐
所有评论(0)