매달 다운로드되는 취약한 종속성
12억
자료 제목 :
제8회 연례 소프트웨어 공급망 현황
8th Annual State of the Software Supply Chain
자료 출처 :
Sonatype
원본자료 다운로드
관련 자료 :
발행 날짜 :
2022년 10월 18일
보안

“공급망 공격, 올해 600% 이상 폭증”했지만…기업 68% “보안 문제없다”

Lucian Constantin | CSO 2022.10.24
대부분 기업은 알려진 취약점이 있는 오픈소스 소프트웨어 라이브러리를 사용하지 않는다고 답했지만, 새로운 연구에 따르면 엔터프라이즈 애플리케이션 68%에서 취약점이 발견되었다.
 
ⓒ Depositphotos

소프트웨어 및 서비스 제공업체 구성 요소를 통한 공급망 공격의 수는 지난 1년 동안 633%나 증가했다. 소프트웨어 공급망 관리 업 소나타입의 새로운 보고서에 따르면 지금까지 총 88,000건 이상의 사례가 보고되었다고 한다. 한편, 소프트웨어 구성 요소가 자체 종속성에서 상속하는 전이적 취약성 사례도 전례 없는 수준에 도달하여 오픈소스 라이브러리의 3분의 2가 취약점에 노출되어 있다는 점이 드러났다.  
 
소나타입은 새로 발표된 소프트웨어 공급망 상태 보고서에서 "의존성의 네트워크 특성은 이러한 복잡한 공급망에 대한 가시성과 인식을 갖는 것의 중요성을 강조한다"라고 말했다. "이러한 의존성은 소프트웨어에 영향을 미치기 때문에 이러한 의존성의 기원을 이해하는 것이 취약성 대응에 매우 중요한다. 많은 조직이 필요한 가시성을 갖추지 못했으며, 그 결과 2022년 여름 이후 Log4Shell에 대한 사고 대응 절차를 계속했다."

Log4Shell은 로깅에 사용되며 수백만 개의 엔터프라이즈 응용 프로그램과 소프트웨어 제품에 번들되어 널리 사용되는 오픈 소스 Java 라이브러리인 Log4j에서 2021년 11월에 발견된 심각한 취약성이다. Log4Shell은 종종 간접 종속성으로 사용됩니다. 소나타입의 모니터링에 따르면, 2022년 8월 현재 Log4j의 고정 버전 채택률은 약 65%에 달한다.

게다가 이는 Log4Shell 취약성이 Log4j-core의 일부인 JndiManager라는 Java 클래스에서 발생한다는 점도 포함하지 않은 것이다. JndiManager는 783개의 다른 프로젝트에서도 차용되었으며 현재 19,000개 이상의 소프트웨어 구성 요소에서 발견된다.
 

오픈소스 수요는 끊임없이 상승 중 

Maven Central(Java), npm(JavaScript), PyPi(Python), NuGet(.NET)과 같은 상위 구성 요소 저장소에서 패키지 다운로드가 매년 평균 33%씩 증가하고 있다. 이는 2021년 73% 성장률을 기록한 예년보다 낮은 수치다. 그러나 컴포넌트 다운로드 수는 이미 모든 리포지토리에서 2021년을 넘어섰으며 총 3조회 이상에 달한다. npm 저장소만 해도 올 한 해에만 2021년 4개 저장소 모두보다 더 많이 다운로드 될 것이다. 

오픈소스 소비율이 하락했다고 해서 이용자가 더 엄격한 오픈소스 조달 및 관리 정책을 시행했다고 보기는 어렵다. 생태계의 규모와 새로운 프로젝트의 업데이트 속도를 고려하면 오히려 매우 일반적인 추세에 불과하다. 

소나타입은 "성장 속도가 느려지고 있지만, 절대적인 성장 규모는 이전 연간 성장률을 웃돌고 있다"라고 결론지었다. "오픈소스 채택율은 짧은 시일 내에 활력을 잃을 기미가 보이지 않는다"라고 회사는 덧붙였다.
 

다양해진 공급망 공격 유형

소나타입은 지난해 말까지 알려진 악성 공급망 공격 사례 1만2000여건을 추적했다. 현재 8만 8000여건으로 늘었다. 이는 전년 대비 633% 성장한 수치다. 그 회사는 또한 다양한 방식으로 배포된 9만7334개의 악성 패키지를 발견했다.

