액티브 디렉토리(Active Directory) 모니터링 및 보호에 특화된 보안 기업 아오라토(Aorato)의 조사 결과에 따르면, 대형 소매업체인 타깃(Target)은 지난 해 발생한 데이터 침해 사건으로 많은 PII(Personal Identifiable Information, 개인 식별 정보), 신용카드, 현금카드 데이터를 도난 당했지만, PCI 컴플라이언스 프로그램 덕분에 피해 규모를 크게 줄일 수 있었다.
아오라토의 수석 연구원 탈 베리를 비롯한 연구팀은 공개된 자료와 보고서를 활용해 공격자들이 타깃 공격에 사용한 툴을 모두 분류했다. 타깃에 잠입한 방법, 네트워크에서 번식을 한 방법, 인터넷과 직접 연결되지 않은 PoS(Point of Sales) 시스템에서 신용카드 데이터를 훔친 방법 등을 단계별로 분석한 것이다.
아직 자세히 밝혀지지 않은 침해 방법이 많다. 그러나 베리는 어떻게 공격이 이뤄졌는지 이해하는 것이 아주 중요하다고 강조했다. 지난 주, 미국 국토안보부(DHS)와 비밀경호국(Secret Service)는 타깃의 PoS 시스템 공격에 사용된 맬웨어가 지난 몇 년간 다른 수많은 PoS 시스템을 감염시켰다는 내용을 골자로 하는 경고 보고서를 발표한 바 있다.
추적 기법은 ‘사이버 고생물학’
베리는 아오라토의 세부 분석 중 일부는 틀릴 수도 있다고 인정했다. 그러나 재구성 자체는 아주 정확하다고 확신했다.
베리는 “일종의 ‘사이버 고생물학(화석 분석)’이다. 타깃 사건에서 확인된 툴에 관해서는 많은 보고서가 나와있다. 그러나 공격자들이 이들 툴을 이용한 방법을 설명하고 있지는 않다. 공룡 뼈는 있는데, 그 뼈의 주인인 공룡이 어떤 모습을 하고 있는지 모르는 것과 마찬가지이다. 그러나 우리는 다른 공룡이 어떤 모습을 하고 있는지 안다. 이를 바탕으로 그 뼈의 주인인 공룡을 재구성할 수 있었다”고 말했다.
타깃의 데이터 침해 소식은 지난 2013년, 연중 가장 바쁜 쇼핑 시즌인 12월부터 조금씩 전해지기 시작했다. 그리고 이 소식은 금새 ‘급류’로 불어났다. 해커들이 고객 7,000만 명의 PII와 4,000만 개의 신용카드 및 현금카드(직불카드) 데이터를 손에 넣은 것으로 밝혀졌기 때문이다.
이 사건으로 베스 제이콥 CIO와 그렉 스타인하펠이 사임했다. 애널리스트들에 따르면, 타깃의 재정적 피해는 10억 달러에 달하는 것으로 추정되고 있다.
타깃에 대한 뉴스를 계속 주시했던 사람들이라면, HVAC 계약업체의 크리덴셜이 도난 당한 것이 출발점임을 알고 있을 것이다. 그러나 공격자들은 타깃 네트워크 경계에 위치한 최초 침입 지점에서 중심부까지 어떻게 침투를 해 들어간 것일까? 베리에 따르면, 공격자들은 정교한 11단계의 방법을 사용했다.
1단계: 크리덴셜을 훔치는 맬웨어 설치
공격자들은 가장 먼저 타깃의 HVAC 벤더인 파지오 메카니컬 서비스(Fazio Mechanical Services)의 크리덴셜을 훔쳤다. 데이터 유출 사고를 처음 밝힌 크레슨시큐리티(Kreson Security)에 따르면, 공격자들은 이메일 피싱 캠페인과 범용 맬웨어인 시타델(Citadel)을 이용해 벤더를 감염시켰다.
2단계: 훔친 크리덴셜을 이용한 액세스
베리는 공격자들이 훔친 크리덴셜을 가지고 벤더에게 할당된 타켓의 호스팅 웹 서비스에 대한 액세스 권한을 얻었다고 설명했다. 파지오 메카니컬 서비스의 오너이자 대표인 로스 파지오는 데이터 유출 사고 후 발표한 보도자료에서 타깃에 설치한 냉난방 및 냉장 시스템을 원격 감시 또는 제어하지 않는다고 밝힌 바 있다. 그는 “전자 과금, 계약 관련 서류 제출, 프로젝트 관리를 위해서만 데이터를 연결해 사용하고 있다”라고 말했다.
베리에 따르면, 실제로 극히 제한적인 웹 애플리케이션이었다. 그러나 공격자들은 타깃 내부 네트워크에 호스팅 된 내부 웹 애플리케이션에 액세스를 할 수 있게 됐다. 단 애플리케이션은 임의적으로 명령을 실행시켜 머신을 감염시키도록 허용하지 않았던 상태다.
3단계: 웹 애플리케이션의 취약점 공격
공격자들은 악용을 할 취약점을 찾아야 했다. 베리는 공개된 자료에서 제시된 여러 공격 툴 중 ‘xmlrpc.php’라는 이름의 파일 하나를 지목했다. 아오라토의 보고서에 따르면, 파악된 나머지 공격 툴의 파일들은 윈도우 실행파일이지만, 이것만큼은 웹 애플리케이션에서 스크립트를 실행시킬 때 사용하는 PHP 파일이었다.
아오라토 보고서는 “이 파일은 공격자들이 웹 애플리케이션 내부의 취약점을 이용해 PHP 파일을 업로드할 수 있었음을 시사한다. 웹 애플리케이션에는 업로드 기능이 탑재되어 있을 확률이 높다. 인보이스 같이 적법한 문서를 업로드 할 수 있도록 지원하기 위해서다. 그러나 보안 점검을 통해 실행 파일 업로드를 막아야 함에도 불구하고 그렇지 않은 웹 애플리케이션이 많다”라고 결론을 내리고 있다.
이 악성 스크립트는 임의의 운영 시스템 명령을 실행시킬 수 있는 웹 기반 백도어인 ‘웹쉘(Web Shell)’일 가능성이 있다.
베리는 공격자들이 이 파일의 이름을 ‘xmlrpc.php’로 지은 것은 흔한 PHP 컴포넌트로 보이도록 만들기 위해서라고 언급했다. 잘 보이는 장소에 위치한 악성 컴포넌트를 적법한 컴포넌트로 위장해 숨겼다는 이야기다. ‘잘 보이는 장소에서의 위장’ 전술은 이런 유형의 공격에서 중요한 특징 중 하나다. 베리는 공격이 이뤄지는 동안 여러 차례 이와 같은 ‘위장’이 반복됐다고 설명했다.
베리는 “이들은 결국 발각이 될 것임을 잘 알고 있다. 신용카드 정보를 훔쳐, 이를 이용해 돈을 벌기 때문이다. 잘 알려졌듯, 공격자들은 암시장에 신용카드 번호를 내다 팔았으며, 이후 얼마 지나지 않아 신용카드 회사들이 타깃에 데이터 침해 사실을 통보했다. 공격자들은 이런 유형의 캠페인은 생명이 짧고, 일회성임을 알고 있다. 이들은 인프라스트럭처와 은닉에 투자를 하지 않는다. 캠페인의 생명이 며칠에 불과함을 알고 있기 때문이다. 위장만 하면 그뿐이다”라고 말했다.
4단계: 증식을 위해 적절한 표적을 탐색
베리에 따르면, 공격자들은 다음으로 속도를 늦춘 후 일종의 정찰을 시작했다. 이들은 임의로 OS 명령을 실행시킬 수 있었다. 그러나 여기에서 더 나아가기 위해서는 타깃 내부 네트워크 레이아웃에 관한 정보가 필요했다. 다시 말해, 고객 정보와 (자신들이 희망한) 신용카드 데이터가 저장된 서버를 찾을 필요가 있었다.
표적은 사용자, 컴퓨터, 서비스 등 도메인에 대한 데이터가 담긴 액티브 디렉토리였다. 이들은 표준 LDAP 프로토콜을 이용하는 내부 윈도우 툴을 가지고 액티브 디렉토리에 쿼리를 실행시킬 수 있었다.
아오라토는 공격자들이 ‘MSSQLSvc’라는 스트링이 포함된 서비스를 검색하는 간단한 방법을 이용한 것으로 믿고 있다. 이후 (MSSQLvc/billingServer 등) 서버 이름을 들여다 봐 각 서비스의 용도를 추론했다. 공격자들은 후에 PoS 관련 머신을 검색할 때도 이와 같은 프로세스를 이용한 것으로 추정되고 있다.
공격자들은 표적의 이름을 가지고, DNS 서버에 쿼리를 하는 방법으로 각 IP 주소를 획득했다.
5단계: 도메인 관리자 계정에서 액세스 토큰 탈취
베리는 공격자들이 이 단계에서 표적을 파악했으며, 표적에 대한 액세스 권한이 필요했다고 설명했다. 물론 가급적이면 도메인 관리자 계정(Domain Admin)이 얻고자 했다.
아오라토는 타깃 보안팀 직원이 브라이언 크렙스 기자에게 넘겨 준 정보와 비자의 데이터 유출 보고서를 분석했다. 그 결과, 공격자들이 ‘Pass-the-Hash’라는 잘 알려진 공격 기법을 이용해 NT 해시 토큰에 액세스했다는 판단을 내렸다. 진짜 관리자가 비밀번호를 변경하기 전까지 액티브 디렉토리 관리자로 위장을 한 것이다.
아오라토는 이 기법을 이용한 추가적인 증거가 있다며, 침입 테스트 툴 등의 툴을 사용한 것을 언급했다. 이는 메모리에서 세션과 NTLM 크리덴셜 로그온, 도메인 계정의 NT/LM 해시 및 히스토리 추출, 메모리에서 비밀번호 해시 덤핑 등에 목적이 있다.
6단계: 탈취한 토큰으로 새 도메인 관리자 계정 생성
공격자들은 앞서의 방법으로 도메인 관리자로 위장했다. 그러나 피해자가 비밀번호를 변경한 경우나, 전용 비밀번호가 필요한 (원격 데스크톱 등) 일부 서비스 액세스에는 무용지물이었다. 그래서 다음 단계로 새 도메인 관리자 계정을 생성했다.
공격자들은 탈취한 권한으로 새 계정을 생성해, 도메인 관리자 그룹에 추가시킬 수 있었다. 그리고 이 계정에 비밀번호 관리 등의 필요한 권한을 부여했다.
이는 ‘위장과 은닉’의 또 다른 사례이다. 새 사용자명은 BMC의 블레이드로직 서버 오토메이션(Bladelogic Server Automation) 제품에서 사용하는 것과 동일한 ‘best1_user’였다.
베리는 “이는 상당한 ‘이례(이상)’적인 패턴이다”고 지적했다. 그는 이어 사용자 리스트와 관리자 계정 같이 중요한 계정이 새로 추가된 것을 감시하는 간단한 방법만으로도 공격자들의 공격을 방지하는데 도움을 받을 수 있다고 강조하며, “엑세스 패턴을 감시해야 한다”라고 말했다.
베리는 4단계의 정찰 행위도 이례적인 패턴이라고 설명했다. 행위 모니터링을 통해 감지를 할 수 있었다는 의미이다.
베리는 “정찰 행위가 있는지 감시하는 것이 아주 중요하다. 네트워크마다 구조가 다르다. 공격자들은 쿼리를 통해 이 구조를 파악해야만 한다. 따라서 정상적인 사용자의 패턴과는 크게 차이가 난다”라고 강조했다.
7단계: 생성한 관리자 크리덴셜을 이용해 표적 컴퓨터로 증식
공격자들은 크리덴셜을 생성해 관련 표적에 접근을 할 수 있는 상태가 됐다. 그러나 아오라토에 따르면 이 단계에 두 가지 장애물이 있었다. 관련 표적으로 직접 액세스를 하지 못하도록 막는 방화벽과 다른 네트워크 기반 보안 솔루션을 회피하는 것, 관련 표적들의 여러 머신에서 원격 프로세스를 실행시키는 것이 그것이다.
공격자들은 위치한 컴퓨터에서 접속 가능한 네트워크의 컴퓨터를 파악하기 위해 ‘앵그리 IP 스캐너(Angry IP Scanner)’를 이용했다. 그리고 포트 포워딩 IT 툴을 이용해 여러 서버를 통과하면서 보안 계층을 회피했다.
표적 서버에서 원격으로 프로세스를 실행시키기 위해 마이크로소프트 PSExec 유틸리티(다른 시스템의 프로세스 실행을 위한 탤넷 대체 도구), 윈도우에 탑재된 RDP(Remote Desktop) 클라이언트, 자신들의 크리덴셜을 이용했다.
이들 툴은 사용자 인증 및 승인에 액티브 디렉토리를 이용했다. 누군가 액티브 디렉토리를 모니터링했다면 이런 행위를 감지할 수 있었다는 의미다.
공격자들은 표적으로 삼은 시스템에 액세스한 이후, 마이크로소프트 오케스트레이터(Orchestrator) 관리 솔루션을 이용해 영구 액세스 권한을 얻었다. 감염시킨 서버에서 임의로 코드를 원격 실행할 수 있게 된 것이다.
8단계: 7,000만 개의 PII 탈취 (신용카드 데이터는 찾지 못한 단계)
아오라토에 따르면, 공격자들은 이 단계에서 SQL 쿼리 툴을 이용해 데이터베이스 서버의 가치를 판단하고, SQL 벌크 복제 툴을 이용해 데이터베이스 콘텐츠를 검색했다.
베리는 이 단계에서 PCI 컴플라이언스가 공격자들에게 큰 장애물 역할을 한 것으로 보인다고 말했다. 이들은 7,000만 개가 아닌 4,000만 개의 신용카드 및 현금카드 데이터를 훔치는데 그쳤을 뿐이다. 사고의 파장이 40% 감소한 것이다.
PCI-DSS 기준 3.2항(Section)은 “(암호화가 되어 있더라도) 승인 이후에 중요한 비밀 인증 데이터를 저장하지 않는다. 중요한 비밀 인증 데이터를 수신한 경우, 승인 프로세스를 완료하는 즉시 모든 데이터를 복구가 불가능한 상태로 만든다”고 규정하고 있다.
즉, 공격자들은 타깃 고객 7,000만 명의 PII에 액세스를 할 수 있었지만, 신용카드에는 접근을 하지 못했다. 이에 새로운 계획을 세운 것으로 추정된다.
베리는 “타깃은 PCI를 준수하고 있었기 때문에 신용카드 데이터를 저장하지 않았다. 따라서 공격자들은 B안을 실행해야 했다. PoS에서 직접 신용카드 데이터를 훔치는 계획이었다”라고 설명했다.
9단계: 맬웨어 설치 및 4,000만 개의 신용카드 데이터 탈취
베리는 PoS 시스템이 공격자들의 1차 표적이 아니었을 것이라고 전했다. 서버에서 신용카드 데이터에 액세스를 할 수 없게 되자, 우발적으로 PoS 머신에 초점을 맞췄을 것이라는 분석이다.
공격자들은 4단계에서 획득한 정보와 7단계에서 축적한 원격 실행 능력을 이용해 PoS 머신에 카토샤(Kaptoxa)를 설치했다. 카토샤는 감염된 머신의 메모리를 스캔 한 후, 발견한 신용카드 데이터를 로컬 파일로 저장하는 맬웨어다.
베리에 따르면, 공격자들은 이 단계에서만 유일하게 통상적인 IT 툴이 아닌 직접 개발한 맬웨어를 사용한 것으로 보인다.
그는 “이런 경우, 안티바이러스가 도움이 되지 않는다. 수천 만 달러의 불법 이익을 추구할 경우에는 얼마든 별도의 비용을 투자해 맞춤형 툴을 개발할 수 있다”라고 말했다.
10단계: 네트워크 공유로 탈취한 데이터를 전송
맬웨어로 신용카드 데이터를 탈취한 후, 윈도우 명령어와 도메인 관리자 계정 크리덴셜을 이용해 원격 FTP 머신에서 원격 파일 공유를 생성했다. 그리고 주기적으로 원격 공유 지점으로 로컬 파일을 복제했을 것으로 풀이된다.
베리는 이런 행위 또한 액티브 디렉토리의 이상 행위로 감지가 가능했다고 언급했다.
11단계: FTP로 탈취한 데이터를 전송
공격자들은 데이터가 FTP 머신에 도착하면, 스크립트를 이용해 자신이 제어하는 윈도우 탑재 FTP 클라이언트 기반 FTP로 파일을 전송했다.
베리는 “침입 자체는 이야기 거리가 아니다. 데이터 침해 사고가 발생할 것이라고 가정을 하고 있어야 하기 때문이다. 그 반대를 가정할 수는 없는 법이다. 따라서 침해 사고가 발생했을 때를 대비하고, 이에 대한 대응 계획을 수립해야 한다. 여기에서 진짜 문제는 공격자들이 네트워크 더 깊숙이 침투를 할 수 있도록 만든 맬웨어다”라고 말했다.
또 “제대로 된 가시성을 확보한다면, 이런 행위를 감지할 수 있다”라고 덧붙였다.
자신의 조직을 보호하는 방법
베리는 조직들이 다음과 같이 스스로를 보호해야 한다고 강조했다.
– 액세스 제어를 강화한다. 이례적인 액세스 패턴을 식별할 수 있도록 시스템의 액세스 패턴을 모니터링 및 분석한다. 가능한 경우, 크리덴셜 탈취와 관련된 위험을 줄이기 위해 중요한 시스템에는 다중 인증 기술을 사용한다. 네트워크를 분리하고, 프로토콜 유시지 승인을 제한하고, 사용자에게 과다한 권한을 주지 않는다.
– 권한이 높은 사용자를 중심으로 새로운 사용자가 추가됐는지 사용자 리스트를 감시한다.
– 정찰과 정보 수집 신호가 있는지 감시한다. 과도하며, 이례적인 LDAP 쿼리에 각별히 관심을 기울인다.
– 중요한 단일 목적 서버의 경우, 허용 프로그램에 대한 화이트리스팅을 고려한다.
– 공격자들이 적법한 IT 툴을 이용하는 경우가 많기 때문에, 안티맬웨어 솔루션을 1차 위험 경감 대책으로 활용하지 않는다.
– 액티브 디렉토리를 대상으로 한 보안 대책을 마련하고, 이를 감시 및 통제한다. 공격의 모든 단계에 관여가 되기 때문이다.
– ISAC(Information Sharing and Analysis Center) 및 CISC(Cyber Intelligence Sharing Center)에 참여해 공격자의 TTP(Tactics, Techniques and Procedures)에 대한 정보를 얻는다. dl-ciokorea@foundryco.com