Pentesting CI/CD Methodology

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

VCS

VCS는 버전 관리 시스템을 의미하며, 이 시스템은 개발자가 소스 코드를 관리할 수 있게 해줍니다. 가장 일반적인 것은 git이며, 다음과 같은 플랫폼에서 사용되는 것을 보통 찾을 수 있습니다:

  • Github

  • Gitlab

  • Bitbucket

  • Gitea

  • 클라우드 제공업체 (자체 VCS 플랫폼 제공)

파이프라인

파이프라인은 개발자가 코드 실행을 자동화할 수 있게 해줍니다 (빌드, 테스트, 배포 등의 목적으로). 특정 작업이 발생한 후에 실행되며, 예를 들어 푸시, PR, cron 등이 발생합니다. 이러한 시스템은 개발부터 프로덕션까지의 모든 단계를 자동화하는 데 매우 유용합니다.

그러나 이러한 시스템은 어딘가에서 실행되어야 하며, 일반적으로 코드를 배포하기 위한 권한이 있는 특권 자격 증명으로 실행됩니다.

VCS 펜테스팅 방법론

일부 VCS 플랫폼에서는 이 섹션에서 파이프라인을 생성할 수 있지만, 여기서는 소스 코드의 제어에 대한 잠재적인 공격만 분석할 것입니다.

프로젝트의 소스 코드를 포함하는 플랫폼에는 민감한 정보가 포함되어 있으며, 사람들은 이 플랫폼 내에서 부여된 권한에 대해 매우 주의해야 합니다. 공격자가 악용할 수 있는 일부 일반적인 VCS 플랫폼의 문제는 다음과 같습니다:

  • 유출: 코드에 유출이 포함되어 있고 공격자가 리포지토리에 액세스할 수 있다면 (공개적이거나 액세스 권한이 있는 경우), 유출을 발견할 수 있습니다.

  • 액세스: 공격자가 VCS 플랫폼 내의 계정에 액세스할 수 있다면, 더 많은 가시성과 권한을 얻을 수 있습니다.

  • 등록: 일부 플랫폼은 외부 사용자가 계정을 생성할 수 있도록 허용합니다.

  • SSO: 일부 플랫폼은 사용자가 등록할 수 없지만 유효한 SSO로 액세스할 수 있도록 허용합니다 (따라서 공격자는 예를 들어 자신의 github 계정을 사용할 수 있습니다).

  • 자격 증명: 사용자가 액세스하기 위해 도용할 수 있는 여러 종류의 토큰, 예를 들어 사용자 이름+암호, 개인 토큰, ssh 키, Oauth 토큰, 쿠키 등이 있습니다.

  • 웹훅: VCS 플랫폼은 웹훅을 생성할 수 있습니다. 이들이 비공개 비밀로 보호되지 않은 경우, 공격자가 이를 악용할 수 있습니다.

  • 비밀이 없는 경우, 공격자는 서드파티 플랫폼의 웹훅을 악용할 수 있습니다.

  • 비밀이 URL에 있는 경우, 동일한 일이 발생하며 공격자는 비밀도 가지고 있습니다.

  • 코드 침해: 악의적인 행위자가 리포지토리에 대한 쓰기 액세스 권한을 가지고 있다면, 악성 코드를 주입할 수 있습니다. 성공적으로 수행하기 위해서는 브랜치 보호를 우회해야 할 수도 있습니다. 이러한 작업은 다음과 같은 목표로 수행될 수 있습니다:

  • 본 브랜치를 침해하여 프로덕션을 침해합니다.

  • 메인 (또는 다른 브랜치)을 침해하여 개발자의 컴퓨터를 침해합니다 (일반적으로 개발자는 리포지토리 내에서 테스트, 테라폼 또는 기타 작업을 수행합니다).

  • 파이프라인을 침해합니다 (다음 섹션 참조)

파이프라인 펜테스팅 방법론

파이프라인을 정의하는 가장 일반적인 방법은, 파이프라인을 빌드하는 저장소에 호스팅된 CI 구성 파일을 사용하는 것입니다. 이 파일은 실행되는 작업의 순서, 흐름에 영향을 주는 조건 및 빌드 환경 설정을 설명합니다. 이러한 파일은 일관된 이름과 형식을 가지고 있으며, 예를 들어 Jenkinsfile (Jenkins), .gitlab-ci.yml (GitLab), .circleci/config.yml (CircleCI) 및 .github/workflows 아래에 위치한 GitHub Actions YAML 파일 등이 있습니다. 파이프라인 작업이 트리거되면, 파이프라인 작업은 선택한 소스(커밋/브랜치 등)에서 코드를 고, CI 구

더 많은 관련 정보

도구 및 CIS 벤치마크

  • Chain-bench는 새로운 CIS 소프트웨어 공급망 벤치마크를 기반으로 소프트웨어 공급망 스택의 보안 규정 준수를 감사하는 오픈 소스 도구입니다. 감사는 코드 시간부터 배포 시간까지의 전체 SDLC 프로세스에 초점을 맞추며, 위험을 발견할 수 있습니다.

상위 10개의 CI/CD 보안 위험

Cider에 따르면 상위 10개의 CI/CD 보안 위험에 대한 흥미로운 기사를 확인하세요: https://www.cidersecurity.io/top-10-cicd-security-risks/

자동 도구

  • Checkov: Checkov는 인프라스트럭처-애스-코드를 위한 정적 코드 분석 도구입니다.

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

最終更新