인터넷 해킹과 보안

PART 02 웹 해킹의 세계

bumsoha 2024. 7. 18. 20:03

CHAPTER03. 웹 해킹의 기초

 

01. 해킹 기술의 진화

  • 시스템과 ㅇ니프라 환경에 따라 지속적으로 변하기 때문에 해킹의 역사와 배경을 공부해두면 이후에 어떤 기술이 나올지 예측하는 데 도움이 될 것

1. 국내 해커의 역사

2. 웹 해킹의 발전 배경

  • 해커의 가장 중요한 자질 중 하나는 호기심이다
  • 컴퓨터 시스템에 대한 무한한 동경과 호기심으로 컴퓨터의 근본 원리까지 파고들고, 시스템ㅇ의 버그를 찾거나 개선하려는 노력을 통해 보다 안전하고 진보된 시스템을 만들 수 있음

02. 일반적인 웹 해킹 과정

  • 직관적으로 취약점이 있을 만한 부분을 찾아서 바로 취약점의 존재 여부를 확인한 후 그곳을 통해 침투를 시도하는 방법
  • 전반적으로 발견 가능한 모든 공격 표면을 찾아서 매트릭스를 작성한 후 하나씩 시도해 보는 방법

1. 공격 대상 선정

  • 일반적으로 방문자가 가장 많은 대표적인 웹 사이트를 주요 공격 대상으로 선정

2. 정보 수집

  • 공격자가 원하는 목적을 달성하기 위해 공격 대상을 조사하는 과정에서 얻을 수 있는 모든 정보를 수집하는 것

2.1 자동화 도구를 이용한 웹 사이트 탐색 및 분석

  • 웹 해킹을 하려는 대상을 선정했다면 해당 홈페이지에 접속함
  • 페이지 파일의 확장자가 무엇인지 살펴봄
  • 예외 상황을 파악하려면 다각도로 정보를 수집해야 함

실습 3-1 Burp Suite로 웹 사이트 정보 수집하기

 

2.2 브라우저의 확장 기능을 이용한 웹 사이트 탐색 및 분석

실습 3-2 웹 스캐닝으로 웹 사이트 정보 수집하기

 

 

03. 웹 애플리케이션의 취약점

 

1. OWASP Top 10

  • 웹 애플리케이션상의 10대 주요 취약점을 발표함으로써 많은 보안 전문가에게 알려짐
  • A1. 인젝션 취약점
    • 웹 애플리케이션에서 내부 데이터베이스와 연동한 결과를 웹 애플리케이션에 보내주는 부분에 주로 발생
  • A2. 인증 및 세션 관리 취약점
    • 웹 애플리케이션이 사용자에 대한 인증 및 세션 처리를 잘못했울 때 발생
  • A3. 크로스 사이트 스크립팅
    • 웹 애플리케이션과 내부 시스템을 직접 공격하는 것이 아니라 해당 웹 사이트를 방문하는 사용자를 공격하는 기법임
  • A4. 취약한 직접 객체 참조
    • 인증 및 세션 관리 취약점과 유사하지만 특정 객체를 직접 차조할때 발생한다는 점이 다름
  • A5. 보안 설정 오류
    • 애플리케이션을 설치할 때 생기는 기본 페이지를 삭제하지 않고 그냥 방치하거나 최신 보안 패치를 업데이트하지 않는 경우에도 발생
  • A6. 민간한 데이터 노출
    • 웹 애플리케이션이 신용카드 정보, 개인 식별 정보, 인증 정보와 같은 중요한 데이터를 제대로 보호하지 않을 때 발생
  • A7. 기능 수준의 접근 통제 누락
    •  특정 기능을 웹 페이지에 표시하기 전에 기능 수준의 접근 권한을 확인함
    • 이 때, 요청에 대한 적절한 확인을 하지 않으면 공격자는 권한 없이 기능에 접근하기 위한 요청을 위조할 수 있음 
  • A8. 크로스 사이트 요청 변조
    • 공격자가 입력한 스크립트를 웹 사이트 방문자가 실행함으로써 해당 방문자의 권한으로 스크립트가 실행되도록 만드는 방식임
  • A9. 알려진 취약점이 있는 컴포넌트 사용
    • 워드프레스와 같이 잘 알려진 컴포넌트의 취약점은 계속 발표되고 있지만 취약한 컴포넌트를 악용하여 공격하면 데이터 손실이나 서버 장악 문제가 발생할 수 있음
  • A10. 검증되지 않은 리다이렉트 및 포워드
    • 목적 페이지를 결정할 때 신뢰되지 않은 데이터를 사용하거나 해당 사이트에 대한 적절한 검증이 없다면 공격자는 피해자를 피싱 사이트나 악성 코드가 포함된 사이트로 리다이렉트할 수도 있고 권한이 없는 페이지로의 접근을 위해 포워드를 사용할 수도 있음

 

2. 웹 애플리케이션 취약점 테스트

 

실습 3-3

1. WebGoat 사이트 접속

브라우저를 통해 WebGoat 접속

 

CHAPTER 04 인증 기술과 접근 통제

01. 인증 기술

  • 오래전부터 생명과 재산을 보호하기 위해 얼굴이나 특정 소리로 사람을 식별하여 보호막 안에 들여보내는 방법 사용

1. 인증방법

  • 패스워드를 사용하는 가장 기본적인 것부터 홍체 인식과 같은 생체 인증까지 모두 포함됨
  • 특정인을 인증하는 방법은 크게 네 가지로 구분된다
    • 알고 있는 것
    • 가지고 있는 것
    • 그 자체
    • 위치하는 곳

1.1 알고 있는 것

  • 패스워드를 활용하는 것이 대표적임
  • 중요한 워닉은 해당 정보를 본이 외에는 아무도 모르고 있어야 한다는 것
    • 패스워드 기반 인증 
    • 주민등록번호 기방 인증
    • I-PIN 기반 인증

1.2 가지고 있는 것

  • 가장 대표적인 방식은 열쇠를 가지고 있는 것임
    • 스마트 카드

1.3 그 자체(생체 인증)

  • 가장 강력한 인증 방법임
  • 생체 인증에는 지문, 홍채, 망막, 얼굴, 목소리,DNA 등이 사용되고 있으며 행위 기반의 인증 수단으로는 서명, 키 누름등이 있음

1.4 위치 하는 곳 

  • 장소의 개념
  • 흔한 경우는 IP주소에 기반을 둔 시스템 접근 통제임

 

2. 인증 취약점 공격

  • 패스워드는 가장 기본적인 인증 방식이지만 보호해야 하는 정보 자산이 잘못된 설계나 운영으로 쉽게 침해당할 수 있음

2.1 패스워드 설정의 취약점

  • 웹 애플리케이션에서는 사용자임을 인증하기 위해 패스워드를 사용함
  • 패스워드를 취약하게 설정했을 경우 공격자가 매우 쉽게 애플리케이션을 장악할 수 있음

실습 4-1 패스워드 크랙으로 패스워드 취약성 확인하기

 

비밀번호가 123456일때 크랙 가능 시간이 즉시 라는것을 알려줌

 

실습 4-2 취약하게 설계된 패스워드 찾기 기능의 위험도 분석

 

패스워드 강력도 확인 결과

 

 

02. 접근 통제

  • 수직적 접근 통제
    • 특정 정보에 대한 접근 권한을 수준별로 상이하게 설계한 통제를 의미
    • 예로는 일반 사용자와 관리자의 차이라고 할 수 있음
    • 일반 사용자가 접근할 수 있는 정보와 상위 관리자가 접근할 수 있는 정보에 각기 다른 접근 권한을 부여하는 것
  • 수평적 접근 통제
    • 웹 애플리케이션 내에 여러 사용자가 존재할 때 상대방의 정보를 볼 수 없도록 통제하는 것
    • 예로는 인터넷 뱅킹을 떠올리면 쉽게 이해가 가능
    • 웹 메일은 여러 사용자가 이용하고 각 사용자에 따른 권한 차이도 없지만 서로의 고유 정보에는 접근할 수 없음
  • 비즈니스 로직 접근 통제
    • 사용자 권한에 종속되지 않고 민감하거나 중요한 자원에 대한 접근과 관련된 것
    • 예로는 일반 사용자가 관리자 권한을 전부 획득하지 못했더라도 관리자만 접근할 수 있는 메뉴에 접근하는 경우

 

CHAPER05 SQL 인젝션 공격

 

01. SQL 인젝션 공격의 개요

 

1. SQL 인젝션 공격의 역사

  • 1988년 12월 온라인 잡지  <Pharck> 54호에 처음 소개되었다
  • SQL이라는 표현지 직접 사용되지는 않았지만, 웹 애플리케이션과 데이처베이스 간의 취약점을 언급하면서 SQL문을 변조할 수 있다는 가능성을 보여주었음

2. SQL

  •  SQL 인젝션 공격은 읨의로 작성한 SQL 구문을 애플리케이션에 삽입하는 것이므로 SQL에 대한 이해는 필수

2.1 SQL의 개념

  •  SQL은 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어임
  • 데이터베이스로부터 정보를 얻거나 수정하기 위한 표준 대화식 프로그래밍 언어이기도 함

02. 기본적인 SQL 인젝션 공겨

1. SQL 인젝션 공격의 원리

  • 공격이 소개되었을 당시 이 공격 방법은 웹 애플리케이션과 데이터베이스를 연동하는 부분에 공격자가 임의의 SQL 명령어를 삽입할 수 있다는 점에서 출발함

실습 5-3 기본 SQL 인젝션 공격 연습하기

 

실습 5-4 문자열 SQL 인젝션 공격 연습하기

실습 5-5 SQL 인젝션 공격으로 데이터 수정하기

 

2.DBMS의 종류에 따른 SQL 인젝션 공격

2.1 Microsoft SQL Server

  • 운영을 좀 더 편리하고 효율적으로 하기 위해 내부에 여러 가지 확장 저장 프로시저를 가지고 있음

2.2 오라클

  • 오라클에도 테이블 내용과 데이터를 추출할 수 있는 명령어가 있음

03. XPath 삽입 공격

실습 5-6  XPath 삽입 공격 연습하기

 

CHAPER 06 XSS공격

  • 간단하지만 파괴력이 있는 것이 특징임
  • 웹 애플리케이션이 구축된 사이트를 직접 공격하여 조직 내부에 포함된 핵심 정보를 추출하는 기법이 아니기 때문에 SQL 인젝션이나 경로 탐색, 접근 통제 등의 공격에 비해 시시해 보일 수 있으 

1. 쿠키

  • 사용자ㄱ와 웹 사이트를 연결해주는 정보가 담겨 있기 때문에 나중에 클라이언트가 해당 사이트에 접속하려고 하면 쿠키 내용을 이용하여 클라이언트의 신분을 알 수 있음

1.1 쿠키 생성

  •  사용자 컴퓨터에 쿠키 생성
    • 저장되는 내용은 사이트에 따라 다르지만 쿠키를 만든 사이트의 도메인 이름, 그 사이트를 구분하는 숫자, 쿠키 만기일 등의 정보가 공통적으로 들어 있음 
  • 사용자 컴퓨터의 쿠키를 웹 서버로 전송
    • 예전에 방문했던 사이트에 다시 접속하면 사이트는 사용자의 컴퓨터에 저장된 쿠키를 통해 방문자의 개인 정보를 알 수 있음

1.2 쿠키의 용도

  • 사이트 개인화
    • 아이디와 비밀번호 외에도 사용자의 성향까지 파악할 수 있음
  • 장바구니 시스템
    • 쇼핑몰 사이트는 그 정보를 통해 사용자의 구매 성향을 파악하여 이전에 구매한 것과 비슷한 상품을 추천
  • 웹 사이트 이용 방식 추적
    • 무수히 많은 동종 사이트와의 경쟁에서 ㅅ살아남으려면 사용자들이 어떤 사이트를 주로 방문하는지 알아내는 것이 매우 중요함
    • 사용자들의 사이트 방문 유형을 제대로 파악하여 그들의 자주 방문하는 사이트에 배너 광고를 달면 광고 효과가 훨씬 좋음
  • 타킷 마케팅
    • 광고주가 대형 포털 사이트의 광고 공간을 사들여 자회사의 광고를 사용자에게 보여주는 것

