뽐뿌가 당한 SQL인젝션 해킹, 어떻게 막을 수 있나?

2015-09-14 16:50
  • 카카오톡
  • 네이버 블로그
  • url

개발단계에서부터 모든 입력값에 적절한 검증절차 설계·구현 중요

[보안뉴스 민세아] 지난 11일 온라인 커뮤니티 사이트 뽐뿌가 해킹으로 인해 회원 190만 명의 아이디와 비밀번호 등이 유출된 가운데 해커가 해킹 공격에 사용한 SQL 인젝션 기법이 이슈가 되고 있다.


SQL(Structured Query Language)이란 데이터베이스를 구축·활용·관리하기 위해 사용되는 언어를 말한다. SQL인젝션(SQL Injection)은 일반적으로 공격자가 주소창 혹은 아이디·비밀번호 창에 SQL 명령어를 입력한 후, 웹사이트에 침투해 서버를 제어하고, 해당 서버가 공격 명령어에 따라 데이터베이스 정보를 출력하는 방식이다.

SQL인젝션으로 인한 해킹 및 정보 유출 사례들
2011년 소니픽쳐스 프랑스 웹사이트는 SQL인젝션 공격을 통해 170여 개의 이메일 주소를 탈취당한 바 있다. 이 외에도 소니픽쳐스 러시아, 소니에릭슨, 소니 뮤직 등의 웹사이트도 SQL인젝션 기법으로 해킹당한 바 있다.

그런가 하면 지난해 4월 7일에 어나니머스가 해당 기법을 통해 이스라엘 사이트를 공격한 일도 있었다. 이스라엘이 팔레스타인 사람들을 지속적으로 살해, 공격, 납치하고 있어 자신들이 이를 응징하겠다며, 이스라엘의 정보기관으로 알려진 모사드(Mossad)를 비롯한 정부 관련 사이트에 SQL인젝션으로 기밀문서들을 빼냈다.

같은 해 8월, 러시아 해킹 그룹이 42만개 웹사이트로부터 12억 개의 사용자 이름과 비밀번호를 확보한 사건에서도 SQL인젝션 공격이 사용됐다. 사이트가 취약한 상태일 경우 사이트를 기억해뒀다가 다시 방문해 데이터베이스에서 정보를 탈취했다.

올해 2월에는 워드프레스용으로 나온 플러그인을 타깃으로 한 SQL인젝션 공격으로 1백만 개의 웹사이트가 해킹된 사건도 있었고, 5월 18일, 해커그룹 어나니머스가 WTO 웹사이트에 침투해 대량의 재직자 정보를 유출한 일도 있었다. WTO 해킹사건으로 인해 각국 WTO 웹사이트 구성원들의 개인정보가 유출됐다.

이처럼 SQL인젝션 공격은 가장 고전적이지만 해커들이 정보를 탈취하기 위해 가장 애용하는 방법이기도 하다. 그렇다면 SQL인젝션 공격으로 인한 피해를 최소화하려면 어떻게 해야 할까?

SQL인젝션 공격으로부터 안전할 수 있는 방법
SQL인젝션 취약점은 데이터베이스와 연동된 웹 어플리케이션에서 입력된 데이터에 대한 유효성 검증을 하지 않아 발생하는 취약점이다. 취약한 웹 어플리케이션은 사용자로부터 입력된 값을 필터링 과정 없이 넘겨받아 동적 쿼리(Dynamic Query)를 생성한다. 이로 인해 개발자가 의도하지 않은 쿼리가 생성되어 정보 유출에 악용될 수 있다. 그러므로 개발단계에서부터 모든 입력값에 대한 적절한 검증절차를 설계하고 구현해야 한다.

한국인터넷진흥원 인터넷침해대응센터(KRCERT)에서 소개한 SQL인젝션 대응방안은 다음과 같다.

첫 번째로 동적 SQL을 사용하지 않는 것이다. 데이터베이스와의 연동 부분에서는 동적 SQL을 더 이상 사용하지 말고 저장 프로시저를 사용해야 한다. 지금까지도 많이 사용되고 있는 동적 SQL 완성 방식은 변수의 입력값을 연결시켜 SQL문을 완성시키는 형태이기 때문에 공격자의 SQL문 주입이 매우 쉽다.

