자료실

비밀번호가 위험하다’ 3가지 비밀번호 공격 기법과 예방법

 비밀번호가 위험하다’ 3가지 비밀번호 공격 기법과 예방법 


무차별 대입(Brute Force), 비밀번호 스프레이(Password Spray), 크리덴셜 스터핑(Credential Stuffing), 이 3가지 비밀번호 공격은 명칭은 다르지만 비슷한 점이 상당히 많습니다. 이번 포스팅에서는 이런 공격 기법이 어떤 방식과 이유로 존재하는지 살펴보고 대처하기 위한 최선의 방법을 알아보겠습니다.


‘모든 값을 대입하는’ 무차별 대입 공격

무차별 대입 공격은 비밀번호의 시초부터 존재했습니다. 무차별 대입 공격이란 정확히 무엇일까요? 공격자는 로그인이 포함된 서비스에 접근해 추정한 비밀번호를 끊임없이 반복 입력해 특정한 아이디의 비밀번호를 알아맞히려 시도할 수 있습니다. 대략적인 형식은 다음과 같습니다.


예를 들어, 처음에는 인증 엔드포인트에 대한 로그인 정보를 다음과 같이 추정합니다.

사용자 이름 : mvinton@vintonlabs.net 

비밀번호 : Summer2022!


실패할 경우 다음과 같이 시도합니다.

사용자 이름 : mvinton@vintonlabs.net 

비밀번호 : Fall2022!


오랜 역사를 지닌 비밀번호 공격인 만큼 대부분의 인증 시스템은 무차별 대입 공격에 상당히 효과적인 방어 체계를 갖추고 있습니다. 액티브 디렉토리(Active Directory, AD)의 경우 지정된 기간 내에 로그인이 특정 횟수만큼 실패하면 이후 해당 계정을 일시적으로 잠그는 정책을 방어 체계로 두고 있습니다. 이렇게 하면 공격자가 일정한 시간 내에 시도할 수 있는 추정의 횟수가 대폭 줄어듭니다.


계정 잠금 정책이 없어도 이런 공격 패턴(계정에서 처리 가능한 가장 빠른 속도로 틀린 비밀번호를 반복적으로 입력하는 패턴)은 대부분의 감사 툴을 사용해 손쉽게 탐지할 수 있습니다.


공격자의 활동이 제한되므로 성공적인 무차별 대입 공격은 대부분 ‘오프라인’으로 옮겨갔습니다. 즉, 중앙 네트워크와 상호작용하지 않고 계정 잠금 정책을 작동시키거나 감사 소프트웨어에 탐지될 일이 없는 시스템을 활용해서 매우 빠른 속도로 무작위 비밀번호를 반복적으로 시도하는 형태입니다. ‘커버로스(Kerberos)’가 대표적인 무차별 대입 공격입니다.


라이브 네트워크를 상대로 하는 공격이 성공하기 위해서는 일반적으로 이보다 더 정교한 공격 방법이 필요합니다.


하나의 비밀번호를 ‘뿌리는’ 비밀번호 스프레이

비밀번호 스프레이란 무엇일까요? 비밀번호 스프레이는 무차별 대입 공격의 한 형식입니다. 공격자가 정찰 초기 단계에서 AD 계정을 사용해 공격 대상 환경을 더 면밀히 파악하면서 약점을 찾을 수 있다는 데 착안한 공격입니다.


무차별 대입 공격과 마찬가지로 비밀번호 스프레이 역시 공격자가 비밀번호를 추정하는 방법을 사용합니다. 그러나 하나의 계정에 집중하는 무차별 대입 공격과 달리 비밀번호 스프레이 공격은 여러 계정을 표적으로 움직입니다. 간단히 예를 들면 다음과 같습니다.


처음에는 인증 엔드포인트에 대한 로그인 정보를 다음과 같이 추정합니다.

사용자 이름 : mvinton@vintonlabs.net 

비밀번호 : Summer2022!


실패할 경우 다음과 같이 시도합니다.

사용자 이름 : svinton@vintonlabs.net 

비밀번호 : Summer2022!


비밀번호 스프레이는 실제 공격 시 공격자에게 단순한 무차별 대입 공격보다 몇 가지 중요한 이점을 제공합니다.


