Download presentation
Presentation is loading. Please wait.
1
Chapter 03 웹 해킹의 기초
2
01 해킹 기술의 진화 02 일반적인 웹 해킹 과정 03 웹 애플리케이션의 취약점
3
웹 해킹의 배경과 기본 지식을 갖춘다. 정보를 수집하는 방법을 익힌다. 웹 스캐닝의 원리를 이해한다. 기초적인 웹 해킹의 종류와 기법, 원리를 이해한다. 웹 애플리케이션상의 주요 취약점을 학습한다.
4
1.1 국내 해커의 역사 국내 해커의 역사 1986년 KAIST의 김창범이 ‘유니콘’이라는 해커 동아리를 만든 것이 시초
생김. KAIST와 포항공과대학교 간의 유명한 해킹 전쟁이 일어난 후 쿠스 해체 쿠스 멤버 중 하나였던 김휘강(현 고려대학교 정보보호대학원 교수)은 보안을 강조한 시큐리티카이스트를 만듦.
5
1.1 국내 해커의 역사 국내 해커의 역사 1990년대 : 시스템과 네트워크의 취약점을 공략하는 공격 기법이 거의 대부분
(당시 통신 프로그램이 전화 모뎀을 이용했기 때문)
6
1.1 국내 해커의 역사 국내 해커의 역사 1990년대 후반 : 국내 1세대 해커들이 보안 전문 회사를 만들고 언더그라운드
에서 오버그라운드로 전환하여 본격적으로 활동 전개 수많은 보안 회사가 생겨나고 널루트, 와우해커와 같은 언더해커 그룹 등장 2000년 : 제1회 세계정보보호올림페어(일명 국제해킹왕중왕대회) 개최 2001년 : 제2회 해킹왕중왕대회 개최 truefinder, Xpl017Elz(X82) 등의 해커가 큰 활약을 함. P2P 메신저 프로그램이 처음 나오면서 사람들의 호 기심과 관심을 불러일으킴.
7
1.2 웹 해킹의 발전 배경 웹 해킹의 발전 배경 1990년대 중반부터 방화벽, IDS와 같은 네트워크 보안 장비가 개발되면서 웹 해킹 발전 닷컴 열풍이 불면서 해커들이 점차 웹에 관심을 가지면서 웹의 취약점 연구도 활발하게 진행
8
1.2 웹 해킹의 발전 배경 포트(Port) 영어로 ‘항구’라는 뜻
‘인터넷의 바다’, ‘인터넷 항해’라는 말이 쓰인 것도 한 시스템의 포트에서 데이 터가 출발하여 인터넷이라는 바다를 건너 다른 시스템의 포트에 도달하는 흐 름이었기 때문 2000년 중반부터는 거의 모든 시스템이 방화벽으로 보호되어 80번 웹 포트 외 에는 모두 닫혀 있는 경우가 많아져 웹 해킹이라는 주제가 많이 연구됨.
9
2. 일반적인 웹 해킹 과정 웹 해킹 방법 시스템에 침투하는 일반적인 해킹 과정
취약점의 존재 여부를 확인한 후 그곳을 통해침투를 시도하는 방법 발견 가능한 모든 공격 표면을 찾아서 매트릭스를 작성한 후 하나씩 시도하는 방법 시스템에 침투하는 일반적인 해킹 과정 → 과거에는 해커가 자신의 명성을 높이기 위해 공격에 성공한 후 웹 페이지를 변조하는 경우가 많았지만, 요즘은 흔적을 교묘히 숨기는 경우가 많아짐.
10
2.1 공격 대상 선정 공격 대상 선정 일반적으로 방문자가 많은 대표적인 웹 사이트를 주요 공격 대상으로 선정
기업과 계약하여 모의해킹을 할 때는 주로 공격 대상 목록을 사전에 선정 외부에서 접근할 수 있는 모든 대상을 선정해도 무방할 경우 관련 도메인을 모 두 검색한 후 가장 취약한 곳을 대상으로 함.
11
2.2 정보 수집 정보 수집 자동화 도구를 이용한 웹 사이트 탐색 및 분석
공격 대상이 보유하고 있는 외부 접점 중에서 웹 사이트를 통해 웹 애플리케이 션을 개발할 때 사용한 언어, 웹 사이트 내 주요 공격 대상의 기능, 웹 서버의 종류 등을 알아보는 것 공격 대상의 특성과 취약한 표면을 찾음. 자동화 도구를 이용한 웹 사이트 탐색 및 분석 공격할 웹 사이트에 접속한 후 취약점이 가장 많이 발생하고 영향력이 큰 영역 을 먼저 조사 웹 사이트를 탐색하면서 사용자 로그인 부분, 게시판이나 자료실처럼 파일을 업로드할 수 있는 부분이 있는지 살펴봄. 웹 사이트의 디렉터리 구조나 소스코드 간의 연관성과 같은 기본 정보를 얻을 수 있는지 파악
12
2.2 정보 수집 Burp Suite 실행
13
2.2 정보 수집 웹 사이트 접속 ③ ~ ④ 프록시 설정 후 동작 확인
브라우저의 [도구]-[인터넷 옵션]-[연결]을 선택 후 <LAN 설정> 클릭 브라우저를 ‘새로 고침’ 하여 프록시가 제대로 동작하는지 확인
14
2.2 정보 수집 Intercept 설정 해제 [Proxy]-[Intercept] 탭에서 <Intercept is on>을 클릭하여 <Intercept is off>로 변경되면 정상적으로 패킷이 흘러가게 한 후 [Spider] 탭을 클릭
15
2.2 정보 수집 Spider 실행 [Spider] 탭에서 <Spider is paused>를 클릭하여 running으로 바꾸면 Spider가 실행됨. [Target] 탭의 왼쪽 윈도우에서 해당 사이트의 URL을 선택 후 우측 마우스 눌러 ‘Spider this host’ 선 택함. [Spider] 탭 누르면 Requests made와 Bytes transferred가 증가하면서 웹 사이트의 정보를 가져옴. [Target] 탭에 들어가면 방문한 사이트의 디렉터리 구조와 파일 목록, HTML 소스코드 구조 등을 파악 할 수 있음.
16
2.2 정보 수집 브라우저의 확장 기능을 이용한 웹 사이트 탐색 및 분석
인터넷 익스플로러의 [도구] 메뉴에 웹 애플리케이션 개발자가 웹 사이트의 구 조를 쉽게 파악하기 위해 만들어 놓은 [F12 개발자 도구] 메뉴가 있음.
17
2.2 정보 수집 검색 엔진을 이용한 정보 수집 가장 쉽게 많은 정보를 수집할 수 있는 방법
18
2.2 정보 수집 site: filetype: 특정 사이트만 선택해서 집중적으로 검색할 때 사용
특정 파일 타입을 검색할 때 사용 filetype: txt 관리자 패스워트 (확장자가 txt, 위 문자열 포함 파일) site:co.kr admin
19
2.2 정보 수집 link: cache: intitle: 특정 링크가 포함된 페이지를 검색할 때 사용
예) ‘ link:korea.ac.kr’ cache: 구글 등에서 백업된 데이터를 볼 때 사용 예) ‘cache:korea.ac.kr’ intitle: 디렉터리 리스팅에 취약한 사이트를 검색할 때 사용 intitle의 위험성이 많이 알려져 요즘은 intitle로 검색해도 결과가 예전만큼 많 이 나오지 않음. intitle:index.of name size
20
2.2 정보 수집 inurl: robots.txt site와 유사한 기능으로, 특정 URL만을 대상으로 검색
예) ‘inurl:admin/login.asp .com’으로 검색하면 URL이 .com이면서 admin/login.asp 페이지가 있는 사이트를 검색 robots.txt 웹 서버의 홈 디렉터리에 만듬 Disallow: /admin/ (admin 디렉터리에 접근 금지) Disallow: dbconn.ini (이 파일 검색 금지) User-agent: * (모든 검색 로봇의 검색 금지)
21
2.2 정보 수집 스캐닝 도구를 이용한 정보 수집 웹 스캐닝 도구를 이용하면 다음을 검사할 수 있음 웹 서버의 종류와 버전
디렉터리 정보 중요한 파일 정보가 존재하는지 여부 웹 서버 자체의 취약점
22
2.2 정보 수집 Wikto 스캐너 준비 Wikto는 공개 웹 스캐닝 도구로, 다양한 플랫폼에서 동작하고 수천 개의 웹 취 약점을 스캐닝 할 수 있음. 압축 해제 C:\Scanner\ 디렉터리를 만들고 압축 을 푼 파일을 보관
23
2.2 정보 수집 Wikto 스캐너 설치
24
2.2 정보 수집 Wikto 스캐너 실행 [시작]-[모든 프로그램]-[SensePost]-[Wikto]에서 Wikto를 선택
메뉴 Wikto를 선택한 후 왼쪽에 있는 <Load Nikto Database>를 클릭하여 데 이터베이스 파일을 불러옴
25
2.2 정보 수집 주의 사항 현행법상 스캐닝만 해도 공격으로 간주하여 처벌받으니 개인 테스트용 컴퓨터
나 허가받은 컴퓨터만을 대상으로 웹 스캐닝을 해야 함. 웹 스캐닝 도구의 원리
26
3.1 OWASP TOP 10 OWASP TOP 10 웹 애플리케이션 보안에 대한 정보를 공유하고 체계를 세우는 자발적 온라인 정보 공유 사이트 2001년 12월 마크 커페이와 데니스 그로브스 등에 의해 탄생 2004년 ‘OWASP Top 10’ 이라는 웹 애플리케이션상의 10대 주요 취약점 발표 우리나라는 2011년 1월 OWASP Korea Chapter 이사회가 조직되어 활동
27
3.1 OWASP TOP 10 OWASP TOP 10
28
3.1 OWASP TOP 10 웹 애플리케이션의 취약점이 기업의 비즈니스에 미치는 영향
1. 잠재적 공격자는 다양한 경로를 통해 애플리케이션의 보안 취약점을 공격한다. 각 보안 취약점마다 보안 통제를 설계하지만 보안 통제가 허술해 취약점이 악용되었을 때의 기술적 영향이 기업 비즈니스에 미치는 영향을 파악해 해당 위험을 계산
29
3.1 OWASP TOP 10 OWASP TOP 10
30
3.1 OWASP TOP 10 A1. 인젝션 취약점 A2. 인증 및 세션 관리 취약점 A3. 크로스 사이트 스크립팅(XSS)
웹 애플리케이션에서 내부 데이터베이스와 연동한 결과를 웹 애플리케이션에 보내주는 부분에 주로 발생 주로 SQL 쿼리문을 대상으로 하지만 OS나 LDAP도 악용될 수 있음. A2. 인증 및 세션 관리 취약점 웹 애플리케이션이 사용자에 대한 인증 및 세션 처리를 잘못했을 때 발생 A3. 크로스 사이트 스크립팅(XSS) 웹 사이트에 대한 직접 공격이 아니라 해당 웹 사이트를 방문하는 사용자를 공격하는 기법 해당 웹 사이트 방문자의 쿠키나 세션을 추출할 수 있고, 방문자를 악성 코드 가 포함된 사이트로 리다이렉트 할 수도 있음.
31
3.1 OWASP TOP 10 A4. 취약한 직접 객체 참조 A5. 보안 설정 오류 A6. 민감한 데이터 노출
인증 및 세션 관리 취약점과 유사하지만 특정 객체를 직접 참조할 때 발생한다 는 점이 다름. 예)URL 뒤에 다른 사용자의 아이디를 입력하여 사용자 계정 정보를 볼 수 있음. A5. 보안 설정 오류 애플리케이션을 설치할 때 생기는 기본 페이지를 삭제하지 않고 방치하거 나 최신 보안 패치를 업데이트하지 않는 경우에 발생 디렉터리 리스팅과 같은 애플리케이션 설정 오류도 포함 A6. 민감한 데이터 노출 신용카드 정보, 개인 식별 정보, 인증 정보와 같은 중요한 데이터를 제대로 보 호하지 않을 때 발생
32
3.1 OWASP TOP 10 A7. 기능 수준의 접근 통제 누락 A8. 크로스 사이트 요청 변조(CSRF)
애플리케이션에서 각 기능에 접근하는 서버에 동일한 접근 통제 검사를 수행 할 경우에 적절한 접근 권한 확인을 하지 않으면 공격자는 권한없이 요청 위조 가능 A8. 크로스 사이트 요청 변조(CSRF) 요청 변조 : 공격자가 입력한 스크립트를 웹 사이트 방문자가 실행함으로써 해 당 방문자의 권한으로 스크립트가 실행되도록 만드는 방식 On-Site 요청 변조 : 한 사이트 내에서 요청 변조가 발생하는 취약점 Cross-Site 요청 변조 : 웹 사이트에 악성 스크립트를 입력한 후 해당 사이트 방 문자가 악성 스크립트에 의해 특정 행동(개인 정보 수정, 회원 탈되 등)을 실행 하도록 만드는 것
33
3.1 OWASP TOP 10 A9. 알려진 취약점이 있는 컴포넌트 사용 A10. 검증되지 않은 리다이렉트 및 포워드
취약한 컴포넌트를 악용하여 공격하면 데이터 손실이나 서버 장악 문제가 발 생할 수 있음. (웹 사이트 개발용 툴인 워드프레스의 알려진 취약점 악용) A10. 검증되지 않은 리다이렉트 및 포워드 목적 페이지를 결정할 때 신뢰되지 않은 데이터를 사용하거나 해당 사이트에 대한 적절한 검증이 없을 경우 피싱 사이트나 악성 코드가 포함된 사이트로 리다이렉트 권한이 없는 페이지로의 접근을 위해 포워드를 사용 예) 아래처럼 특정 페이지로 리다이렉트하면 공격자는 해당 페이지를 악성 코 드가 포함된 사이트로 리다이렉트할 수 있음.
34
3.1 OWASP TOP 10 OWASP Top 10 2017 최종 버전 : 2017.8
Web Hacking Incident Database의 2011년 최다 발생 취약점 순서 SQL 인젝션 > 크로스 사이트 스크립팅 KISA 에서 에 홈페이지 SW(웹) 보안 가이드 발표 OWASP Top 10과 유사 기업에서 많이 참조
35
3.2 웹 애플리케이션 취약점 테스트 WebGoat 사이트 접속
36
3.2 웹 애플리케이션 취약점 테스트 WebGoat 다운로드
37
3.2 웹 애플리케이션 취약점 테스트 WebGoat 실행 파일 복사
C:\WebGoat7.1 폴더를 만든 후 다운로드 받은 파일을 해당 폴더에 복사
38
3.2 웹 애플리케이션 취약점 테스트 WebGoat 실행
도스창에서 C:\WebGoat7.1 폴더로 이동하여 다음 명령어를 입력 java -jar webgoat-container-7.1-exec.jar 맨 마지막에 다음과 같은 메시지가 나오면 제대로 실행된 것 INFO - Browse to and happy hacking!
39
3.2 웹 애플리케이션 취약점 테스트 브라우저를 통해 WebGoat 접속
‘ 입력 연습 목적이므로 Username과 Password에 동일하게 guest를 입력하여 로그인
Similar presentations