Offcanvas

개발자 / 애플리케이션 / 오픈소스

“무료 체험판 주의 필요” 깃허브 코드스페이스 ,악성코드 배포에 활용

2023.01.20 Lucian Constantin  |  CSO
깃허브 코드스페이스(Codespaces)가 해커에게 악용될 수 있다는 주장이 제기됐다. 깃허브 코드스페이스는 깃허브 서버에서 실행되는 개발 컨테이너 내에서 애플리케이션을 만들고 테스트하는 서비스다. 개발자는 공개 깃허브 URL을 통해 프리뷰 형태의 애플리케이션 접근권을 타인에게 줄 수 있는데, 분산형 악성코드가 이 기능을 은밀하게 악용하고 있는 것이다.
 
ⓒ Getty Images Bank 

보안 업체 트렌드 마이크로(Trend Micro)의 연구팀은 새로 발행한 보고서에서 “애플리케이션 포트가 비공개로 공유되면 브라우저 쿠키가 사용되고 인증에 필요하다. 그러나 포트가 공개 공유되는 경우(즉, 인증 또는 인증 컨텍스트가 없으면) 공격자가 이 기능을 악용해 스크립트, 맬웨어 샘플과 같은 악성 콘텐츠를 호스팅할 수 있다”라고 경고했다.
 

깃허브 코드스페이스와 포트 포워딩

코드스페이스는 기본적으로 클라우드 기반 통합 개발 환경(IDE)이다. 클라우드 기반 통합 개발 환경은 초기 설정을 하는 데 많은 시간이 걸리는 로컬 호스팅 환경이 아닌 웹 기반 인터페이스 내에서 바로 코드를 쓰고 실행할 수 있는 것이 특징이다. 개발자는 코드 실행에 필요한 모든 툴과 라이브러리, 프로그래밍 런타임이 사전 구성된 개발 컨테이너를 사용하고, 깃허브의 클라우드에서 이 컨테이너를 실행하고 깃허브 CLI를 통해 제어할 수 있다.

개발 컨테이너는 사용자 레포지토리에 구성 파일과 함께 업로드되면 자동으로 실행된다. 이는 전통적인 방법에 비해 훨씬 더 높은 유연성과 자동화 가능성을 제공한다. 사용자는 2코어 VM으로 월 60시간까지 무료로 이용할 수 있다. 모든 코드스페이스 환경은 자체 VM 내에 상주하며 격리된 가상 네트워크가 있다. 그러나 개발자는 포트 포워딩이라는 기능을 사용해서 애플리케이션의 프리뷰 링크를 조직의 다른 구성원과 공유하거나 공개적으로 공유할 수 있다.

예를 들어 사용자가 포트 8080의 내부 애플리케이션을 포워딩하면 <깃허브 사용자 이름>-<코드스페이스 이름 >-<무작위 식별자>-<노출된 포트>.preview.app.github.dev 형식으로 고유한 URL이 생성된다. 이는 사실상 preview.app.github.dev 도메인의 고유한 하위 도메인이다.
 

개발 컨테이너 악용 증가해

컨테이너 이미지가 사전 구성돼 제공되지만 깃허브 CLI를 사용해 이미지 내에서 명령을 실행할 수 있다. 데모에서 트렌드 마이크로 연구팀은 마이크로소프트가 유지 관리하는 개발 컨테이너 이미지를 사용했다. 여기서 구성을 작성해서 기본적으로 포함되는 파이썬 런타임을 사용해 간단한 HTTP 서버를 열고 포트 8000을 공개적으로 포워딩했다.

또한 연구팀은 깃허브 CLI를 사용해서 컨테이너에 인증하고, 두 개의 간단한 명령을 실행해 외부 URL로부터 악성코드가 포함된 압축 파일을 다운로드한 다음 파이썬 기반 웹 서버에서 제공하는 디렉터리에 로컬로 압축을 해제했다. 이렇게 해서 preview.app.github.dev URL을 통해 액세스할 수 있는 악성파일이 포함된 공개 디렉터리를 생성했다.

연구팀은 스크립트를 통해 이 프로세스 전체를 자동화했고 100초 뒤, 또는 URL이 액세스된 뒤에 코드스페이스를 삭제하도록 설정했다. 이렇게 하면 로컬 머신의 악성코드 배포자는 임시 코드스페이스를 즉석에서 가동해 또 다른 악성코드 일부를 다운로드할 수 있다. 깃허브 기반 도메인은 어느 정도 믿을만하고, 피해자의 환경과 연결돼있다. 그런 도메인에서 파일을 다운로드하므로 네트워크 보안 게이트웨이에 의해 차단되거나 플래그가 지정될 가능성이 낮아진다.

연구팀은 “공격자는 이와 같은 스크립트를 사용해서 깃허브 코드스페이스를 손쉽게 악용해 자신의 코드스페이스 환경에 공개적으로 포트를 노출함으로써 빠른 속도로 악성 콘텐츠를 전달할 수 있다. 생성되는 각 코드스페이스에는 고유한 식별자가 있으므로 연결되는 하위 도메인도 고유하다. 이는 공격자에게 다양한 공개 디렉터리 인스턴스를 만들 수 있는 기반이 된다. 또한 코드스페이스는 최대 30일 동안 보존이 가능하므로 공격자는 이 기간 동안 동일한 URL을 사용할 수 있다”라고 설명했다.

합법적인 클라우드 서비스를 악용해 악성코드를 전달하는 수법은 예전부터 있었다. 그러나 깃허브 코드스페이스는 많은 이가 무료 버전을 자주 사용하고 있다는 점에서 문제가 있다. 무료 평가판에 대해서도 신용카드 정보 등록을 요구하는 AWS, 마이크로소프트 애저, 구글 클라우드 플랫폼과 같은 다른 클라우드 서비스에 비해 비용 장벽이 낮은 셈이다. 

또한 깃허브의 클라우드 인프라는 이전에도 공격자들에 악용된 적이 있다. 팔로알토네트웍스의 최근 보고서에 따르면 오토메이티드 리브라(Automated Libra)라는 조직은 지난 10월 이후 깃허브, 헤로쿠(Heroku), 토글박스(Togglebox)에 13만 개 이상의 계정을 만들어 무료 서비스 및 평가판을 사용해 암호화폐를 채굴했다. 이 조직은 특히 깃허브에서는 캡챠(CAPTCHA) 문제 해결 스크립트를 포함해서 계정 생성 프로세스를 완전히 자동화했다.

트렌드 마이크로 연구팀은 “클라우드 서비스는 합법적인 사용자와 공격자에게 똑같은 이점을 제공한다. 공격자는 깃허브 코드스페이스와 같은 합법적인 서비스를 악용함으로써 빠르고 쉽게 공격을 확장하고 흔적을 숨기고 탐지를 회피할 수 있다”라고 말했다.
editor@itworld.co.kr
추천 테크라이브러리

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2023 International Data Group. All rights reserved.