TL;DR
- conda-forge와 PyPI 패키지를 검사하는 보안 도구 pixi audit 베타가 공개됐으며, 취약점 데이터베이스 Basilisk를 기반으로 취약점과 수정 가능성을 확인함.
pixi audit는 Pixi 작업 공간이나 잠금 파일을 검사하며, 여러 환경·플랫폼 중 특정 대상만 좁혀 감사할 수 있음.- 보고서에는 심각도, 취약점 상태, EPSS 위험 점수, 수정 버전과 다음 단계가 포함되며,
--explain으로 용어를 확인할 수 있음. --fix는 직접 의존성 버전을 알려진 수정 버전으로 올리고 업데이트와 재검사를 수행하지만, 전이 의존성 제약이나 버전이 지정되지 않은 Git·경로·URL 의존성은 그대로 둠.- Basilisk는 conda-forge 패키지와 PURL·CPE 식별자 간 매핑을 구축하며, 향후 OpenVEX와 패키지별 소프트웨어 자재 명세서(SBOM) 지원을 검토 중임.
Pixi Audit 베타 소개
- 2026년 9월 24일 공개한 베타 버전은
pip audit,npm audit및 생태계별 감사 도구와 유사한 pixi audit임.
왜 필요한가
- conda-forge는 PyPI, npm 등 다른 생태계의 패키지를 다시 빌드하는 한편,
cmake처럼 소스에서 직접 빌드하기도 함. - 그동안 conda-forge에는 자체 취약점 데이터베이스가 사실상 없었으며, 이를 위해 Basilisk 구축을 시작함.
Pixi Audit 사용 방법
- 베타는
https://prefix.dev/prefix-dev/prefix-labs채널에서pixi-audit패키지로 설치하며, Pixi 작업 공간에서pixi audit를 실행해 검사함. - Pixi는 설치된
pixi-audit실행 파일을 확장 기능으로 찾아 사용하며, 작업 공간 대신 잠금 파일 경로를 지정해 검사할 수도 있음. - 잠금 파일에 환경이나 플랫폼이 여럿이면 환경 이름과 플랫폼을 지정해 감사 범위를 제한할 수 있음.
- 예시 결과에서는 잠금 파일의 110개 패키지를 감사하고 260건의 취약점 일치 항목을 탐지함.
- 심각도별: 치명적 9건, 높음 89건, 중간 101건, 낮음 26건, 미상 35건임.
- 상태별: 수정됨 120건, 미수정 140건, 무시됨 0건, 수정 범위 미확정 20건임.
- 결과 표에는 패키지 이름과 버전, 수정 버전, 취약점 식별자, 심각도, EPSS 위험 점수와 영향받는 환경이 표시됨.
- 보고서 개요에는 최고 우선순위 점수 55.1/100, CISA KEV 일치 CVE 0건, 치명적·높음 취약점 98건이 표시됨.
- 감사 대상 생태계에서 수정 버전이 있는 취약점은 17개 패키지에 걸친 260건 중 120건이며, 수정 버전이 상위 생태계에만 있는 취약점은 35건, 알려진 수정 사항이 없는 취약점은 105건임.
--fix로 감사 대상 생태계에서 수정 버전이 있는 취약점 120건에 해당하는 15개 패키지 이름의 업데이트를 요청할 수 있음.- 상위 생태계에만 수정 버전이 있는 35건은
--fix로 설치할 수 없으며, 생태계 빌드를 기다리거나 의존성 출처를 변경해야 함. - 알려진 수정 사항이 없는 105건은 영향을 받는 의존성을 제거·대체하거나 완화해야 하며, 위험을 수용한 뒤에만
pixi audit ignore <ID> --until-fixed를 사용하도록 안내함. - 보고서의 의미가 불분명하면
pixi audit --explain으로 설명을 확인하고 관련 용어 링크를 볼 수 있음.
자동 수정
- 알려진 수정 사항이 있는 의존성을 업데이트하려면
pixi audit --fix를 실행함. - 이 과정은 매니페스트와 잠금 파일을 변경할 수 있으며, 직접 의존성 제약과 호환되는 가장 낮은 수정 버전으로 버전을 올리고 기존 상한을 유지한 뒤
pixi update와pixi audit를 실행함. - 전이 의존성 제약과 버전이 지정되지 않은 Git·경로·URL 의존성은 변경하지 않음.
- 패키지 또는 특정 CVE에 대한 무시 규칙은 매니페스트에 추가하거나 CLI를 통해 자동으로 추가할 수 있음.
CI에서 사용
- CI에서 종료 코드가 1로 반환되는 취약점 기준은
pixi audit --severity high처럼 심각도 플래그로 설정할 수 있음. - 다른 도구에서 사용할 수 있도록 JSON 및 SARIF 출력도 제공함.
베타 적용 범위
- 현재 감사 범위는 conda-forge 및 PyPI 패키지이며, 일부 단순 수정 기능을 포함함.
Basilisk와 purl-associator
- pixi audit 및 향후 보안 기능을 지원하기 위해 conda-forge 취약점 데이터베이스와 자동 매핑 시스템 Basilisk 구축을 시작함.
- conda-forge는 다른 취약점 데이터베이스인 OSV(Open Source Vulnerability Database)나 NVD(National Vulnerability Database)에 등록된 소스를 다시 패키징하거나 해당 소스를 사용함.
- 이에 따라 conda-forge 패키지와 다른 패키징 생태계의 패키지 사이의 정체성을 연결해야 하며, 패키징 식별에는 PURL, 소프트웨어 배포 식별에는 CPE를 사용함.
- 누구나 conda-forge 패키지의 식별 정보 매핑에 참여할 수 있으며, 매핑이 늘어나면 더 많은 취약점을 식별하고 감사할 수 있음.
- 향후 이 매핑 정보를 conda-forge에 직접 포함하는 방안을 검토 중이며, 우선 충분한 매핑 기반을 마련하는 것이 목표임.
다음 단계
- 자동화된 매핑이 많더라도 특정 취약점이 conda-forge에는 적용되지 않는다고 표시할 수 있도록 OpenVEX 직접 지원을 검토 중임.
- conda-forge는 Rust 바이너리와 최종 실행 파일에 정적으로 링크된 의존성을 포함한 다른 바이너리도 배포하며, 이 의존성은 잠금 파일에 나타나지 않는 추가 취약점을 가져올 수 있음.
- 더 포괄적인 감사를 위해 패키지별 소프트웨어 자재 명세서(SBOM)를 활용하는 방안을 검토 중임.
참여 방법
- 실제 작업 공간에서 pixi audit를 사용해 보고 부족한 점을 공유해 달라고 요청함.
- 잘못된 일치, 누락된 권고, 혼란스러운 출력에 관한 보고와 팀의 업데이트·CI 워크플로에 감사 결과가 어떻게 맞는지에 대한 의견을 특히 환영함.
- 피드백이나 문제는 Discord에서 공유할 수 있음.
보안 제품으로서의 보안
- conda-forge 보안을 더 중요하게 다루는 배경에는 취약점을 빠른 속도로 찾아내는 대형 언어 모델(LLM)과 사이버 복원력 법(CRA) 등 다가오는 규제가 있음.
- 보안에 관심이 있는 사람과 논의하고 싶다는 의사를 밝히며, 보안 제품 페이지도 안내함.
- Discord 메시지 또는 직접 연락을 통한 문의를 안내함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요