보안 제품정보


루비 생태계를 위협하는 비트코인 탈취용 악성 라이브러리 주의보 2020.04.21

타이포스쿼팅 기술 활용한 공격자들, 루비 리포지터리에 악성 젬 올려
미묘하게 철자 바꿔 상당한 다운로드 수 기록 중...공격 제거했지만 다시 시작돼


[보안뉴스 문가용 기자] 약 760개의 악성 라이브러리들이 오픈소스 루비(Ruby) 코드에서 발견됐다. 이 라이브러리들은 전부 비트코인을 훔치기 위해 제작된 것으로 분석됐다. 이를 발견한 보안 업체 리버싱랩스(ReversingLabs)의 위협 분석가인 토미슬라브 말직(Tomislav Maljic)은 “공격자들이 악성 라이브러리와 함께 간단한 타이포스쿼팅(typosquatting) 전략을 사용해 목적을 달성해 왔다”고 설명했다.

[이미지 = iclickart]


타이포스쿼팅 공격이란 사용자들이 URL 등을 입력할 때 철자 오류를 일으키는 것을 예상하고, 그러한 철자 오류로 구성된 URL에 악성 사이트를 개설하는 것을 말한다. 혹은 실제 URL의 글자 한두 개를 비슷한 모양의 특수 문자로 바꿔 눈속임을 하는 기법도 포함한다. URL이 아니라 파일 이름에도 적용 가능한 공격 방법이다.

악성 행위자들은 바로 이 타이포스쿼팅 기법을 사용해 악성 라이브러리를 루비젬스(RubyGems)라는 리포지터리에 악성 라이브러리를 업로드 할 수 있었다고 한다. 루비젬스는 젬(gem)이라는 오픈소스 구성 요소들을 모아둔 것으로, 소프트웨어 개발자들이 애플리케이션 개발의 기본 단위로서 활용한다. 루비젬스 리포지터리에는 현재 약 15만 8천 개의 젬이 저장되어 있고, 약 490억 번의 다운로드를 기록 중에 있다.

루비젬스를 활용하는 개발자들이 프로그램 개발에 필요한 젬을 찾다가 비슷한 철자 혹은 이름을 가진 것을 실수로 다운로드 받게 되면, 해당 프로그램은 비트코인 탈취 기능을 자동으로 갖게 된다. 말직은 자신의 블로그를 통해 “만약 비트코인 거래를 주기적으로 하는 루비 개발자가 이 라이브러리를 받았다면 피해자가 된다”고 밝혔다.

말직과 그의 동료들은 가장 인기가 높은 젬들을 목록으로 만들어 놓고, 그와 비슷한 이름의 새 라이브러리가 추가되는 현황을 모니터링 했다. 첫 주만에 ‘분석 대상’으로 꼽힌 젬이 400개를 넘어섰다. “분석을 해보니 수상한 젬들이 전부 두 개의 계정에서부터 추가된다는 걸 알 수 있었습니다. 짐캐리(JimCarrey)와 피터기본스(PeterGibbons)라는 사용자 계정이었습니다. 둘 다 다운로드 수가 꽤 높았고요. 심지어 피터기본스 계정에서 타이포스쿼팅 기법이 적용된 젬이 실시간으로 업로드 되는 순간을 포착하기도 했습니다.”

피터기본스라는 계정에서 올라온 악성 젬 중 하나는 atlas-client라는 이름을 가지고 있었고, 약 2100번 다운로드 됐었다. 원래 젬은 atlas_client였고, 다운로드 수는 6500번 정도였다. 이런 식으로 젬을 하나하나 분석하다 보니, PE 포맷의 파일이 굉장히 많이 발견됐다. 또한 하나도 빠짐없이 aaa.png라는 파일을 포함하고 있기도 했다. 알고 보니 “감염시킨 플랫폼에 대한 정보를 수집하는 기능을 가지고 있었다.” 예를 들어 윈도우를 기반으로 한 시스템이면 aaa.png가 a.exe로 이름을 바꾼 채 활동을 시작했다고 한다.

악성 젬에서 루비 스크립트를 추출해보니 베이스64(Base64)로 엔코딩 된 VB스크립트가 등장했다. 이 스크립트는 복호화 과정이 끝난 뒤 oh.vbs라는 이름의 파일로 저장됐다. oh.vbs는 새로운 VB스크립트 파일을 Software Essentials.vbs라는 경로에 생성하는 기능을 가지고 있었다. 그 다음 새로운 자동실행 레지스트리 키(Run Microsoft Software Essentials)를 만듦으로써 시스템이 재부팅 될 때마다 악성 멀웨어도 발동될 수 있도록 해두었다.

Software Essentials.vbs라는 악성 스크립트가 실행되면, 사용자의 클립보드 데이터를 가져오기 시작한다. 그런 후 암호화폐 지갑 주소의 형식과 일치하는 정보가 있는지 확인한다. 발견할 경우 해당 정보를 공격자가 운영하는 지갑 주소로 바꾼다. 피해자의 암호화폐 거래가 엉뚱한 지갑으로 이뤄지도록 만드는 것이다.

이에 발직은 루비젬스 보안 팀에 2월 25일 연락을 취했다. 이틀 후 악성 패키지들은 전부 사라졌다. 그러나 비슷한 행위가 곧바로 다시 시작됐다. 해당 캠페인이 지금 시점에도 진행되고 있는 것이다. “공격자들은 이전에도 비슷한 방법으로 루비젬스 생태계를 위협한 것으로 추측됩니다. 비슷한 수법과, 비슷한 공격용 경로가 발견된 적이 있거든요. 그렇다는 건 이들을 체포하지 않는 이상 비슷한 공격이 계속해서 발생할 거라는 뜻입니다.”

말직은 코드를 저장하고 공유하는 리포지터리 시스템이 공격자들에게 악용되거나 침해되는 사례가 자꾸만 생기는 건 그리 놀라운 일이 아니라고 말한다. “소프트웨어 개발의 원리 혹은 공급망을 공격자들도 잘 알고 있습니다. 우리가 어떻게, 무슨 재료를 가지고, 프로그램을 만드는지 이해한다는 것이죠. 루비만이 아니라 다른 언어의 생태계에도 이런 일들을 빈번하게 일어나고 있습니다. 반드시 원하는 파일이나 패키지, URL의 이름을 정확히 알고 있어야 합니다.”

3줄 요약
1. 루비 개발자들이 자주 이용하는 리포지터리에서 악성 라이브러리 발견됨.
2. 진짜 라이브러리와 이름이 흡사해 다운로드 받는 자들의 착각 유발.
3. 악성 라이브러리의 목적은 비트코인을 훔치는 것.

Copyrighted 2015. UBM-Tech. 117153:0515BC
[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>