악성 패키지 성장의 일등공신 중 하나는 2021년 2월 보안 연구진이 공개적으로 공개한 의존성 혼란이라는 공격 기법이다. 이 악성 패키지는 그 이후로 널리 쓰이고 있다. 이 기술은 공용 커뮤니티 리포지토리와 내부 리포지토리 모두에서 패키지를 검색하도록 구성된 대부분의 패키지 관리 클라이언트의 동작을 활용한다.

패키지 이름이 두 위치에 모두 있으면 클라이언트는 버전 번호가 높은 패키지 이름을 가져온다. 이는 많은 기업이 내부 저장소에만 존재하는 사내 개발 패키지를 사용하므로 결코 공개적으로 게시할 수 있다. 공격자가 매니페스트 파일에서 해당 패키지의 이름을 찾으면 공용 리포지토리에 해당 이름으로 악성 패키지를 게시하고 소프트웨어 빌드 클라이언트를 속일 수 있다.

의존성 혼란 공격의 모든 사례가 본질적으로 악의적인지 아닌지는 말하기 어렵다. 왜냐하면 이 기술은 침투 테스터들에게도 인기가 있기 때문이다. 그러나 기업들은 공공 저장소에 개인 패키지 이름을 등록함으로써 자신을 보호할 수 있다. 또는 기업은 모든 패키지에 접두사를 사용할 수 있으며, 그런 다음 공용 리포지토리에 네임스페이스 또는 범위로 등록할 수 있다. 즉, 공격자는 더 이상 이러한 접두사를 가진 패키지를 게시할 수 없다.

한동안 알려진 다른 유형의 대량 공격은 타이포스쿼팅(Typosquating)과 브랜드재킹(Brandjacking)이다. 타이포스쿼팅(Typosquating)은 공격자가 유명하고 널리 사용되는 일부 패키지의 이름과 유사한 이름으로 악성 패키지를 등록하는 사이버 해킹 기법이다. 이것은 개발자가 빌드 스크립트나 명령에 패키지 이름을 입력할 때 범하는 실수(오타)를 악용하는 수동적인 공격 수법이다. 

브랜드재킹은 유사하지만 납치되거나 타이포스쿼트된 패키지를 자신의 구성 요소에 종속하는 것이 목표다. 다른 패키지 유지 관리자들을 대상으로 한다. 합법적인 패키지의 관리자가 소유권을 다른 사람에게 양도하거나, 해당 패키지의 개발을 중지하고 삭제하고 이전 이름을 사용할 때 이 공격수법에 노출될 수 있다. 

악성코드 주입 또한 늘어나고 있는 공격수법이다. 공격자는 개발자의 시스템 또는 코드 저장소를 손상시키고 자신도 모르게 패키지에 악성코드를 주입한다. 패키지 유지 관리자가 여러 당사자에게 코드 저장소에 대한 액세스 권한을 위임할 때, 해당 당사자가 악의적인 의도를 가지고 있거나 공격을 받으면 해당 공격수법의 덫에 걸리는 셈이다.
 
악성코드 주입과 유사하지만, 합법적인 개발자에 의해 자행되는 또 다른 공격 유형은 시위웨어(protestware)로 알려져 있다. 개발자가 항의의 표시로 이전에 깨끗했던 자신의 패키지에 악성 코드를 추가하는 수법이다. 
 

우수한 보안 관행을 갖춘 구성 요소 선별하기 

이에 따라 모든 내부 소프트웨어 개발에 걸쳐 사용되는 구성 요소의 인벤토리를 구축하고 유지하며, 이러한 구성 요소에서 발견된 취약점을 추적하는 것은 보안 위험을 완화하는 데 있어 매우 중요하다. 그러나 구성 요소 출처에 대한 명확한 정책을 수립하는 것도 그만큼 중요하다.

자체 코드에서 취약점 발생률이 낮은 구성요소나 라이브러리를 선택한다고 안전이 보장되지 않는다. 많은 수가 내재된 의존성을 통해 취약점을 물려받을 수 있기 때문이다. 따라서 이러한 취약성에 대응하고 의존성을 업데이트하는 데 공을 들여야 한다. 

소나타입이 엔터프라이즈 응용 프로그램에서 일반적으로 사용되는 12,000개 이상의 라이브러리 세트를 분석한 결과 10%만이 코드에 직접 취약성이 있는 것으로 나타났다. 그러나 종속성과 종속성에서 상속된 경과적 취약성을 포함할 경우 사건 발생률은 62%로 증가했다. 평균적으로 각 라이브러리는 5.7개의 종속성을 가지고 있었다.

