5월 중순부터 갑작스럽게 해킹이 많이 발생하고 있습니다. 얼마나 많이 발생하는지는 구태여 말하지 않아도 각종 전자신문을 통해서 익히 들으셨을겁니다.


전자뉴스
보안신문


 해킹은 서버를 운영하는 분이라면 이제 단순히 막을 수도 없을 정도로 변질되어 가고 있는 실정입니다. 과거의 SQL 인젝션 공격은 외부의 공격자가 웹서버에 있는 취약점을 이용해 DB서버에서 웹서버의 파일 변조하는 것으로 끝났습니다.

 이 방법의 예를 들면 index.htm파일의 맨 마지막이나 </body>태그 앞에 <script src=hack.js>를 붙이는 방법을 사용하거나, 아예 파일 뒤에 hack.js의 내용 전체를 붙여넣는 방식이었지요. 비교적 단순한 방법이었지만, 그 동안 생각하지도 않았던 웹 보안이라는 영역을 새로 만들어주는 중요한 계기가 되기도 했으며, 보안 프로그래밍이라는 기법이 등장하기도 했습니다.

 하지만, 최근의 방법은 크게 바뀌었습니다. 이제 누구나 다 아는 웹서버에 있는(예:index.htm) 파일을 건드리지 않고 DB의 내용을 바꾸는 방법을 사용합니다. 예를 들면, 다음과 같이 게시판을 구성하는 테이블의 내용을 직접 변경합니다. 이런 방법으로 해킹을 하면, 매우 간단하게 모든 게시판에 있는 글에 대해서 변조가 가능하지요. 더구나, DB는 성능이 매우 좋기 때문에, 이런 변조 공격을 하는데 몇 초 걸리지도 않습니다. 다만 분석하는데 약간의 시간이 걸릴 뿐입니다.



 몇 년 사이의 웹 해킹은 일반적으로 (1)SQL 인젝션을 통한 해킹 후에, ARP Spoofing같은 방법을 통해 (2)내부 정보를 모두 수집하고, (3)백도어를 심은 후에, 웹사이트의 구조를 분석하여 완료 했을 때 해킹을 시도합니다.


실제 해킹 증세를 보이는데 까지는 꽤 오랜 시간이 걸린다
 

 해킹이 발생한 후에 복구할려면 어떻게 해야 할까요? (1)손상된 DB를 수정/복원하고, (2)백도어를 찾아 제거하고, (3)ID와 비밀번호를 모두 변경하면 됩니다.

 빼나간 내부 정보를 어떻게 원격으로 지울 수는 없습니다. 이미 복제가 끝난 것이니까요. 손상된 내용은 복구/수정하면 되고, DB는 일주일에 한번 정도하는걸 매일 백업하거나 하루에 두세번 정도로 백업을 늘려주면 됩니다.
하지만, 백도어는 찾기라는 작업은 그렇게 쉬운 작업이 아닙니다. 이에 대해서는 2007/10/23 - 최근 해킹 분석 - 2007.10.에서 보듯 이미 백신의 영역을 넘어 '감'으로 승부해야 하는 영역에 있습니다.

 하지만, 이는 복구지 재발 방지나 방어가 아닙니다. 진짜 큰 문제는 이런 복구 후에도 처음 해킹을 시도했던 방법 그대로 해킹을 시도하면 역시 가능하다는 것입니다. 이런 해킹 방법으로 자주 쓰이는게 바로 SQL 인젝션 공격입니다. 웹해킹의 한가지 기법으로 널리 쓰이는 방법이지요.

 SQL 인젝션을 통한 공격 방법은 IPS와 같은 네트워크 장비로도 효과를 얻을 수 있습니다. 하지만, IPS는 공격 코드 자체를 인코딩하여 보낸다거나 SSL이 도입되어 있는 경우, IPS는 SSL로 암호화된 공격코드를 읽고 해석해야 하기 때문에 비용이 매.우. 올라갑니다. 그렇기 때문에 보안을 위해서는 웹방화벽을 도입하거나, 모든 소스를 안전하게 운영할 수 있도록 소스를 수정하는 것 이외에는 답이 없습니다. 물론 둘 다 한다면 조금 더 안전해지겠지요.

 
Posted by 데굴대굴

트랙백 주소 :: http://ntfaq.co.kr/trackback/4219 관련글 쓰기

댓글을 달아 주세요

  1. ㅋㄹㅇㄹ 2008/06/16 21:42  댓글주소  수정/삭제  댓글쓰기

    잘 봤습니다. 감사합니다~