
Go 패키지의 권한 있는 표준 라이브러리 작업에 대한 전이적 호출을 추적하여 패키지 기능을 분석하는 CLI 도구로, 공급망 위험 평가 및 최소 권한 적용을 가능하게 합니다.

Capslock은 Go 패키지용 capability 분석 CLI로, 특정 패키지가 접근할 수 있는 권한 있는 작업이 무엇인지 사용자에게 알려줍니다. 이는 권한 있는 표준 라이브러리 연산에 대한 전이적 호출을 추적하여 Go 패키지의 capabilities를 분류하는 방식으로 작동합니다.
오픈소스 소프트웨어를 겨냥한 공급망 공격의 최근 증가는 서드파티 의존성을 본질적으로 신뢰해서는 안 된다는 점을 부각시켰습니다. Capabilities는 패키지가 접근할 수 있는 권한이 무엇인지 나타내며, 다른 보안 신호와 함께 사용하면 어떤 코드가 신뢰할 수 있는 것으로 간주되기 전에 추가 검토가 필요한지 판단하는 데 활용할 수 있습니다.
현재의 보안 분석은 패키지의 취약점을 식별하는 데 많은 초점을 맞추고 있습니다. 이는 새로운 CVE가 계속해서 식별되는 속도를 고려할 때 중요한 목표입니다. 이러한 분석을 보완하기 위해 우리는 패키지의 capabilities에 주목합니다. 즉, 권한 있는 접근이 가능한 표준 라이브러리 함수에 대한 전이적 의존성을 통해 패키지가 접근할 수 있는 권한이 무엇인지 식별한다는 의미입니다.
이는 패키지가 사용하는 capabilities를 통해 패키지의 목적을 파악하고, 보안 검토를 더 많은 권한이 있는 코드 경로로 유도하며, 예상치 못한 capability 변경을 경고하여 잠재적 공급망 위협이 문제가 되기 전에 차단하는 등 다양한 잠재적 응용 분야가 있습니다.
이러한 접근은 최소 권한 원칙(Principle of Least Privilege), 즉 접근 권한을 실현 가능하고 실용적인 최소한의 범위로 제한해야 한다는 개념에서 비롯되었습니다. 우리는 이를 소프트웨어 개발에 적용하여 코드가 의도된 목적을 수행하는 데 필요한 최소한의 capabilities 범위로 한정될 수 있도록 하고자 합니다.
의존성에 포함된 capabilities에 대해 자세히 알아보려면 Capslock을 설치하세요.
go install github.com/google/capslock/cmd/capslock@latest
그런 다음 분석하려는 패키지가 있는 경로에서 capslock을 실행하여 Capslock을 호출할 수 있습니다.
주의사항 파일을 참조하세요.
기여 파일을 참조하세요.