보안 제품정보


새로운 암호화폐 채굴 캠페인 셀레늄그리이드, 인기 높은 오픈소스 악용해 2024.07.29

원래 인증 단계가 없는 채로 세상에 나왔다. 원래 API가 너무나 많은 권한을 가져가도록 만들어졌다. 원래 내부 네트워크에서만 사용되는 게 개발자의 의도였기 때문이다. 하지만 누구도 그 의도에 귀를 기울이지 않고 있다.

[보안뉴스 문정후 기자] 새로운 암호화폐 채굴 캠페인이 발견됐다. 이를 처음 발견해 세상에 알린 보안 업체 위즈(Wiz)는 해당 캠페인에 셀레늄그리이드(Selenium Greed)라는 이름을 붙였다. 셀레늄그리드(Selenium Grid)라는 오픈소스 테스팅 플랫폼을 악용한 캠페인이기 때문이다. 공격자들은 설정이 잘못된 셀레늄그리드를 찾아 암호화폐 채굴코드를 심고 있다고 한다.

[이미지 = gettyimagesbank]


셀레늄그리드?
셀레늄그리드는 오픈소스로 공개된 테스팅 프레임워크다. 개발자들은 웹 애플리케이션을 편리하게 실험할 때 셀레늄그리드를 활용하는데, 여러 가지 브라우저나 온라인 환경에서 자신이 개발한 앱들이 잘 실행되는지 파악하기 위한 목적일 때가 많다. 셀레늄그리드는 자동으로 여러 브라우저의 여러 버전들을 만들어내 웹 애플리케이션들이 어떤 환경에서 잘 돌아가고 어떤 환경에서 이상을 일으키는지를 알게 해 준다.

그래서 셀레늄그리드의 인기는 대단하다고 말해도 모자라다. “개발자와 웹 앱 테스터들이 무척이나 선호하는 앱입니다. 수많은 앱 개발사들도 사용하고 있지요. 셀레늄의 도커 이미지는 이미 1억 번 이상 다운로드 됐습니다. 지금도 1주일에 15만 번 이상 다운로드 되고 있지요. 클라우드 환경이 확산되면서 셀레늄그리드의 인기가 같이 올라가고 있습니다. 클라우드 환경에 구축할 앱을 테스팅한다고 했을 때 현재 가장 많이 사용되는 것이 바로 셀레늄그리드라고 할 수 있습니다.”

그런데 이 셀레늄그리드에는 문제가 하나 있다. 아예 처음부터 내부 네트워크 내에서만 사용되도록 만들어졌다는 것이다. 즉 공공 인터넷에 연결되지 않은 상황에서 사용되도록 처음부터 설계가 된 것인데, 그래서 몇 가지 주의해야 할 점이 있다. 하나는 디폴트 설정 그대로 사용할 경우 인증 과정이 없다는 것이다. 그리고 셀레늄 웹드라이버(Selenium WebDriver)라는 인기 높은 API가 사용자 기계로부터 많은 권한을 가져간다는 점이다. 인터넷에 연결될 것을 상정하지 않고 만들어진 것이니 이런 상황이 벌어진 것으로, 많은 사용자들이 이 점을 잘 모르거나 간과한다고 위즈는 설명한다.

셀레늄 측에서도 이런 사용자들의 현실을 잘 알고 있고, 그래서 웹사이트를 통해 공공 인터넷에 연결한 채로 셀레늄그리드를 사용하지 말라고 당부하고 있다. 하지만 그런 경고문이 있다는 것조차 사람들은 잘 모르고 있다. 알아도 편리함 때문에 인터넷에 연결해서 사용하는 걸멈추지 않는다.

셀레늄그리이드?
공격자들은 어느 순간 웹 앱 개발자와 테스터들이 셀레늄그리드를 제대로 설정하지 않은 채 인터넷에 마구 연결해서 사용한다는 사실을 알아냈다. 그리고 이 상황을 자신들에게 유리한 쪽으로 전환시키기로 마음을 먹었다. “인증 단계 없이 공공 인터넷에 연결되도록 구축한다는 건 무슨 뜻인가요? 누군가 셀레늄그리드를 활용해 테스트 환경을 구축한다고 했을 때, 아무나 그 환경에 접근할 수 있다는 뜻입니다. 그리고 API가 많은 권한을 가져간다는 건, 공격자 역시 그 API를 통해 높은 권한을 가져갈 수 있다는 뜻이죠. 여기서 말하는 ‘권한’이란 파일을 읽고, 다운로드 하고, 명령을 받아 실행시킬 수 있다는 뜻이 됩니다.”