두 번째는 안전한 웹사이트 설계와 구현이다. 입력값 검증 절차 문제에서 시작하는 SQL인젝션 취약점은 개발단계에서부터 모든 입력값에 적절한 검증절차를 설계하고 구현하는 것이 중요하다. 사용자가 입력한 값의 크기를 검사하고, 특수문자(“, ‘, ;, /, !, @, $, %, ^, &, * 등)가 있는 경우 위험하지 않은 문자로 치환한 후, 입력값이 허용범위 내에 존재하는지 검사하는 방식이다.

세 번째는 데이터베이스의 에러 메시지를 사용자에게 보여주지 않도록 차단하는 것이다. 에러 메시지를 출력함으로써 중요한 데이터베이스 정보가 노출될 수 있기 때문에 보여주지 않는 것이 좋다.

네 번째는 웹 방화벽을 활용하는 것이다. 근본적인 문제 해결을 위해서는 프로그램을 보완 조치해야 하지만, 서비스를 제공하는 홈페이지에서 프로그램 수정으로 인한 문제들도 검토·조치해야 하기 때문에 그 시간 동안 웹 방화벽이나 부가적인 보완조치들을 통해 시간을 확보할 수 있다.

마지막으로 웹 보안 취약점에 대한 주기적인 점검이다. 개발단계에서 안전하게 설계·구현됐다 하더라도 보안문제들이 여전히 남아있을 수 있기 때문에 이들을 점검하고 진단하는 과정이 필요하다. SQL인젝션의 경우 프로그램 소스 상에서 입력값 검증이 적절히 이뤄졌는지 점검해 보고 웹 취약점 점검 도구를 병행해 점검한다면 SQL인젝션 공격으로부터 비교적 안전한 웹 서비스를 운영할 수 있다.
[민세아 기자(boan5@boannews.com)]

<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


과월호 eBook List 정기구독 신청하기

    • 지인테크

    • 인콘

    • 엔텍디바이스

    • 핀텔

    • 아이비젼

    • 아이디스

    • 인피닉

    • 웹게이트

    • 판빌코리아

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 엔토스정보통신

    • 원우이엔지

    • 지오멕스소프트

    • 에스엠시스템즈

    • 이화트론

    • 다후아테크놀로지코리아

    • 테크스피어

    • 휴먼인텍

    • 슈프리마

    • 홍석

    • 시큐인포

    • 미래정보기술(주)

    • 씨엠아이텍

    • 제이더블유씨네트웍스

    • 유니뷰코리아

    • 경인씨엔에스

    • 한국씨텍

    • 성현시스템

    • 렉스젠

    • 파인트리커뮤니케이션

    • 티비티

    • HS효성인포메이션시스템

    • 진명아이앤씨

    • 한국표준보안

    • 트루엔

    • 지엠케이정보통신

    • 세연테크

    • 스마트시티코리아

    • 포엠아이텍

    • 넥스트림

    • 이스온

    • 로그프레소

    • 쿼리시스템즈

    • 레드펜소프트

    • 시큐리티스코어카드

    • 이레산업

    • 에프에스네트워크

    • 네이즈

    • 케이제이테크

    • 셀링스시스템

    • 제네텍

    • 세이프네트워크

    • 네티마시스템

    • 아이엔아이

    • 뷰런테크놀로

    • 인더스비젼

    • 혜성테크원

    • 주식회사 에스카

    • 솔디아

    • 일산정밀

    • 미래시그널

    • 새눈

    • 누리콘

    • 윈투스시스템

    • 스마컴

    • 창성에이스산업

    • 아이에스앤로드테크

    • 현대틸스
      팬틸트 / 카메라

    • 티에스아이솔루션

    • 케비스전자

    • 크랜베리

    • 구네보코리아

    • 에이앤티코리아

    • 미래시그널

    • 태양테크

    • 엘림광통신

    • 메트로게이트
      시큐리티 게이트

    • 엔에스티정보통신

    • 엔시드

    • 동곡기정

    • 와이즈콘

    • 엠스톤

    • 글로넥스

    • 유진시스템코리아

    • 카티스

    • 세환엠에스(주)

Copyright thebn Co., Ltd. All Rights Reserved.

시큐리티월드

회원가입

Passwordless 설정

PC버전

닫기