블로그

코더의 보안 정복: 공유 및 학습 시리즈 - 불충분한 자동화 방지

April 4, 2019
자프 카란 싱

오래된 비밀 술집이나 지하 클럽의 문 앞에 서 있다고 상상해 보세요. 문에 달린 작은 구멍이 열리고 덩치 큰 문지기가 암호를 묻습니다. 방문객은 암호를 모르지만 일단 추측해 봅니다. 틀렸기 때문에 문지기는 들여보내 주지 않습니다.

보통은 이런 일이 일어나겠죠. 이제 틀린 암호를 댄 방문객이 즉시 다시 시도하고, 또 틀려서 거부당하는 상황을 상상해 보세요. 그러더니 이 방문객이 사전 하나를 펼쳐 들고 'aardvark' 같은 단어부터 시작해서 가능한 모든 단어를 하나씩 대기 시작합니다.

상식적으로 문지기가 이런 행동을 허용할 리 없겠지만, 자동화 방지 기능이 미흡한 웹사이트와 애플리케이션은 정확히 이런 일을 허용합니다. 사용자가 자동화 기술을 동원해서라도 올바른 암호를 찾아낼 때까지 계속해서 시도하도록 내버려 두는 것이죠.

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

  • 공격자가 자동화 방지 미흡을 악용하는 방법
  • 자동화 방지 기능이 미흡한 애플리케이션이 위험한 이유
  • 이 취약점을 해결할 수 있는 기술.

공격자는 어떻게 자동화 방지 미흡을 악용할까요?

앞서 언급한 비밀 술집 방문객처럼 자동화 도구나 사전 공격을 사용하는 것은 사이버 보안 분야에서 새로운 일이 아닙니다. 사실 이러한 무차별 대입 공격은 초창기 해커들이 사용하던 기법 중 하나였습니다. 컴퓨터 성능이 향상되면서 이러한 공격은 더욱 효율적으로 변했습니다. 공격 컴퓨터와 대상 시스템 간의 연결 속도에 따라 다르지만, 빠른 컴퓨터는 단 몇 분 만에 사전 전체를 훑을 수 있습니다.

이러한 자동화 공격 때문에 자동화 방지 소프트웨어와 기술이 탄생했습니다. 이를 통해 애플리케이션은 사용자의 행동이 일반적인 인간의 행동 범위를 벗어나는지 판단할 수 있게 됩니다.

애플리케이션에 자동화 방지 검사가 제대로 되어 있지 않으면, 공격자는 비밀번호가 맞을 때까지 계속해서 추측할 수 있습니다. 또는 자동화 소프트웨어를 사용하여 웹사이트 게시판에 스팸 댓글을 도배하는 등의 다른 악의적인 행동을 할 수도 있습니다.

자동화 방지 기능 미흡이 위험한 이유는 무엇일까요?

악의적인 사용자가 자동화를 통해 보안을 우회하도록 허용하는 것은 위험합니다. 자동화 공격이 컴퓨팅 초기부터 지금까지 사라지지 않는 이유는 매우 효과적이기 때문입니다. 잘못된 추측에 대한 불이익 없이 비밀번호를 제출할 수 있는 무제한의 시간을 자동화 프로그램에 부여한다면, 결국에는 올바른 비밀번호를 찾아낼 것입니다.

게시판 같은 곳에서 스크립트로 작성된 댓글이 쏟아지면 일반 사용자가 불편을 겪거나, 시스템 자원을 낭비하게 만들어 일종의 서비스 거부 공격(DoS)처럼 작용할 수도 있습니다. 자동화된 게시물은 피싱이나 다른 공격의 도구로 사용되어 최대한 많은 사람에게 미끼를 노출하는 용도로 쓰이기도 합니다.

자동화 방지 미흡 문제 해결하기

자동화 방지 미흡 문제를 해결하려면 모든 애플리케이션이 현재 수행 중인 작업이 사람에 의한 것인지 자동화 소프트웨어에 의한 것인지 판단할 수 있어야 합니다. 가장 대중적이고 널리 사용되는 기술 중 하나는 컴퓨터와 사람을 구별하기 위한 완전 자동화된 튜링 테스트, 즉 CAPTCHA입니다.

CAPTCHA는 기본적으로 튜링 테스트의 일종으로, 1950년 컴퓨터 과학자 앨런 튜링이 처음 제안한 개념이며 인간과 컴퓨터의 행동을 구분하고 식별하는 데 사용됩니다. 현대의 CAPTCHA는 사람은 쉽게 풀 수 있지만 컴퓨터는 어려워하거나 아예 해결할 수 없는 문제를 제시합니다. 흔히 볼 수 있는 방식은 사진을 격자로 나누고 꽃이나 얼굴처럼 특정 항목이 포함된 모든 영역을 선택하라고 요구하는 것입니다. 컴퓨터는 무엇을 요구하는지 이해할 수 없으므로 이미지를 스캔조차 할 수 없습니다. 설령 스캔할 수 있다 하더라도, 이미지 인식은 이를 위해 특별히 설계되지 않은 대부분의 프로그램이 수행하기 어려운 작업입니다.

그 외에도 흐릿한 텍스트를 보여주거나, 간단한 논리 문제를 묻거나, 질문을 소리로 들려주는 방식의 CAPTCHA도 있습니다. 비밀번호 입력창과 같이 애플리케이션의 중요한 지점에 CAPTCHA 챌린지를 구현하면 자동화 프로그램을 즉시 차단할 수 있습니다.

동일한 소스에서 발생하는 잘못된 추측 횟수를 제한하는 것만으로도 자동화 프로그램을 막을 수 있습니다. 잘못된 추측이 너무 많이 발생하면 계정을 일시적으로 잠가 자동화 프로그램의 효율성을 떨어뜨리거나, 관리자가 직접 잠금을 해제하도록 조치할 수 있습니다. 이러한 조치를 취하면 애플리케이션 내의 자동화 방지 취약점을 예방할 수 있습니다.

불충분한 자동화 방지(Insufficient Anti-Automation)에 대한 추가 정보

더 자세한 내용은 불충분한 자동화 방지에 대한 OWASP의 설명을 참고하시기 바랍니다. 또한, 사이버 보안 팀을 최고의 사이버 전사로 양성하는 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 기반 개발 보안 확보

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

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