블로그

코더의 보안 정복: 공유 및 학습 시리즈 - 인증

April 11, 2019
자프 카란 싱

이번 블로그에서는 웹사이트를 운영하거나 직원들이 원격으로 컴퓨터 자원에 접속할 수 있도록 허용하는 조직이라면 누구나 겪는 가장 흔한 문제 중 하나를 다뤄보려고 합니다. 짐작하셨겠지만, 이번 주제는 바로 인증입니다.

해커가 유효한 사용자 이름과 비밀번호만으로 관리자 권한을 얻어 시스템에 로그인할 수 있다면, 네트워크 방어를 뚫기 위해 복잡한 기술을 사용할 필요조차 없습니다. 시스템이 스스로 문을 열어 공격자를 들여보내는 셈이니까요. 더 심각한 점은, 공격자가 너무 눈에 띄는 행동만 하지 않는다면 대부분의 방어 체계는 그들을 정상적인 업무를 수행하는 유효한 사용자나 관리자로 인식하기 때문에 그들의 침입을 감지하기가 거의 불가능하다는 것입니다.

인증 취약점의 범주는 매우 넓지만, 여기서는 사용자 로그인 과정에서 흔히 실수로 포함되기 쉬운 문제들을 살펴보겠습니다. 이러한 허점들을 보완함으로써 조직 내 인증 관련 문제의 대다수를 제거할 수 있습니다.

이번 에피소드에서는 다음 내용을 배웁니다.

  • 일반적인 인증 취약점이 악용되는 방식
  • 인증 취약점이 위험한 이유
  • 인증 취약점을 제거하기 위한 정책 및 기술

공격자는 어떻게 인증 취약점을 악용할까요?

인증 시스템에는 여러 가지 취약점이 존재할 수 있으며, 해커들은 각 취약점을 각기 다른 방식으로 악용합니다. 먼저 가장 흔한 취약점들을 살펴보고, 그중 몇 가지가 실제로 어떻게 악용되는지 예시를 통해 알아보겠습니다.

가장 흔한 인증 취약점은 다음과 같습니다.

  • 취약하거나 부적절한 비밀번호 정책,
  • 무제한 로그인 시도 허용,
  • 로그인 실패 시 공격자에게 정보 제공,
  • 보안되지 않은 채널을 통한 자격 증명 전송,
  • 취약한 비밀번호 해싱,
  • 그리고 안전하지 않은 비밀번호 복구 절차.

취약한 비밀번호 정책은 아마 가장 흔한 취약점일 것입니다. 사용자에게 비밀번호 생성에 대한 제한을 두지 않으면, 너무 많은 사용자가 쉽게 추측할 수 있는 비밀번호를 사용하게 됩니다. 매년 여러 컴퓨터 관련 뉴스 매체에서 가장 많이 사용된 비밀번호 목록을 발표하는데, "123456"이나 "password"는 항상 상위 5위 안에 듭니다. 그 외에도 관리자들이 "God"과 같은 단어를 즐겨 사용하는 경우도 많죠. 물론 이런 비밀번호들은 재미있거나 기억하기 쉽지만, 반대로 추측하기도 매우 쉽습니다. 해커들은 가장 흔한 비밀번호가 무엇인지 잘 알고 있으며, 시스템 침입을 시도할 때 가장 먼저 이를 대입해 봅니다. 조직에서 이런 종류의 비밀번호를 허용한다면, 결국 언젠가는 침입을 당하게 될 것입니다.

덜 명확해 보이지만 여전히 위험한 취약점은 로그인 실패 시 사용자에게 정보를 제공하는 것입니다. 이는 매우 위험한데, 사용자 이름이 존재하지 않을 때와 사용자 이름은 존재하지만 비밀번호가 틀렸을 때 서로 다른 메시지를 반환하면, 공격자가 시스템 내 유효한 사용자 목록을 파악하고 해당 사용자들의 비밀번호를 집중적으로 추측할 수 있기 때문입니다. 여기에 무제한 비밀번호 시도를 허용하는 취약점까지 결합되면, 공격자는 발견한 유효한 사용자들을 대상으로 사전 공격(dictionary attack)을 수행할 수 있으며, 비밀번호가 단순할 경우 매우 빠르게 시스템에 침입할 수 있습니다.

인증 취약점은 왜 그토록 위험할까요?

미국 서부 개척 시대에 관한 고전적인 이야기가 하나 있습니다. 편집증적인 한 농부가 현관문에 삼중 잠금장치를 설치하고 창문을 판자로 막은 뒤, 손이 닿기 쉬운 곳에 총을 잔뜩 두고 잠을 잤습니다. 하지만 다음 날 아침 그는 죽은 채로 발견되었습니다. 뒷문을 잠그는 것을 깜빡했기 때문이죠. 인증 취약점도 이와 비슷합니다. 공격자가 유효한 사용자 이름과 비밀번호를 사용하여 네트워크에 침입할 수 있다면, 어떤 모니터링 도구나 사전 제어 장치를 갖추고 있든, 얼마나 많은 전문가를 고용했든 아무런 소용이 없습니다.

일단 침입에 성공하면, 공격자가 할 수 있는 일에 대한 제약은 거의 없습니다. 관리자 계정이 탈취된 경우처럼 권한이 높을수록 공격자는 자신의 권한 범위 내에서 마음껏 활동할 수 있으며, 심각한 문제가 발생하기 전에 그들을 적발할 가능성은 매우 낮습니다. 바로 이 점 때문에 인증 관련 취약점은 모든 시스템에서 가장 위험한 취약점 중 하나로 꼽힙니다.

인증 취약점 제거하기

네트워크에서 인증 취약점을 제거하는 가장 좋은 방법 중 하나는 강력하고 전사적으로 적용되는 비밀번호 정책을 수립하는 것입니다. 사용자나 관리자 모두 "password"와 같은 비밀번호를 사용하지 못하도록 제한해야 할 뿐만 아니라, 공격자가 사전 공격이나 흔한 문구 대입 공격을 시도하기 어렵도록 복잡성을 추가하도록 강제해야 합니다. 보호하려는 시스템의 중요도에 따라 자체적인 비밀번호 생성 규칙을 마련하십시오. 그렇게 하면 공격자가 비밀번호를 추측하거나 무차별 대입 공격(brute-force)을 수행하기가 훨씬 어려워질 것입니다.

또한 로그인 실패 횟수를 제한하여, 예를 들어 비밀번호를 3회 이상 틀릴 경우 사용자를 잠금 처리해야 합니다. 잠금은 일시적일 수도 있는데, 몇 분만 지연시켜도 자동화된 사전 공격을 차단할 수 있기 때문입니다. 또는 관리자가 계정을 잠금 해제할 때까지 영구적으로 잠글 수도 있습니다. 어느 경우든 이러한 잠금이 발생하면 보안 담당자에게 알림을 보내 상황을 모니터링할 수 있도록 해야 합니다.

공격자가 정보를 수집하지 못하도록 하는 또 다른 좋은 방법은 잘못된 사용자 이름이나 비밀번호가 입력되었을 때 항상 동일한 일반 메시지를 표시하는 것입니다. 두 경우 모두 동일한 메시지를 보여줌으로써, 해커가 사용자 이름이 존재하지 않아서 거부된 것인지 아니면 비밀번호가 틀려서 거부된 것인지 알 수 없게 만들어야 합니다.

인증 취약점은 대부분의 시스템에서 가장 흔하고 위험한 취약점 중 하나입니다. 하지만 이를 찾아내고 제거하는 것은 비교적 쉽습니다.

인증 취약점에 대한 추가 정보

더 자세한 내용은 OWASP 인증 치트 시트를 참고하시기 바랍니다. 또한, 사이버 보안 팀을 최고의 사이버 전사로 양성하는 Secure Code Warrior 플랫폼의 무료 데모를 통해 방금 습득한 방어 지식을 직접 테스트해 볼 수 있습니다. 이 취약점과 다양한 위협 요소들을 해결하는 방법에 대해 더 알아보려면 Secure Code Warrior 블로그를 방문해 보세요.

Secure Code Warrior 플랫폼에서 인증 취약점에 직접 맞서 보세요: [시작하기]

태그라인

배포 전 AI 기반 개발 거버넌스 확보

AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.

데모 예약하기
리소스 라이브러리

더 많은 블로그 살펴보기

보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.

전체 보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

하나의 보안 문화: Sage는 어떻게 챔피언 프로그램을 구축했는가

Sage가 유연하고 관계 중심적인 접근 방식을 통해 보안을 강화하고, 200명 이상의 보안 챔피언을 양성하며 실질적인 위험 감소를 달성한 사례를 확인해 보세요.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

2026년 사이버 보안 인식의 달: 기업 방어의 핵심, AI 보안 이해하기

주요 AI 기업 대부분이 안전 가이드라인이 마련될 때까지 AI 개발 속도를 전 세계적으로 늦춰야 한다고 공개적으로 촉구하는 시점에 이르렀지만, 사실 심각한 보안 문제는 이미 현실화되었습니다. 이로 인해 AI 도입에 따른 금전적 비용과 위험 부담이 계속 쌓이면서 수많은 보안 책임자와 경영진이 절박한 상황에 놓였습니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

인에이블러 8: 프로그램 브랜딩

성공적인 보안 코딩 프로그램을 위해서는 훌륭한 콘텐츠 그 이상의 것이 필요합니다. 인에이블러 8에서는 브랜딩을 통해 참여를 누구나 선망하는 위상 중심의 경험으로 바꾸는 방법을 알아봅니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

이제 모든 직원이 AI 사이버 보안의 최전선에 있습니다

엔터프라이즈 기술 환경은 너무 늦기 전까지는 아무도 예상하지 못한 속도로 변화하고 있습니다. 우리는 공식적으로 사람이 직접 작성한 코드와 기본적인 코파일럿 지원의 시대를 지나 '에이전트 기반 개발 수명 주기(ADLC)'의 시대로 진입했습니다. 자율형 AI 에이전트는 여러 기능 전반에 걸쳐 전례 없는 효율성을 약속하지만, 동시에 완전히 새로운 차원의 보안 및 규제 위험을 야기합니다.

더 알아보기

배포 전 AI 기반 개발 보안 확보

소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.

데모 예약하기
항목이 없습니다.