현대 소프트웨어 개발은 오픈소스에 크게 의존합니다. 약 90%의 소프트웨어 애플리케이션이 오픈소스 구성요소를 포함하고 있습니다. 이는 개발 과정에 엄청한 효율성을 의미하지만 숨겨진 위험을 내포하고 있습니다. 바로 오픈소스 말웨어입니다. 장비와 말단(엔드포인트)를 목표로 하는 전통적인 말웨어와는 달리 오픈소스 말웨어는 소프트웨어 개발 수명주기에 침투하여 신뢰할 수 있는 워크플로우와 의존성을 활용하여 소프트웨어 공급망의 핵심에 취약점을 심어둡니다.
많은 기업이 말단(엔드포인트)을 보호하는 것이면 충분하다고 생각하지만 이런 도구들은 오픈소스 말웨어를 감지하거나 최소화하기에는 부족함이 많습니다. 이런 말웨어를 발견했을 때에는 이미 심각한 피해가 발생한 이후일 가능성이 매우 높습니다.
오픈소스 말웨어의 위협
오픈소스 말웨어는 많이 사용되는 구성요소에 대한 개발자의 신뢰에 대한 공격이며 의존성과 라이브러리를 통해 소프트웨어 개발 수명주기에 침투합니다. 오픈소스 말웨어는 워크플로우에 통합되어 감지를 어렵게하고 동작될 경우 피해의 범위가 훨씬 광범위합니다.
오픈소스 말웨어가 위험한 이유:
- 개발자 도구에 통합: npm, PyPI, 메이븐 센트럴과 같은 리포지토리에 침투하여 합법적인 구성요소처럼 동작
- 개발자 인프라를 목표로 설정: 말단을 공격하는 대신 CI/CD 파이프라인, 빌드 도구, 프로덕션 환경과 같은 중요한 시스템에 집중
- 감지도구 우회: 악성 코드는 프로덕션으로 배포와 같은 특정 액션이 이뤄질때까지 숨어있다가 실행됨으로서 초기 단계의 감지를 우회
사이버 공격자들은 이런 오픈소스의 특징을 활용하고 있습니다. 대표적인 공격 사례를 살펴보면 다음과 같습니다:
- XZ Utils 백도어 (2024년 3월 발생): 공격자는 SSH 데몬을 조작하는 백도어를 삽입하여 신뢰할 수 있는 데이터 압축 라이브러리를 손상시킴. 이를 통해 허가되지 않은 원격 액세스가 가능해져 민감한 개발 데이터의 유출 및 시스템의 지속적으로 손상이 발생
- GitHub 저장소 홍수 (2024년 2월): 수백만 개의 악성 저장소가 GitHub에 업로드되어 합법적인 프로젝트를 복제하지만 난독화된 암호화폐 채굴 스크립트를 내장. 이러한 스크립트는 빌드 중에 리소스를 하이재킹하여 프로덕션 파이프라인을 방해하고 오픈 소스 생태계에 대한 신뢰를 악용
- 스타게이저 고블린 캠페인 (2024년 7월): 3,000개가 넘는 가짜 GitHub 계정이 인기 있는 도구로 위장한 맬웨어 배포. 이 악성 패키지는 개발 환경을 표적으로 삼아 자격 증명, API 키 및 민감한 데이터를 빼내면서 장기 백도어를 심음.
이런 사례들은 공격자들이 오픈소스 생태계에 내재된 신뢰를 악용하여 개발 프로세스에 침투하거나 인프라를 손상하고 광범위한 혼란을 야기합니다. 많은 조직은 말단을 보호하여 이러한 위협을 피할 수 있을 것으로 예상하지만 오픈소스 말웨어는 개발 수명주기에 통합되어 말단(엔드포인트)이 동작하기 전에 이미 실행됩니다.
말단 보호만으로는 부족
말단 보호 도구는 런타임에서 바이러스나 랜섬웨어와 같은 공격을 발견하기에 적합합니다. 이런 도구들은 알려진 말웨어의 행동과 시그니처를 파악하여 강력한 보호를 제공합니다. 그러나 이런 도구 대부분은 오픈소스 말웨어에 대한 보호에는 취약합니다.
오픈소스 말웨어는 개발자가 빌드 과정에서 사용하는 구성요소에 심어져 있습니다. 대체로 개발 인프라, CI/CD 파이프라인, 프로덕션 시스템과 같이 말단 도구에 대한 가시성이 없는 곳을 목표로 합니다. 말단 보호 도구가 이슈를 발견할 때에는 말웨어가 이미 소프트웨어 개발 수명주기를 손상시킨 후입니다.
- 신뢰할 수 있는 의존성에 은폐: 오픈소스 패키지의 맬웨어는 개발 중에 애플리케이션에 통합. 대부분의 말단 도구는 개발자가 다운로드하는 구성 요소의 무결성을 거의 검사하지 않음
- 런타임 감지를 우회: 오픈소스 맬웨어는 프로덕션 환경과 같은 특정 상황에서만 활성화되므로 피해가 발생하기 전까지는 엔드포인트 도구에서 감지되지 않음
- 디바이스가 아닌 인프라를 공격: 오픈소스 맬웨어는 CI/CD 파이프라인, 빌드 환경, 프로덕션 시스템을 손상시키는데 중점을 두며, 이러한 영역은 말단 솔루션에서 가시성을 확보할 수 없음
오픈소스 말웨어의 영향력
오픈소스 말웨어 공격의 형태를 확인함으로써 오픈소스 맬웨어가 일으킬 수 있는 광범위한 혼란과 심각한 피해를 막을 수 있습니다. 민감한 데이터의 탈취부터 지속적인 액세스를 위한 백도어 생성, 암호화폐 채굴을 위한 리소스를 하이재킹 등, 다양한 공격은 개발 라이프사이클의 기반을 표적으로 삼습니다.
- 데이터 유출: 공격자는 자격 증명, 독점 코드, 고객 데이터, 개인 식별 정보(PII) 또는 기타 유형의 기밀 정보를 포함한 민감한 정보를 탈취할 수 있음
- 백도어: 악성 코드는 종종 백도어를 설치해 공격자에게 중요한 시스템에 지속적으로 접근할 수 있는 권한을 부여
- 암호화폐 채굴: 맬웨어는 리소스를 납치하여 시스템 성능을 저하시키고 운영 비용을 증가
이러한 공격은 단순히 업무 중단을 넘어서 소프트웨어 무결성을 훼손하고, 고객 신뢰를 떨어뜨리고, 상당한 재정적 피해와 평판 손상을 초래할 수 있습니다.
오픈소스 말웨어 보호를 위한 모범관행
소프트웨어 개발 수명주기과 소프트웨어 공급망을 보호하려면 사전 예방 조치가 필수적입니다.
1단계: 저장소 관리자를 사용하여 오픈소스 관리 중앙화
Sonatype Nexus Repository 와 같은 리포지토리 관리자는 오픈소스 구성요소에 대한 단일 제어 게이트웨이를 제공하여 소프트웨어 공급망을 보다 쉽게 관리하고 보호할 수 있도록 합니다. 모든 구성요소에 대한 진입점을 중앙 집중화함으로써 리포지토리 관리자는 워크플로를 간소화하고 보안을 강화합니다.
- 소프트웨어 구성 요소의 저장 및 관리 중앙화
- 종속성을 로컬에 캐싱하여 빌드 성능 개선
- 보안과 규정 준수를 강화하기 위해 액세스 제어 및 정책 시행
2단계: 리포지토리 방화벽으로 리포지토리 관리자 보호
리포지토리 관리자는 중요한 게이트웨이이며, 단일 진입점이 있으면 오픈소스 맬웨어가 소프트웨어 개발 수명주기에 침투하는 것을 더 쉽게 식별하고 차단할 수 있습니다. Sonatype Repository Firewall 과 같은 도구는 방패 역할을 하여 악성 패키지가 침투하기 전에 식별하고 차단합니다. Sonatype Repository Firewall은 모든 구성 요소를 실시간으로 검사하여 안전하고 승인된 패키지만 파이프라인에 허용되도록 하여 맬웨어가 소프트웨어 공급망에 침투하는 것을 방지합니다.
3단계: OSS 위험에 대한 개발 팀 교육
개발자 교육을 통해 보호를 강화합니다.
- 저장소 관리자를 사용하고 공개 저장소에서 직접 다운로드하지 않음
- 오픈소스 구성 요소의 철저한 검토
- 타이포스쿼팅 및 종속성 혼동과 같은 일반적인 오픈소스 맬웨어 전략에 대해 인지
오픈소스 말웨어에 대해 선제적 예방이 중요
오픈소스 말웨어는 말단을 표적으로 삼지 않습니다 . 소프트웨어 개발 프로세스의 핵심에 침투하여 비즈니스가 의존하는 구성요소와 워크플로를 악용합니다. 따라서 오픈소스 말웨어의 증가하는 위협에 맞서려면 이러한 고유한 과제를 근원에서 해결하도록 설계된 솔루션이 필요합니다.
원문 출처: [백서] Why Endpoint Protection Is Not Enough
참고 링크: