GitHub Actions의 보안 취약성으로 인해 Google, Microsoft, AWS, Red Hat과 같은 회사에서 유지관리하는 몇몇 주목할만한 오픈 소스 프로젝트가 손상되었습니다.
GitHub Actions의 심각한 보안 취약성으로 인해 Google, Microsoft, AWS, Red Hat과 같은 회사에서 유지 관리하는 여러 유명 오픈 소스 프로젝트에 대한 인증 토큰이 노출되었습니다. 이 결함으로 인해 개인 저장소에 대한 무단 액세스 및 악성 코드 삽입이 가능해졌습니다.
GitHub Actions는 GitHub와 긴밀하게 통합된 CI/CD(지속적 통합 및 지속적 전달) 플랫폼입니다. 2018년에 출시되었으며 사용자가 GitHub 리포지토리 내에서 직접 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있습니다.
이 취약점은 Palo Alto Networks의 Unit 42에 의해 식별되었으며, 이 토큰이 의도치 않게 공개되었다는 사실을 발견했습니다. 놀랍게도 상황의 심각성에도 불구하고 GitHub는 근본적인 문제를 수정하지 않기로 결정했습니다. 대신 사용자가 워크플로 아티팩트를 보호하기 위한 조치를 취할 것을 권장했습니다. 이 결정으로 인해 많은 사용자가 취약해지고 좌절감을 느꼈습니다.
Unit 42의 조사에서는 안전하지 않은 기본 구성 및 사용자 오류를 포함하여 이 취약점에 기여할 수 있는 몇 가지 문제가 강조되었습니다. 주요 문제 중 하나는 기본적으로 GitHub 토큰을 로컬 .git 디렉터리에 저장하는 'actions/checkout' 기능과 관련이 있습니다. 이 디렉터리가 아티팩트 업로드에 포함되면 토큰이 노출됩니다.
이 취약점은 이러한 아티팩트를 통해 유출될 수 있는 API 키 및 클라우드 액세스 토큰과 같은 기타 민감한 정보에도 영향을 미칩니다. 빌드 출력 및 테스트 결과는 최대 90일 동안 저장되며 리포지토리에 대한 읽기 권한이 있는 사람은 누구나 액세스할 수 있습니다.
CI/CD 파이프라인이 GitHub 토큰을 환경 변수에 저장할 때 또 다른 취약점이 발생합니다. 워크플로 내의 작업이나 스크립트가 이러한 환경 변수를 기록하는 경우 의도하지 않게 노출될 수 있습니다. 예를 들어 'super-linter' 작업에서 'CREATE_LOG_FILE' 속성을 활성화하면 이러한 변수를 기록할 수 있습니다.
이 취약점의 악용은 노출되는 토큰 유형에 따라 달라질 수 있습니다. 예를 들어 GitHub 토큰이 유출된 경우 이를 사용하여 로그 파일에서 자격 증명을 추출하고 만료되기 전에 사용할 수 있습니다. GitHub 토큰은 일반적으로 워크플로 작업 기간 동안 유효하며, 캐싱 및 아티팩트 관리에 사용되는 'Actions_Runtime_Token'은 6시간 동안 유효합니다. 이는 공격자에게 제한된 기회 창을 제공합니다.
그러나 Unit 42가 실시한 연구에 따르면 이러한 토큰에는 GitHub뿐만 아니라 타사 클라우드 인프라에 대한 액세스도 포함되어 있는 것으로 나타났습니다. 이러한 토큰이 포함된 인공 데이터는 최대 3개월 동안 공개적으로 액세스할 수 있는 것으로 밝혀졌기 때문에 보안에 대한 우려가 더욱 커지고 있습니다. 악의적인 행위자는 아티팩트 검색을 자동화하고, 토큰을 추출하고, 이를 사용하여 악성 코드를 리포지토리에 푸시할 수 있습니다.
이 취약점을 입증하기 위해 연구원들은 오픈 소스 프로젝트에 브랜치를 생성하여 악성 아티팩트를 처리하는 실행기에서 RCE(원격 코드 실행)의 가능성을 보여주었습니다. 또한 소스 디렉터리에서 비밀을 감사하여 비밀 노출 위험이 감지되면 아티팩트 업로드를 차단하는 개념 증명(PoC) 작업을 개발했습니다.
이 연구 결과는 GitHub의 버그 포상금 프로그램에 제출되었지만 이 문제는 정보 제공용으로 분류되어 사용자가 업로드된 아티팩트를 보호할 책임이 있음을 시사합니다. GitHub의 제한된 응답에도 불구하고 회원들이 보호 조치를 배포하고 잠재적인 사이버 위협을 차단할 수 있도록 통찰력을 CTA(Cyber Threat Alliance)와 공유했습니다.
위 내용은 GitHub Actions 보안 취약점으로 인해 주목할만한 오픈 소스 프로젝트가 손상됨의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!