블로그

공격 도구가 부상: 계정 검사기

F5 썸네일
F5
2015년 1월 21일 게시

오늘은 고객들 사이에서 점점 더 널리 퍼지고 있는 공격 도구인 계정 검사기를 소개하고 설명해드리겠습니다.

이 자격 증명 채우기 도구는 새로운 것이 아니지만 아래에서 논의할 이유로 사용량이 급격히 증가하고 있습니다. 개념적으로는 매우 간단하고 사용하기 쉽지만, 계정 확인 프로그램은 매우 강력합니다.

계정 해커

계정 검사기 설명

계정 검사기는 유출된 사용자 이름/비밀번호 쌍(즉, "자격 증명") 목록을 가져와 대상 웹사이트에 대해 테스트하는 공격 도구입니다.

강력한 계정 검사기 패키지의 가격은 100달러에 불과하며, 공격자 역시 Mechanize, PhantomJS, IEC.py, Sikuli, Selenium 또는 iMacros와 같은 기성형 웹 자동화 툴킷을 사용하여 자체 계정 검사기를 만들 수도 있습니다. 이러한 툴킷은 계정 검사기를 작성하고 신임장 정보 입력 공격을 수행하는 데 필요한 기술적 부담을 줄여줍니다.

계정 확인기 사용의 해부학

  1. 공격자는 웹사이트 침해 또는 비밀번호 덤프 사이트에서 유출된 비밀번호를 획득합니다.
  2. 공격자는 계정 검사기를 사용하여 많은 웹사이트에서 도난된 자격 증명을 테스트합니다.
  3. 성공적인 로그인(일반적으로 전체의 0.1-2%)은 계정 인수로 이어집니다.
  4. 공격자는 저장된 가치, 신용 카드 번호 및 기타 PII가 포함된 도난된 계정을 비웁니다.
  5. 공격자는 이 계정을 다른 불법적인 목적(스팸, 추가 거래 등)에도 사용할 수 있습니다.

양성 계정 검사기의 예

아래는 namechk.com 이라는 '양성' 계정 검사기를 보여주며, 이를 통해 계정 검사기의 작동 방식을 설명합니다. 이 도구는 주어진 사용자 이름이 다양한 소셜 네트워크에서 사용 가능한지 확인합니다. 우리는 사용자 이름 "shapesecurity"를 확인했고, 이 도구는 해당 사용자 이름이 사용된 모든 사이트를 올바르게 식별했습니다.

이 서비스는 이미지에 표시된 모든 웹사이트(예: Blogger, Facebook, Youtube, Twitter 등)에 대해 주어진 사용자 이름을 자동으로 테스트하는 스크립트를 사용합니다.

범죄 계정 확인기는 위 도구와 같은 방식으로 작동하지만, 다양한 비밀번호(추측 알고리즘 기반 또는 상위 25개 비밀번호 중 하나)가 해당 사이트에서 작동하는지 확인하는 것과 같은 추가 기능이 있습니다. 사용자 이름과 비밀번호를 확인하는 전체 프로세스와 악의적인 의도는 자격 증명 채우기라는 광범위한 공격으로 이어집니다.

Microsoft의 연구에 따르면, 평균적인 사용자는 6개가 조금 넘는 비밀번호를 사용하고, 각 비밀번호는 4개의 다른 사이트에서 공유되며, 각 사용자는 비밀번호가 필요한 약 25개의 계정을 가지고 있는 것으로 나타났습니다. 어디에서든 침해가 발생하면 상위 3.9개 사이트의 비밀번호가 공개됩니다.

공격 준비 계정 검사기의 예

브라이언 크렙스가 기성형 계정 확인기에 대해 아래와 같이 적었습니다 . 이는 힐튼을 해킹하는 데 사용된 것과 동일한 유형의 도구입니다.

이 검사기는 자격 증명이 유효한지 확인하고, 포인트 잔액, 신용카드 번호의 마지막 4자리, 카드의 청구지 주소를 스크래핑할 수 있습니다.

