많은 악성코드의 유형과는 달리 Brute Force Attack은 웹사이트의 취약점에 의존하지 않는 공격입니다. 대신 이 공격은 취약하거나 추출 가능한 자격 증명을 가진 사용자를 목표로 합니다. Brute Force Attack은 단순하면서도 많은 표적을 겨냥할 수 있습니다.
Brute Force Attack은 대상에 대해 많은 양의 조합을 시도하면서 시작됩니다. 이러한 공격은 종종 하나의 암호가 유효하기를 희망하면서 계정 암호를 여러번 시도합니다. 가능한 모든 조합을 시도하는 것과 비슷합니다.
암호만이 무차별 공격의 대상이 아닙니다. 링크와 디렉토리, 사용자 이름 및 이메일은 또다른 일반적인 대상입니다.
Brute Force Attack의 목적은 다른 사용자에게는 접근금지되어 있는 리소스에 액세스하는 것입니다. 이것은 관리 계정, 암호로 보호된 페이지일 수 있거나 단순히 주어진 웹사이트에서 유효한 전자 메일을 열람하기 위한 것일 수 있습니다.
유효한 계정에 액세스하면 전체 사이트가 손상될 수 있으며 이는 악의적인 행위자가 손상된 웹사이트 네트워크의 일부로 사용할 수 있습니다.
가장 일반적인 유형의 Brute Force Attack은 사전 공격 (Dictionary Attack)이며 일반적으로 관리 사용자 이름 및 암호를 사용하여 관리 계정에 액세스하여 자격 증명 목록을 포함합니다.
일반적인 사전 공격 (Dictionary Attack)은 "admin" 및 "123456"과 같이 가장 일반적으로 사용되는 자격 증명으로 로그인을 시도합니다.
Brute Force Attack 시도를 식별하는데는 상식이 중요합니다. 기본적으로 누군가가 반복적으로 로그인에 실패한 것으로 보이는 경우 Brute Force Attack 시도일 가능성이 있습니다. 아래의 경우가 그런 경우입니다.
▶ 동일한 IP 주소가 여러번 로그인에 실패했습니다.
▶ 하나의 계정으로 로그인하려는 많은 다른 IP 주소가 실패했습니다.
▶ 단기간에 다양한 IP 주소에서 여러번 로그인에 실패했습니다.
Brute Force Attack은 봇넷에 사용자를 추가하여 DDoS 공격에 포함시킬 수 있는 방법도 있습니다. 다른 예로는 공격자가 웹 사이트를 손상시키기 위해 자격 증명을 무력화하는 방법이 있습니다.
웹사이트에서 관리 계정에 액세스하는 것은 심각한 취약점을 악용하는 것과 같습니다. 해커는 스팸을 추가하거나 맬웨어를 배포하거나 의심하지 않는 피해자를 피싱하는 등 액세스를 통해 이익을 얻으려고 시도합니다.
기본적으로 Brute Force Attack은 가능한 많은 조합을 시도하는 행위이지만 성공률을 높이기 위해 이 공격에는 여러가지 변형이 있습니다. 가장 일반적인 것은 다음과 같습니다.
▶ 간단한 무차별 대입 공격
일반적인 Brute Force Attack은 한번에 하나씩 가능한 모든 암호를 반복하는 것과 같은 다양한 방법을 사용할 수 있습니다. 다른 공격들도 성공률이 높은 시도 횟수에 제한이 없는 로컬 파일에서 일반적으로 사용됩니다.
▶ Dictionary Attack
이 공격은 무작위로 들어가지 않고 단어와 일반 암호 목록을 사용하여 가능한 암호의 "사전"을 작성하고 반복합니다. 좋은 암호 목록을 사용하면 공격자의 성공률을 높이는데 도움이 될 수 있지만 이러한 공격에는 종종 가능성이 많은 대상에 대한 많은 공격 시도가 필요합니다.
▶ Hybrid Brute Force Attack
하이브리드 공격은 사전 공격과 규칙적인 반복 패턴을 모두 사용합니다. 문자 그대로 모든 암호를 사용하는 대신 숫자를 추가하거나 대소 문자를 변경하는 등 사전의 단어를 약간 수정합니다.
▶ Credential Stuffing
데이터 유출이 증가함에 따라 비밀번호 재사용은 비밀번호를 재사용하는 특정 계정을 손상시키는 쉬운 방법입니다.
Credential Stuffing 공격은 성공률이 낮으며 주로 데이터 유출에서 일반적으로 발견되는 사용자 이름 및 비밀번호 목록에 의존합니다. 해커는 이 목록을 사용하여 도난된 자격 증명으로 로그인을 시도하며, 데이터가 유출되었다고 생각될때 사용자 이름과 비밀번호를 업데이트해야 합니다.
Brute Force Attack에 대해서는 보안 취약점의 헛점을 노리는 것이 아니기 때문에 소프트웨어를 최신 상태로 유지하는 것만으로는 자신을 보호할 수 없습니다. 이러한 공격을 방지하는 일반적인 방법은 다음과 같습니다.
▶ 강력한 비밀번호 사용
Brute Force Attack는 취약한 비밀번호에 의존합니다. 강력한 암호를 위해서는 여러 사이트에 같은 암호를 사용하지 않아야 하며, 가능한한 긴 암호를 사용해야 합니다. 그러면서도 쉽게 유추가능한 암호는 피해야 합니다. 자신의 이름이나 거주 도시와 같은 정보가 암호를 기억하기 쉽게 만들 수 있지만 누군가가 사용자에 대한 정보를 얻거나 추측하기가 더 쉽습니다.
이러한 방식으로 암호를 설정한다면 Brute Force Attack은 암호를 추측할 수 없으므로 안전합니다.
암호찾기 질문에도 동일한 원칙이 적용됩니다. 암호는 강력하지만 암호찾기 질문이 약하면 공격자는 기존 암호를 추측하지 않고 바로 새로운 암호로 재설정하기가 쉽습니다.
▶ 인증 URL에 대한 액세스 제한
Brute Force Attack의 사전 조건은 자격 증명을 보내는 것입니다. 로그인 페이지 URL을 변경하면 (예 : /wp-login.php에서 / mysite-login으로 이동) 대부분의 자동화된 대량 도구를 중지하기에 충분할 수 있습니다.
안타깝게도 이 제안은 링크가 추측 가능하거나 링크가 페이지에 표시되는 경우 고급 공격에는 적용되지 않습니다. 하지만 자동 공격을 방지하는 쉬운 방법입니다.
▶ 로그인 시도 제한
Brute Force Attack은 여러 개의 비밀번호와 계정을 시도합니다. 로그인 시도수를 제한함으로써 공격자는 여러가지 암호 시도를 할 수가 없습니다.
로그인 시도를 제한하는 일반적인 방법은 5번의 로그인 시도 실패후 IP 로그인이 일시적으로 금지되어 로그인 시도가 차단되는 것입니다.
▶ 보안 문자 사용
보안 문자는 봇 및 자동화된 도구가 웹사이트에서 로그인을 시도하기 전에 보안문자를 입력해야만 하게 하면 웹사이트에서 작업을 수행하지 못하게 하는 좋은 방법입니다. 보안문자는 사용자가 읽어 입혁해야 하기 때문에 로봇이 공격을 하기가 어렵게 만듭니다.
▶ 이중 인증 사용 (Two-Factor Authentication : 2FA)
2FA는 로그인 양식에 다른 보안 계층을 추가합니다. 적절한 자격 증명으로 로그인한 후에는 이메일 또는 인증 도구로 생성된 고유 코드와 같이 사용자만 액세스 할 수 있는 코드를 입력해야 합니다.
이 추가 계층은 자격 증명을 성공적으로 얻은 사람이 보조 인증없이는 계정에 액세스하지 못하게 합니다.