본문 바로가기
즐거운 보안 이야기/공급망 보안 뉴스

SW 공급망 보안: '깃허브'에서 벌어지는 공격자의 놀이터

by Redpensoft 2023. 7. 17.

소프트웨어 공급망은 공격자들에게 중요한 먹잇감이 되고 있습니다. 

이는 단일한 지점의 침투만으로도 공급망에 연결된 모든 조직을 공격할 수 있기 때문인데요, 보안에 소홀한 소프트웨어 개발사, 깃허브와 같은 코드 저장소, 그리고 오픈소스 취약점 등은 특히 공급망 공격에 취약한 대상으로 꼽힙니다. 

이제는 대형 글로벌 기업의 코드서명 인증서까지도 탈취되어 공격에 악용되고 있습니다. 


공격자들은 감염된 NPM 패키지를 이용한 공격을 반복적으로 수행하고 있습니다. 

이로 인해 NPM은 일시적인 서비스 중단 공격을 겪기도 했으며, 악의적인 공격자들은 오픈소스 생태계의 좋은 평판을 악용하여 140만개 이상의 악성 NPM 패키지를 유포시키기도 했습니다. 

이러한 유해 패키지 유포 방지를 위해 악성 계정을 삭제하는 과정에서 합법적인 사용자까지 영향을 받지 않도록 주의해야 하는데 이는 공격자들이 신뢰할 수 있는 계정을 탈취하거나 사칭하여 공격에 이용하기 때문입니다.

체크막스에 따르면 공격자들은 잘 관리되는 깃허브 프로젝트나 신뢰할 수 있는 NPM 기여자의 프로필을 위조하여 감염된 패키지를 개발자들이 사용하도록 유도하는데 불행하게도, 이러한 그룹과 사용자들은 자신의 이름이 가짜 커밋에 도용되고 있다는 사실을 알지 못하고 있습니다.

깃허브나 기타 코드 저장소를 통한 공격은 현재 매우 빈번하게 발생하고 있습니다. 

코드 저장소는 개발팀이 코드 관리 작업을 공동으로 수행할 수 있고, 코드 변경을 추적할 수 있는 기능을 제공하는데 오픈소스 소프트웨어 개발자들은 자신이 개발한 코드를 코드 저장소에 업로드하고 이러한 자발적인 기여자들은 다운로드 횟수와 평가 점수에 따라 명예를 얻습니다.

따라서 유명 개발자의 코드는 많은 개발팀에서 내려받아 사용함으로써 그들의 명성을 높이고 있습니다.

이에 공격자들은 유명 개발자의 계정을 탈취하여 악성 패키지를 업로드하거나 유명 개발자와 유사한 이름의 계정을 생성하여 악성 패키지를 다운로드 받도록 유도합니다.

위와 같은 깃허브 계정 탈취는 어렵지 않습니다. 

개발자들은 편의를 위해 계정 비밀번호를 코드에 적어놓는 경우가 많은데, 이로 인해 배포된 코드에는 중요한 데이터, 자격증명, 비밀번호가 포함될 수 있습니다. 

따라서 개발자들은 개발이 완료된 후 커밋하기 전에 이러한 중요 정보들을 삭제하고 배포해야하는데 많은 개발자들이 실수로 계정 정보가 포함된 상태로 커밋하게 되는 경우가 많습니다.

이렇듯 코드 저장소는 공급망 공격의 가장 위험한 요소입니다. 

깃가디언의 조사에 따르면 IT 의사결정권자의 58%가 소프트웨어 공급망의 주요 위험 요소로 소스코드와 리포지토리를 꼽았습니다. 

 

또한, 오타를 내는 습관을 이용하는 타이포스쿼팅과 의존성 혼동(Dependency Confusion)도 심각한 문제입니다. 

공격자들은 유명 패키지와 유사한 이름을 가진 가짜 패키지를 업로드하여 오타를 내는 습관을 악용합니다. 

