VulsがAlpine Linuxに対応したぞ
コンテナ向け軽量OSである、Alpine Linuxですが結構流行ってるみたいっすねぇ。
Dockerの公式イメージもAlpineベースになってるとか。Docker Official Images are Moving to Alpine Linux
GitHubのISSUEやSlackでもAlpine, Alpine、あんまりゆうもんだから対応しなきゃなぁっておもってたんだよ。
で、ついに先日、勢いで実装したVuls:#545をマージしたもんですのて、Vulsのスキャン可能なOSにAlpine Linuxが追加されやした。
使い方はVuls:#545に書いてるのでそれ見てもらうとして、このVuls Advent Calendar3日目ではどーいう感じでAlpine Linuxに対応したのかを書いてみるよ。
Alpine Linuxが提供する脆弱性情報
alpine-secdbにてYAML形式で提供されてるよ。
現在はv3.2 - v3.6の脆弱性情報が提供されてるんだね。リンク
v3.6の情報を見ると、それぞれのバージョンごとに、
- community.yaml
- main.yaml
の2ファイルにわけて提供されてます。なんで2つに分かれているのか?
VulsのIssue経由で公式のWikiにその理由が載ってるよとの情報あり。
https://wiki.alpinelinux.org/wiki/Enable_Community_Repository
Starting with Alpine Linux version 3.3, there is a new repository called community.
Many packages have been moved from the main repository to community to
indicate that they are not guaranteed to be supported beyond six months.
If you are using any of these packages, be sure to add the community repository.
で、2つみたらいいんじゃね、と。
so in my opinion it would make sense to check against both - why should we left of users of software from the community repo
YAMLの内容は、こんな感じ。
packages:
- pkg:
name: apache2
secfixes:
2.4.27-r1:
- CVE-2017-9798
2.4.26-r0:
- CVE-2017-3167
- CVE-2017-3169
- CVE-2017-7659
- CVE-2017-7668
- CVE-2017-7679
2.4.27-r0:
- CVE-2017-9789
パッケージ名、バージョン名、直したCVE-IDのリストになっとる。この情報、使えますな。
Alpine-secdbの取り込み
2017/12/3時点のVulsでは、インターネット上で公開されている脆弱性データベースを使っててそれにVulsからアクセスしやすくするために以下の2つのツールを作って使ってる。
-
- Linux系ディストリビュータが提供するOVAL形式の脆弱性データベース
で、今回Alpine-secdbをどーやってVulsに組み込もうかなーと悩んで、別ツールとしてリポジトリ分けようかなーともかんがえたんだけど、そうなるとセットアップの手間が増えるのでアレかな、うーんとかサウナで悩んで、結局alpine-secdbを無理やりOVAL形式に変換して組み込むことにした。OVAL形式にしたほうがVuls本体側の実装が楽になるしね。
それがコレgoval-dictionary:#22
Alpine-secdbからYAMLをフェッチしてきてDBにぶち込んでるだけや。
利用例はここに書いといたよ
Vuls側の実装
このプルリクVuls:#545がVuls側の実装だよ。
実装は簡単だったよ。
以下、何やってるか書いとくよ。
- Alpine Linuxを判別
-
ls /etc/alpine-release
で判別してるよ - serverspecの実装を徹底的に参考にさせていただきやした
-
- インストールされてるソフトウェアリストを取ってくる部分
-
apk info -v
の結果をパースしてる
-
- アップデー後のバージョンを取っていくる部分
-
apk version
をパースしてる
-
基本そんだけで対応出来たよ。OVAL形式にしたので既存の実装に乗っかれたわけだね。
あたしゃOVAL形式に合わせといて良かったよ。天才だね
さーてサウナでも行くべよ(土曜日20:40記)
Author And Source
この問題について(VulsがAlpine Linuxに対応したぞ), 我々は、より多くの情報をここで見つけました https://qiita.com/kotakanbe@github/items/a5d0fa08f0b5b3b14800著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .