로그 코발트 스트라이크 서버를 식별하기 위한 다중 방법 접근법

로그 코발트 스트라이크 서버를 식별하기 위한 다중 방법 접근법

레코디드 퓨처는 여러 코발트 스트라이크 서버 탐지 방법이 공개된 이후 야생의 코발트 스트라이크 서버에 대한 변화를 평가했습니다. 분석에서는 다양한 방법론을 평가하고 이를 기반으로 결합 분석을 수행하여 사용자가 탐지를 피하기 위해 구성을 변경했는지 확인했습니다. 레코디드 퓨처® 플랫폼, BinaryEdge, Censys, Rapid7 Lab의 오픈데이터, 쇼단, 그레이노이즈, 리버싱랩스, 바이러스토탈, 파사이트 DNS 및 기타 오픈소스 등이 있습니다. 이 보고서는 대응 시간을 개선하고자 하는 조직과 정기적으로 코발트 스트라이크 사고를 처리하는 분석가에게 가장 큰 관심을 끌 것입니다.

Executive Summary

코발트 스트라이크는 보안 전문가들이 고급 공격자의 표적 공격 및 공격 후 활동을 모방하고 수행하기 위해 개발된 공격 플랫폼입니다. 이 도구는 워싱턴 D.C.에 본사를 두고 있는 Strategic Cyber LLC에서 개발 및 라이선스된 것으로, 해당 기업에 의해 불법 사용 여부가 모니터링되며 수출 통제 대상입니다. 그러나 그럼에도 불구하고, 코발트 스트라이크 프레임워크는 메타스플로이트 프로, 코어 임팩트 등 다른 유료 스위트와 같은 이 유형의 다양한 소프트웨어 중에서 인기 있는 옵션으로 자리 잡았습니다. Cobalt Strike는 무허가 사용자와 범죄 조직에 의해 사용되는 플랫폼 중 하나이지만, 이 플랫폼은 다양한 위협 그룹에 의해 활용되어 왔습니다. 특히 APT32는 이 도구를 초기 침투 단계에 사용했으며, Cobalt Strike라는 이름을 가진 Cobalt Group은 이 프레임워크에 크게 의존해 왔습니다.

보안 테스터, 더 나아가 악의적인 공격자들이 Cobalt Strike 플랫폼을 많이 사용한다는 점을 고려하면 기업 네트워크 자산에 대한 Cobalt Strike 서버 연결을 인식해야 할 필요성은 분명합니다.

탐지 방법론이 공개되었음에도 불구하고 레코디드 퓨처는 코발트 스트라이크 서버가 대부분 패치되지 않은 채로 방치되어 있어 핑거프린팅과 후속 탐지가 가능하다는 것을 관찰했습니다. 이 방법론은 다른 탐지 방법과 결합되어 레코디드 퓨처는 야생에서 발견된 코발트 스트라이크 서버를 샘플링하고 핑거프린팅 방법을 비교하여 방어자가 이 프레임워크를 가장 잘 추적하고 모니터링할 수 있도록 했습니다. 코발트 스트라이크 서버를 추적하면 블루팀이 레드팀의 활동을 감지하고 코발트 스트라이크 팀 서버를 수정하지 않은 적의 활동을 차단하는 데 도움이 될 수 있습니다.

주요 판단

배경

오늘날 사고 대응 및 보안 운영 분석가의 주요 문제는 어떤 보안 이벤트 또는 알림을 우선적으로 검토할지 결정하는 것입니다. 다행히도 Splunk와 같은 정확한 위협 인텔리전스를 SIEM 워크플로에 적용하면 신뢰할 수 있는 위협을 식별하는 데 유용할 수 있으며, 보안 팀이 보다 선제적인 조치를 취할 수 있도록 중요한 추가 컨텍스트를 파악할 수도 있습니다. 예를 들어, IP 주소 89.105.198[.]28로 SIEM에 알림이 들어오는 경우입니다, 엔드포인트 중 하나에서 연락을 받은 적이 있습니다. 이제 어떻게 할까요?

코발트-스트라이크-서버-1-1.png

기록된 향후 브라우저 확장.

Recorded Future 브라우저 확장 프로그램을 Splunk 알림 페이지에서 열면, IP 주소 89.105.198[.]28 위험 점수 93점으로 상위권에 급부상했습니다(이 결과는 2019년 5월 6일에 확인되었으며, 추가 악성 활동이 관찰되지 않을 경우 2019년 5월 17일에 위험 점수가 감소됩니다). 이 조사 결과, 해당 IP 주소는 Sophos에 의해 MegaCortex 랜섬웨어 캠페인의 일환으로 보고되었으며, Cobalt Strike 리버스 쉘을 사용한 것으로 확인되었습니다.

코발트 스트라이크(Cobalt Strike )는 Strategic Cyber LLC의 창립자 라파엘 머지(Raphael Mudge)가 침투 테스트 전문가들을 위해 개발한 적대자 시뮬레이션 플랫폼입니다. 다른 플랫폼(예: Metasploit, NMAP, Powershell Empire)과의 상호운용성을 위해 설계된 이 도구는 Mudge가 Metasploit를 위해 처음 개발한 그래픽 사용자 인터페이스(GUI)인 Armitage를 통해 실행될 수 있습니다. 아머리지와 코발트 스트라이크는 팀 서버를 중심으로 설계되어 정보 공유가 가능하며, 잘 조율된 작업을 지시하고 실행할 수 있는 기능을 제공합니다.

고급 기능을 갖춘 것으로 알려진 Cobalt Strike는 수많은 보안 전문가들에 의해 채택되었으며, 범죄 조직과 국가 지원 단체에 의해 불법적으로 사용되기도 했습니다. MITRE는 다음과 같이 밝혔습니다. “Cobalt Strike의 상호작용형 포스트-익스플로잇 기능은 ATT&CK 전술의 전체 범위를 포괄하며, 모든 기능이 단일 통합 시스템 내에서 실행됩니다.” 이 프레임워크는 지난 3년간 위협 환경에서 주요 요소로 자리 잡았으며, 범죄 조직, 국가 후원 단체, 그리고 당연히 침투 테스트 팀에 의해 자주 사용되어 왔습니다.

cobalt-strike-servers-2-1-1024x640.png (시간 경과에 따른 Cobalt Strike 사용. (출처: Recorded Future))

코발트 스트라이크는 전문적으로 유지 관리되며, 현재 연간 갱신 시 미화 3,500달러의 라이선스 비용으로 이용할 수 있습니다. 미국에서 설정한 수출 통제 외에도 Strategic Cyber LLC는 라이선스 및 사용을 합법적인 보안 전문가에게만 엄격하게 통제하고 악의적인 행위자의 손에 소프트웨어가 들어가지 않도록 하여 범죄자나 미국 이외의 단체가 소프트웨어를 획득하기 어렵게 만들려고 노력합니다.

Strategic Cyber LLC는 라이선스 버전의 소프트웨어를 정기적으로 업데이트하고 패치합니다. 최근 코발트 스트라이크의 서버 구성이 변경되어 프레임워크가 탐지를 회피할 수 있게 되었습니다. 그러나 불법 복제된 버전의 소프트웨어는 공식 업데이트 및 패치를 받을 수 없습니다.

소프트웨어 라이선스가 엄격히 관리되어 왔음에도 불구하고, Cobalt Strike의 불법 복제판이 실제 환경에서 확인되었으며, 주로 크랙된 트라이얼 버전들이 유통되고 있습니다. 또한 범죄 지하 네트워크 내의 다양한 행위자들이 이를 획득하거나 거래하려는 시도가 관찰되었습니다. 그러나 크랙된 버전은 자체적으로 추가된 "기능"인 백도어나 일부 기능이 결여될 수 있습니다. 2019년 4월 5일, Raid Forums의 한 회원이 Cobalt Strike 3.13(최신 버전)의 크랙된 복사본 링크를 게시했습니다. 그러나 다른 회원들은 해당 복사본이 일부 기능이 누락되었으며, 제거되어야 할 소프트웨어의 일부 요소(예: EICAR)가 여전히 포함되어 있다고 지적했습니다. 코발트 스트라이크의 정품 버전은 따라서 매우 가치 있습니다. 예를 들어, 지난해 Maza 포럼의 한 회원이 미국 내 구매자에게 코발트 스트라이크의 라이선스 버전을 구매하고 이를 불법적으로 해당 포럼 회원에게 전송해 달라는 조건으로 $25,000 USD를 제시한 사례가 관찰되었습니다.

89.105.198[.]28에 대한 조사로 돌아가서, 이 IP 주소는 MegaCortex 사건 동안 피해자의 도메인 컨트롤러에서 Cobalt Strike 역쉘을 위한 명령 및 제어 서버로 사용되었습니다. 랜섬웨어는 이후 PSExec를 통해 환경 전체에 배포되었습니다. 이 분석 시점 기준으로 MegaCortex 랜섬웨어 캠페인이 활동 중이었습니다. IP 주소에 대한 추가 조사 결과, 해당 IP 주소는 트래픽을 암호화하기 위해 Cobalt Strike 서버의 기본 보안 인증서를 사용하고 있는 것으로 확인되었습니다.

이 사건은 89.105.198[.]28과 관련된 사건입니다. 이 특정 Cobalt Strike 활동에 대해 Recorded Future가 조사하도록 촉발했습니다. 이 발견은 보안 업체 Fox-IT가 Cobalt Strike HTTP 응답에 포함된 이상한 공간과 기타 공개된 탐지 결과, 특히 Cobalt Strike 서버에서 표준으로 사전 설정된 자체 서명 SSL/TLS 인증서의 일반적인 사용을 포함한 조사 결과에 따라, 대규모 Cobalt Strike 연구를 더욱 촉진했습니다. 이 인증서를 배포한 서버는 Shodan 또는 Censys를 통해 인증서의 SHA256 해시 또는 인증서 시리얼 번호를 통해 탐지될 수 있습니다.

cobalt-strike-servers-3-1.png

기본 코발트 스트라이크 SSL/TLS 인증서.

코발트 스트라이크 팀 서버를 식별하는 공개 방법론

2019년 2월 19일, 코발트 스트라이크의 제작사인 Strategic Cyber LLC는“코발트 스트라이크 팀 서버 인구 조사”의 결과를 발표했습니다. 이 연구는 발견된 Cobalt Strike 소프트웨어의 라이선스 상태를 확인하기 위해 일부 진행되었으며, 현재 사용 중인 소프트웨어 버전에 적용된 주요 변경 사항을 식별하고 분석하는 것을 목표로 합니다.

이 연구에서는 야생에서 코발트 스트라이크 서버를 식별하는 데 사용할 수 있는 여러 가지 방법을 확인했습니다:

위 목록에서 전체적으로 볼 때 가장 확실한 방법은 기본 보안 인증서를 사용하여 코발트 스트라이크 서버에 핑거프린팅을 하는 것입니다. 나머지 탐지 방법은 덜 확실하며 다른 방법론으로 확증할 경우 모두 신뢰도가 높아집니다. 예를 들어, 포트 50050을 사용하면서 NanoHTTPD 웹 서버 고유의 HTTP 응답도 제공하는 서버는 HTTP 응답 서명만 표시하는 서버보다 코발트 스트라이크 서버일 가능성이 높습니다.

NanoHTTPD는 오픈 소스 웹 서버 프레임워크입니다. 버전 3.12 이하를 실행하는 NanoHTTPD 서버 및 Cobalt Strike 서버는 다른 웹 서버 응답에서는 볼 수 없는 빈 공간(0x20)이 "HTTP/1.1" 뒤에 오는 HTTP 응답의 널 공백을 통해 식별할 수 있습니다. 3.13 이전 버전의 코발트 스트라이크 서버로부터의 모든 HTTP 응답에는 이 널 공간이 포함되며, HTTP 서버 응답을 검색할 수 있는 스캐너를 사용하여 이를 검색할 수 있습니다. 앞서 언급한 널 공간을 식별하는 간단한 수동 방법은 브라우저 HTTP 연결의 패킷 캡처를 통해 코발트 스트라이크 서버에 대한 여분의 공간을 쉽게 확인할 수 있습니다.

크랙 버전을 실행하는 Cobalt Strike 인스턴스는 업데이트나 패치가 되지 않기 때문에 이 방법을 사용하면 범죄자가 운영하는 Cobalt Strike 서버를 발견할 가능성이 높아집니다.

Strategic Cyber LLC의 블로그 게시물에는 Cobalt Strike 서버를 식별하는 또 다른 방법이 구체적으로 언급되지 않았습니다. 2019년 1월 2일, Cobalt Strike 버전 3.13이 출시되었습니다. 코발트 스트라이크 릴리스 노트에 따르면, 이전 버전에서 변경된 사항 중 하나는 HTTP 상태 응답에서 "불필요한 공백"을 제거한 것입니다. NanoHTTPD 서버(오픈 소스 기반의 자바 웹 서버)의 HTTP 서버 응답에 추가된 null 바이트가 2012년에 처음 출시된 NanoHTTPD를 기반으로 한 Cobalt Strike Team Server에 영향을 미쳤습니다.

2019년 2월 26일 보안 업체 Fox-IT가 발표한 Cobalt Strike 서버에 대한 연구는 버전 3.13 이전(HTTP 응답에 추가적인 null 공간을 반환하는 서버)의 서버를 식별하는 방법에 대한 세부 정보를 제공했을 뿐만 아니라, Rapid7의 공개 데이터에서 발견된 이 탐지 방법을 사용하여 2015년부터 2019년까지 관찰된 Cobalt Strike 서버를 호스팅하는 7,000개 이상의 IP 목록도 포함되었습니다.

코발트-스트라이크-서버-4-2.png

코발트 스트라이크 서버의 HTTP 헤더에 여분의 널 공간이 있음을 보여주는 패킷 캡처.

同様に, 2019년 2월 27일, 중국 Knownsec 보안 연구 팀은 Strategic Cyber LLC가 보고한 NanoHTTPD 404 Not Found 응답 이상 현상과 null 공간 이상 현상을 활용해 Cobalt Strike 서버를 식별한 방법을 상세히 설명한 블로그를 게시했습니다. 그들은 관련 ZoomEye 검색 엔진 플랫폼 내의 데이터에서 서버의 수가 적게 발견되었지만, 여전히 3,000개가 넘게 발견되었습니다. Knownsec는 Cobalt Strike가 기반을 두고 있는 오픈소스 NanoHPPTD 코드가 다음과 같은 방식으로 정확히 반응한다고 보고했습니다:

HTTP/1.1 404 Not Found
콘텐츠 유형: 텍스트/일반
날짜: 요일, DD Mmm YYYY HH:​MM​:SS GMT
콘텐츠 길이: 0

Knownsec은 이 발견을 기반으로 탐지 로직을 구축했습니다. 그러나 Knownsec은 이후 일부 코발트 스트라이크 시스템의 응답에서 '날짜' 뒤에 '콘텐츠 유형'이 표시되는 것을 발견한 후 HTTP 응답 내 순서가 실제로 다를 수 있음을 관찰했습니다.

코발트 서버를 발견하는 신뢰할 수 있는 방법이 상세한 네트워크 트래픽 데이터에 접근할 수 있는 사용자에게 제공됩니다. 개방형 소스 프로젝트인 JA3는 세 명의 Salesforce 연구원이 개발한 것으로, 서버와 클라이언트 간의 TLS 협상 과정을 지문 인식 기술을 통해 분석하여 의심스러운 HTTPS 트래픽을 탐지할 수 있습니다. TLS/SSL 버전, 허용되는 암호화 스위트, 및 타원 곡선 세부 정보(예: 타원 곡선 점 형식)는 브라우저가 버전, 추가 기능, 해당 브라우저에 특정한 기타 기능으로 지문 인식되는 방식과 유사하게 지문 인식될 수 있습니다.

JA3 서명은 클라이언트 측용이며, JA3S 서명은 서버 측용입니다. 코발트 스트라이크의 경우, 클라이언트 비콘(Windows 소켓을 사용하여 통신을 시작하는)과 Kali Linux 운영 체제에서 실행 중인 코발트 스트라이크 서버에 의해 TLS 협상용 지문(fingerprints)이 생성되었습니다. 이 지문들은 코발트 스트라이크 서버를 신뢰성 있게 탐지하기 위해 함께 사용되어야 합니다. 이 탐지 방법은 Cobalt Strike 운영자가 "리디렉터"를 사용함으로써 일부 완화될 수 있지만, 많은 Cobalt Strike 서버는 이러한 프록시를 사용하지 않습니다.

JA3 및 JA3S 시그니처는 Zeek/Bro 및 Suricata와 같은 도구와 함께 사용할 수 있습니다. 이러한 네트워크 탐지 도구에서 수집된 데이터는 이후 Splunk와 같은 SIEM에 입력될 수 있습니다. JA3 및 JA3S 서명 파일은 Salesforce의 GitHub 계정 및 기타 출처에서 확인할 수 있습니다.

보안팀이나 관리자가 사용할 수 있는 Metasploit, Powershell 또는 PsExec과 같은 다른 도구의 탐지와 마찬가지로, 네트워크 방어자는 탐지 자체로는 사용자의 의도를 식별할 수 없으므로 네트워크 내에서 Cobalt Strike 서버로의 연결을 나타내는 증거를 발견하는 경우 실사를 수행해야 합니다. 탐지된 트래픽만으로는 코발트 스트라이크 서버가 승인된 레드팀의 서버인지, 아니면 실제 적의 서버인지 식별하는 것이 불가능할 수 있습니다.

Fox-IT와 Knownsec이 비정상적인 HTTP 응답을 공개한 이후 변화된 사항

2019년 2월 말 전략적 사이버 LLC, Fox-IT, Knownsec이 코발트 스트라이크 서버 탐지에 관한 정보를 발표한 이후 이러한 방법으로 식별된 코발트 스트라이크 서버의 수가 감소할 것으로 예상했습니다. 또한, 코발트 스트라이크 운영자는 2월 연구에서 스트래티직 사이버 LLC의 권유에 따라 트래픽을 프록시하는 '리디렉터'로 아파치 또는 Nginx 웹 서버를 사용하여 비정상적인 HTTP 응답, 기본 보안 인증서 및 기타 식별자를 제거함으로써 코발트 스트라이크 서버를 간단하게 탐지하지 못하도록 했습니다. 합법적인 라이선스가 있는 서버를 3.13 버전으로 업데이트하면 불필요한 널 공간 방법을 사용하여 탐지되는 서버의 수가 줄어들겠지만, 코발트 스트라이크 운영자가 잘 알려진 탐지 방법을 알고 있다면 탐지 가능한 서버의 수도 줄어들 것으로 예상됩니다.

인식트 그룹은 HTTP 응답에서 비정상적인 널 공간을 탐지하는 Fox-IT의 방법론을 복제하여 식별된 서버가 눈에 띄게 감소하는 것을 확인했습니다. 388개의 코발트 스트라이크 서버는 2019년 2월에 Rapid7의 데이터를 사용하여 처음으로 관찰되었습니다. 이 방법을 처음 사용한 코발트 스트라이크 서버의 수는 2019년 4월에 90개에 불과했습니다. 하지만 이는 일부에 불과하며, 이 방법을 사용하는 오래된 코발트 스트라이크 서버는 그 수가 줄었지만 그 정도는 훨씬 적습니다. Rapid7의 데이터에서 관찰된 서버 중 441개는 2019년 4월에도 여전히 가동 중인 것으로 관찰되었으며, 이는 2019년 1월에 마지막으로 관찰된 387개보다 많은 수입니다.

인식트 그룹은 다른 HTTP 탐지 방법론으로 코발트 스트라이크를 식별하기 위해 알려진섹의 연구를 분석하여 동일한 줌아이 검색 엔진 데이터로 연구를 복제했습니다. 인식트 그룹은 2018년에 1,580개, 2019년 5월까지 1,053개의 서버가 가동된 것을 확인했습니다.

코발트-스트라이크-서버-5-1.png

개별 코발트 스트라이크 감지 매개변수에 대한 최근 지표. (2019년 1월 ~ 2019년 5월)

앞서 언급했듯이, 이 두 가지 HTTP 탐지 방법은 모두 NanoHTTPD 내의 이상 징후를 기반으로 하며, 특히 코발트 스트라이크 시스템이 아닙니다. 이러한 방법을 사용하여 탐지된 모든 항목에 포트 50050이 열려 있는 것과 같은 확실한 데이터가 있는 것은 아닙니다. 서버 수 변경에는 다른 변수들도 관련되어 있습니다. 코발트 스트라이크 서버는 IP가 변경될 수 있으며 항상 장시간 가동되는 것은 아닙니다. 2019년 1월 이후 새로 발견된 코발트 스트라이크 서버는 감소했지만, 데이터에 따르면 여전히 HTTP 널 스페이스 이상 메서드로 탐지되는 서버가 다수 운영되고 있는 것으로 나타났습니다.

코발트-스트라이크-서버-6-1.png

결합된 감지 방법을 사용한 코발트 스트라이크 식별. (2019년 1월 ~ 2019년 5월)

세 가지 탐지 결과를 조합하여 코발트 스트라이크를 호스팅하는 서버를 높은 신뢰도로 평가할 수 있었으며, 실제로 이러한 방식으로 확인된 6개의 서버는 모두 이전에 코발트 스트라이크를 호스팅하고 다양한 코발트 스트라이크 비콘과 통신하는 것으로 보고된 바 있습니다. 기본 코발트 스트라이크를 사용하는 것이 가장 좋은 탐지 방법이지만, NanoHTTPD와 오픈 포트 50050을 함께 사용하면 모니터링할 IP의 범위가 크게 좁아질 수 있습니다.

위협 분석

레코디드 퓨처는 Fox-IT의 방법론을 사용하여 접근 가능한 IP에서 표준 발급 코발트 스트라이크 TLS 인증서를 사용하는지 살펴본 결과, 전략적 사이버 LLC가 주요 탐지 메커니즘을 패치한 후 코발트 스트라이크 사용량을 프로파일링하려고 시도했습니다. 향후 방법론과 연구는 눈에 보이는 코발트 스트라이크 서버를 추적하며, 단순한 변경으로 탐지를 회피하는 코발트 스트라이크 서버는 설명할 수 없다는 점에 유의하시기 바랍니다.

이 연구에서 Recorded Future는 Fox-IT의 조사 결과를anticipated하여 Cobalt Strike의 채택이 더 최근 버전으로 전환될 것이라고 예측했으며, 이는 일정 부분 실현되었습니다. Strategic Cyber LLC가 이 문제를 해결하기 위한 패치를 제공했으며, HTTP 응답에 추가 공간이 포함된 IP 주소가 공개되었음에도 불구하고, 업데이트 이전에 배포된 Cobalt Strike 배포본은 업데이트되지 않은 것으로 보입니다. 프레임워크 업데이트 이후 다음 달에는 Fox-IT의 탐지 방법론을 Rapid7의 데이터 세트에 적용한 결과, 신규로 탐지된 Cobalt Strike 서버의 수가 가장 크게 증가했습니다. 이 서버들은 평균 70일 동안 온라인 상태로 유지되었습니다.

코발트-스트라이크-서버-7-1.png

그러나 이 방법은 2019년 2월 1일에만 활성화된 포트 1443에서 NanoHTTPD를 사용하여 AS 132839의 연속적인 CIDR 범위에서 248개의 디바이스를 발견했기 때문에 신뢰할 수 없는 것으로 판명되었습니다. 이 변칙을 제거한 후 데이터에 따르면 NanoHTTPD를 사용하는 새로운 코발트 스트라이크 호스트의 탐지가 현저히 감소한 것으로 나타났습니다. 이는 전체적으로 코발트 스트라이크의 신규 배포가 줄어들었기 때문일 수도 있지만, 사용 중인 업데이트된 소프트웨어가 반영된 것일 수도 있습니다.

코발트-스트라이크-서버-8-1.png

2019년 4월에 마지막으로 확인된 데이터에 따르면 이전에 배포된 코발트 스트라이크 인스턴스가 제거되거나 업데이트되지 않은 것으로 나타났습니다. 또한 동일한 데이터 세트를 기준으로 서버가 온라인 상태를 유지한 시간도 데이터 세트의 평균 70일 근처에서 계속 감지된 서버에 눈에 띄는 변화가 없는 것으로 나타났습니다. 하지만 HTTP 헤더에 널 공백이 있는 새로운 코발트 스트라이크 서버가 발견되는 건수가 감소했습니다.

코발트-스트라이크-서버-9-1.png

오래된 버전의 프레임워크(HTTP 헤더의 널 공백을 통해)와 기본 구성을 사용하는 Cobalt Strike 서버가 계속 식별되는 것은 많은 수의 Cobalt Strike 서버가 크랙 또는 도난 버전임을 나타낼 수 있습니다. 운영자가 보안 관련 자료를 읽지 않는 사례일 수도 있지만, 대부분의 표적 공격자가 코발트 스트라이크 서버를 검색하지 않을 가능성이 높고 페이로드가 여전히 효과적인데 왜 행동을 바꾸려고 할까 하는 단순한 이유일 수도 있습니다.

코발트 스트라이크 서버 샘플링

레코디드 퓨처는 2019년 4월에 활동이 확인된 IP 주소의 샘플링을 통해 주목할 만한 활동과 탐지 중복을 모두 조사했습니다. 이러한 서버는 확인된 코발트 스트라이크 활동, 다른 멀웨어와 연결된 코발트 스트라이크 서버, 알려진 위협 그룹에 연결된 코발트 스트라이크 서버, 위협 목록이나 보고에 아직 이름이 없는 보고되지 않은 코발트 스트라이크 서버 등 여러 범주에 속합니다.

사용된 연구 방법으로는 분석 대상 시스템의 라이선스 여부를 확인할 수 없었으며, 마찬가지로 서버가 승인된 보안 테스트를 수행하고 있는지 또는 불법적인 공격을 수행하고 있는지도 확인할 수 없었습니다.

코발트 스트라이크와 관련된 신호에서 여러 개의 IP 주소가 중복되어 발견되었습니다. 세 대 모두 기본 인증서를 사용했으며, Cobalt Strike 컨트롤러 포트 50050이 열려 있었고, 이전에 Cobalt Strike 비콘이나 Meterpreter 역방향 프록시를 호스팅하는 것으로 식별되었습니다. 다시 한 번 강조해야 할 점은, 보완적인 탐지 방법을 사용할 때 더 높은 정확도의 탐지가 이루어진다는 것입니다.

IP 주소 31.220.43.11은 기본 Cobalt Strike 인증서를 사용하여 식별되었으며, 서버에서 포트 50050이 열려 있는 것으로 확인되었습니다. 메테레프레이터 샘플이 명령 및 제어 기능을 수행하며 특정 IP 주소로 HTTP 트래픽을 전송하는 것이 관찰되었습니다. Shodan 데이터에 따르면, 해당 IP는 여러 개의 포트가 열려 있으며 여러 가지 취약점에 노출되어 있습니다. 이는 호스트가 다른 악성 소프트웨어를 배포하기 위해 침해되었을 가능성이 있음을 나타낼 수 있습니다. 분석 시점 기준으로 해당 IP는 단일 도메인인 cob.ozersk[.]today를 호스팅하고 있습니다.

일부 IP 주소는 표준 Cobalt Strike 인증서를 사용했으며, 이전에 FIN6 활동과 연관되어 있었으며, 랜섬웨어 배포 및 포인트-오브-세일(POS) 악성 소프트웨어 배포를 위한 초기 공격 벡터로 사용되었습니다. 이 분석 시점에는 해당 캠페인이 공개적으로 노출되었음에도 불구하고, 두 개의 Cobalt Strike Team 서버 모두 활성화된 상태였습니다. 이것은 FIN6가 운영 후 정리 작업이 필요 없었음을 보여주는 동시에, 해당 운영이 얼마나 빠르게 포기되었는지를 보여줍니다.

흥미롭게도 세 가지 방법 모두에서 서버 중 하나가 탐지되었지만, 서버 중 하나는 NanoHTTPD 추가 공간에 대한 패치가 적용되어 있어 표준 웹 서버가 재구성되었거나 공격자들이 업데이트된 버전의 Cobalt Strike를 사용했음을 의미합니다. 동일한 사고에 배포된 코발트 스트라이크 서버의 다양성을 보면 FIN6가 표준 코발트 스트라이크 프레임워크를 거의 수정하지 않고 사용한다는 것을 알 수 있습니다.

두 개의 IP 주소가 표준 Cobalt Strike 인증서를 사용했으며, Cobalt Strike 반사 로더를 활용했습니다. 반사적 DLL(동적 로드 라이브러리) 로딩은 Windows DLL 로더를 우회하고 DLL을 디스크에 저장하지 않고 프로세스의 메모리에 DLL을 주입하는 방법입니다. 이 방식으로 주입된 DLL은 메모리에만 상주하기 때문에 탐지가 어려울 수 있습니다. 반사형 DLL 로딩은 APT40( TEMP.Periscope로도 알려져 있음)과 Wilted Tulip 캠페인에서 널리 사용된 기술로, Cobalt Strike에 한정된 것이 아니며 다양한 방법으로 여러 공격자들에 의해 수행됩니다. 반사형 로더의 사용은 이러한 그룹들이 해당 서버에서 활동했음을 증명하는 증거가 아닙니다. 이 분석 시점에는 해당 IP 주소에 호스팅된 도메인이 없습니다.

코발트 스트라이크를 호스팅하는 것으로 확인된 또 다른 일반적인 범주의 IP는 다른 멀웨어나 의심스러운 활동과 관련이 없는 위협 활동을 보였지만 대부분 결정적이지 않은 결과를 낳았습니다.

마지막으로, 위협 활동에 대한 보고는 제한적이지만 가까운 시일 내에 잠재적인 악성 활동이 발생할 수 있다는 징후가 있는 IP가 다수 있었습니다:

전망

레코디드 퓨처는 알려진 위협의 신호를 클러스터링하여 위협 활동의 기준이 되고 보다 고유한 위협을 쉽게 식별할 수 있도록 하는 것이 중요하다고 생각합니다. 표준 코발트 스트라이크 인증서의 지속적인 목격과 3.13 이전 버전의 HTTP 응답에서 비정상적인 공간이 발견되는 것은 여러 서명을 공동으로 사용하는 것이 활성 코발트 스트라이크 서버를 식별하는 가장 좋은 방법이라는 것을 나타냅니다.

첩보 활동을 하는 플레이어는 개발 시간과 리소스를 많이 확보할 수 있는 반면, 군중 속에 섞일 수 있는 기득권이 있는 경우가 많습니다. 언어 장벽으로 인한 업데이트에 대한 지식 부족, 현재 설치된 버전의 운영 편의성, 업데이트 설치를 방해하는 기타 수정 사항 등 고의가 아닌 다른 장애물로 인해 코발트 스트라이크 서버에 패치가 적용되지 않을 수 있습니다. 크랙 버전의 Cobalt Strike를 사용하거나 표준 Cobalt Strike 인스턴스를 배포하면 위협이 혼합되어 어트리뷰션이 어려워집니다. 또한, 크랙 버전의 프레임워크를 실행하면 액터는 이전 버전의 코발트 스트라이크와 혼합하여 사용할 수 있습니다.

이러한 서버를 지속적으로 탐지하면 SOC 및 IR 팀이 경고 또는 차단 기능을 개발할 수 있는 규칙을 제공하고 이러한 서버와 통신하는 호스트에 대한 조사를 진행할 수 있습니다.