GitHub Actions의 Artifact Poisoning은 소프트웨어 파이프라인을 통해 맬웨어를 가져옵니다.

소스 노드 : 1769941

공격자가 GitHub의 오픈 소스 리포지토리에 변경 사항을 제출하면 구성 요소의 최신 버전이 포함된 다운스트림 소프트웨어 프로젝트가 악성 코드로 업데이트를 컴파일하도록 할 수 있습니다.

소프트웨어 공급망 보안 회사인 Legit Security는 1월 XNUMX일 발표된 권고문에서 이 "아티팩트 포이즈닝" 취약점이 빌드 프로세스를 트리거함으로써 개발 파이프라인 자동화 서비스인 GitHub Actions를 사용하는 소프트웨어 프로젝트에 영향을 미칠 수 있다고 밝혔습니다. 소프트웨어 종속성에서 변경이 감지되었습니다. 

이 취약성은 이론적인 것이 아닙니다. Legit Security는 Rust를 관리하는 프로젝트에 대한 공격을 시뮬레이션하여 인기 있는 GCC 소프트웨어 라이브러리의 맞춤형(악성적) 버전을 사용하여 프로젝트를 다시 컴파일하도록 했습니다.

Legit Security의 최고 기술 책임자인 Liav Caspi는 관리자가 일반적으로 코드 자체를 실제로 분석하기 전에 기여한 코드에 대한 테스트를 실행하기 때문에 이 문제는 많은 오픈 소스 프로젝트에 영향을 미칠 수 있다고 말합니다.

"오늘날 일반적인 패턴입니다."라고 그는 말합니다. “오늘날 많은 오픈 소스 프로젝트는 변경 요청 시 관리자가 코드를 먼저 검토할 필요가 없기 때문에 요청을 검증하기 위해 많은 테스트를 실행합니다. 대신 자동으로 테스트를 실행합니다.”

이 공격은 GitHub Actions를 통해 자동화된 빌드 프로세스를 이용합니다. Rust 프로그래밍 언어의 경우 취약한 패턴으로 인해 공격자가 개발 파이프라인의 일부로 권한 있는 방식으로 코드를 실행하여 리포지토리 비밀을 훔치고 잠재적으로 코드를 변조할 수 있었다고 Legit Security는 말했습니다.

"간단히 말해서 취약한 워크플로에서 모든 GitHub 사용자는 아티팩트를 빌드하는 포크를 만들 수 있습니다." 권고에 명시. “그런 다음 이 아티팩트를 원래 리포지토리 빌드 프로세스에 주입하고 출력을 수정합니다. 이것은 공격자가 빌드 출력을 수정하는 또 다른 형태의 소프트웨어 공급망 공격입니다.”

이 취약성은 다음과 유사한 공격을 가능하게 합니다. CodeCov를 대상으로 한 맬웨어 삽입 공격 그리고 해당 회사의 소프트웨어를 통해 다운스트림 고객.

레짓 시큐리티(Legit Security)는 권고문에서 "워크플로 간 아티팩트 통신을 위한 기본 GitHub 구현이 부족하여 많은 프로젝트와 GitHub Actions 커뮤니티가 워크플로 간 통신을 위한 안전하지 않은 솔루션을 개발하게 되었고 이 위협이 널리 퍼졌습니다."라고 말했습니다.

GitHub는 문제를 확인하고 정보에 대한 포상금을 지불했으며 Rust는 취약한 파이프라인을 수정했다고 Legit Security는 말했습니다.

출처: 합법적인 보안

소프트웨어 공급망에는 보안이 필요합니다

이 취약점은 소프트웨어 공급망에 영향을 미치는 최신 보안 문제입니다. 업계 및 정부 기관은 점점 더 오픈 소스 소프트웨어 및 서비스로 제공되는 소프트웨어의 보안을 강화하기 위해 노력하고 있습니다.

예를 들어 2021년 XNUMX월 바이든 행정부는 국가 사이버 보안 개선에 관한 행정 명령을 발표했습니다. 구매한 모든 소프트웨어에 기본 보안 표준이 필요합니다.. 민간 산업 측면에서 구글과 마이크로소프트는 수십억 달러를 약속했다 코드를 제공하는 오픈 소스 생태계의 보안을 강화하기 위해 평균 애플리케이션 코드베이스의 XNUMX/XNUMX 이상을 구성.

논리적이지만 취약함

보안 문제는 논리 문제로 알려진 찾기 어려운 문제 클래스에 속하며 여기에는 권한 문제, 분기된 리포지토리가 파이프라인에 삽입될 가능성, 분기된 리포지토리와 기본 리포지토리 간의 차별화 부족이 포함됩니다.

소프트웨어 프로젝트는 종종 자동화된 스크립트를 사용하여 코드 제출을 관리자에게 전달하기 전에 확인하기 때문에 끌어오기 요청은 사람이 악성 코드를 확인하기 전에 자동화를 통해 실행됩니다. 자동화를 통해 시간을 절약할 수 있지만 공격자가 파이프라인에 악성 코드를 삽입할 수 있는 방법도 고려해야 합니다.

"오픈 소스 개발을 할 때 문제는 더 큽니다. 전 세계 모든 사람의 기여를 받아들이기 때문입니다."라고 Caspi는 말합니다. "당신은 당신이 믿을 수 없는 일을 실행하고 있습니다."

GitHub는 이 문제를 인정하고 외부 협력자의 제출물이 Actions 파이프라인에 자동으로 삽입되지 않도록 제외하는 방법을 확장했습니다. 그 회사 GetArtifact 및 ListArtifacts API 업데이트 아티팩트를 신뢰할 수 있는지 여부를 결정하는 데 도움이 되는 추가 정보를 제공하는 것을 목표로 합니다.

"Rust 프로젝트와 같은 일을 하는 사람(제XNUMX자의 입력을 신뢰하는 사람)은 여전히 ​​취약합니다."라고 Caspi는 말합니다. “논리적인 문제입니다. GitHub는 더 안전한 스크립트를 작성하기 쉽게 만들었습니다.”

타임 스탬프 :

더보기 어두운 독서