이 문서에 따르면 가장 위협이 되는 취약점은 INJECTION, XSS(Cross-Site Script) 순으로 분류되어 있습니다.
이 중에서 SQL Injection 취약점은 그 공격의 결과가 서버의 장악이나 데이터베이스(데이터) 손상이 발생하기 때문에 상대적으로 보안 관리자가 인식하기가 쉽습니다.
하지만, XSS 공격은 실제로 취약점이 있는 웹서버를 공격하는 것이 아니라 제 3자를 공격하는 공격 경유지 성격을 띠고 있기 때문에 취약점으로 인해 공격이 발생하는지 알아차리기가 쉽지 않습니다.
XSS 취약점을 이용하여 공격자는 웹 애플리케이션에 접근하는 다른 사용자에게 자바스크립트를 실행할 수 있게끔 허용함으로써 공격이 시작됩니다. 즉, 사용자는 위험할 수도 있다는 생각은 전혀 하지 않은 상태에서 교묘하게 조작된 악성 스크립트가 실행되어 이로 인해 크나큰 피해가 발생할 수 있습니다.
XSS 공격의 예로 가장 대표적인 것이 계정 정보를 빼내는 기술입니다. 아래와 같은 방식으로 공격이 진행되며 최후의 단계에서는 공격자가 피해자의 정보를 도용하여 로그온할 수 있게 됩니다.
- XSS 취약점이 있는 게시판, 검색(입력 부분), 매개변수에 교묘하게 조작된 스크립트를 작성하여 글로 게시합니다.
- 사용자가 해당 웹서버에 로그온한 후에 공격자가 미리 올린 글을 읽습니다.
- 사용자의 쿠키 값을 웹프록시와 같은 방법을 써서 전송받습니다.
- 공격자는 사용자의 쿠키 값을 이용하여 로그온하고, 그외의 공격을 진행합니다.
이러한 방식은 지난 2008년 9월에 작성된 보고서의 일부분으로, 전북대학교 건지인사랑방에서 발생한 예입니다. (관련 자료 다운로드: http://iscert.springnote.com/pages/1770388/attachments/775186 )
아래 화면은 엘에이타임즈(LA Times, http://www.latimes.com ) 웹사이트의 특정 URL에서 발견된 XSS 취약점에서 alert("문자열") 스크립트를 실행한 화면입니다. 이외에도 이 사이트에는 다수의 XSS 취약점이 존재할 것으로 생각됩니다.
만약, 은행과 같은 금융권, 쇼핑몰, 적립금을 적립/충전하여 사용할 수 있는 사이트에서 이러한 XSS 취약점을 이용하는 공격이 발생할 때에는 치명적인 결과를 나을 수 있습니다.
결론적으로, 로그온이 사용되는 웹사이트에서는 XSS 공격에 대해 충분한 검토하여 문제점을 미리 파악하여 해결해야 합니다. 물론, 로그온이 안되는 경우에도 다양한 공격이 이뤄질 수 있지만, 계정 정보 노출이 가장 중요한 것임은 분명합니다.
감사합니다.