3줄 요약
1. 이더리움 생태계의 개발자들이 즐겨 사용하는 도구 중에 하드햇이란 게 있음.
2. 공격자들이 이걸 또 정확하게 캐치해 하드햇 비스무리한 패키지들 살포 시작.
3. 심지어 신뢰도가 높은 오픈소스 리포지터리인 npm을 통해 유포 중.
[보안뉴스 문가용 기자] 이더리움 생태계에서 활동하는 개발자들이라면 한 번쯤 이름을 들어봤거나 이미 즐겨 사용하고 있는 오픈소스 도구가 하나 있다. 하드햇(Hardhat)이라고 하며, 노믹재단(Nomic Foundation)에서 유지 관리를 담당하고 있다. 스마트 계약서를 만들고 테스트하고 배포하는 과정을 간소화 하는 다목적 개발 환경을 제공하며, 유연한 플러그인 아키텍처를 가지고 있어 개발자들이 각자의 워크플로우에 쉽게 통합시킬 수 있기도 하다. 생산성을 높여주며, 이더리움 관련 개발 행위를 매우 쉽게 만들어준다.
[이미지 = gettyimagesbank]
현재 이 노믹재단과 하드햇 플랫폼을 겨냥한 공급망 공격이 진행 중인 것으로 밝혀졌다. 가짜 npm 패키지를 통해 하드햇을 사용하려는 개발자들을 속이는 것이 주요 수법이며, 여기에 당한 개발자들은 비밀 키와 비밀 복구를 위해 필요한 구문(니모닉(mnemonics)이라고 한다), 설정 정보 등을 도난당한 것으로 추정되고 있다고 디펜던시 보안 전문 업체인 소켓(Socket)이 밝혔다.
악성 패키지들과, 그 패키지들을 활용한 캠페인을 분석한 결과 스마트 계약서와 관련된 두 가지 사실을 발견할 수 있었다고 소켓은 보고서를 통해 설명했다. 이는 다음과 같다.
1) 공격자들은 이더리움의 스마트 계약서를 사용해 C&C 서버의 주소를 동적으로 가져오는 방식을 활용했다. 블록체인의 분산성과 불변성을 악용해 C&C 인프라를 찾아내거나 마비시키는 것을 어렵게 만든 것이라고 할 수 있다.
2) 공격자들은 이더리움의 스마트 계약서를 활용해 탐지를 회피하고 공격 지속성을 확보하고 있기도 하다. 스마트 계약서를 여러 모로 악용하는 데 능숙한 모습을 보이고 있다.
공격의 진행
하지만 스마트 계약서를 아무리 잘 활용한다 하더라도 결국 피해자의 시스템에 언젠가 불법적으로 침투해야 한다는 과제가 남아 있다. 이 과제를 완수하지 못한다면 스마트 계약서를 아무리 능숙하게 자기들 입맛대로 이용할 줄 안다고 하더라도 활용하기가 어려워진다. “그래서 공격자들은 주로 진짜 패키지 이름을 딴 악성 패키지를 유포하는 방식을 활용하고 있습니다. 예를 들어 @nomisfoundation/hardhat-configure와 @monicfoundation/hardhat-config 같은 패키지들은 정상 하드햇 플러그인으로 보이지만 사실은 그렇지 않습니다.”
가짜 패키지를 유포하는 공격자들의 목적은 결국 민감한 데이터들을 개발자들로부터 훔쳐내는 것이다. 공격자는 피해자의 하드햇 환경에서 비밀을 열람하는 데 필요한 정보(비밀 키나 니모닉)를 주로 추출한다. 추출된 데이터는 암호화 작업을 거치는데, 공격자가 미리 정의한 AES 키가 활용된다. 암호화 후에는 그 정보를 외부로 빼돌리는데, 공격자가 제어하고 있는 엔드포인트가 최종 목표 지점이 된다.
소켓은 이 캠페인이 비밀 키나 비밀 구문 같은 민감한 데이터를 손상시킴으로써 오픈소스 생태계에 대한 신뢰를 전반적으로 하락시키는 데 일조하고 있다는 게 정말 큰 위험이라고 지적한다. “공격자들이 이용하는 악성 계약서가 이더리움의 메인넷에까지 침투될 가능성이 낮다고 할 수 없고, 그런 일이 실제 벌어진다면 피해 확산 규모가 훨씬 커지겠죠.”
발견된 악성 패키지와 배포자
현재까지 발견된 악성 패키지 배포자와 패키지는 다음과 같이 정리가 가능하다.
1) lightfury0000000가 배포한 패키지 :
- nomicsfoundations
- @nomisfoundation/hardhat-configure
- installedpackagepublish
- @nomisfoundation/hardhat-config
- @monicfoundation/hardhat-config
2) nomicsfoundation이 배포한 패키지
- @nomicsfoundation/sdk-test
- @nomicsfoundation/hardhat-config
- @nomicsfoundation/web3-sdk
- @nomicsfoundation/sdk-test1
3) brightstar1001이 배포한 패키지
- @nomicfoundations/hardhat-config
- crypto-nodes-validator
- solana-validator
- node-validators
4) 기타 확인된 패키지
- hardhat-deploy-others
- hardhat-gas-optimizer
- solidity-comments-extractors
그래서?
오픈소스는 현대의 개발자들 사이에서 없어서는 안 될 소중한 자산이자 지식이며 창고다. 이제는 오픈소스 없이 뭔가를 개발한다는 걸 상상하기가 힘들 정도가 됐다. 그래서 개발자들은 이런 오픈소스 커뮤니티를 더 풍부히 하고자 노력하고, 최대한으로 기여하고자 한다. 그러면서 얻어가는 것도 풍성히 하고 있다. 내가 만든 코드를 기꺼이 제공함으로써 동료 개발자들이 혜택을 보는 것도 개발자들에게는 즐거움이고, 반대로 누군가의 호의를 내가 유용하게 활용할 수 있게 되는 것 역시 큰 기쁨이 된다.
그러면서 개발자들의 오픈소스에 대한 신뢰는 계속해서 두텁게 쌓이고만 있다. 그 ‘신뢰’를 공략하는 게 공급망 공격의 핵심이다. 소켓은 “오픈소스 생태계에서는 오픈소스 커뮤니티와 개발자들 간 신뢰를 악용하려는 시도가 수도 없이 일어난다”며 “개발자들이 오픈소스 코드를 받아 사용한다고 했을 때 보다 엄격하고 꼼꼼하게 검사하고 모니터링하는 절차를 도입해야 한다”고 강조한다. “다른 차원의 신뢰가 필요한 때입니다. 믿으니까 검사하지 않는다는 개념의 신뢰가 아니라, 더 강력히 믿기 위해 검사한다는 개념의 신뢰가 필요합니다.”
공격자들이 정상 패키지를 흉내 내기 위해 따르는 규칙과 전략, 공격 단계별로 사용되고 있는 코드의 예시, 세 개의 항목으로 구성된 침해지표는 이번 주 1월 9일에 발행되는 프리미엄 리포트를 통해 공개됩니다.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>