1.3 쿠키에 관한 오해

  • 쿠키가 바이러스를 전파한다?
    • 쿠키는 텍슽트 파일이기 때문에 실행이 되지 않음
    • 텍스트 파일인 쿠키가 바이러스를 전파할  수는 없음
  • 쿠키가 사용자 컴퓨터에 피해를 입힌다?
    • 실행 파일이 아니기 때문에 스스로 디렉터리를 읽거나 파일을 지우는 작업도 절대 수행할 수 없음

2. XSS

  • 다른 사용자의 정보를 추출하는 공격 기법

02. XSS공격 방법

1. Storde XSS

실습 6-1 Stored XSS공격 연습하기

 

2.Reflected  XSS

실습 6-2 Reflected  XSS 공격 연습하기

 

03. 그 밖의 XSS공격(CSRF공격)

  • 피해자가 인지하지 못하는 상태에서 피해자의 브라우저가 특정 사이트에 강제적으로 리퀘스트를 보내도록 하는 기법

실습 6-3 CSRF 공격 연습하기

 

CHAPTER07 소스코드의 취약점 분석

1. 웹 애플리케이션의 보안 취약점 찾기

  1. Black Box Testing : 소스코드를 보지 않고 웹 애플리케이션의 외부 인터페이스나 구조를 분석하여 취약점을 발견하는 것임
  2. White Box Testing : 개발된 소스코드를 살펴봄으로써 코딩의 취약점을 찾는것

2. 소스코드의 취약점 유형

 

02 소스코드의 취약점 분석 방법

1. 입력값 검증 취약점

  • SQL 인젝션, 크로스 사이트 스크립팅, 위험한 형식의 파일 업로드, 디렉터리 경로 조작 등이 있음

1.1 SQL 인젝션 취약점

실습 7-1 SQL 인젝션 취약점 코드

 

1.2 크로스 사이트 스크립팅 취약점

실습 7-2 크로스 사이트 스크립팅 취약점 코드

 

1.3 위험함 형식의 파일 업로드 취약점

십습 7-3 위험함 형식의 파일 업로드 취약점

 

 

1.4 디렉터리 경로 조작

  • 파일명을 받아서 처리하는 부분의 파일명에 대한 필터링이 없으면 공격자는 디렉터리 경로를 조작하여 상위 디렉터리에 있는 임의의 파일에 접근할 수 있음

2. 세션 처리 및 접근 통제 취약점

2.1 매개변수와 쿠키 조작

  • URL에서 변수 또는 POST 형태로 전송되는 매개변숫값을 조작하여 자신이 소유한 것 외의 권한을 획득하는 공격법

2.2 강제 브라우징

  • 권한이 필요한 페이지에 권한 체크 코드가 누락되었을 때 발생

3. 코드 내 중요 정보 노출 취약점

3.1 중요 정보 평문 전송

  • 패스워드나 주민등록번호와 같은 민감한 내용을 암호화하지 않고 평문으로 전송할 때 발생하는 취약점

3.2 하드 코딩된 패스워드

  • 패스워드 및 시스템 접속 정보와 같은 민감한 정보가 소스코드 내에 그대로 노출되어 있는 경우

3.3 주석 처리된 중요 정보

  • 해당 소스코드가 어떤 기능을 하는지 설명하는 내요이 많은데, 간혹 개발 단계에서 수정이 발생한 소스코드를 삭제하지 않고 주석 처리를 해 놓는 경우

03. 프로그래밍 언어별 주요 취약점

 

1. 자바

1.1 입력값 처리 함수

1.2 사용자 세션 처리 함수

1.3 그 외

  • 파일 입출력, 데잍터베이스 접근 등에 사용하는 함수도 소스코드 내에서 유심히 살펴보아야 함

2. ASP.NET

2.1 입력값 처리 함수

2.2 사용자 세션 처리 함수

2.3 그 외

  • 파일 입출력, 데잍터베이스 접근 등에 사용하는 함수도 소스코드 내에서 유심히 살펴보아야 함

 

CHAPTER08 웹 해커의 도구

01. 웹 브라우저