첫째, 전체 사용자를 대상으로 ‘가능성 높은’ 소수의 비밀번호 집합을 시도할 수 있습니다. 예를 들어 공격 대상 기업이 미니애폴리스에 소재한다면 계정에 V!kings2022라는 비밀번호가 사용될 가능성은 낮겠지만, 회사의 규모가 충분히 크다면 ‘누군가는’ 그 비밀번호를 사용할 가능성이 조금이라도 높아집니다.


둘째, 기업 규모가 클수록 비밀번호 스프레이 공격에 더 취약합니다. 데이터 집합의 크기가 충분히 크면 누군가 추정하기 쉬운 비밀번호를 사용할 가능성도 커집니다. 또한 기업의 규모가 클수록 비밀번호 스프레이 활동을 숨기는 것도 더 쉽습니다.


셋째, 감사 로그로는 비밀번호 스프레이 활동을 ‘보기’ 어렵습니다. 하나의 계정이 반복적으로 인증에 실패하는 형태가 아니므로 계정 잠금 조건이 작동하지도 않습니다. 사용자가 자신의 비밀번호를 잘못 입력하는 경우는 흔히 발생하므로 비밀번호 스프레이는 일반적인 사용자 활동의 백그라운드 노이즈 속에 쉽게 숨길 수 있습니다.


공격자가 비밀번호 스프레이를 활용할 때 한 가지 극복해야 할 장애물은 스프레이 활동을 할 사용자 이름 목록이 필요하다는 것입니다. 그러나 이 장애물이 표적 기업에 실질적인 보호 효과를 줄 것으로 생각한다면 착각입니다. 많은 기업에서 직원의 이름을 긴밀히 보호해야 할 정보로 취급하지 않으며, 공격자가 사용자 이름 패턴을 알아내기만 하면(예를 들어 이름의 이니셜/성 조합) 스프레이 공격을 할 사용자 목록을 꽤 정확히 추려낼 수 있습니다.


‘비밀번호 재사용’을 노린 크리덴셜 스터핑

크리덴셜 스터핑은 많은 수의 계정을 대상으로 비밀번호를 추정한다는 점에서 비밀번호 스프레이와 비슷합니다. 그러나 크리덴셜 스터핑은 많은 사용자가 다양한 서비스에서 동일한 비밀번호를 재사용한다는 사실을 이용합니다. 동일한 비밀번호의 재사용은 공격자가 정확한 비밀번호를 추정할 가능성을 높이는 요소입니다.


사용자 이름과 비밀번호 조합이 포함된 목록은 인터넷에 자주 노출됩니다. 보안이 허술하게 구성된 포럼 또는 전자상거래 사이트에서 손쉽게 크랙할 수 있는 형식으로(심지어 일반 텍스트인 경우도 있음) 인증 정보를 저장하기도 합니다. 이런 사이트에 침입한 공격자는 제대로 보호되지 않은 인증 정보를 무료로 이용할 수 있는 사이트로 덤프하거나, 인증 정보 파일을 판매할 수도 있습니다.


사용자 이름과 암호 조합이 수 많이 포함된 파일을 입수한 공격자는 이 파일에서 자신이 공격하고자 하는 기업에 해당하는 사용자 이름을 찾을 수 있습니다. 예를 들어 vintonlabs.net 에 침투하려고 할 때, 인증 정보 덤프 파일에서 vintonlabs.net 이메일 주소를 사용하는 항목을 검색할 수 있습니다.


사용자가 비밀번호를 여러 사이트에서 재사용하는 경우가 매우 많다는 점을 잘 아는 공격자는 공격하고자 하는 기업을 대상으로 이런 사용자 이름과 비밀번호 조합 및 파생 조합을 시도할 것입니다.


비밀번호 공격을 예방하는 방법

유효함이 입증된 이런 공격 기법을 가장 효과적으로 방어하는 방법은 무엇일까요? 다행히 각 기법은 서로 관련성이 크기 때문에 다음 3가지 조언을 따르면 각 위험을 완화하는 데 큰 도움이 됩니다.


1. 암호의 중요도 낮추기

앞서 살펴본 3가지 비밀번호 공격의 공통점은 무엇일까요? 바로 ‘비밀번호’에 집중한다는 점입니다. 기업은 비밀번호가 가진 중요도를 낮춤으로써 방어할 수 있습니다. 가장 일반적인 방법은 비밀번호에 2번째 인증 요소를 추가하는 것입니다. SMS 메시지부터(그다지 좋은 방법은 아님) 인증 앱, FIDO 키에 이르기까지 다양한 이중 인증 (Two-factor Authentication, 2FA) 시스템이 있습니다.


