특정 국가의 반체제 행위 감시 목적 출발, “국내에서도 활발하게 암약”
서드파티 라이브러리 ‘Ably’ 악용, 명령제어 후 Go언어 악성프로그램 유포
기업과 개인, 조직 등의 휴대전화, 데스크톱, 메신저 채팅 기록 등 탈취
“공격 초기 선제적 대응, 공격자 리소스 증가 등 ‘디펜트 포워드’로 방어”
[애플경제 박문석 기자]보안당국은 지난 연말부터 부쩍 심해진 국제 해킹 그룹 ‘스카크럽트’(ScarCruft)의 사이버공격에 대한 상세한 정보를 전하고 있다. 이는 러-우크라전 발발 이후 국내에서 한층 활동이 빈번해진 그룹이다. 인터넷진흥원과 ‘인터넷보호나라’ 사이트는 특히 그 기술적 수법을 중심으로 상세한 정보를 전하면서, 주의를 당부하고 있다.
러-우크라전 계기 더욱 기승
이에 따르면 스카크럽트 그룹은 국가기반 해킹 조직으로, 국가의 체제 유지를 위해 공격을 수행하는 것으로 파악되었다. 이는 애초 특정 국가의 체제를 이탈한 주민이나, 해외 파견 근로자, 언론인, 선교사 등을 주 공격 대상으로 삼고 있다. 특히 스카크럽트 조직이 속한 국가와 관련된 국내 주요 인사들도 공격 대상으로 하고 있다.
공격 대상에 대한 해킹에 성공하면 휴대전화 기록, 데스크톱 기록, 메신저 채팅 기록 등을 모조리 탈취한다.
“그러나 침해한 시스템을 파괴하거나 탈취한 정보로 (몸값 등을) 협박하는 등의 행위를 하지 않는 것으로 보아 특정 국가의 체제 유지를 위한 감시 목적이 강한 것으로 추정된다”는게 보안 당국의 판단이다.
이는 적어도 10여 년 전부터 국내에서 해킹 활동을 벌여온 것으로 파악되고 있다. ‘인터넷보호나라’는 일단 러시아에 본사를 둔 보안업체 ‘캐스퍼스카이’사는 ‘스카크럽트’로 명명하고 있지만, 각 보안업체들 마다 각기 다른 이름을 붙이고 있다. 예를 들어 국내 보안업체인 이스트시큐리티는 ‘금성121’, 안랩은 ‘Red Eyes’, 그리고 맨디안트사는 ‘APT37’로, ‘크라우드스트라이크’는 ‘Ricochet Chollima’로 각각 부르고 있다.
스피어싱 메일 송부, 악성코드 다운 유도
이는 목표 대상이 관심을 가질 만한 내용으로 스피어피싱 이메일을 송부하여 악성코드를 다운로드 받도록 유도하는 방식을 많이 사용한다. 메신저 채널에 위장 잠입하여 악성앱 설치를 유도하는 수법도 구사한다.
이에 인터넷진흥원과 ‘인터넷보호나라’는 “지속적인 추적을 통해 스카크럽트 공격조직이 새로 사용한 신규 명령제어 채널을 발견했다”면서 “신규 명령채널을 모니터링 할 수 있는 도구를 직접 개발 제작하여 작년 10월 중순부터 약 2개월간 공격자의 명령제어 과정을 24시간 추적하고 모니터링 하는 활동을 수행했다”고 밝혔다.
그 결과, 해당 조직의 타겟으로 확인된 감염자를 확인하여, 피해가 확산되지 않도록 조치했다는 얘기다. 또 “공격자는 대상을 감시하기 위하여 ‘Chinotto’ 악성코드를 적극적으로 활용하며 VNC를 설치하고, 정보를 빼내는 것으로 확인했다”면서 “또한 공격대상의 환경과 공격목적에 맞게 명령제어 체계를 재정비하는 정황도 파악했다”고 전했다.
보안당국, “TTP 확인 후 지속적 추적”
그러면서 “지속적인 추적 활동을 통해 공격자의 변화된 TTP(공격전략행위)를 확인하고 이것을 알림으로써 방어자들이 각자의 방어 환경에 맞는 전략을 수립하는데 도움을 줄 것”이라며 “또한 단순히 공격자의 행위를 추적하고 TTPs를 파악하는 활동을 넘어 피해사실을 인지하는 즉시 조치함으로써 민간 기업과 개인의 위협을 제거하고 억지하기 위해 노력하고 있다”고 밝혔다.
이에 따르면 보안 당국은 우선 개인의 일상을 감시하는 ‘스카크럽트’의 공격전략을 분석, 그 고도화된 정보수집 활동과 공격 기법, 전술, 절차를 공개했다. 또 Go 언어 기반의 새로운 명령제어 기법과, 악성코드에 내재된 API 키를 활용하여 공격자의 행위를 모니터링하는 수법과 그 흔적을 보여주고 있다.
“최근 더 은밀한 Go 언어 기반 명령제어 체계”
이에 따르면 ‘스카크럽트’는 공격을 위해 TTP 중 일부를 지속적으로 변화하며 공격을 수행하고 있다. 기존에는 스크립트 기반의 명령제어를 활용했으나, 최근엔 Go 언어 기반 명령제어 체계를 구축해 더욱 더 은밀하게 명령제어를 수행하고 있다.
특히 명령제어를 위해 ‘Ably’라는 서드 파티 라이브러리를 악용해 명령제어를 위한 비밀 통신 채널을 생성하는가 하면, 해당 악성 프로그램을 Go언어로 작성해 유포하고 있다. 또한 목표대상에 침투하고, 채널이 동작하지 않을 상황을 대비하기 위해 다양한 명령제어를 위한 악성코드를 추가로 설치하고 있다.
인터넷진흥원은 이에 스카크럽트 그룹의 신규 악성코드인 Go언어 기반 원격제어기를 이용한 명령제어 과정과 침투 이후 공격자의 행위를 상세히 기술하고 있다.
우선 이에 따르면 ‘Ably’는 실시간으로 데이터를 송수신하여, 통계정보를 제공하거나 휴대폰 알림 서비스 등으로 활용할 수 있는 것이다. 이를 이용하면, 서버의 메일과 스마트워치의 생체정보도 저장하고, 실시간으로 연동하여 데이터를 공유할 수 있기 때문에 유연한 정보 송수신이 가능하다. 공격자는 ‘Ably’ 서비스를 악용, ‘Go’ 언어 악성코드에 명령제어 기능을 새로이 구현하기도 했다.
‘Ably’를 악용한 ‘Golang’ 명령제어 수법
‘스카크럽트’는 또 Ably 서비스를 악용하여 새로운 명령제어 체계도 구축했다. 이는 ‘Golang’ 언어를 이용하여 제작된 새로운 악성코드를 기반으로 활약한다.
즉, ▲ 공격자는 Ably 채널을 생성하고 피해자가 채널에 접속하길 기다린다. 그런 다음 ▲피해자가 일단 악성코드에 감염되면 내부에 존재하는 Ably API 키와 함께, PC 이름과 계정명으로 ‘HELO’라는 문자를 주기적으로 채널에 업로드(데이터명: UP)한다. 이에 ▲모니터링하고 있던 공격자는 명령이 필요한 PC에게 추가 악성코드를 감염시키는 명령을 ‘base64’로 인코딩하여 하달(데이터명: DOWN)한다. 그러면 ▲피해자는 채널에 실시간으로 접근하여 자신의 ID가 있는 명령을 확인, 실행한 후 다시 실행결과를 채널로 업로드(데이터명: UP)하는 것이다.
중요한 것은 이런 명령체계는 차단이 불가능 하다는 점이다. 정상적인 서비스인 Ably를 차단할 수 없기 때문이다. 또 공격자의 IP 노출이 최소화된다. Ably 내부에 로그가 존재할 수는 있지만, 서비스 이용자에게 접속 로그를 제공하는 기능은 존재하지 않는다. 또한 외부 서비스를 사용하기 때문에 어디에서나 명령제어가 가능하다. 이런 특성 때문에 공격자는 Ably 서비스의 장점을 십분 활용할 수 있게 된다.
그러나 보안당국은 “Ably 서비스의 API 키를 활용, 공격자의 명령제어 채널을 모니터링할 수 있었다.”면서 “특히, 악성코드를 단순 실행하게 되면 분석환경 정보가 공격자에게 송신되기 때문에, ‘Go’ 언어를 기반으로 한 모니터링 스크립트를 직접 개발, 운영했다. 그 결과 스카크럽트의 명령제어 데이터를 확보, 추가적으로 데이터를 분석할 수 있었다”고 전했다.
즉, “방어자가 공격적인 사고방식으로 사이버 공격에 대응하는 ‘Defend Forward’를 통해 공격 초기단계에 선제적 대응을 통해 공격자 리소스를 증가시키는 등 방어활동을 수행할 수 있다”고 방어책을 조언했다.
그런 방식을 구사하며 스카크럽트의 명령제어를 모니터링한 결과, 다양한 유형의 명령제어 악성코드를 확인 가능한 것으로 전해졌다. 즉 “과거부터 활용되어 온 명령제어 악성코드와 ‘Golang’언어로 제작된 신규 서비스(Ably) 기반 악성코드까지 활용한 것을 발견했다”는 것이다. 이에 따르면 이는 메인 명령제어 체계의 수단이 비정상적으로 동작할 경우 대체하기 위한 것이다. 또 잠재적 공격대상들이 지닌 특성과 환경이 다양하기 때문에, 그에 따라 공격도구를 다변화하여 사용하려는 의도로 추정되고 있다.
감염된 단말기로 개인별로 특화된 악성코드 유포
그러면 피해자를 감염시킨 후 공격자는 어떤 명령을 수행할까. 보안 당국에 따르면 이들은 일단 감염된 단말기를 통해 개인별로 특화된 악성코드를 유포한다. 특히 ‘msinfo32.exe’를 통해 악성코드를 실행, 공격자와 감염자의 통신채널을 구축한다. 그 후 정보유출을 위해서 ‘UltraVNC’를 사용하기도 한다.
또 윈도우를 실행할 때 ‘mshta’를 통해 악성코드가 실행되도록 레지스트리에 등록한다 이 스크립트는 자동화된 프로그램에 의해 생성되었을 수도 있는 것으로 추정된다.
특히 “ping 명령어의 수행시간과 레지스트리 등록 값을 랜덤으로 부여하며, 레지스트리에 등록되는 랜덤 값들이 동일한 값을 가지는 것은, ‘mshta’를 통해 실행되는 악성 스크립트가 프로그램에 의해 새로 생성된다고 추정할 수 있다”는 것이다.
흥미롭게도 공격자는 평일에 근무하고, 주말에 휴식을 취하는 주6일제로 근무하는 것으로 파악되었다. 업무시간 또한 여느 직장인처럼 ‘9 to 6’로 추정된다. 또한 휴일도 탄력적으로 조정하며 활동하는 것으로 보인다. 물론 ‘특별근무’가 필요한 경우, 공격자는 주말에도 쉬지않고 공격하기도 한다.
※ 참조 : https://thorcert.notion.site/TTPs-ScarCruft-Tracking-Note-67acee42e4ba47398183db9fc7792aff
