크리덴셜 스터핑이란? (그리고 자신을 보호하는 방법)

전 세계적으로 약 5억 개에 달하는 Zoom 계정이 존재하며, 이들 중 상당수가 다크 웹에서 거래되고 있습니다. 이러한 현상은 주로 “크리덴셜 스터핑”이라는 사이버 공격 기법 때문에 발생합니다. 크리덴셜 스터핑은 범죄자들이 온라인 계정에 불법적으로 침입하는 일반적인 방법 중 하나이며, 그 작동 원리와 이에 대한 예방책을 알아보는 것이 중요합니다.

비밀번호 유출 데이터베이스의 위험성

온라인 서비스에 대한 사이버 공격은 빈번하게 발생하고 있습니다. 공격자들은 시스템의 취약점을 이용하여 사용자 계정 정보, 특히 사용자 이름과 비밀번호 데이터베이스를 탈취합니다. 이렇게 도난당한 로그인 정보들은 다크 웹에서 거래되며, 범죄자들은 비트코인과 같은 암호화폐를 사용하여 이를 구매합니다. 예를 들어, Avast 포럼 계정이 2014년에 해킹당한 사건이 있었습니다. 만약 당신의 계정이 이때 침해당했다면, 범죄자들은 당신의 Avast 포럼 사용자 이름과 비밀번호를 알고 있을 가능성이 있습니다. Avast 측에서 포럼 비밀번호를 변경하라고 통지했더라도, 이것이 왜 심각한 문제일까요?

문제는 많은 사용자들이 여러 웹사이트에서 동일한 비밀번호를 반복해서 사용한다는 점에 있습니다. 만약 당신의 Avast 포럼 로그인 정보가 “[email protected]”와 “AmazingPassword”였다고 가정해봅시다. 만약 동일한 이메일 주소와 비밀번호로 다른 웹사이트에 가입했다면, 유출된 비밀번호를 알아낸 범죄자는 그 다른 계정들에도 쉽게 접근할 수 있게 됩니다.

크리덴셜 스터핑 공격의 메커니즘

“크리덴셜 스터핑”은 유출된 로그인 정보 데이터베이스를 사용하여 다른 온라인 서비스에 로그인을 시도하는 공격 기법을 의미합니다.

공격자들은 수백만 개의 사용자 이름과 비밀번호 조합이 담긴 대규모 유출 데이터베이스를 확보한 후, 이를 여러 웹사이트에 무작위로 대입하여 로그인을 시도합니다. 많은 사용자들이 다양한 웹사이트에서 동일한 비밀번호를 재사용하기 때문에, 이 과정에서 일부 계정이 해킹되는 경우가 발생합니다. 이러한 공격은 대개 여러 로그인 조합을 자동으로 시도하는 소프트웨어를 통해 실행됩니다.

이 공격은 기술적으로 복잡해 보일 수 있지만, 사실은 이미 유출된 계정 정보를 다른 서비스에 그대로 대입하여 작동하는지 확인하는 단순한 과정입니다. 즉, “해커”들은 단순히 로그인 폼에 다양한 로그인 정보를 입력하고, 어떤 계정이 성공적으로 로그인되는지 확인하는 것입니다. 그리고 놀랍게도 이러한 시도 중 상당수가 실제로 성공합니다.

이러한 공격은 오늘날 공격자들이 온라인 계정을 “해킹”하는 가장 흔한 방법 중 하나입니다. 2018년 한 해에만 콘텐츠 전송 네트워크 기업인 아카마이는 약 300억 건에 달하는 크리덴셜 스터핑 공격을 기록했습니다.

크리덴셜 스터핑으로부터 자신을 보호하는 방법

크리덴셜 스터핑으로부터 자신을 보호하는 것은 매우 간단합니다. 이는 보안 전문가들이 오랫동안 권장해 온 기본적인 비밀번호 관리 습관을 따르는 것과 같습니다. 특별한 해결책은 없으며, 단지 올바른 암호 위생을 실천하는 것이 중요합니다. 다음은 권장 사항입니다:

  • 비밀번호 재사용 금지: 온라인에서 사용하는 각 계정마다 고유한 비밀번호를 설정해야 합니다. 이렇게 하면 한 계정의 비밀번호가 유출되더라도 다른 웹사이트의 계정은 안전하게 보호할 수 있습니다. 공격자들이 유출된 비밀번호를 다른 로그인 시도에 사용하더라도, 계정 접근이 불가능해집니다.
  • 암호 관리자 활용: 강력하고 고유한 비밀번호를 기억하는 것은 여러 계정을 사용하는 현대인들에게 거의 불가능에 가까운 일입니다. 1Password(유료)나 Bitwarden(무료 및 오픈 소스)과 같은 암호 관리자를 사용하면 복잡한 비밀번호를 안전하게 관리하고, 처음부터 강력한 비밀번호를 생성할 수 있습니다.
  • 2단계 인증 활성화: 2단계 인증을 활성화하면 웹사이트에 로그인할 때마다 추가 인증 단계가 필요합니다. 예를 들어, 앱에서 생성된 코드나 SMS로 전송된 코드를 입력해야 합니다. 공격자가 사용자 이름과 비밀번호를 알고 있더라도, 이 추가 코드가 없다면 계정에 접근할 수 없게 됩니다.
  • 비밀번호 유출 알림 설정: Have I Been Pwned?와 같은 서비스를 이용하면, 자신의 계정 정보가 유출되었을 때 알림을 받을 수 있습니다. 이를 통해 유출된 비밀번호를 신속하게 변경하고 추가적인 피해를 예방할 수 있습니다.

서비스 제공업체의 크리덴셜 스터핑 방어 전략

사용자 개개인이 계정 보안에 책임을 져야 하지만, 온라인 서비스 제공업체들도 크리덴셜 스터핑 공격으로부터 시스템을 보호하기 위한 다양한 방법들을 사용할 수 있습니다.

  • 유출 데이터베이스 검색: Facebook이나 Netflix와 같은 기업은 유출된 비밀번호 데이터베이스를 스캔하여 자사 서비스의 로그인 정보와 교차 검증을 실시합니다. 일치하는 항목이 발견되면, 사용자에게 비밀번호 변경을 요구합니다. 이러한 방식은 크리덴셜 스터핑 공격을 효과적으로 차단할 수 있습니다.
  • 2단계 인증 제공: 사용자가 계정을 안전하게 보호하기 위해 2단계 인증을 활성화할 수 있도록 해야 합니다. 특히 민감한 정보를 다루는 서비스의 경우 2단계 인증을 의무화하는 것도 좋은 방법입니다. 또한, 이메일에 전송된 확인 링크를 클릭하여 로그인 요청을 확인하도록 설정하는 것도 보안을 강화하는 데 도움이 됩니다.
  • 보안 문자(CAPTCHA) 사용: 의심스러운 로그인 시도가 감지될 경우, 서비스는 보안 문자 코드를 입력하거나 다른 형태의 확인 절차를 요구하여 봇이 아닌 실제 사용자가 로그인을 시도하는지 확인해야 합니다.
  • 반복 로그인 시도 제한: 짧은 시간 내에 많은 로그인 시도가 이루어지지 않도록, 서비스는 봇의 반복적인 로그인 시도를 차단해야 합니다. 최신 봇은 크리덴셜 스터핑 시도를 위장하기 위해 여러 IP 주소를 동시에 사용할 수 있으므로, 서비스 제공업체는 이를 감지하고 차단하는 데 더욱 노력해야 합니다.

취약한 암호 관리 관행과 너무 쉽게 손상되는 온라인 시스템은 크리덴셜 스터핑 공격을 온라인 계정 보안에 심각한 위협으로 만들고 있습니다. 기술 업계의 많은 기업들이 암호 없는 더욱 안전한 세상을 만들고자 하는 것은 이러한 이유 때문입니다.