MSSQL SQL 인젝션으로 인한 홈페이지 내 악성코드 삽입피해
페이지 정보
본문
1) 홈페이지 초기화면에 정적(Static)으로 악성코드가 은닉되는 것이 아니라, 데이터베이스 내 악성코드 링크를 삽입함으로써 해당 데이터베이스와 연동된 게시판, 상품정보 등 웹 페이지에 악성코드가 동적(Dynamic)으로 삽입됨
※ 해당 해킹도구는 일부 웹 보안 장비의 보안기능을 우회할 수도 있으므로 주의가 필요
2. 원인
1) 게시판이나 회원 인증 등 웹서비스와 데이터베이스가 연동되는 부분에서 전달되는 인자값에 대한 검증절차 부재로 인해 악의적인 SQL 명령어 주입이 가능하게 됨 (SQL Injection 취약점)
2) 특히, 최근에는 웹 사이트를 통해 유포되는 악성코드는 쿠키 등 HTTP 헤더정보를 통해서도 삽입되고 있고, 일부 웹 보안장비의 보안기능을 우회할 수도 있으므로 각별한 주의가 필요
3. (피해 발생시) 복구방법
1) 데이터베이스 백업본 사용
- 데이터베이스 백업본이 있을 경우 복구에 활용
2) 악성코드가 삽입된 테이블을 모두 찾아 SQL명령문으로 복구
- 반드시 데이터베이스 관리자/개발자와 충분히 검토한 후에 적용 요망
- 자료형 변환이 필요 없는 경우 replace함수만으로 복구 가능
Update [테이블명] set [컬럼명]=replace([컬럼명], 2008-11-06‘[삭제하고자하는 악성코드 문자열]’, ‘’)
예1> Update bbs set content = replace(content,‘ , ‘’)
예2> update bbs set content = replace(content,'<script src=http://xxx.com/s.js></script>','')
- 자료형 변환이 필요한 경우는 cast함수를 이용하여 복구
Update [테이블명] Set [컬럼명] = replace(cast([컬럼명] as varchar(8000)), '[삭제하고자하는 악성코드 문자열]', '')
예1> Update bbs Set content = replace(cast(content as varchar(8000)),' , '')
예2> Update bbs Set content = replace(convert(varchar(8000),content),'<script src=http://xxx.com/s.js></script>', '')
예3> Update [cadgraphics].[sendsof] Set sangpon = replace(convert(varchar(8000),sangpon),'<div style="display:none">xxxx</div>', '')
※ 컬럼의 자료형(data type)이 ntext, image 등인 경우 cast함수를 사용하여 자료형
변환 후 replace가능하지만, replace를 위한 변수 공간(varchar(8000)) 보다
큰 자료의 경우 자료 손실이 발생 할 수 있으므로 주의 요망.
MS SQL 2005 이상에서는 varchar(max) 사용 가능
- MS SQL 서버에서 사용하는 큰값 자료형 참조 자료
a. 큰 값 자료형 설명 (바로가기)
b. UPDATETEXT 설명 (바로가기)
3) 쿼리분석기에서 확인하기
select board_idx,b_content from tblNotice where b_content like '%script%'
4. 예방대책
1) 근본적인 해결을 위해 모든 변수값에 유효값 검증 절차 적용
2) 웹사이트에서 사용하는 DB권한의 최소화 및 SA계정 사용 제한 등의 SQL서버 최적화
3) 웹 보안 솔루션 도입 및 정책 최적화
- MS URLscan 관련 자료
a. URLscan 사용방법 (바로가기)
b. URLscan 다운로드 (바로가기)
※ URLscan은 웹방화벽과 유사하며 서버로 전달되는 값들의 필터링 기능이 지원됨
- 공개웹방화벽 관련 자료
a. 사용자 커뮤니티 : "www.securenet.or.kr" > 열린지식 > 공개웹방화벽커뮤니티
※ WebKnight에서는 헤더설정의 Injection공격 차단이 설정되어 있어야 차단 가능하며,
오탐발생이 예상되므로, 적용 후 일정기간 모니터링 필요
4) 웹사이트 보안 강화 가이드
- 웹보안 4종 가이드: "www.KrCERT.or.kr" 접속 > 웹보안 4종 가이드
5) 웹사이트 취약점 점검
- KISA 무료 웹취약점점검 서비스 (바로가기)
※ 비영리단체 또는 중소기업등의 정보보호취약계층만 서비스 대상임
- MS 소스코드 검사 도구 (바로가기)
- HP 점검 도구 (바로가기)
6) MS SQL서버에서 sysobjects 또는 syscolumns 권한을 제거하여 악성코드 삽입 스크립트 실행을 차단가능
참고자료
http://www.boho.or.kr
http://duck.pe.kr/43
댓글목록
등록된 댓글이 없습니다.