[SQL Injection] SQL 인젝션으로 인한 홈페이지 내 악성코드 삽입피해 > 기술자료 | 해피정닷컴

[SQL Injection] SQL 인젝션으로 인한 홈페이지 내 악성코드 삽입피해 > 기술자료

본문 바로가기

사이트 내 전체검색

[SQL Injection] SQL 인젝션으로 인한 홈페이지 내 악성코드 삽입피해 > 기술자료

MSSQL [SQL Injection] SQL 인젝션으로 인한 홈페이지 내 악성코드 삽입피해

페이지 정보


본문

1. 피해 현상

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://www.boho.or.kr/dataroom/data_05_dtl.jsp?u_id=1&page_id=6&page=1&TempNum=11
http://duck.pe.kr/43 
http://www.dbguide.net/dbqa/dbqa111003.jsp?catenum=28&page=1&idx=9052 

댓글목록

등록된 댓글이 없습니다.


Total 2,641건 104 페이지
  • RSS
기술자료 목록
581
PHP   15035  2008-12-17 21:02 ~ 2018-10-09 09:21  
580
ClassicASP   11788  2008-12-11 17:35 ~ 2009-10-08 00:00  
579
일반   17121  2008-12-02 12:35  
578
ClassicASP   10487  2008-11-29 14:44  
577
ClassicASP   14591  2008-11-29 14:41 ~ 2012-06-09 00:00  
576
MSSQL   16968  2008-11-27 22:46  
575
MSSQL   21164  2008-11-27 14:21  
574
ClassicASP   17372  2008-11-26 23:02  
573
일반   12948  2008-11-24 21:11  
572
일반   16124  2008-11-21 17:15  
열람
MSSQL   17845  2008-11-19 17:31 ~ 2017-10-17 00:00  
570
PHP   24312  2008-10-29 10:33 ~ 2013-04-06 00:00  
569
일반   12974  2008-10-28 15:37  
568
일반   14697  2008-10-24 11:45  
567
HTML   14553  2008-09-22 17:38  
566
일반   28774  2008-09-09 12:37  
565
그누보드   16563  2008-09-07 10:17  
564
영카트   15596  2008-09-06 06:04  
563
그누보드   15312  2008-09-04 20:48  
562
Search   11898  2008-09-03 14:53  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.