OS 패키지 취약점 수집 정확도 개선
OS별 파서를 정리하고 Ubuntu는 웹 요청 대신 Git 원본을 파싱해 패치 버전을 수집했습니다.
작업 요약
Ubuntu 수집 1~2주 → 8시간 이내
취약 여부뿐 아니라 패치 버전도 맞아야 했습니다
OS 취약점 데이터는 CVE ID만 맞아도 되는 문제가 아닙니다. 실제 고객사 검증에서는 어떤 패키지 버전이 패치됐는지까지 맞아야 합니다.
12종 배포판의 API, OVAL, Security Tracker를 따로 다룬 이유는 그 정확도를 확보하기 위해서였습니다. 수집 단계에서 패치 버전을 정확히 읽어 스캐너의 오탐을 줄이고자 했습니다.
배경
클라우드 네이티브가 빠르게 확산되면서 OS 패키지 취약점 정보의 정확성 요구가 커졌습니다. 그러나 기존 크롤러는 각 OS 배포판이 제공하는 보안 권고안을 정확히 파싱하지 못해 패치된 버전 정보가 누락되거나 부정확한 문제가 있었습니다.
- "취약하다/아니다"만이 아니라 어느 버전에서 고쳐졌는지(패치 버전)가 정확해야 스캐너가 신뢰할 만한 판정을 내릴 수 있음
- 배포판마다 보안 데이터 제공 방식이 달라(API · OVAL · Security Tracker), 단일 파싱 방식으로는 정확도 확보가 어려움
접근
12종 주요 OS 배포판(RedHat · Debian · Ubuntu 등)이 보안 데이터를 어떻게 제공하는지 소스별로 비교한 뒤, 특성에 맞춰 크롤러를 수정·재개발했습니다.
- 소스 분석
12종 OS의 제공 방식(API/OVAL/Tracker) 파악
- 파서 재설계
소스별 특성에 맞춰 크롤러 수정·재개발
- 패치버전 추출
취약점별 패치 버전 수집
- 신뢰도 검증
스캐너 분석 결과의 정확성 확인
대표 사례로 Ubuntu는 기존의 웹 페이지 파싱 방식에서 Git 리포지토리를 직접 클론해 파싱하는 방식으로 변경해 데이터 신뢰도를 높였습니다.
결과
역할
12종 OS가 보안 데이터를 제공하는 방식을 각각 확인하고 파서를 수정했습니다. Ubuntu는 웹 화면 대신 Git 저장소를 직접 받아 패치 버전을 읽었고, 다른 배포판도 원본 형식에 맞춰 추출 규칙을 나눴습니다. 수집 방안은 팀 리뷰를 거쳐 확정했습니다.
데이터 수집 파이프라인의 정확도·신뢰도 개선에 초점을 둔 작업.
🛡 OS 패키지 취약점 수집 시리즈 ① — ② 멀티 배포판 개편·OSV 자동화