특정 게시판 취약점 악용해 공격...DB 탈취 가능성도 배제 못해
SQL 인젝션 공격 예방 위해선 모든 입력값에 대한 적절한 검증절차 설계·구현최근 특정 게시판 취약점을 악용한 대규모 SQL 인젝션(Injection) 공격이 발생해 국내 수많은 웹사이트가 피해를 입은 것으로 드러났다. 더욱이 현재까지 공격이 진행 중인 것으로 알려졌다.
▲SQL 인젝션 공격을 받은 홈페이지 게시판 화면[이미지=제로써트]
위협정보 공유 서비스 제로써트(ZeroCERT)에 따르면 평생교육원, 학교, 학회, 연합회, 학원 홈페이지 등 수많은 불특정 웹사이트가 공격을 받은 것으로 확인됐다. 현재 해커들은 특정 게시판 취약점을 악용해 특정 홈페이지의 자유게시판, Q&A 코너 등의 게시판에 주로 ‘문의 드립니다’, ‘문의드려요’, ‘문의’ 등의 제목을 사용해 공격을 감행하고 있다. 침해당한 홈페이지는 u6.gg, kks.me, uee.me 등 총 18개의 단축 URL이 삽입되어 있으며 국내 특정 회사의 호스팅 서버들이 정보 수집용으로 악용되고 있다는 게 제로써트 측의 설명이다. 더욱이 침해당한 홈페이지에 삽입된 단축 URL들을 구글로 검색할 경우 엄청난 숫자가 검색되는 걸로 보아 피해 웹사이트가 매우 많을 것이라는 우려가 커지고 있다. 특히, 침해당한 웹사이트의 DB까지 탈취됐을 가능성도 배제할 수 없어 2차 피해 가능성까지 제기되고 있다. SQL 인젝션 취약점은 데이터베이스와 연동된 웹 어플리케이션에서 입력된 데이터에 대한 유효성 검증을 하지 않아 발생하는 취약점으로, 취약한 웹 어플리케이션은 사용자로부터 입력된 값을 필터링 과정 없이 넘겨받아 동적 쿼리(Dynamic Query)를 생성한다. 이로 인해 개발자가 의도하지 않은 쿼리가 생성되어 정보 유출에 악용될 수 있고, 자칫하면 DB까지 통째로 탈취당할 수 있어 매우 심각한 취약점이라고 할 수 있다. 이와 관련 제로써트 측은 “홈페이지 관리자들은 추가 악성코드 유포 등 피해가 발생할 수 있어 웹사이트 침해 유무와 함께 게시판 취약점 여부 등을 반드시 확인해야 한다”고 설명했다. 이러한 SQL 인젝션 공격을 예방하기 위해서는 개발단계에서부터 모든 입력값에 대한 적절한 검증절차를 설계하고 구현해야 한다는 지적이다. 한국인터넷진흥원 인터넷침해대응센터(KrCERT)에서도 SQL 인젝션 공격 대응방안으로 △데이터베이스와의 연동 부분에서는 동적 SQL을 사용하지 말고 저장 프로시저를 사용할 것 △개발단계에서부터 모든 입력값에 적절한 검증절차를 설계하고 구현할 것 △데이터베이스의 에러 메시지를 사용자에게 보여주지 않도록 차단할 것 △웹 방화벽을 활용할 것 △웹 보안 취약점에 대해 주기적으로 점검할 것 등을 제시했다.