하지만 인증 단계가 없는 디폴트 상태로 설정된 셀레늄그리드를 인터넷에서 찾았다 하더라도 곧바로 익스플로잇이 되지는 않는다. 위즈가 발견한 바에 따르면 공격자들은 크롬옵션즈(ChromeOptions)라는 클래스 하나와 add_argument라는 명령어 하나를 적극 이용해 익스플로잇 공격을 실시한다고 한다. “크롬옵션즈는 크롬 환경에서 웹 앱이 테스트 될 수 있도록 각종 옵션들을 설정하고 관리하는 데 사용되는 클래스입니다. 그 옵션들 중 하나는 크롬 바이너리의 경로를 저장하는 건데, 공격자가 여기에 엉뚱한 바이너리 경로를 삽입하면 웹드라이브 API가 다른 뭔가를 실행하게 되죠. 여기에 add_argument까지 사용하면 악성 바이너리 실행 시 일종의 매개변수 설정까지도 할 수 있게 됩니다.”

공격은 일정한 순서로 진행되는 게 보통이라고 위즈는 보고서를 통해 상세히 설명하고 있다. 이를 간단히 요약하면 다음과 같다.
1) 취약한 셀레늄그리드를 찾는다.
2) 크롬 바이너리 경로를 바꾼다. 그래서 파이선 페이로드가 실행되도록 유도한다.
3) add_argument를 악용해 파이선 페이로드가 스크립트처럼 실행되도록 만든다.
4) 스크립트가 실행되면서 base64로 복호화 된 페이로드가 나타난다.
5) 이 페이로드가 실행되면서 리버스셸 하나가 생성된다.
6) 리버스셸을 통해 피해자 시스템 내에서 명령어 실행의 로깅이 더 이상 진행되지 않는다. 즉 피해자는 어떤 명령이 자기 시스템 안에서 실행됐는지 추적할 수 없게 된다.
7) 그 다음 또 다른 스크립트가 생성된다.
8) 이 스크립트를 통해 암호화폐 채굴 코드가 다운로드 되고 실행된다.
9) 그 다음 타임스탬프를 마구 바꾼다. 이 역시 조사와 추적을 따돌리게 하기 위함이다.
10) 채굴이 시작되면 아까까지 비밀번호가 걸리지 않았던 셀레늄그리드에 공격자가 비밀번호를 건다. 그래서 자원을 온전히 독식한다.

이 때 활용되는 채굴 멀웨어는 XM리그(XMRig)의 변종이다. 공격자들이 별도로 커스터마이징을 한 것으로 추정되는 것으로, 정적 탐지 기술을 회피할 수 있도록 꾸며졌다. 또한 공격자들이 제어하고 있는 서버와만 통신을 하도록 만들어졌다.

방어법
셀레늄그리드는 워낙 광범위하게 사용되고 있어서 회사 내 사용여부를 확실히 알아내기가 쉽지 않다. 따라서 IT 자산(하드웨어 및 소프트웨어)을 평소에 전부 파악해 놓는 것이 중요하다고 위즈는 강조한다. “개발자들이 셀레늄그리드를 회사에 따로 말하지 않고 독자적으로 운영할 수도 있습니다. 대단히 많이 사용되는 오픈소스니까 등록이나 보고에 대한 생각을 하지 못할 때도 많지요.”

그 외에도 위즈는 몇 가지 방어 방법을 보고서와 함께 공유했다.
1) 외부 네트워크 스캐너와 취약점 스캐너를 활용하여 인터넷에 우리 회사가 얼마나 노출되어 있는지를 확인한다.
2) 런타임 탐지 기술을 통해 실시간으로 위협을 다룬다.
3) 방화벽과 같은 네트워크 보안 제어 장치들을 사용해 네트워크 접근을 함부로 할 수 없게 한다.
4) 어느 자원에나 접근하려면 인증 절차를 거치도록 규정을 정한다.
5) 오픈소스나 서드파티 요소를 활용할 때 본 제작자의 의도를 명확히 파악하고 이해한다.

3줄 요약
1. 인기 높은 웹 애플리케이선 실험 프레임워크, 셀레늄그리드.
2. 하지만 실험을 내부 네트워크에서만 하라는 게 원 개발자들의 의도.
3. 그래서 보안 장치 없는데도 사람들은 개발자 의도 무시하고 인터넷에 연결해서 사용 중.

[국제부 문정후 기자(globoan@boannews.com)]

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