02.Burp Suite

1. Target 기능

실습 8-2 Burp Suite의 Target기능 연습하기

사이트의 목록화

웹 사이트 구조 확인

 

2.Spider 기능

  •  해당 사이트에서 수작업으로 확인되지 않은 페이지까지 자동으로 접속하는 기능

3. Intruder 기능

  • 변숫값을 받아서 처리하는 웹 페이지가 있는 경우 공격자가 수작업으로 접속하여 일일이 확인하지 않아도 해당 웹 페이지에 전달되는 변숫값을 자동으로 생성하여 전달하도록 규칙을 만들어서 해당 페이지를 계속 탐색하는 기능

실습 8-3 Burp Suite의 Intruder기능 연습하기

Send to Intruder기능이 활성화 되지 않는다...

 

4.Repeater 기능

  • 특정 요청을 다시 전송하는 매우 간단한 기능이지만 웹 애플리케이션을 해킹할 때 유용한 경우가 많음

03. 웹 취약점 스캐너

1. DB 기반 웹 스캐너

1.1 Nikto

1.2 N-Stealth

 

2. 특정 웹 취약점 스캐너

2.1 Avsinthe

2.2 Sqlmap

 

3. 종합 웹 취약점 스캐너

3.1 Acunetix

실습 8-4 Acunetix 데모버전 사용하기

다운로드를 받으려 이메일을 받았지만... 다운로드 링크는 커녕 지원팀에 문의하라고만 연락이 와있었다..

 

3.2 Appscan

 

CHAPRTER 09 SNS 보안 위협

01. SNS의 탄생과 성장

1. 소셜 네트워크의 정의

  • 종족, 가족, 동성 간의 특정한 네트워크를 만드는 행위

2. 페이스북

3. 웹 2.0

 

02. SNS 보안 위협과 대응 방안

1. 악성 소프트웨어

1.1 개념

  • 운영체제의 취약점을 통해 전파되는 기존의 웜과는 차원이 다를 정도로 확산력이 강함

1.2 대응 방안

  • 출처를 알 수 없는 링크는 함부로 클릭하지 않는다
  • 모르는 사람에게서 받은 이메일에 첨부된 파일은 열어보지 않는다

등 생각보다 쉬운 대응 방안이 있다

 

2. 피싱

2.1 개념

  • 진짜 사이트와 거의 동일하게 꾸며진 가짜 사이트를 이메일 또는 링크를 통해 전달하여 개인 정보를 탈취하는 공격 기법

2.2 대응 방안

  • 피싱 공격 제대로 알기
  • 안티피싱 솔루션 사용
  • 개인 정보는 반드시 확인 후 제공하기

3. 이블 트윈 어택

3.1 개념

  • 사용자를 속이는 소셜 엔지니어링 공격 기법

실습 9-1 소셜 네트워크 사이트에서 위장 계정 확인하기

이렇게 봤을 때 누구의 계정이 진짜 푸틴인지 알 수 없다고 한다...

 

3.2 대응 방안

  • 사용 중인 SNS의 정책 살펴보기
  • 기본 설정에서 개인 정보 유출 위험 확인하기
  • SNS로 공유되는 정보 파악하기
  • 기업의 이블 트윈 어택 방지 방법 확인하기

4. 신원 도용

4.1 개념

  • 허가 없이 타인의 신원 정보를 이용하여 이미 이루어졌거나 시도된 사기 행위

4.2 대응 방안

  • 보안에 대한 확고한 인식을 갖는 것이 가장 기본적임
  • 신원 도용이 발생할 수 있다는 사실을 인지하고 패스워드 등의 중요한 개인 정보를 잘 관리해야 함

5. 사이버 폭력

5.1 개념

  • 온라인상에서 특정인을 지속적으로 음해하고 괴롭히는 일

5.2 대응방안

  • 마음에 두지 말고 무시하기
  • 메시지는 나중에 증거가 될 수 있으니 삭제하지 말고 저장하기

'인터넷 해킹과 보안' 카테고리의 다른 글

PART 03 웹 보안의 세계  (5) 2024.08.01
PART 01 인터넷 보안을 위한 기초 지식  (0) 2024.07.10