아래는 계정 검사기의 기본 코드 샘플입니다. 이 계정 검사기는 대량의 자격 증명을 테스트합니다. 유효한 자격 증명 쌍을 찾으면 PII를 스크래핑하고 계정에서 저장된 가치와 신용 카드 세부 정보를 훔칩니다.

공격자는 자격 증명 목록을 어디서 얻나요?

모든 계정 검사기의 핵심은 자격 증명 목록입니다. 다행히도 공격자에게는 공개된 자격 증명이 엄청나게 많습니다.

  • 38,000,000개의 Adobe 계정
  • 318,000개의 페이스북 계정
  • 70,000개의 Google 계정
  • 60,000개의 야후 계정
  • 트위터 계정 22,000개
  • 8,000개의 ADP 계정
  • 8,000개의 LinkedIn 계정

매일 이 트위터 핸들인 twitter.com/dumpmon을 통해 수백 개의 자격 증명이 유출됩니다. 많은 보안 전문가는 이 목록을 사용하여 각자의 사이트에서 어떤 사용자 계정이 손상되었는지 파악하고, 손상된 계정을 잠급니다. 공격자 역시 이 목록을 계정 검사기와 함께 사용해 취약한 계정을 찾아 다양한 사기 활동에 사용합니다.

보안 전문가는 계정 검사기를 억제하고 공격자가 사용자 계정을 하이재킹하는 것을 방지하기 위해 무엇을 할 수 있나요?

답변을 얻으려면 계정 확인기의 작동 메커니즘을 이해해야 합니다.

계정 검사기는 로그인 페이지의 정적 폼 요소를 암묵적 API로 사용하여 작동합니다. 위의 코드 샘플에서 공격자는 대상 웹페이지와 상호 작용하기 위해 다양한 폼 요소 이름을 참조합니다. 대부분의 웹사이트는 이러한 상호작용을 일반적인 인간 상호작용과 구별할 수 없습니다.

그래서 공격적인 트래픽을 기꺼이 수용합니다. 이를 통해 공격자는 계정 검사기를 사용하여 웹사이트를 자동화하고 며칠 또는 몇 주에 걸쳐 수백만 개의 테스트를 쉽게 실행할 수 있습니다(종종 대규모 분산 봇넷 과 엄청난 수의 IP 주소를 사용하여 속도 및 볼륨 제한을 회피). 따라서 매우 단순한 공격자라도 세계에서 가장 큰 웹사이트 중 다수를 상대로 강력한 공격을 쉽게 감행할 수 있습니다.

"원치 않는 자동화"라고 부르는 이러한 활동으로부터 웹사이트를 방어하기 위해 우리는 공격자들에게 익숙한 접근 방식을 사용합니다. 즉, 모든 페이지 뷰에서 사이트의 기본 코드를 변경합니다. 맬웨어 개발자가 다양한 서명을 지속적으로 제시하여 바이러스 백신 제품을 회피하기 위해 오랫동안 다형성 코드를 사용해 온 것처럼 Shape의 솔루션은 웹사이트를 자동화하려는 스크립트를 좌절시키는 움직이는 타겟을 생성합니다. 이를 통해 시스템 관리자는 공격자가 주어진 웹사이트를 성공적으로 스크립팅하거나 자동화하는 데 필요한 노력을 늘릴 수 있습니다.

물론, 재치 있는 독자라면 다양한 방법으로 공격을 수행하는 수많은 방법을 지적할 것입니다. 이러한 공격(DOM, GUI 및 기타)을 고려하는 것은 이 글의 범위를 벗어나며(하지만 아마도 향후 글에서는 다룰 주제가 될 수도 있음) 물론 Shape은 이러한 모든 공격을 종합적으로 무력화하는 데 집중하고 있으며 각 레벨에서 해결책을 갖고 있습니다.