[심층 리포트: PyPI와 OpenSSF가 주목하는 차세대 보안 기술 'Capability Analysis']
최근 오픈소스 생태계를 위협하는 공급망 공격이 지능화됨에 따라, PyPI(Python Package Index)와 OpenSSF(Open Source Security Foundation)는 기존의 패턴 매칭 방식을 넘어선 'Capability Analysis(기능/역량 분석)' 도입에 박차를 가하고 있습니다.
이 기술은 패키지가 "무엇인 척하는가"가 아닌, "실제로 무엇을 할 수 있는가"를 꿰뚫어 보는 것이 핵심입니다.
Capability Analysis(기능 분석)란 무엇인가?
기존의 바이러스 검사가 '지명수배자 명단(알려진 악성코드 서명)'을 대조하는 방식이었다면, Capability Analysis는 패키지의 '행동 능력'을 검증하는 방식입니다.
아무리 정상적인 유틸리티로 위장했더라도, 시스템을 장악하거나 정보를 훔치려면 반드시 운영체제의 특정 자원(네트워크, 파일, 프로세스)을 사용해야 합니다. 이 분석 기술은 패키지가 코드를 실행할 때 다음과 같은 '민감한 권한(Capabilities)'을 행사하는지 추적합니다.
네트워크(Network): 설치 스크립트가 몰래 외부 IP로 데이터를 전송(Exfiltration)하거나 통신을 시도하는가?
파일 시스템(FileSystem): SSH 키, AWS 자격 증명, /etc/passwd 등 민감한 파일에 접근하거나 수정을 시도하는가?
프로세스 실행(Execution): 쉘(Shell) 명령어를 실행하거나, 코드를 동적으로 생성(eval, exec)하여 하위 프로세스를 만드는가?
실제 사용 및 추정되는 핵심 보안 도구
현재 OpenSSF 프로젝트 및 보안 연구 그룹에서는 이 분석을 수행하기 위해 다음과 같은 도구들을 개발하여 파이프라인에 적용하고 있습니다.
A. OpenSSF Package Analysis (공식 프로젝트)
- 개요: OpenSSF가 주도하는 프로젝트로, PyPI나 NPM에 올라오는 패키지를 격리된 샌드박스 환경에서 실제로 설치하고 실행해 봅니다.
- 작동 원리: 패키지가 실행될 때 발생하는 시스템 호출(System Calls)을 커널 레벨에서 가로채어, "이 패키지가 설치 도중 192.168.x.x로 접속을 시도했다"는 식의 행동 데이터를 수집합니다.
- 기술 스택: gVisor(샌드박스), Strace(시스템 호출 추적) 등을 활용합니다.
B. Packj (팩제이)
- 개요: 학계(조지아 공대 등) 연구를 바탕으로 개발된 도구로, 패키지의 '위험한 기능(Risky Capabilities)'을 태깅하는 데 특화되어 있습니다.
- 작동 원리: 정적 분석과 동적 분석을 병행합니다. 소스 코드 내에서 민감한 API 호출을 찾아내고, 패키지의 메타데이터를 분석하여 '버려진 패키지'인지, '타이포스쿼팅(이름 사칭)'인지 등을 판별합니다.
- 특징: "이 패키지는 오디오 라이브러리인데 네트워크 통신 기능과 주소록 접근 기능이 있다"와 같은 비정상적인 권한 조합을 감지합니다.
C. GuardDog (가드독)
- 개요: Datadog에서 공개한 CLI 도구로, Semgrep(정적 분석 엔진)을 활용하여 악성 패턴을 찾아냅니다.
- 작동 원리: 패키지 내에 숨겨진 난독화된 코드, 채굴기 스크립트, 실행 파일 다운로더 등 '악성 기능'이 구현된 코드 패턴(Heuristics)을 식별합니다.
D. Falco (팔코) & Sysdig
- 개요: 클라우드 네이티브 환경의 런타임 보안 도구입니다.
- 역할: 컨테이너 내부에서 패키지가 실행될 때 발생하는 비정상적인 행위(예: 예기치 않은 쉘 접속, 민감한 파일 읽기)를 실시간으로 탐지하는 엔진으로 활용됩니다.
제미니에게 설명부탁해봤습니다. 저도 보안 전담이 아니라서 모르겠군요.
[심층 리포트: PyPI와 OpenSSF가 주목하는 차세대 보안 기술 'Capability Analysis']
최근 오픈소스 생태계를 위협하는 공급망 공격이 지능화됨에 따라, PyPI(Python Package Index)와 OpenSSF(Open Source Security Foundation)는 기존의 패턴 매칭 방식을 넘어선 'Capability Analysis(기능/역량 분석)' 도입에 박차를 가하고 있습니다.
이 기술은 패키지가 "무엇인 척하는가"가 아닌, "실제로 무엇을 할 수 있는가"를 꿰뚫어 보는 것이 핵심입니다.
기존의 바이러스 검사가 '지명수배자 명단(알려진 악성코드 서명)'을 대조하는 방식이었다면, Capability Analysis는 패키지의 '행동 능력'을 검증하는 방식입니다.
아무리 정상적인 유틸리티로 위장했더라도, 시스템을 장악하거나 정보를 훔치려면 반드시 운영체제의 특정 자원(네트워크, 파일, 프로세스)을 사용해야 합니다. 이 분석 기술은 패키지가 코드를 실행할 때 다음과 같은 '민감한 권한(Capabilities)'을 행사하는지 추적합니다.
현재 OpenSSF 프로젝트 및 보안 연구 그룹에서는 이 분석을 수행하기 위해 다음과 같은 도구들을 개발하여 파이프라인에 적용하고 있습니다.
A. OpenSSF Package Analysis (공식 프로젝트)
- 개요: OpenSSF가 주도하는 프로젝트로, PyPI나 NPM에 올라오는 패키지를 격리된 샌드박스 환경에서 실제로 설치하고 실행해 봅니다.
- 작동 원리: 패키지가 실행될 때 발생하는 시스템 호출(System Calls)을 커널 레벨에서 가로채어, "이 패키지가 설치 도중 192.168.x.x로 접속을 시도했다"는 식의 행동 데이터를 수집합니다.
- 기술 스택: gVisor(샌드박스), Strace(시스템 호출 추적) 등을 활용합니다.
B. Packj (팩제이)
- 개요: 학계(조지아 공대 등) 연구를 바탕으로 개발된 도구로, 패키지의 '위험한 기능(Risky Capabilities)'을 태깅하는 데 특화되어 있습니다.
- 작동 원리: 정적 분석과 동적 분석을 병행합니다. 소스 코드 내에서 민감한 API 호출을 찾아내고, 패키지의 메타데이터를 분석하여 '버려진 패키지'인지, '타이포스쿼팅(이름 사칭)'인지 등을 판별합니다.
- 특징: "이 패키지는 오디오 라이브러리인데 네트워크 통신 기능과 주소록 접근 기능이 있다"와 같은 비정상적인 권한 조합을 감지합니다.
C. GuardDog (가드독)
- 개요: Datadog에서 공개한 CLI 도구로, Semgrep(정적 분석 엔진)을 활용하여 악성 패턴을 찾아냅니다.
- 작동 원리: 패키지 내에 숨겨진 난독화된 코드, 채굴기 스크립트, 실행 파일 다운로더 등 '악성 기능'이 구현된 코드 패턴(Heuristics)을 식별합니다.
D. Falco (팔코) & Sysdig
- 개요: 클라우드 네이티브 환경의 런타임 보안 도구입니다.
- 역할: 컨테이너 내부에서 패키지가 실행될 때 발생하는 비정상적인 행위(예: 예기치 않은 쉘 접속, 민감한 파일 읽기)를 실시간으로 탐지하는 엔진으로 활용됩니다.
해당 기술에 대한 더 깊은 이해를 위해 원문 프로젝트와 블로그를 참고하실 수 있습니다.
OpenSSF Package Analysis 공식 블로그 (발표 및 원리 설명)
https://openssf.org/blog/2022/…
OpenSSF Package Analysis 깃허브 (소스 코드 및 아키텍처)
https://github.com/ossf/package-analysis
Packj 깃허브 (도구 다운로드 및 상세 기능)
https://github.com/ossillate-inc/packj
GuardDog 깃허브 (Datadog의 PyPI/NPM 악성 패키지 탐지 도구)
https://github.com/DataDog/guarddog
PyPI Security 리포트 (악성 패키지 신고 및 처리 절차)
https://pypi.org/security/