Offcanvas

개발자 / 보안 / 소매|유통

강은성의 보안 아키텍트ㅣ개발자가 알아야 할 공급망 보안

2024.06.14 강은성  |  CIO KR
개발 동네에서 공개 소프트웨어가 화두가 된 지는 꽤 오래됐다. 젊은 시절(?) 개발 동네에서 나름 자부심을 갖고 일하던 ‘옛날 옛날 옛적’에도 공개 소프트웨어를 종종 활용했다. 다만, 그때는 어떤 공개 소스를 선택할지, 공개 소스 변경 시 반영하기 쉬운 구조 설계, 나아가서 어떤 라이선스를 선택할 것인지 등이 주요 관심사였다. (그때는 주로 공개 ‘소스’에 관심이 많았다.)

최근 악성코드가 포함된 공개 소프트웨어를 통해 기업이 해킹당하는 사건이 발생하면서 공개 소프트웨어를 활용하는 공급망이 기업 보안의 약한 고리로 등장했다. 공개 소프트웨어가 주로 깃허브나 PyPI(Python Package Index) 같은 코드·패키지 저장소를 통해 개발·배포되므로, 공개 소프트웨어에 관한 이슈는 공유 저장소 문제와 밀접하게 연관되어 있다.

하지만, 개발 동네에서는 여전히 공개 소프트웨어는 활용에 초점이 가 있고, 공급망 보안 관점에서 바라보고 있지 않다. 공개 소프트웨어는 전형적인 개발 문제로 기업의 개발 프로세스나 개발자 활동에 공급망 보안을 위한 보안 활동이 포함되어야 하는데 말이다. 사실 ‘기업 보안’ 매출과 인력이 압도적으로 많은 보안 동네에서도 공개 소프트웨어 공급망 보안 문제는 주로 사이버 공격의 일반적 수단인 악성코드의 배포와 악용 측면에서 다루는 한계도 있다.

개발자들이 관심 둬야 할 공급망 공격의 몇 가지 사례를 살펴보자.

올해 5월, 소프트웨어 공급망 보안기업 소나타입(Sonatype)은 파이썬 패키지 저장소인 PyPI에서 악성코드 파이토일러(Pytoileur)를 발견했다고 발표했다. 사용자 감시와 정보 탈취, 암호화폐 탈취 등의 기능이 있는 이 악성코드는 발견 당시 이미 300회 이상의 다운로드가 이뤄졌다.
 
‘Jia Tan’이 XZ Utils에 백도어를 삽입한 방법 ⓒ Gridinsoft Blog, Apr 2, 2024

그보다 앞선 3월 29일에는 마이크로소프트 엔지니어가 인기 있는 압축 라이브러리 XZ Utils에서 악성코드를 발견했다고 알렸다. XZ Utils에서 LZMA 압축 알고리즘을 제공하는 liblzma에서 공격자가 ssh에서 인증 없이 root 권한으로 로그인할 수 있는 백도어가 포함됐다는 것이다(CVE-2024-3094, CVSS 10.0). 다만, 처음 이 악성코드가 포함된 XZ Utils 5.6.0 버전이 2월 24일에 출시됐는데, 얼마 지나지 않은 시기에 백도어가 발견되어 큰 피해는 없을 것으로 보인다.

조사 결과, 깃허브 XZ 리포지토리에 기여한 ‘Jia Tan’이란 자가 고의로 백도어를 삽입한 것이 드러났는데, 이 리포지토리는 원 개발자 1명이 자발적으로 운영하다 2022년 2월에 ‘Jia Tan’이 처음 기여하면서 신뢰를 쌓고 난 뒤 악성코드를 심은 것으로 드러났다. 리눅스 배포판에 포함될 정도로 세계적으로 많은 사용자가 있는 공개 소프트웨어의 보안 운영·관리 상태를 보고 놀란 분들이 많았을 것 같다.

1월에는 유명한 CI(Continuous Integration)/CD(Continuous Delivery/Deployment)용 공개 소프트웨어인 젠킨스(Jenkins) 일부 버전에서 인증되지 않은 공격자가 명령어 인터페이스(CLI)를 통해 젠킨스의 컨트롤러 파일 시스템에서 임의의 파일을 읽을 수 있는 취약점(CVE-2024-23897, CVSS 9.8)이 발견됐다. 이 취약점을 악용하면 서버에서 중요한 정보를 읽을 수 있고, 원격 코드를 실행할 수도 있다. 젠킨스를 이용하는 수많은 개발회사에 큰 위험이다.
 
국가별 취약점이 패치되지 않은 젠킨스 서버 수 ⓒ 2024 The Shadowserver Foundation

1월 24일에 젠킨스에서 패치를 발표했지만, 이 취약점에 대한 공격이 목격됐고, 1월 29일 기준 45,000대가 넘는 젠킨스 서버가 취약한 상태라는 조사가 나왔다.