예를 들어, 유명 패키지인 ABC 대신 ABV라는 가짜 패키지를 NPM에 업로드하는 것입니다. 

이렇게 오타를 내는 습관을 악용하여 공격자들은 개발자들로부터 신용카드 정보나 개인정보를 탈취할 수 있습니다.

또한, 최근에는 깃허브 저장소를 통한 취약성인 리포재킹(RepoJacking)이 발견되었습니다. 

깃허브 리포지토리의 이름을 변경하면 종속성 정보도 함께 이동하는데, 리포재킹 취약점은 이전에 사용하던 이름을 공격자가 가로채어 해당 리포지토리와 종속성 정보를 열람할 수 있는 취약점입니다. 

이 문제로 인해 깃허브는 변경된 이름의 리포지토리와 종속성 정보를 폐기함으로써 다른 사람이 이를 이용하는 것을 막았습니다. 

그러나 체크막스의 조사에 따르면 이 조치를 우회할 수 있는 언어들이 존재하며, 이로 인해 수천 개의 패키지가 하이재킹되어 수백만 명의 사용자와 애플리케이션에 악성코드가 제공될 수 있다고 경고하고 있습니다.


또한, 공급망 공격은 개발자가 사용하는 빌드 시스템 자체에서도 발생할 수 있습니다. 

지난 3월에는 CI/CD 도구 젠킨스 서버에서 임의의 코드를 실행할 수 있는 취약점이 발견되었는데, 이를 이용하면 백도어가 삽입된 패키지가 정상 데브옵스 프로세스를 통해 배포될 수 있습니다. 

이 패키지가 업데이트 파일인 경우 이를 내려받은 모든 고객이 감염될 수 있습니다.

또한, API도 공급망 공격에 취약한 요소입니다. 

기업이나 기관에서 사용하는 API는 많은 양의 중요한 정보를 유통시키기 때문에 보안에 특히 신경써야 합니다. 그러나 많은 기업이 사용 중인 API조차도 제대로 파악하지 못하는 경우가 많습니다. 

API 자체의 논리적 설계 오류와 잠재적인 취약점, 그리고 접근권한 노출로 인한 정보 탈취와 API 취약점 삽입 등이 가능할 수 있습니다.

마지막으로, 클라이언트 사이드의 서드파티 코드로 인한 공급망 공격도 증가하고 있습니다. 

이러한 공격은 주로 이커머스 서비스 사용자를 대상으로 합니다. 

예를 들어, 메이지카트 공격은 신용카드 결제 창을 개발하지 않고 미리 개발된 결제 서비스를 가져오는 것으로 수행됩니다. 

그러나 이 서비스에 취약점이 존재하여 소비자가 입력하는 신용카드 정보와 개인정보를 탈취하고, 상품을 비싼 것으로 변경하고 배송지를 공격자의 주소로 바꾸는 것입니다.

이러한 공급망 공격을 미연에 방지하기 위해 PCI-DSS V4.0에서는 최종 사용자의 브라우저 보안까지 책임을 져야 한다고 명시하고 있습니다. 

 

공급망 공격에 대한 방어와 보안 강화는 우리가 모두 관여해야 할 중요한 과제입니다.

레드펜소프트의 XSCAN은 현재 공급망보안 제도화에 앞서 과기부, Kisa 주관의 공급망보안 실증사업에 참여하고있으며,

레드펜소프트는 XSCAN 서비스를 연말 31일까지 무료로 사용해볼 수 있도록 공개하겠다고 밝혔습니다.

사업자 정보 표시
레드펜소프트 주식회사 | 배환국 | 경기도 성남시 분당구 성남대로 779번길 6, 4층 | 사업자 등록번호 : 184-86-02144 | TEL : 070-4179-5144 | Mail : info@redpensoft.com | 통신판매신고번호 : 2007-05725호 | 사이버몰의 이용약관 바로가기