뽐뿌·여기어때 당했다는 'SQL인젝션' 막으려면

펜타시큐리티, 가장 흔한 웹 공격 유형 5가지 소개

컴퓨팅입력 :2017/05/22 16:32    수정: 2017/05/23 10:10

과거 온라인 커뮤니티 '뽐뿌'와 숙박 중개서비스 '여기어때'는 각각 보유했던 개인정보 수백만건을 유출당하는 사고를 겪었다. 뽐뿌는 2015년 9월 당시 195만명에 달하는 모든 회원 개인정보를 유출시켜, 정보통신망법상 제재를 받았다. 여기어때는 2017년 4월 예약, 제휴점, 회원 등 342만건(중복 제외시 99만건)에 달하는 가입자 정보 유출을 당한 것으로 드러나, 과징금이 부과될 예정이다.

두 사고의 공통분모는 'SQL인젝션(SQL Injection)'이라는 웹 공격 기법에 당했다는 사실이다. 공격자가 웹사이트로 데이터베이스(DB) 명령어인 SQL을 보내, 운영자가 의도하지 않은 DB 조작을 할 수 있게 만드는 수법이다. 개인정보를 다량 보유한 사이트에 SQL인젝션 공격이 성공시, 사이트의 DB에 담긴 정보가 대량 유출될 수 있고 이를 악용한 2차 범죄까지 벌어질 수 있다는 점에서 심각한 위협이 된다.

SQL인젝션 공격이 이처럼 심각한 결과를 낳을 수 있는 웹 공격 기법이지만, 뽐뿌와 여기어때 정보유출 사례가 벌어졌음에도 국내서 해당 공격에 대응이 필요하다는 인식은 다소 옅어 보인다. SQL인젝션뿐아니라 대표적인 몇몇 웹 공격 유형에 대응할 수 있는 '웹방화벽'같은 보안 수단을 구비하는 노력도 그리 보편적이진 않다는 지적이 제기됐다. 웹방화벽 솔루션을 공급해온 정보보호전문업체 펜타시큐리티의 진단이다.

■"국내 기업에 웹방화벽 도입 저조"

펜타시큐리티는 22일 지난해 웹 공격 동향을 분석한 연례 '웹애플리케이션 위협 동향(WATT)' 보고서를 공개했다. 그에 따르면 온라인에서 SQL인젝션 공격 툴을 쉽게 구할 수 있고, 이 공격 기법은 다른 기법보다 비용이 낮으면서 공격 성공시 대량으로 정보를 탈취할 수 있다. 하지만 펜타시큐리티 고객 현황을 기준으로 볼 때, 국내 기업 부문에 웹방화벽의 도입은 아직 보편화되지 않았다.

SQL인젝션은 웹애플리케이션서버(WAS)로 들어온 웹 요청을 처리한 결과가 DB 내용을 조회하거나 제어할 때 쓰는 SQL로 동작하게 만드는 공격 기법이다. SQL을 처리해 결과를 내보내는 게 DB의 기본 동작이지만, 통상적인 웹 요청은 SQL로 동작해선 안 된다. 누군가 마음대로 권한이 높은 계정을 만들 수도 있고 데이터를 지울 수도 있기 때문이다.

펜타시큐리티 보고서 내용에 따르면 SQL인젝션 공격을 방어하는 방법은 5가지로 요약된다. 기술적으로는 동적 SQL을 쓰지 않거나, 웹사이트 설계시 입력 값 검증 절차를 잘 구축하거나, DB 오류 메시지를 노출하지 않아야 한다. 안전한 설계와 구현을 위한 시큐어 코딩, 보안 현장에서 사람의 실수를 메울 수 있는 주기적 웹 취약점 점검과 웹방화벽 도입 등을 통해 근본적인 대응을 할 필요도 있다.

펜타시큐리티 김덕수 실장은 지난 19일 보고서 내용을 소개하며 "SQL은 DB 정보와 권한을 제어할 수 있기 때문에, 어떤 사이트에 SQL인젝션이 먹힌다면 거기 연결된 DB가 외부에 공개된 것이나 다름 없다"면서 이를 방어하는 수단이 필요하다고 지적했다. 그는 "IP를 걸러내거나 네트워크 취약성 위협을 탐지하는 네트워크방화벽보다는 웹서버처럼 동작하는 웹방화벽이 SQL인젝션 방어에 알맞다"고 설명했다.

김덕수 펜타시큐리티 기획실장. 2017년 5월 19일 서울 여의도 사무실에서 웹애플리케이션 위협 동향 보고서 내용을 소개했다.

김 실장은 또 "인기도나 활용 빈도가 높은 사이트일수록 여러 웹 공격 기법의 미끼로 악용될 여지가 커지기 때문에, 기업들이 비즈니스에 활용하는 웹서비스에 충분한 보호 대책을 갖추지 못하는 상황은 개선될 필요가 있다"며 "2010년 이후 공공부문에선 대외 서비스 보안 강화 차원에서 높은 비율로 웹방화벽을 추진했는데, 일반 기업에서 웹방화벽 도입 수준은 그렇지 못하다"고 지적했다.

■5대 웹 공격 유형 중 SQL인젝션-xss 비중

이날 그가 소개한 WATT 보고서는 펜타시큐리티 웹방화벽 솔루션 '와플(WAPPLES)'을 도입한 국내외 고객사 수천곳 중 정보제공에 동의한 일부 사용자의 데이터에 기반한 통계치를 제시하고 있다. 보고서는 지난해 1월 1일부터 12월 31일까지 1년간 탐지된 웹 공격 중 SQL인젝션의 비중이 45%에 달해 가장 많은 비중을 차지한 것으로 나타났다고 진단했다.

펜타시큐리티 2016 웹 공격 동향 보고서에 포함된 웹 공격 기법 별 비중.

SQL인젝션에 이어 큰 비중을 차지한 공격 기법은 34% 비중의 크로스사이트스크립팅(xss)이었다. xss는 공격자가 WAS 영역에 공격 명령이 담긴 스크립트를 두고, 해당 웹페이지에 접속하는 다른 인터넷 이용자를 공격하는 기법이다. 스크립트가 삽입된 페이지가 열릴 때 브라우저의 취약점을 통해 공격자가 의도한 동작을 수행케 만든다. 최신 브라우저는 이를 막아 주는 추세지만 여전히 주의가 필요한 유형이다.

세번째로 비중이 큰 유형은 16%를 차지한 은닉명령(stealth commanding)이었다. SQL인젝션처럼 웹 요청으로 기업 운영 환경을 조작하는 방식인데, 차이가 있다면 DB가 아니라 WAS를 대상으로 명령을 실행하는 방식이다. 이 기법은 웹방화벽뿐아니라 침임탐지시스템(IDS)을 통해서도 방어가 가능하다. 본격적인 공격 행위보다는 '사전 답사' 성격의 단계에 수행되는 기법이다.

다음은 4% 비중을 차지한 경로순회(directory traversal) 공격 기법이다. 웹 요청을 통해 WAS에 어떤 파일이 있는지, 디렉토리 구조가 어떤지 조회하는 방식이다. 웹방화벽을 통해 막을 수 있지만, 개발자가 애플리케이션 코딩을 신경 써서 하거나 이를 차단할 수 있도록 서버 설정을 조정할 수도 있다.

김 실장은 "이 공격은 초보적인 해커가 많이 시도하는 기법"이라며 "이 공격이 먹힌다면 해당 서버 보안 관리상태가 좋지 않다는 것일 수도 있다"고 언급했다.

마지막 1% 비중을 차지한 기법은 파일업로드였다. 파일업로드 자체는 일반적인 웹사이트가 제공할 수 있는 기능이다. 보통 문서나 이미지 파일 등 정적인 형식만을 올릴 수 있게 돼 있다. 하지만 별도 점검 절차가 없을 경우 공격자가 랜섬웨어같은 악성코드 실행파일을 정상 파일로 위장해 올릴 수도 있다. 이는 다른 이용자 보안을 위협하게 된다. 웹방화벽과 같은 수단을 통해 업로드 파일 형식을 점검할 수 있다.

■"공격 유형별 비중, 산업 분야별 특징 고려해야"

보고서는 전체 웹 공격의 30%를 차지한 세계 각지 주요 공격자(IP)의 공격 사례만을 놓고, 앞서 탐지된 5가지 유형별 공격 비중을 재차 분석했다. 주요 공격자들이 동원한 공격 유형별 비중에서도 SQL인젝션이 46%, xss가 30%로 상위권을 차지했다. 은닉명령이 19% 비중으로 3번째 많은 비중을 차지했다. 전체 비중으로는 가장 낮았던 파일업로드가 3%로 4번째를 차지했고 경로순회가 2%로 5번째를 차지했다.

펜타시큐리티 2016 웹 공격 동향 보고서에 포함된 산업 분야 별 공격 유형 빈도 분석 그래프.

펜타시큐리티 측은 "주요 공격자들의 유형별 공격 비율은 전체 공격 동향의 결과와 큰 차이가 없다"며 "주요 공격자의 비율이 전체 웹 동향과 마찬가지로 SQL인젝션, xss 공격이 많은 비율을 차지한다는 점은 해당 유형에 대한 각별한 유의가 요구됨을 보여 준다"고 분석했다.

관련기사

보고서는 또 탐지된 공격 유형별 비중이 운수업, 제조건설, 교육, 금융, 과학기술, 레저 및 식품, 소셜 및 커뮤니티, 7가지 산업별로 어떻게 다른지도 분석했다. 관련 그래프를 제시하며 "전체적인 공격 동향과 달리 각 산업별로 주로 이뤄지는 공격의 차이가 큰 점을 고려할 때, 각 산업별 웹 공격 동향에 맞는 대책 마련이 필요하다"고 지적했다.

운수업 분야에선 SQL인젝션(83%), xss(15%) 유형이 대부분을 차지했다. 제조건설 분야에서도 SQL인젝션(58%)과 xss(22%) 공격 비중이 컸다. 교육 분야에선 xss(45%)와 파일업로드(39%) 공격 유형 빈도가 높았다. 금융서비스 분야에선 파일업로드(58%)와 경로순회(38%) 공격이 흔했다. 과학기술 분야는 xss(92%) 공격이 압도적이었다. 레저 및 식품 분야는 SQL인젝션(56%)과 은닉명령(28%) 비중이 높았다. 소셜 및 커뮤니티 분야는 xss(72%)와 SQL인젝션(19%) 공격이 다수를 차지했다.