전 세계 수백만 명이 사용하는 상용 CI/CD 도구인 젯브레인즈(JetBrains)의 팀시티(TeamCity)에서는 지난해 9월 원격 코드 실행 취약점(CVE-2023-42793, CVSS 9.8)이 발견됐고 그것을 악용한 침해사고가 발생했다. 올해 3월에도 팀시티에서 심각한 취약점(CVE-2024-27198, CVE-2024-27199)이 발견됐다. 이를 악용하면, 인증을 우회하여 팀시티 서버의 관리자 권한을 획득할 수 있다.

이렇게 공유 저장소와 공개 소프트웨어, (공개 소스) CI/CD와 같은 개발 인프라에 대한 공격은 이를 사용하는 많은 기업을 공격할 수 있고 이들의 보안 수준이 생각보다 높지 않다는 점에서 소프트웨어를 침해하거나 기업 내부에 침투하고자 하는 공격자에게 매력적인 공격 경로다. 공급망 공격이 계속 나타나는 이유다.

공개 소프트웨어 이용 시 보안 측면에서 고려할 사항을 단순화하면 다음과 같다.
  • 회사에서 사용하는 공개 소스 목록을 만든다. 라이선스 문제에 대응하기 위해 이미 공개 소스를 관리한 기업이 아니라면 간단한 일은 아니다. 하지만, ‘천 리 길도 한 걸음부터’다.
  • 소프트웨어 구성 분석(SCA: Software Composition Analysis) 도구를 이용해 소프트웨어(모듈)의 이름, 버전, 취약점 등을 검사하고, 취약점이 없는 버전을 사용한다.
    • SCA는 소스 분석 도구와 바이너리 분석 도구가 있으니, 상황에 맞게 사용한다.
    • 필요하면, 정적 취약점 분석 도구(SAST: Static Application Security Testing)나 동적 취약점 분석 도구(DAST: Dynamic Application Security Testing)를 사용한다.
  • 공유 저장소에서 있는 공개 소스·라이브러리·패키지를 이용할 때 많이 쓰고 있는 잘 알려진 것을 사용한다.
    • 원본과 동일한지 무결성을 검증하고, 타이포스쿼팅(typosquatting) 공격에 당하지 않도록 URL, 파일 이름 등에 유의한다.
    • 기여자가 여럿이고, 지속적으로 업데이트되는 것이 상대적으로 안전하다.
    • SCA 도구 이용, 커뮤니티나 인터넷 검색 등을 통해 보안 문제가 있는지 점검한다.

특히, 개발팀에서 적절한 SCA 도구를 선정해, 회사에서 사용하는 공개 소프트웨어의 구성 명세를 만들어 보기 바란다. 개발팀에서 사용하는 소프트웨어의 세부 내역을 파악하는 것이 공개 소프트웨어 공급망 보안의 출발점이기 때문이다.

개발사 측면에서 공급망 보안의 주요 요소를 정리하면 다음과 같다.
  • 공급망 보안 거버넌스 수립 – 공급망 보안에 관해 경영적 측면에서 의사결정하고 집행할 수 있는 구조 필요
  • 내부에서 개발한 소프트웨어의 보안성 – 개발 단계별 보안 활동(Secure SDLC), 지속적인 보안 점검
  • 외부에서 도입한 소프트웨어의 보안성 – 소스, 라이브러리, 패키지 등
  • 개발 인프라의 보안성 – 소프트웨어 저장소, CI/CD 파이프라인, 개발 PC 및 서버, 클라우드 개발 인프라 등
  • 소프트웨어 업데이트 보안성 – 온라인 업데이트 환경, 소프트웨어 서명, 키 관리 등
  • 신속한 제품 보안 사고 대응(Product Security Incident Response) 체계 – 관련 취약점 수집 및 대응 체계

지난 몇 년 동안 소프트웨어 공급망 보안의 중요성이 세계적으로 강조되면서, 국내에서는 지난 5월, 과학기술정보통신부와 국가정보원, 디지털플랫폼정부위원회가 공동으로 「SW 공급망 보안 가이드라인」(2024.5.)을 내놓았다. 공급망 공격 유형을 7가지로 분류하고, 글로벌 공급망 보안 정책 흐름과 SCA 도구를 이용한 소프트웨어 부품명세서(SBOM: Software Bill of Materials)의 생성 및 활용 사례, 공급망 보안을 위한 자가 점검 목록 등이 포함되어 있어서 공급망 보안에 관심 있는 개발자와 개발 관리자, 개발 담당 임원에 도움이 많이 될 것으로 보인다. 일독을 권한다.

* 강은성 교수는 국내 최대 보안기업의 연구소장과 인터넷 포털회사의 최고보안책임자(CSO)를 역임한 정보보호 및 개인정보보호 전문가다. 현재는 서울여자대학교 정보보호학과 조교수로 있다. 저서로 「IT시큐리티」(한울, 2009)와 「팀장부터 CEO까지 알아야 할 기업 정보보안 가이드」(한빛미디어, 2022) 등이 있다.
ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

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

Copyright © 2024 International Data Group. All rights reserved.