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 경유로 공식 위키에 그 이유가 실려 있다는 정보가 있다.
htps : // 우우키. A lPinene x. 오 rg / uki / 에나 b ぇ_ 콧물에 ty_ 레포시와 ry
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개의 툴을 만들어 사용하고 있다.
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.
so in my opinion it would make sense to check against both - why should we left of users of software from the community repo
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
2017/12/3 시점의 Vuls에서는, 인터넷상에 공개되고 있는 취약성 데이터베이스를 사용해 거기에 Vuls로부터 액세스하기 쉽게 하기 위해서 이하의 2개의 툴을 만들어 사용하고 있다.
go-cve-dictionary
goval-dictionary
그래서, 이번 Alpine-secdb를 어쨌든 Vuls에 넣을까라고 고민하고, 다른 툴로서 리포지토리 나눠줄까-와도 생각이 들었는데, 그렇게 되면 셋업의 수고가 늘어나므로 그래일까, 음등 사우나로 고민해 결국 alpine-secdb를 억지로 OVAL 형식으로 변환하여 통합하기로 했다. OVAL 형식으로 하는 편이 Vuls 본체측의 실장이 편해지네요.
그것이 이것 goval-dictionary:#22
Alpine-secdb에서 YAML을 페치 해 와서 DB에 넣어 뿐.
이용 예는 여기에 썼다.
Vuls 측 구현
이 풀릭 Vuls:#545이 Vuls측의 구현이야.
구현은 간단했다.
이하, 무엇을 하고 있는지 써라.
ls /etc/alpine-release
로 판별하고 있어 apk info -v
apk version
를 퍼스 하고 있다 기본 그냥 대응할 수 있었어. OVAL 형식으로 했기 때문에 기존의 구현에 탔다.
저는 OVAL 형식에 맞춰서 좋았어요. 천재입니다.
그런데 사우나에서도 가자(토요일 20:40기)
Reference
이 문제에 관하여(Vuls가 Alpine Linux를 지원했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kotakanbe@github/items/a5d0fa08f0b5b3b14800텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)