브루트 포스 공격이란?
브루트 포스 공격, 또는 무차별 암호 대입 공격은 지금까지도 해커가 활용하고 있는 사이버 공격 방식입니다. 하지만 공격을 예방하는 방법은 간단하기에 너무 걱정할 필요는 없습니다. 이 글에서는 무차별 암호 대입 공격이 무엇인지 알아보고, VPN을 포함해 무차별 암호 대입 공격을 방지하는 다양한 방법에 대해 알아보겠습니다.
목차
무차별 암호 대입 공격의 의미
브루트 포스 공격(brute force attack)과 키 전수조사(exhaustive key search)라고도 하는 무차별 암호 대입 공격은 비밀번호, PIN 번호, 암호화 키를 무작위로 계속해서 입력함으로써 해킹을 시도하는 공격 방식입니다.
무차별 암호 대입 공격은 비밀번호를 입력해야 하는 계정이나 플랫폼에 접속하거나, 데이터를 해독하거나, 조직의 네트워크 보안을 점검하기 위한 침투 테스트를 하는 목적으로 시행됩니다. 암호학이나 알고리즘 분야에서 활용되는 경우도 있지만 보통 해킹을 목적으로 할 때가 많습니다.
무차별 암호 대입 공격에는 특별한 지식이나 복잡한 알고리즘이 필요하지 않습니다. 단순히 비밀번호를 무작위로 유추해서 입력하는 방법이기 때문입니다. 따라서 비밀번호를 복잡하게 설정할수록 무차별 암호 대입 공격이 성공할 가능성도 작아집니다. 이제 무차별 암호 대입 공격을 자세히 알아보겠습니다.
무차별 암호 대입 공격 과정
먼저 여러분의 비밀번호가 2글자로만 구성되어 있다고 가정해 보겠습니다. 이때 가능한 비밀번호의 조합은 100여 개 정도이며, 가능한 비밀번호의 수가 적기에 해커가 유추하기도 쉽습니다.
현재 많은 웹사이트는 최소 8자 이상이고 대문자와 소문자를 포함하는 복잡한 비밀번호를 요구하고 있습니다. 이 경우 가능한 비밀번호 조합의 수는 수백만 개에 달하기 때문에 비밀번호를 유추하기란 거의 불가능합니다.
하지만 현재 해커는 비밀번호를 초당 수천 번 입력할 수 있는 특별한 브루트 포스 프로그램을 사용하고 있습니다. 이 때문에 단순하게 설정된 비밀번호는 몇 초만에 유출될 수 있습니다. 반대로 무작위의 문자 16개로 구성된 비밀번호를 사용한다면 소프트웨어를 사용해도 비밀번호를 유추하는 데 수년이 걸릴 것입니다.
현재 대부분의 웹사이트는 비밀번호 해시와 암호화 등 추가적인 보안 조치를 통해 사용자의 정보를 보호하고 있으며, 사용자의 비밀번호는 암호화되어 보관됩니다. 따라서 비밀번호가 유출되더라도 비밀번호의 암호화 키를 모른다면 실제 비밀번호를 확인할 수 없습니다.
무차별 암호 대입 공격의 종류
해커가 사용하는 무차별 암호 대입 공격에는 여러 가지 종류가 있습니다.
크리덴셜 재활용
크리덴셜 재활용(credential recycling)은 이전에 확보한 사용자 이름과 비밀번호를 이용하는 공격 방법입니다. 사용자 이름과 비밀번호는 다른 무차별 암호 대입 공격, 데이터 유출, 다크 웹 등의 경로로 확보하게 됩니다. 이렇게 확보한 정보는 다른 서비스에 침투하는 데 사용됩니다.
예를 들어 해커가 여러분의 Facebook 로그인 정보를 탈취하고, 탈취한 정보로 은행 계좌에도 접근했다면 크리덴셜 리사이클링 공격이 발생한 것입니다. 이를 방지하기 위해서는 다양한 계정에서 동일한 비밀번호를 사용하지 않는 것이 좋습니다.
사전 공격
사전 공격(dictionary attack)은 사전의 단어를 이용한 무차별 암호 대입 공격입니다. 비밀번호에 이름, 도시, 사물 등의 단어를 사용하는 사람이 많습니다. 하지만 이러한 비밀번호는 무차별 암호 대입 공격에 취약하다는 단점이 있습니다. 또한 사전의 단어뿐만 아니라 ‘123456’ 등 사람들이 자주 사용하는 비밀번호를 이용해 공격이 진행되기도 합니다.
역방향 무차별 암호 대입 공격
역방향 무차별 암호 대입 공격(reverse brute-force attack)은 무차별 암호 대입 공격을 역방향으로 시도하는 방식입니다. 하나의 계정에 여러 비밀번호를 입력하는 무차별 암호 대입 공격과 달리, 역방향 무차별 암호 대입 공격은 하나의 비밀번호를 여러 계정에 입력합니다. 이러한 공격 방식은 무작위 계정 대신 특정인의 계정을 탈취할 때 자주 사용되는 방식입니다.
무차별 암호 대입 공격 방지 방법
비밀번호의 보안성은 웹사이트 관리자가 비밀번호를 보관하는 방식과 비밀번호가 유출에 얼마나 취약한지에 따라 달라집니다. 일반적으로 웹 관리자는 무차별 암호 대입 공격을 방지하기 위해 일정 횟수 로그인에 실패하면 계정을 잠그거나, 비밀번호를 암호화하거나, 로그인 재시도 제한 시간을 설정하거나, 솔트 해시를 활용하곤 합니다.
사용자가 웹사이트의 사이버 보안을 직접 통제할 수는 없겠지만, 계정을 보호하는 데 도움이 되는 몇 가지 방법은 존재합니다. 무차별 암호 대입 공격을 방지하는 방법은 다음과 같습니다.
2단계 인증 사용
먼저 무차별 암호 대입 공격을 방지하려면 2단계 인증을 설정하는 것이 좋습니다. 2단계 인증이란 아이디와 비밀번호를 입력한 후 추가적인 인증 과정을 한 번 더 거치는 방법으로 보통 휴대폰, 이메일, OTP와 같은 장치를 이용해 사용자를 인증하게 됩니다.
어떤 웹사이트에 로그인하거나 서비스를 이용하기 전에 휴대폰으로 전송된 번호를 입력하거나 이메일로 발송된 인증코드를 입력하는 방식이 대표적인 2단계 인증입니다. 보통 인터넷 뱅킹과 같은 서비스는 2단계 인증을 필수로 요구하며, 일반적인 웹사이트의 경우에는 사용자가 2단계 인증 여부를 선택하도록 하고 있습니다.
2단계 인증을 설정할 때는 이메일보다는 휴대폰이나 OTP로 인증하는 방식이 안전하다고 할 수 있습니다. 이메일의 로그인 정보가 유출된 경우에는 2단계 인증도 효과가 없기 때문입니다. 반면에 휴대폰이나 OTP는 직접 본인의 장치로 인증해야 하기에 보안성이 상대적으로 높습니다.
복잡한 비밀번호 생성
생각보다 비밀번호를 간단하게 설정하는 사람이 많습니다. ‘Password123’과 같은 비밀번호를 사용하는 사람이 어디 있냐고 생각할 수도 있지만, 사실 이 비밀번호는 세계에서 가장 많이 사용되는 비밀번호에 속합니다. 특히 한국에서는 가장 많이 사용되는 비밀번호가 ‘123456’이기에 무차별 암호 대입 공격, 특히 사전 공격에 매우 취약한 상태라고 할 수 있습니다.
비밀번호가 복잡할수록 무차별 암호 대입 공격이 성공할 가능성이 낮아집니다. 따라서 비밀번호를 설정할 때는 대문자와 소문자, 숫자와 특수문자로 구성된 16자 이상의 비밀번호를 설정하는 것이 좋습니다. 복잡한 비밀번호를 직접 생성하기 힘들다면 NordPass 무작위 비밀번호 생성기와 같은 서비스를 사용하면 편리합니다.
주기적으로 비밀번호 변경
복잡한 비밀번호를 설정해도 무차별 암호 대입 공격으로 비밀번호가 유출될 수 있습니다. 따라서 비밀번호를 주기적으로 변경해 이전 비밀번호가 유출되더라도 피해가 발생하지 않도록 해야 합니다. 많은 웹사이트에서 일정 기간이 지난 후 비밀번호를 변경하도록 안내하고 있으므로 비밀번호를 변경하라는 화면이 표시된다면 즉시 변경하는 것이 좋습니다.
서비스마다 다른 비밀번호 설정
다음으로 무차별 암호 대입 공격을 방지하는 방법은 서비스마다 다른 비밀번호를 설정하는 것입니다. 서비스마다 다른 비밀번호를 설정하기 귀찮아 같은 비밀번호를 설정하는 사람이 많은데, 이 경우에는 크리덴셜 재활용 공격과 역방향 무차별 암호 대입 공격이 발생할 가능성이 높으므로 주의해야 합니다.
특히 이메일과 카카오톡, Facebook 등의 계정은 다른 서비스에 로그인하는 데도 사용될 때가 많으므로 다른 서비스와 동일한 비밀번호를 사용하지 않도록 주의해야 하며 최대한 복잡한 비밀번호를 설정하는 것이 좋습니다.
비밀번호 관리 프로그램 사용
비밀번호를 직접 관리하기가 힘들다면 NordPass와 같은 프로그램으로 비밀번호를 안전하게 보관하는 것도 좋은 방법입니다. 비밀번호 관리 프로그램은 암호화된 저장소에 비밀번호를 안전하게 보관하며, 자동 입력 기능을 제공해 비밀번호를 직접 기억할 필요가 없어 편리합니다.
또한 많은 비밀번호 관리 프로그램에는 무작위 비밀번호 생성, 비밀번호 강도 점검, 비밀번호 유출 확인 등 다양한 기능이 포함되어 있어 더욱 편리하게 비밀번호를 관리하고 무차별 암호 대입 공격을 방지할 수 있습니다.
VPN 사용
무차별 암호 대입 공격을 포함해 다양한 사이버 위협을 방지하려면 VPN을 사용하는 것이 좋습니다. VPN을 사용하면 내 아이피를 가상 아이피로 대체해 네트워크를 안전하게 보호할 수 있으며, 멀웨어 등 악성 프로그램에 감염될 가능성을 낮추고 보안을 강화할 수 있습니다.