애저 AD와 같은 오늘날 인증 플랫폼은 ‘패스워드리스(passwordless)’ 로그인도 제공합니다. 패스워드리스 시스템에서는 액세스하는 기기의 중요도가 매우 높아집니다. 기업 데이터와 시스템에 액세스하기 위해 비밀번호 대신 적절히 등록된 기기와 로컬 PIN 또는 생체 식별 조합이 사용됩니다.


2FA 또는 패스워드리스 시스템으로의 전환할 때는 2가지 문제가 있습니다. 첫째, 비밀번호는 여전히 공격자에게 유용합니다. 대부분 경우에서 비밀번호는 2가지 인증 요소 가운데 하나이므로 공격자가 비밀번호를 입수한다면 소셜 공격으로 전환해서 2번째 인증 요소를 획득할 수 있습니다. 둘째, 대부분 기업은 AD처럼 내장된 2FA 요소가 없는 레거시 인증 시스템을 여전히 사용해야 합니다. 이 경우 서드파티 툴을 사용해야 하는데, 구현하기 복잡하며 다양한 호환성 문제가 발생합니다.


2. 엔드포인트 보안 강화

무차별 대입 공격, 비밀번호 스프레이 또는 크리덴셜 스터핑 공격이 성공하려면 공격자가 적절한 인증 엔드포인트를 손에 넣어야 합니다. 공격자는 스크립트로 접근할 수 있고 사용자 이름과 비밀번호가 통했는지 검증할 수 있는 엔드포인트를 노립니다. AD 인증 유형이 노출된 웹사이트가 이런 목적에 적합한 표적입니다.


공격자가 원하는 것을 쉽게 얻도록 내버려두어서는 안 됩니다. 모든 접점을 정기적으로 감사하고 가능한 모든 경우 직접적으로 또는 페더레이션을 통해 2FA 절차를 추가합니다. 이 작업은 직원들과 계약 업체, 고객, 파트너를 위한 인터넷 접점이 많은 대규모 기업에서는 더욱 어렵습니다.


3. 스마트한 감사 툴 사용하기

다양한 최신 감사 툴을 사용하면 정적 감사에서 신호를 손쉽게 얻을 수 있습니다. 개별 계정에서는 인증 실패가 비정상적일 정도로 없지만 기업 전체적으로 보면 많다는 사실을 파악할 수 있습니다. 이를 위해서는 감사 툴이 ‘정상적인’ 행동의 기준을 자동으로 설정해서 ‘비정상적인’ 활동을 파악할 수 있어야 합니다. ‘일반적’이라는 개념은 끊임없이 바뀔 뿐만 아니라 하루 중 일정 시간 또는 요일에 따라서도 크게 달라질 수 있기 때문입니다.


기업이 애저 AD와 AD 등 여러 디렉토리를 동시에 사용한다면 2가지 모두의 동작을 고려하는 감사 툴을 사용하는 것이 좋습니다. 그렇지 않을 경우 심각한 사각지대가 발생할 수 있습니다.


요약

무차별 대입 공격, 비밀번호 스프레이 공격, 크리덴셜 스터핑의 개념을 확고하게 다지는 데 이 포스팅이 도움이 되었기를 바랍니다. 이런 공격에 대비한 방어는 한 번 하고 끝나는 것이 아니라 지속적으로 재검토하고 여러 단계에 걸쳐 사용해야 함을 인지하는 것이 중요합니다.


데이터 보호에 어려움을 겪고 계시거나 이상 감지 솔루션에 대해 궁금한 점이 있으시면 언제든 퀘스트소프트웨어 코리아로 문의주시기 바랍니다. 


퀘스트소프트웨어코리아(주)

서울특별시 강남구 테헤란로 445 본솔빌딩10F
전화 번호 02-3420-9000 | 팩스 번호 02-569-3600

전자 메일 KoreaMarketing@quest.com 


Copyright © Quest. All Rights Reserved.

Hosting by I'MWEB


퀘스트소프트웨어코리아(주) 서울특별시 강남구 테헤란로 445 본솔빌딩10F
전화 번호 02-3420-9000 | 팩스 번호 02-569-3600 | 전자 메일 KoreaMarketing@quest.com


Copyright © Quest. All Rights Reserved.

Hosting by I'MWEB