[Tech & BIZ] 로그인 화면에 헷갈리는 질문 주입해 해킹… '여기어때'도 당했다

    입력 : 2017.04.08 03:01 | 수정 : 2017.04.10 10:22

    [테크 인사이드] SQL인젝션
    입력한 정보를 참·거짓으로만 판단하는 웹사이트의 허점 이용

    지난달 회원 수 300만명에 달하는 숙박 앱(응용프로그램) '여기어때'가 해킹사고를 당하며 큰 논란을 일으켰습니다. 회원 91만명의 개인 정보와 323만건에 이르는 숙박 이용 정보가 해커들 손에 넘어갔습니다. 회원들 가운데 일부는 음란한 표현까지 섞인 협박성 문자를 받으며 고통을 받기도 했습니다.

    당시 해커들은 SQL인젝션(Structured Query Language Injection)이라는 공격 방법을 쓴 것으로 알려졌습니다. SQL인젝션은 웹사이트의 로그인 화면에 헷갈리는 질문을 주입해 해킹하는 방식입니다. 일반 이용자들은 웹사이트에서 자신의 정보에 접근할 때 아이디와 비밀번호를 입력합니다. 잘못된 아이디나 비밀번호를 입력하면 접근이 거부됩니다. 이는 홈페이지가 '참'과 '거짓'으로 판단하기 때문입니다. 맞지 않으면 모두 '거짓'입니다. 그런데 SQL인젝션은 웹사이트가 판단하기 어려운 명령어를 아이디와 비밀번호로 입력해 인증을 통과하는 방식입니다.

    아예 웹사이트의 데이터베이스에 에러(실행 불가) 명령어를 입력해 개인 정보를 절취하는 방식도 있습니다. 데이터베이스는 적합한 정보 요구가 아니면 거절하는데, 웹사이트가 처리 못 하는 명령어를 입력하는 것입니다. 데이터베이스는 자꾸 에러를 내다가 정보를 내어주게 됩니다.

    이런 SQL인젝션 해킹은 초보 해커들도 쉽게 배워서 쓸 수 있는 방식입니다. 헷갈리게 하는 명령어 방식만 배우면 되기 때문입니다. 반대로 앱이나 웹서비스 업체들에는 반드시 뚫리지 말아야 할 해킹인 셈입니다. SQL인젝션 방식은 이런 복잡한 명령어를 사전에 차단하면 되기 때문에 서비스 업체가 꼼꼼하게 대처하면 막을 수 있습니다.

    김광연 한국인터넷진흥원 책임연구원은 "SQL인젝션 공격에 주로 쓰이는 문자열을 삭제하도록 보안 코드를 짜고, 에러 메시지를 외부에 노출하지 않기만 해도 상당수 공격을 막을 수 있다"고 말했습니다.
    이전 기사 다음 기사
    기사 목록 맨 위로