웹 해킹 - 한남대학교 네트워크 실험실입니다.

Download Report

Transcript 웹 해킹 - 한남대학교 네트워크 실험실입니다.

[Hacking Exposed] 웹 기획. 운영자를 위한 해킹과 보안중에서
웹 애플리케이션과 보안에 대한 소개
황영철
한남대학교 컴퓨터 공학과
네트워크 실험실
1
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
2
웹 애플리케이션과 보안에 대한 소개
 웹 애플리케이션 아키텍쳐
 잠재적인 약점
 웹 해킹의 방법론
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
3
웹 애플리케이션 아키텍쳐
 웹 애플리케이션 아키텍쳐
N-계층
웹
애플리케이션
커넥터
데이터베이스
요청
웹
클라이언트
전송
웹
서버
웹
애플리케이션
응답
웹
애플리케이션
http://netwk.hannam.ac.kr
커넥터
데이터베이스
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
4
웹 애플리케이션 아키텍쳐
 간단한 HTML 용어

태그의 남용

INPUT, HIDDEN
○
쇼핑몰의 상품가격을 HIDDEN 으로 설정
 전송 : HTTP



무상태 프로토콜
ASCII기반 프로토콜
TCP 포트 80번에서 동작
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
5
웹 애플리케이션 아키텍쳐
 전송 : HTTP(계속)

서버 자원의 사용(NETCAT)
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
6
웹 애플리케이션 아키텍쳐
 전송 : HTTP(계속)

보안 취약성
요청을 발생시키기 위해 암호화된 문장을 시행할 필요가 없음.
 응답된 구문을 해독할 필요도 없다.
 잘알려진 포트인 80번 포트 사용(방화벽도 허용)


SSL/TLS
전송 계층을 암호화
 기본적인 HTTP 요청-응답 메커니즘을 대체(확장)하지 않음
 TCP 443 포트에서 동작

http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
7
웹 애플리케이션 아키텍쳐
 전송 : HTTP(계속)

쿠키
무상태성인 HTTP를 상태성 프로토콜처럼 동작하도록 만듦
 메모리에 임시 저장되거나 디스크에 영구적으로 기록


인증
기본 – USERNAME/PASSWORD, BASE-64
 다이제스트
 폼-기반
 NTLM
 협상
 클라이언트 측 인증서
 MS 패스포트

http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
8
웹 애플리케이션 아키텍쳐
 전송 : HTTP(계속)

다른 프로토콜들

MIME(Multipart Internet Mail Extension)
○
바이너리 파일 전송을 위한 프로토콜
SMTP(Simple Mail Transfer Protocol)
 FTP(File Transfer Protocol)
 WebDAV(Web Distributed Authoring and Versioning)

○
○
웹상의 공동 저작활동을 지원하기 위한 IETF 표준
멀리 떨어져 있는 사용자들 간에 인터넷 상에서 파일을 공동 편집하고 관리할 수
있도록 해주는 HTTP 확장
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
9
웹 애플리케이션 아키텍쳐
 웹 클라이언트
 정적인 웹 컨텐츠안에 매우 많은 기능을 내장하는 가능

MS의 activex
○
<object id=“scr” classsid=“clsid:06290BD5-48AA-11D2-8432-06008C3FBFC”>
</object>
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
10
웹 애플리케이션 아키텍쳐
 웹서버



클라이언트 요청을 받고 자원을 웹어플리케이션 로직에 넘겨주
는 HTTP 데몬(서비스)
IIS, Apache, AOL/Netscape Enterprise Server, iPlanet
http://uptime.netcraft.com/up/graph/?host=www.hannam.ac.kr
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
11
웹 애플리케이션 아키텍쳐
N-계층
 웹 애플리케이션

현재 웹사이트의 핵심은 서버측 로직
웹
어플리케이션
커넥터
데이터베이스
요청
웹
클라이언트
전송
웹
서버
웹
어플리케이션
응답
커넥터
웹
어플리케이션
데이터 베이스
Search for
Search.html
Search.exe
Filename.db
Result.html
표현
http://netwk.hannam.ac.kr
로직
데이터
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
12
웹 애플리케이션 아키텍쳐
 웹 애플리케이션 기술 및 벤더
제공회사
웹 애플리케이션
마이크로 소프트
Sun Microssystems
IBM Websphere
BEA Weblogic
Apache Software Foundation
(none)
Active Server Page (ASP)
ASP.NET
ISAPI
Common Object Model(COM)
JavaScript
Java 2 Enterprise Edition (J2EE) , Java Servlets
Java Server Pages(JSP)
CORBA
PHP(Hypertext Preprocessor)
Jakarta(server-side Java)
HTML
CGI(펄 포함)
실제 프로그램처럼 동작
http://test.com/article.php?id=425&format=html
C:>article.exe /id: 425 /format: html
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
13
웹 애플리케이션 아키텍쳐
 데이터 베이스