또한, 취약성이 낮은 구성 요소를 선택한다고 해서 장기적으로 보안 결과가 개선되는 것은 아니다. 연구자들이 꼼꼼히 살피고 싶은 프로젝트를 선택하는 방식에 편견이 많기 때문이다. 다시 말해, 인기 있는 프로젝트는 그 인기만큼 취약할 수 있다. 

소나타타입 연구진은 "대부분의 취약성은 전이적 의존성에서 발생하기 때문에 사용하는 모든 라이브러리를 신중하게 고려하는 것이 가장 확실한 수칙"이라고 말했다. "의존 트리가 더 작은 것이 바람직하다. 종속성의 새 버전이 출시될 때 신속하게 업데이트할 수 있는 프로젝트를 찾아라. (낮은 MTTU – 평균 업데이트 시간). 전체 종속성 수를 최소화하고 프로젝트 종속성에 대한 낮은 업데이트 시간을 유지하는 것은 전이적 취약성의 위험을 줄이는 데 두 가지 중요한 요소이다"라고 연구진은 당부했다. 

오픈소스 프로젝트의 보안 관행을 판단하기 위해 몇 가지 측정 기준을 사용할 수 있다. 그중 하나가 오픈소스 보안재단(OpenSSF)이 개발한 보안 스코어카드 시스템이다. 이 시스템은 일련의 자동화된 검사를 수행하여 오픈소스 프로젝트에 고정되지 않은 취약성이 있는지, 의존성을 업데이트하는 데 도움이 되는 도구를 사용하는지, CI 테스트를 실행하는지, 자동 코드 퍼징을 실행하는지, 정적 코드 분석 도구를 사용하는지, 위험한 코딩 관행을 피하는지, 병합 전에 코드 검토를 수행하는지 등을 확인한다.  

소나타입은 자체 데이터를 사용하여 이러한 관행 중 일부가 프로젝트에 취약성이 있을 가능성을 낮추는 데 미치는 많은 영향을 평가했다. 회사는 가장 큰 영향을 미치는 조치가 이진 아티팩트를 포함하지 않는 코드 검토, 위험한 코딩 관행(브런치 보호), 종속성 고정 및 코드 커밋 검토였다는 것을 발견했다.

소나타입 연구진은 "개발자들이 MTTU, Security Scorecard, OpenSSF Criticality, SourceRank 순으로 가장 높은 구성 요소를 선택할 것을 계속 권고한다"라고 밝혔다. 연구팀은 "다양한 점수를 집계하고 중요도를 재는 것이 어려울 수 있다는 것을 이해한다"라며 “그래서 새로운 소나타입 Safety Rating을 공개 취약성 데이터베이스 OSS Index에 추가해 보다 쉽게 작업을 수행할 수 있도록 했다”라고 말했다. 
 

사이버보안은 과소평가가 미덕 

소나타입은 662명의 엔터프라이즈 엔지니어링 전문가를 대상으로 설문조사를 실시했으며 오픈소스 구성 요소 사용, 종속성 관리, 거버넌스, 승인 프로세스 및 툴링에 대한 40개의 질문을 던졌다. 대부분의 응답은 소나타입의 평가에서 고품질 결과를 도출하는 데 필요한 수준보다 낮은 공급망 관리 수준을 나타냈다.

기업들이 자신을 가장 높이 평가한 점은 교정 및 애플리케이션 인벤토리 범주였다. 예를 들어, 응답자의 68%는 자신의 애플리케이션이 알려진 취약한 라이브러리를 사용하고 있지 않다고 확신한다고 답했으며 84%는 사용하는 오픈소스 구성 요소의 보안 이력을 자세히 조사한다고 답했다. 그러나 소나타입이 무작위로 선택된 55,000개의 엔터프라이즈 애플리케이션을 스캔한 결과 68%가 이미 알려진 취약점에 노출돼 있었다. 

연구진은 "설문조사 과정에서 수집된 인구통계 자료를 활용, 직급별로 결과를 세분화했다"라고 말했다. 연구팀은 "이번 연구 결과는 빛을 발했다. 관리자들이 다른 역할들에 의해 보고되는 것에 비해 더 높은 성숙 단계를 보고하는 더 나은 관점에서 사태를 파악하는 편견이 계속되고 있다. 설문조사 전반에 걸쳐 이 차이는 IT 관리자와 정보 보안 역할에 종사하는 관리자와 비교할 때 통계적으로 유의미하다"라고 말하며 공급망 보안의 경각심을 촉구했다.
ciokr@idg.co.kr
Sponsored

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

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

Copyright © 2024 International Data Group. All rights reserved.