공급망 공격 방어, CEL로 패키지 배포 시간 제어!

by DD
2개월 전
조회수 10

공급망 공격(Supply Chain Attacks)의 주요 공격 벡터인 악성 패키지 배포를 방어하기 위한 기술 소개

CEL(Common Expression Language)의 `now()` 함수를 활용하여 패키지 배포 후 일정 시간 동안 차단하는 방식 제시

SafeDep/vet 도구를 사용하여 CLI, 정책 파일, GitHub Actions 환경에서 시간 기반 규칙 적용

최신 패키지 업데이트(Recent Package Updates)가 필요한 경우, 쿨다운(Cooldown) 정책의 예외 처리에 대한 논의

공급망 공격 방어 전략: 쿨다운 기간 설정

본 게시물은 공급망 공격의 주요 공격 벡터인 악성 패키지 배포를 방어하기 위해 쿨다운 기간(Cooling-off Period)을 설정하는 방법을 제시한다. 이는 패키지 배포 후 일정 시간 동안 해당 패키지의 사용을 차단하여, 악성 코드를 탐지하고 대응할 시간을 확보하는 전략이다. 특히, 자동화된 빌드 시스템(Automated Build Systems)을 대상으로 하는 공격에 효과적이다.

CEL(Common Expression Language)을 활용한 정책 구현

게시물은 CEL(Common Expression Language)의 `now()` 함수를 사용하여 시간 기반의 정책을 구현하는 방법을 설명한다. `now()` 함수를 통해 현재 UTC 타임스탬프를 얻고, 패키지 메타데이터의 `package_published_at` 값과 비교하여 쿨다운 기간을 설정한다. 또한, 아직 인덱싱되지 않은 최신 패키지를 처리하기 위한 `has()` 매크로 사용법을 제시하여, 엣지 케이스(Edge Case)에 대한 대비를 강조한다.

SafeDep/vet 도구를 활용한 다양한 환경 적용

SafeDep/vet 도구를 사용하여 CLI, 정책 파일(policy.yaml), GitHub Actions 환경에서 시간 기반 정책을 적용하는 방법을 안내한다. CLI를 통한 즉각적인 테스트, 정책 파일을 통한 버전 관리, GitHub Actions를 통한 CI/CD 파이프라인 통합을 통해 지속적인 보안(Continuous Security)을 구현할 수 있다. 특히, GitHub Actions를 통해 Pull Request 단계에서 쿨다운 정책을 적용하여, 무결성(Integrity)을 확보한다.

쿨다운 기간의 예외 처리 및 유연성

댓글에서는 쿨다운 기간 설정의 유연성에 대한 논의가 이루어진다. 특히, 공급망 공격으로 인해 긴급 업데이트(Emergency Updates)가 필요한 경우, 쿨다운 정책을 우회하는 방법에 대한 질문이 제기된다. 이는 쿨다운 기간 설정 시, 상황별 예외 처리(Exception Handling)를 고려해야 함을 시사하며, 조직의 위험 감수 수준에 따라 쿨다운 기간을 유연하게 조정할 필요가 있음을 강조한다.

Using CEL's now() to enforce dependency cooldown periods - block packages published in the last N hours