ClickCease 사이버 보안: 소유자가 시작한 공급망 공격

콘텐츠 표

인기 뉴스레터 구독하기

4,500명 이상의 Linux 및 오픈소스 전문가와 함께하세요!

한 달에 두 번. 스팸이 없습니다.

소유자가 시작한 사이버 보안 공급망 공격

조아오 코레이아

2022년 9월 23일 기술 에반젤리스트

공급망 공격은 모든 형태와 모양으로 나타납니다. 한 가지 예는 합법적인 계정을 탈취하여 널리 사용되는 라이브러리에 악성 코드를 배포하는 것입니다. 또 다른 예는 악성 툴을 통해 컴파일 중에 변경 사항을 배포하는 것입니다. 

부주의한 사용자를 속이려는 의도로 잘못 표시된 콘텐츠나 애플리케이션 동작을 방해하는 추가 파일에 대해서도 생각해 볼 수 있습니다. 

하지만 실제 코드 소유자 또는 코드 배후의 원 개발자가 저지르는 또 다른 악의적인 공급망 공격이 등장하고 있으며, 이는 매우 파괴적인 것으로 입증되고 있습니다. 

새롭고 위험한 공급망 위협

이 공격 기법은 2022년 초에 개발자들이 널리 사용되는 두 개의 라이브러리("faker.js" 및 "colors.js")가 원래의 의도와 무관한 코드를 포함하도록 변조되었다는 사실을 알게 되면서 등장했습니다.

더 심각한 문제는 이 '추가' 코드가 코드에 무한 루프를 생성하여 해당 코드에 의존하는 애플리케이션을 손상시킨다는 점입니다. 이러한 라이브러리의 코드는 공개 리포지토리에 공개되어 호스팅되기 때문에 커밋을 분석하여 누가 악성 코드를 추가했는지 식별할 수 있었습니다. 

개발자 커뮤니티는 이 코드가 원래 개발자가 추가한 것이라는 사실에 당황했습니다. 

코드를 개발하는 데 들인 시간과 많은 개발자가 이 코드를 사용하는 방식에 대해 수익을 창출하지 못하는 것에 불만을 느낀 이 개발자는 자신의 라이브러리를 파괴하기로 결정했습니다.

수백만 명에게 영향을 미치는 사보타주

별것 아닌 것처럼 들릴 수도 있습니다. 결국 개발자의 코드이기 때문입니다. 하지만 이 모든 것을 맥락에 맞게 설명하자면, 영향을 받은 라이브러리의 총 다운로드 횟수는 2,500만 회에 달하며, 이는 Lifecycle 기간 전체가 아니라 매주 다운로드된 횟수입니다. 

오픈소스의 정치와 오픈소스로 수익을 창출하는 방법(개발자가 이 문제를 해결하기 위해 취할 수 있는 조치를 포함)은 그 자체로 하나의 기사이며, 의견은 매우 다양할 수 있습니다. 하지만 분명한 이유는 한 개발자가 수백만 명이 사용하는 코드를 변조한 것에 대한 반발이 엄청났기 때문입니다. 

실제로 코드가 호스팅된 GitHub는 해당 개발자의 계정을 일시 정지했습니다(며칠 후 GitHub가 계정을 복구했지만). 이 개발자는 이 두 라이브러리뿐만 아니라 문제의 두 라이브러리에도 수백 개의 프로젝트가 있다고 주장했는데, 물론 이 두 라이브러리는 엄청난 팔로워를 보유하고 있습니다. 

개발자에게 실질적인 영향을 미치는 악의적인 행동

결국 해당 라이브러리는 배포가 차단되었고, 코드는 되돌려졌으며, 해당 기능을 대체하기 위해 새로운 라이브러리가 만들어졌습니다.

이러한 라이브러리를 사용하는 개발자에게는 코드를 확인하고, 업데이트하고, 종속성을 변경하는 추가 작업이 필요했습니다. 한 개인의 행동으로 인해 소프트웨어가 제대로 실행되는지 확인하는 데 필요한 테스트와 기타 모든 작업이 추가로 발생했습니다. 다른 곳에 더 생산적으로 사용할 수 있는 시간을 악의적인 공격자에 대응하는 데 수많은 업무 시간이 소요되었습니다.

한 개발자의 고의적인 행동이 수천 개의 애플리케이션에 영향을 미쳤습니다. 그러나 고의적이지는 않지만 그럼에도 불구하고 소스인 개발자에게서 비롯된 다른 상황도 있습니다. 또는 적어도 개발자의 계정에서 비롯된 경우입니다.

손상된 Git 서버

그로부터 불과 두어 달 뒤인 3월, 가장 널리 사용되는 웹 서버 프로그래밍 언어인 PHP의 코드를 보관하는 git 서버가 손상되었습니다. 네, 맞습니다. PHP 팀의 공식 PHP git 리포지토리가 변조되었습니다.

공격자는 PHP 8.1의 소스 코드를 변경하고 '오타 수정'을 가장하여 시스템에 악성 커밋을 도입하는 데 성공했으며, 이 악성 커밋은 PHP 코드베이스에 성공적으로 통합될 경우 수백만 개의 PHP 배포에 유포되고 PHP로 작성된 수백만 개의 인터넷 웹사이트 및 서비스에 백도어를 생성할 수 있는 악성 코드를 숨겼습니다.

어떻게 이런 일이 일어났을까요? Git은 훌륭한 도구이지만 코드 커밋에 다른 사람으로 서명할 수 있는 결함이 있습니다. 그러면 코드 수정 내용을 검토하는 다른 사람이 프로젝트의 메인 개발자가 수정한 것으로 착각할 수 있습니다. 

그 결과 모든 검토는 신뢰, 즉 올바른 사람이 코드를 편집하고 허용 가능한 변경을 했다는 신뢰에 크게 의존할 수 있습니다. 따라서 검토가 덜 엄격해져 악성 코드가 탐지되지 않고 빠져나갈 수 있습니다. 

PHP뿐만 아니라...

PHP 8.1에 추가된 악성 코드가 탐지되어 커밋이 거부되었기 때문에 이 코드는 수백만 명이 매일 사용하는 PHP 코드베이스에 포함되지 못했습니다. 하지만 이 문제로 인해 팀은 자체 깃 리포지토리에서 GitHub로 리포지토리를 옮겼습니다.

5월에, 파이썬의 ctx 라이브러리 와 PHP의 phpass 라이브러리는 모두 공격자가 단순히 "연구 목적"라고 주장했는데, 이는 궁극적으로 증명하거나 반증하는 것이 불가능했습니다.

공격자는 복잡한 일련의 단계를 거쳐 원래 개발자를 사칭하여 더 이상 존재하지 않는 이메일 주소를 확보한 다음 해당 계정의 비밀번호 복구를 요청하고 만료된 계정의 소유권을 확인하기 위해 가짜 도메인을 생성하는 등 이러한 라이브러리의 리포지토리를 장악했습니다. 

이를 통해 리포지토리 호스트는 자신의 코드에 대한 액세스 권한을 잃은 원래 개발자로 위장한 공격자에게 리포지토리 관리 권한을 넘겨주도록 속였습니다. 공격자는 AWS 자격 증명을 포함한 자격 증명 탈취 코드를 해당 라이브러리에 포함시켰습니다. 수집한 자격 증명이 모두 삭제되었다는 공격자의 주장도 검증이 불가능했습니다.

위협 행위자들은 공급망 공격에 많은 투자를 하고 있습니다.

이러한 사례는 코드 공급망의 위협에 대한 신속한 대응의 필요성을 잘 보여줍니다. 코드 공급망에 대한 위협은 그 자체로 새로운 것은 아닙니다. 하지만 최근의 공격은 며칠 또는 몇 주에 걸리는 일반적인 공격 처리 시간을 훨씬 뛰어넘는 시간을 투자한다는 점에서 다른 양상을 보이고 있습니다.

최근의 침해 사례는 침해를 실행하는 데 엄청난 시간이 소요됩니다. 여러 면에서 훨씬 더 심각한 공급망 공격의 사례로, 전 세계 수백만 조직에서 맹목적으로 사용하는 코드의 핵심을 공격합니다.

문제를 더욱 심각하게 만드는 또 다른 점은 침해에 대응하기 위해 라이브러리 버전을 변경하는 데 필요한 많은 양의 작업을 고려할 필요가 있다는 점입니다. 이러한 이벤트가 발생할 때마다 새 라이브러리를 실행, 테스트 및 배포하는 데 상당한 시간이 걸립니다. 

여기에서 다음과 같은 서비스가 제공됩니다. PHP에 대한 Lifecycle 연장 지원Python용 Lifecycle 연장 와 같은 서비스가 도움이 될 수 있습니다. TuxCare는 언어 수준 문제 및 관련 모듈에 대한 보안 업데이트를 신속하게 제공하여 앞서 설명한 일부 공격으로 인해 발생한 구멍을 다른 대안보다 적은 작업으로 더 빠르게 닫을 수 있도록 도와줍니다.

요약
 사이버 보안: 소유자가 시작한 공급망 공격
기사 이름
사이버 보안: 소유자가 시작한 공급망 공격
설명
사이버 보안: 소유자가 주도하는 사이버 보안 공급망 공격. 공급망 공격이 어떻게 다양한 형태와 모양으로 나타나는지 알아보세요.
작성자
게시자 이름
턱시도 케어
게시자 로고

Kernel 재부팅, 시스템 다운타임 또는 예정된 유지 보수 기간 없이 취약성 패치를 자동화하고 싶으신가요?

TuxCare로 라이브 패치에 대해 알아보기

TuxCare 게스트 작가 되기

시작하기

메일

가입

4,500

Linux & 오픈 소스
전문가!


뉴스레터 구독하기