SQL과 오라클이 주
로직 구성요소는 특정 데이터 베이스 연결자 인터페이스를 일반
적으로 구동.
 복잡성과 매개체들

프록시
모든 연결이 통과해야만 하는 단일 게이트웨이
 한 클라이언트의 요청이 끝나면 다음 클라이언트를 위해 원래의
자원 요청(인터넷 캐쉬 개념)
 클라이언트 소스 주소가 항상 프록시

○
클라이언트의 요청을 구분할 수 없다.
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
14
웹 애플리케이션 아키텍쳐
 복잡성과 매개체들(계속)

로드 밸런서





프록시의 반대처럼 동작
클라이언트는 어느서버가 요청을 처리하는지 알지 못함
밸런서 자체는 일반적인 www.company.com 사용
서버가 주소에 상관하지 않고 클라이언트의 요청을 서버에 분산
CISCO - Local Directory, F5 – Big-IP, Microsoft-NLB
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
15
웹 애플리케이션 아키텍쳐
 복잡성과 매개체들(계속)

로드 밸런서의 동작
Client A
WWW1
알고리즘
Client B
로드밸런서
www.company.com
WWW2
Client C
WWW3
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
16
웹 애플리케이션 아키텍쳐
 새로운 모델 : 웹 서비스



WSDL(Web Services Definition Language)
UDDI(Universal Description, Discovery, and Integration)
SOAP(Simple Object Access Protocol)
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
17
잠재적인 취약점
 웹 클라이언트


액티브 컨텐츠 실행
크로스-사이트 스크립팅 오류
 전송

스니핑, SSL 리다이렉션
 웹 서버

웹 서버 소프트웨어의 취약점
 웹 애플리케이션

인증, 인가, 사이트구조, 입력확인, 애플리케이션로직에 대한 공
격
 데이터 베이스

질의를 통해 특권있는 명령수행, 질의 조작
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
18
웹 해킹의 방법론
 인프라의 프로파일 작성







애플리케이션에 연결하기 위한 특별히 필요한 클라이언트가 있
는가?
전송에 무엇을 사용하는가?
어떤 포트인가?
얼마나 많은 서버가 있는가?
로드 밸런서가 있는가?
웹 서버의 상표와 모델은 무엇인가?
Chapter 2장에서 설멍
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
19
웹 해킹의 방법론
 웹 서버 공격


웹서버 소프트웨어의 원론적인 취약점
Chapter3에서 설명
 애플리케이션 조사





어떤 종류의 컨텐츠가 서버에서 구동되는가?
어떤 인증된 컨텐츠 및 인증 유형이 사용되는가?
외부연계는 어떠한가?
데이터 저장소는 어떠한가?
Chapter 4에서 설명
 인증 메커니즘 공격


패스워드 추측 공격, 쿠키안의 토큰의 스푸핑
Chapter 5에서 설명
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
20
웹 해킹 방법론
 인가 스킴 공격




사용자 원리 변경
권한 상승
SQL 서버에 대한 특권 명령 터널링
Chapter 7에서 설명
 기능 분석 수행




애플리케이션 각 개별 기능의 실제 분석
구성요소 식별
각 입력 저장소에 오류유발
Chapter 8에서 설명
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
21
웹해킹 방법론
 데이터 연결성 익스플로잇



가장 파괴적인 공격
개발자들은 안전성보다는 효율성을 생각
Chapter 9에서 설명
 관리 인터페이스 공격


원격관리를 허용하는 오픈 포트
Chapter 11에서 설명
 클라이언트 공격

크로스 사이트 공격

eBay, E*Trade, Citigroup
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
22
웹 해킹 방법론
 서비스 거부 공격 시작



합법적인 요청을이용하여 사이트에 트패릭을 전송함으로써 수
행
Chapter 3에서는 웹서버에대한 DoS
Chapter 8에서는 웹 애플리케이션에 대한 DoS
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
23
프로파일링
 서버 탐색
 서비스 탐색
 서버 식별
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
24
서버 탐색
 직관

WWW, COM, ORG, EDU, 등등 직관적으로 알 수 있는 서버
 인터넷 풋 프린팅

목표에 대해 정확히 아는 것





Whois 유틸리티를 사용하여 첫번째 수행
할당된 인터넷 IP 주소의 범위
등록된 DNS 도메인 이름 및 관련 데이터
인터넷 존재에 대한 관리상의 연락
http://www.arin.net/whois
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
25
서버 탐색
 인터넷 풋 프린팅
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
26
서버 탐색
 Whois 유틸 사용예
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
27
서버 탐색
 Whois 유틸 사용
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
28
서버 탐색
 DNS 질의

Nslookup 사용
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
29
서버 탐색
핑


호스트 네임이나 IP 주소에 ICMP Echo Request를 보내는 것
대부분의 포트 스캐닝 툴에 내장
 포트 스캐닝을 이용한 탐색

Scanline 유틸
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
30
서비스 탐색
 Scanline 유틸 사용
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
31
서버 식별
 NETCAT 유틸 사용
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY