보안 위협과 대응

보안 위협과 대응

개요

네트워크 보안 위협은 지속적으로 진화하고 있습니다. 이 장에서는 주요 네트워크 공격 유형, 동작 원리, 그리고 효과적인 대응 방안을 학습합니다.

난이도: ⭐⭐⭐⭐

학습 목표: - 주요 네트워크 공격 유형과 원리 이해 - 스니핑, 스푸핑, DoS/DDoS 공격 식별 - 웹 보안 위협 (SQL Injection, XSS) 개념 파악 - 침입 탐지/방지 시스템(IDS/IPS) 이해 - 효과적인 보안 대응 방안 수립


목차

  1. 네트워크 보안 위협 유형
  2. 스니핑
  3. 스푸핑
  4. DoS/DDoS 공격
  5. MITM 공격
  6. 웹 보안 위협
  7. 침입 탐지 시스템
  8. 보안 대응 방안
  9. 연습 문제
  10. 다음 단계
  11. 참고 자료

1. 네트워크 보안 위협 유형

위협 분류 체계

┌─────────────────────────────────────────────────────────────────┐
│                    보안 위협 분류                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                    공격 유형                              │   │
│  ├─────────────────────────────────────────────────────────┤   │
│  │                                                         │   │
│  │  수동적 공격 (Passive Attack)                            │   │
│  │  └─ 도청, 스니핑, 트래픽 분석                             │   │
│  │     (데이터 변조 없이 정보 수집)                          │   │
│  │                                                         │   │
│  │  능동적 공격 (Active Attack)                             │   │
│  │  └─ 변조, 위조, 서비스 거부                               │   │
│  │     (데이터나 시스템에 직접 영향)                         │   │
│  │                                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                    공격 대상별 분류                        │   │
│  ├─────────────────────────────────────────────────────────┤   │
│  │                                                         │   │
│  │  네트워크 계층 공격                                       │   │
│  │  └─ IP 스푸핑, ICMP 플러딩, 라우팅 공격                   │   │
│  │                                                         │   │
│  │  전송 계층 공격                                          │   │
│  │  └─ TCP SYN Flood, UDP Flood, 세션 하이재킹              │   │
│  │                                                         │   │
│  │  애플리케이션 계층 공격                                   │   │
│  │  └─ SQL Injection, XSS, CSRF                            │   │
│  │                                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

주요 공격 유형 요약

공격 유형 목표 CIA 위협 계층
스니핑 정보 수집 기밀성 L2-L7
스푸핑 신뢰 악용 무결성, 인증 L2-L4
DoS/DDoS 서비스 마비 가용성 L3-L7
MITM 가로채기 기밀성, 무결성 L2-L7
SQL Injection 데이터 탈취 기밀성, 무결성 L7
XSS 사용자 공격 기밀성 L7

2. 스니핑

스니핑 개요

스니핑(Sniffing)은 네트워크 트래픽을 가로채어 정보를 수집하는 수동적 공격입니다.

┌─────────────────────────────────────────────────────────────────┐
│                    스니핑 공격                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  정상 통신:                                                     │
│                                                                 │
│  [클라이언트] ────────────────────────────────▶ [서버]          │
│               "사용자: admin, 비밀번호: 1234"                    │
│                                                                 │
│  스니핑 공격:                                                   │
│                                                                 │
│  [클라이언트] ────────────────────────────────▶ [서버]          │
│               "사용자: admin, 비밀번호: 1234"                    │
│                           │                                     │
│                           │ 도청                                │
│                           ▼                                     │
│                      [공격자]                                   │
│                  "자격 증명 획득!"                               │
│                                                                 │
│  탈취 가능한 정보:                                               │
│  - 사용자 계정 정보                                              │
│  - 이메일 내용                                                  │
│  - 금융 정보                                                    │
│  - 세션 토큰                                                    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

스니핑 유형

1. 패시브 스니핑 (허브 환경)

┌─────────────────────────────────────────────────────────────────┐
│                    허브 환경 스니핑                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  허브(Hub)는 모든 포트에 패킷을 브로드캐스트                      │
│                                                                 │
│        ┌────────────────────────────────┐                      │
│        │             허브               │                      │
│        │  (모든 포트에 패킷 전송)        │                      │
│        └─┬──────┬──────┬──────┬────────┘                      │
│          │      │      │      │                                │
│          ▼      ▼      ▼      ▼                                │
│        ┌──┐   ┌──┐   ┌──┐   ┌──┐                              │
│        │PC│   │PC│   │PC│   │공격자│                           │
│        │A │   │B │   │C │   │ D  │                            │
│        └──┘   └──┘   └──┘   └──┘                              │
│                              ↑                                 │
│                         모든 트래픽                             │
│                         수신 가능                               │
│                                                                 │
│  * 현재 허브는 거의 사용되지 않음                                 │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2. 액티브 스니핑 (스위치 환경)

┌─────────────────────────────────────────────────────────────────┐
│                   스위치 환경 스니핑 기법                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  스위치는 MAC 주소 테이블로 목적지 포트로만 전송                   │
│  → 추가 기법이 필요                                              │
│                                                                 │
│  1. ARP 스푸핑/포이즈닝                                          │
│     - 가짜 ARP 응답으로 MAC 테이블 조작                          │
│     - 트래픽이 공격자를 경유하도록 유도                           │
│                                                                 │
│  2. MAC Flooding                                                │
│     - 대량의 가짜 MAC 주소로 스위치 테이블 넘침                   │
│     - 스위치가 허브처럼 동작                                     │
│                                                                 │
│  3. SPAN/Mirror Port                                            │
│     - 스위치의 모니터링 포트 악용 (내부자 위협)                   │
│                                                                 │
│  4. DHCP 스푸핑                                                 │
│     - 가짜 DHCP 서버로 게이트웨이 조작                           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

ARP 스푸핑 상세

┌─────────────────────────────────────────────────────────────────┐
│                    ARP 스푸핑 공격                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  정상 상태:                                                     │
│                                                                 │
│  [피해자 PC]              [게이트웨이]                           │
│  IP: 192.168.1.10        IP: 192.168.1.1                        │
│  MAC: AA:AA:AA           MAC: BB:BB:BB                          │
│       │                        │                                │
│       │◀─────── 정상 통신 ──────▶│                                │
│                                                                 │
│  ARP 스푸핑 후:                                                 │
│                                                                 │
│  [피해자 PC]        [공격자]         [게이트웨이]                 │
│  192.168.1.10      192.168.1.100    192.168.1.1                 │
│  AA:AA:AA          CC:CC:CC          BB:BB:BB                   │
│       │                │                 │                      │
│       │                │                 │                      │
│  ARP 테이블:       가짜 ARP 전송:     ARP 테이블:                 │
│  ┌───────────┐    "192.168.1.1의     ┌───────────┐             │
│  │192.168.1.1│     MAC은 CC:CC:CC"   │192.168.1.10│             │
│  │→ CC:CC:CC │    "192.168.1.10의    │→ CC:CC:CC │             │
│  └───────────┘     MAC은 CC:CC:CC"   └───────────┘             │
│       │                │                 │                      │
│       │                │                 │                      │
│       └───────▶ 공격자 ◀────────────────┘                       │
│                 (중계 및 도청)                                   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

스니핑 대응 방안

대응 방법 설명
암호화 사용 HTTPS, SSH, VPN 등 암호화 통신
동적 ARP 검사 (DAI) 스위치에서 ARP 패킷 검증
정적 ARP 테이블 중요 서버의 ARP 항목 고정
802.1X 포트 기반 네트워크 접근 제어
네트워크 분리 VLAN으로 민감 트래픽 격리
IDS/IPS 비정상 ARP 트래픽 탐지

3. 스푸핑

스푸핑 개요

스푸핑(Spoofing)은 신원을 위조하여 신뢰를 악용하는 공격입니다.

┌─────────────────────────────────────────────────────────────────┐
│                    스푸핑 유형                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │                       스푸핑 공격                          │ │
│  ├───────────────────────────────────────────────────────────┤ │
│  │                                                           │ │
│  │  IP 스푸핑                                                │ │
│  │  └─ 출발지 IP 주소 위조                                   │ │
│  │                                                           │ │
│  │  MAC 스푸핑                                               │ │
│  │  └─ 출발지 MAC 주소 위조                                  │ │
│  │                                                           │ │
│  │  ARP 스푸핑                                               │ │
│  │  └─ ARP 응답 위조로 IP-MAC 매핑 조작                      │ │
│  │                                                           │ │
│  │  DNS 스푸핑                                               │ │
│  │  └─ DNS 응답 위조로 악성 서버로 유도                       │ │
│  │                                                           │ │
│  │  이메일 스푸핑                                             │ │
│  │  └─ 발신자 주소 위조                                       │ │
│  │                                                           │ │
│  └───────────────────────────────────────────────────────────┘ │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

IP 스푸핑

┌─────────────────────────────────────────────────────────────────┐
│                    IP 스푸핑                                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [공격자]                                      [서버]            │
│  실제 IP: 10.0.0.100                          192.168.1.1       │
│       │                                           │             │
│       │  위조된 패킷                              │             │
│       │  ┌─────────────────────────┐             │             │
│       │  │ 출발지: 192.168.1.50    │             │             │
│       │  │ (위조, 신뢰 IP)         │             │             │
│       │  │ 목적지: 192.168.1.1     │             │             │
│       │  └─────────────────────────┘             │             │
│       │                                           │             │
│       └───────────────────────────────────────────▶             │
│                                                   │             │
│                    응답은 위조된 IP로              │             │
│  [피해자]◀────────────────────────────────────────┘             │
│  192.168.1.50                                                   │
│                                                                 │
│  용도:                                                          │
│  - DoS 공격 (반사 공격)                                          │
│  - 접근 제어 우회                                                │
│  - 로깅 회피                                                    │
│                                                                 │
│  한계:                                                          │
│  - TCP 연결 수립 어려움 (3-way handshake)                       │
│  - 응답 수신 불가                                                │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

DNS 스푸핑

┌─────────────────────────────────────────────────────────────────┐
│                    DNS 스푸핑                                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  정상 DNS 조회:                                                 │
│                                                                 │
│  [사용자]          [DNS 서버]          [bank.com]               │
│     │                 │                  IP: 1.2.3.4            │
│     │──"bank.com?"───▶│                     │                   │
│     │                 │──── 조회 ──────────▶│                   │
│     │◀─"1.2.3.4"──────│                     │                   │
│     │                                        │                   │
│     │───────── 정상 접속 ───────────────────▶│                   │
│                                                                 │
│  DNS 스푸핑 공격:                                               │
│                                                                 │
│  [사용자]     [공격자]     [DNS 서버]    [bank.com]  [악성 서버] │
│     │           │            │            │         IP:9.9.9.9  │
│     │──"bank.com?"─────────▶│            │            │        │
│     │           │            │            │            │        │
│     │◀─"9.9.9.9"─┘           │            │            │        │
│     │  (가짜 응답)            │            │            │        │
│     │     (더 빠르게 응답)                               │        │
│     │                                                   │        │
│     │───────────────── 악성 서버 접속 ─────────────────▶│        │
│                        (피싱 사이트)                             │
│                                                                 │
│  공격 방법:                                                     │
│  1. ARP 스푸핑 후 DNS 응답 조작                                  │
│  2. DNS 캐시 포이즈닝                                           │
│  3. 로컬 hosts 파일 변조                                        │
│  4. Rogue DNS 서버 (DHCP 스푸핑과 결합)                          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

스푸핑 대응 방안

스푸핑 유형 대응 방법
IP 스푸핑 인그레스/이그레스 필터링, BCP38
MAC 스푸핑 802.1X, 포트 보안
ARP 스푸핑 DAI, 정적 ARP, ARP 워치
DNS 스푸핑 DNSSEC, DoH/DoT, DNS 모니터링
이메일 스푸핑 SPF, DKIM, DMARC

4. DoS/DDoS 공격

DoS 개요

DoS(Denial of Service)는 시스템이나 네트워크 자원을 고갈시켜 정상 서비스를 방해하는 공격입니다.

┌─────────────────────────────────────────────────────────────────┐
│                    DoS vs DDoS                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  DoS (단일 출처)                    DDoS (분산 출처)             │
│                                                                 │
│     [공격자]                          [공격자]                   │
│        │                                 │                      │
│        │                          ┌──────┼──────┐               │
│        │                          │      │      │               │
│        ▼                         ▼      ▼      ▼              │
│     [대상]                     [봇] [봇] [봇] [봇]             │
│                                   │      │      │               │
│                                   └──────┼──────┘               │
│                                          │                      │
│                                          ▼                      │
│                                       [대상]                    │
│                                                                 │
│  특징:                              특징:                       │
│  - 단일 IP 차단으로 방어 가능        - 다수의 출처로 차단 어려움   │
│  - 대역폭 한계                       - 봇넷 활용                 │
│                                     - 대규모 트래픽 생성         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

DoS 공격 유형

1. TCP SYN Flood

┌─────────────────────────────────────────────────────────────────┐
│                    TCP SYN Flood                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  정상 TCP 3-way Handshake:                                      │
│                                                                 │
│  [클라이언트]                              [서버]                │
│      │                                        │                 │
│      │──── SYN ────────────────────────────▶ │                 │
│      │                                        │ 연결 대기       │
│      │◀─── SYN-ACK ──────────────────────── │ (리소스 할당)    │
│      │                                        │                 │
│      │──── ACK ────────────────────────────▶ │                 │
│      │                                        │ 연결 완료       │
│                                                                 │
│  SYN Flood 공격:                                                │
│                                                                 │
│  [공격자]                                  [서버]               │
│      │                                        │                 │
│      │──── SYN (위조 IP) ──────────────────▶ │                 │
│      │──── SYN (위조 IP) ──────────────────▶ │ Half-open       │
│      │──── SYN (위조 IP) ──────────────────▶ │ 연결 누적       │
│      │──── SYN (위조 IP) ──────────────────▶ │                 │
│      :           ×1000                        │ 리소스 고갈     │
│                                              │                 │
│                                        ┌─────┴─────┐           │
│                                        │ 연결 테이블 │           │
│                                        │ 가득 참    │           │
│                                        │           │           │
│                                        │ 정상 연결  │           │
│                                        │ 불가능    │           │
│                                        └───────────┘           │
│                                                                 │
│  대응: SYN Cookies, 연결 제한, 방화벽 필터링                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2. UDP Flood

┌─────────────────────────────────────────────────────────────────┐
│                    UDP Flood                                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [공격자/봇넷]                                                  │
│       │                                                         │
│       │  대량의 UDP 패킷                                        │
│       │  (무작위 포트)                                          │
│       ▼                                                         │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                        대상 서버                          │   │
│  │                                                         │   │
│  │   UDP 포트 확인 → 서비스 없음 → ICMP 응답 생성           │   │
│  │                                                         │   │
│  │   반복 처리로 CPU/대역폭 소진                             │   │
│  │                                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  특징:                                                          │
│  - 비연결형 프로토콜 악용                                        │
│  - 대역폭 포화                                                  │
│  - 출발지 IP 스푸핑 용이                                         │
│                                                                 │
│  대응: Rate Limiting, 블랙홀 라우팅, UDP 서비스 최소화           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3. Amplification Attack (증폭 공격)

┌─────────────────────────────────────────────────────────────────┐
│                    증폭 공격 (DNS, NTP)                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  DNS Amplification:                                             │
│                                                                 │
│  [공격자]                                                       │
│      │                                                          │
│      │  작은 요청 (60 bytes)                                    │
│      │  출발지: 피해자 IP (스푸핑)                               │
│      ▼                                                          │
│  ┌─────────┐                                                   │
│  │ 오픈    │  큰 응답 (3000 bytes)                              │
│  │ DNS    │──────────────────────────────▶ [피해자]            │
│  │ 서버    │  증폭 비율: 50배                                   │
│  └─────────┘                                                   │
│                                                                 │
│  ┌────────────────────────────────────────────────────────────┐│
│  │  프로토콜    │  증폭 비율  │  사용 포트                      ││
│  ├────────────────────────────────────────────────────────────┤│
│  │  DNS        │  28-54x    │  UDP 53                        ││
│  │  NTP        │  556x      │  UDP 123                       ││
│  │  SSDP       │  30x       │  UDP 1900                      ││
│  │  Memcached  │  51,000x   │  UDP 11211                     ││
│  └────────────────────────────────────────────────────────────┘│
│                                                                 │
│  대응:                                                          │
│  - 오픈 리졸버 차단                                             │
│  - BCP38 (인그레스 필터링)                                      │
│  - Response Rate Limiting (RRL)                                 │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

DDoS 공격 대응

┌─────────────────────────────────────────────────────────────────┐
│                    DDoS 방어 전략                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  계층별 방어:                                                   │
│                                                                 │
│  [인터넷]                                                       │
│     │                                                           │
│     ▼                                                           │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 1. CDN/클라우드 기반 보호                                │   │
│  │    - Cloudflare, AWS Shield, Akamai                     │   │
│  │    - 분산 처리, 대역폭 흡수                              │   │
│  └─────────────────────────────────────────────────────────┘   │
│     │                                                           │
│     ▼                                                           │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 2. ISP 레벨 필터링                                       │   │
│  │    - 블랙홀 라우팅                                       │   │
│  │    - 업스트림 필터링                                      │   │
│  └─────────────────────────────────────────────────────────┘   │
│     │                                                           │
│     ▼                                                           │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 3. 온프레미스 장비                                       │   │
│  │    - DDoS 방어 장비                                      │   │
│  │    - 방화벽/IPS                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
│     │                                                           │
│     ▼                                                           │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 4. 애플리케이션 레벨                                      │   │
│  │    - Rate Limiting                                       │   │
│  │    - CAPTCHA                                            │   │
│  │    - WAF                                                │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

5. MITM 공격

MITM 개요

MITM(Man-in-the-Middle)은 두 당사자 간의 통신을 가로채어 도청하거나 변조하는 공격입니다.

┌─────────────────────────────────────────────────────────────────┐
│                    MITM 공격                                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  정상 통신:                                                     │
│                                                                 │
│  [클라이언트] ◀═══════════════════════════════▶ [서버]          │
│                      직접 통신                                   │
│                                                                 │
│  MITM 공격:                                                     │
│                                                                 │
│  [클라이언트]        [공격자]         [서버]                     │
│       │                │                │                       │
│       │════════════════│════════════════│                       │
│       │    가짜 연결    │    가짜 연결    │                       │
│       │                │                │                       │
│       │──"계좌이체"───▶│                │                       │
│       │                │──"계좌이체"───▶│                       │
│       │                │(내용 변조 가능) │                       │
│       │                │                │                       │
│       │                │◀──"완료"──────│                       │
│       │◀──"완료"──────│                │                       │
│                                                                 │
│  공격자 능력:                                                   │
│  - 모든 통신 내용 도청                                          │
│  - 데이터 변조                                                  │
│  - 세션 하이재킹                                                │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

MITM 공격 기법

1. SSL Stripping

┌─────────────────────────────────────────────────────────────────┐
│                    SSL Stripping                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  HTTPS 연결을 HTTP로 다운그레이드                                │
│                                                                 │
│  [클라이언트]        [공격자]         [서버]                     │
│       │                │                │                       │
│       │──HTTP 요청───▶│                │                       │
│       │                │══HTTPS═══════▶│                       │
│       │                │                │                       │
│       │◀──HTTP 응답───│◀══HTTPS════════│                       │
│       │    (평문)       │   (암호화)     │                       │
│       │                │                │                       │
│       │ 암호화 없이     │ 양쪽 연결 유지  │                       │
│       │ 통신           │ 중계 및 도청    │                       │
│                                                                 │
│  대응:                                                          │
│  - HSTS (HTTP Strict Transport Security)                        │
│  - HTTPS Everywhere                                             │
│  - 주소창의 자물쇠 확인                                          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2. Wi-Fi MITM (Evil Twin)

┌─────────────────────────────────────────────────────────────────┐
                    Evil Twin 공격                                
├─────────────────────────────────────────────────────────────────┤
                                                                 
  [정상 AP]              [Evil Twin]            [피해자]          
  SSID: CafeWiFi        SSID: CafeWiFi         스마트폰          
  신호: 약함            신호: 강함                               
                                                             
                           │◀══════════════════│              
                             강한 신호에 연결                 
                                                             
                ┌──────────┼──────────┐                      
                 공격자 노트북                               
                 - 패킷 캡처                                
                 - DNS 스푸핑                               
                 - 피싱 페이지                              
                └──────────┼──────────┘                      
                                                             
     │◀═════════════════════│                                  
            인터넷 연결                                          
                                                                 
  대응:                                                          
  - VPN 사용                                                    
  - 공개 Wi-Fi 주의                                             
  - 802.1X 인증                                                 
                                                                 
└─────────────────────────────────────────────────────────────────┘

MITM 대응 방안

대응 방법 설명
TLS/SSL 사용 종단간 암호화로 도청 방지
인증서 검증 서버 인증서 유효성 확인
HSTS HTTPS 강제 사용
Certificate Pinning 특정 인증서만 허용
VPN 공개 네트워크에서 터널 사용
2FA 자격 증명 도용 방지

6. 웹 보안 위협

SQL Injection

┌─────────────────────────────────────────────────────────────────┐
                    SQL Injection                                 
├─────────────────────────────────────────────────────────────────┤
                                                                 
  취약한 코드 예시:                                               
                                                                 
  query = "SELECT * FROM users WHERE id = '" + user_input + "'"  
                                                                 
  정상 입력:                                                     
  user_input = "123"                                             
  query = "SELECT * FROM users WHERE id = '123'"                 
                                                                 
  악의적 입력:                                                   
  user_input = "' OR '1'='1"                                     
  query = "SELECT * FROM users WHERE id = '' OR '1'='1'"         
                 모든 사용자 정보 노출                           
                                                                 
   위험한 공격:                                                
  user_input = "'; DROP TABLE users;--"                          
  query = "SELECT * FROM users WHERE id = ''; DROP TABLE users;--"
                 테이블 삭제                                     
                                                                 
  ┌────────────────────────────────────────────────────────────┐│
   공격 유형                                                   ││
  ├────────────────────────────────────────────────────────────┤│
   In-band SQLi    : 결과가 직접 화면에 표시                   ││
   Blind SQLi      : /거짓 응답으로 정보 추출               ││
   Out-of-band SQLi: 다른 채널로 결과 전송                    ││
  └────────────────────────────────────────────────────────────┘│
                                                                 
  대응:                                                          
  - Prepared Statement (매개변수화된 쿼리) 사용                   
  - 입력 검증  이스케이프                                      
  - 최소 권한 DB 계정                                            
  - WAF 사용                                                    
                                                                 
└─────────────────────────────────────────────────────────────────┘

안전한 코드 예시

# 취약한 코드 (Python)
cursor.execute("SELECT * FROM users WHERE id = '%s'" % user_id)

# 안전한 코드 (Prepared Statement)
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
// 취약한 코드 (Java)
String query = "SELECT * FROM users WHERE id = '" + userId + "'";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);

// 안전한 코드 (PreparedStatement)
String query = "SELECT * FROM users WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1, userId);
ResultSet rs = pstmt.executeQuery();

XSS (Cross-Site Scripting)

┌─────────────────────────────────────────────────────────────────┐
│                    XSS 공격                                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│   Stored XSS (저장형)                                         │
│  ├─────────────────────────────────────────────────────────┤   │
│                                                              │
│    1. [공격자] ──악성 스크립트 게시──▶ [웹 서버 DB]           │
│       게시글: <script>악성코드</script>                      │
│                                                              │
│    2. [피해자] ──페이지 요청──▶ [웹 서버]                     │
│                                                              │
│    3. [피해자] ◀──악성 스크립트 포함 응답──                    │
│       브라우저에서 스크립트 실행                              │
│        쿠키 탈취, 세션 하이재킹                             │
│                                                              │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│   Reflected XSS (반사형)                                      │
│  ├─────────────────────────────────────────────────────────┤   │
│                                                              │
│    공격 URL:                                                 │
│    http://example.com/search?q=<script>악성코드</script>     │
│                                                              │
│    1. [공격자] ──악성 URL 전송──▶ [피해자]                    │
│    2. [피해자] ──URL 클릭──▶ [웹 서버]                        │
│    3. [웹 서버] ──검색어 그대로 반환──▶ [피해자]              │
│       브라우저에서 스크립트 실행                              │
│                                                              │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  대응:                                                          │
│  - 출력 인코딩 (HTML Entity)                                    │
│  - 입력 검증                                                   │
│  - CSP (Content Security Policy)                               │
│  - HttpOnly 쿠키                                               │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

CSRF (Cross-Site Request Forgery)

┌─────────────────────────────────────────────────────────────────┐
│                    CSRF 공격                                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  사용자가 로그인된 상태를 악용하여 원치 않는 요청 실행             │
│                                                                 │
│  [피해자]                [악성 사이트]         [은행]            │
│  (은행 로그인 상태)          │               bank.com           │
│       │                     │                  │               │
│       │──악성 페이지 방문──▶│                  │               │
│       │                     │                  │               │
│       │   숨겨진 요청 발생:                    │               │
│       │   <img src="http://bank.com/transfer?to=attacker&      │
│       │                     amount=10000">     │               │
│       │                     │                  │               │
│       │──────────────────────────────────────▶│               │
│       │  세션 쿠키 포함된 요청                  │               │
│       │  (은행은 정상 요청으로 인식)            │               │
│       │                     │                  │               │
│       │                     │       ┌──────────┴───────────┐  │
│       │                     │       │ 공격자 계좌로 송금    │  │
│       │                     │       │ 완료                 │  │
│       │                     │       └──────────────────────┘  │
│                                                                 │
│  대응:                                                          │
│  - CSRF 토큰                                                   │
│  - SameSite 쿠키                                               │
│  - Referer 검증                                                │
│  - 중요 작업에 재인증                                           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

7. 침입 탐지 시스템

IDS/IPS 개요

┌─────────────────────────────────────────────────────────────────┐
                    IDS vs IPS                                    
├─────────────────────────────────────────────────────────────────┤
                                                                 
  IDS (Intrusion Detection System) - 탐지                        
  ─────────────────────────────────────                          
                                                                 
  [인터넷] ──────────────▶ [방화벽] ──────────────▶ [내부망]      
                                                                
                               미러링                           
                                                                
                          [IDS]                                  
                       탐지  경고                               
                                                                 
  IPS (Intrusion Prevention System) - 탐지 + 차단                 
  ───────────────────────────────────────────                    
                                                                 
  [인터넷] ────▶ [방화벽] ────▶ [IPS] ────▶ [내부망]              
                                                                
                            인라인 배치                           
                          탐지  차단                            
                                                                 
└─────────────────────────────────────────────────────────────────┘

IDS 유형

유형 설명 장점 단점
NIDS 네트워크 트래픽 분석 전체 트래픽 모니터링 암호화 트래픽 분석 어려움
HIDS 호스트 활동 분석 상세한 분석 가능 호스트별 설치 필요
시그니처 기반 알려진 패턴 매칭 알려진 공격 정확 탐지 제로데이 탐지 불가
이상 탐지 정상 패턴 벗어나면 탐지 새로운 공격 탐지 가능 오탐(False Positive) 높음

IDS/IPS 시그니처 예시 (Snort)

┌─────────────────────────────────────────────────────────────────┐
                    Snort 규칙 예시                               
├─────────────────────────────────────────────────────────────────┤
                                                                 
  # SQL Injection 탐지                                           
  alert tcp any any -> any 80 (                                  
    msg:"SQL Injection Attempt";                                 
    content:"SELECT"; nocase;                                    
    content:"FROM"; nocase;                                      
    content:"WHERE"; nocase;                                     
    sid:1000001;                                                 
  )                                                              
                                                                 
  # XSS 공격 탐지                                                
  alert tcp any any -> any 80 (                                  
    msg:"XSS Attack Attempt";                                    
    content:"<script>"; nocase;                                  
    sid:1000002;                                                 
  )                                                              
                                                                 
  # 포트 스캔 탐지                                               
  alert tcp any any -> any any (                                 
    msg:"Possible Port Scan";                                    
    flags:S;                                                     
    threshold:type threshold, track by_src, count 5, seconds 60; 
    sid:1000003;                                                 
  )                                                              
                                                                 
  규칙 구조:                                                     
  [동작] [프로토콜] [출발지] [포트] -> [목적지] [포트] (옵션)      
                                                                 
└─────────────────────────────────────────────────────────────────┘

SIEM (Security Information and Event Management)

┌─────────────────────────────────────────────────────────────────┐
│                    SIEM 시스템                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                     로그 수집                            │   │
│  │  ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐       │   │
│  │  │방화벽│ │IDS │ │서버│ │ DB │ │ 앱 │ │ AD │           │   │
│  │  └──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘       │   │
│  │     └───────┴───────┴───────┴───────┴───────┘           │   │
│  └─────────────────────────────┬───────────────────────────┘   │
│                                │                               │
│                                ▼                               │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                    SIEM 엔진                             │   │
│  │  ┌───────────────────────────────────────────────────┐  │   │
│  │  │ 정규화 → 상관분석 → 이상탐지 → 알림/대시보드       │  │   │
│  │  └───────────────────────────────────────────────────┘  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                │                               │
│                                ▼                               │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                     보안 대응                            │   │
│  │  - 실시간 알림                                          │   │
│  │  - 사고 조사                                            │   │
│  │  - 규정 준수 보고서                                      │   │
│  │  - 포렌식 분석                                          │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  주요 SIEM 제품:                                                │
│  - Splunk                                                      │
│  - IBM QRadar                                                  │
│  - Elastic SIEM                                                │
│  - Microsoft Sentinel                                          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

8. 보안 대응 방안

보안 운영 체계

┌─────────────────────────────────────────────────────────────────┐
│                    보안 운영 사이클                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                    ┌─────────────┐                              │
│                    │   식별      │                              │
│                    │ (Identify)  │                              │
│                    └──────┬──────┘                              │
│                           │                                     │
│         ┌─────────────────┼─────────────────┐                  │
│         │                 │                 │                  │
│         ▼                 │                 ▼                  │
│  ┌─────────────┐          │          ┌─────────────┐           │
│  │   보호      │          │          │   복구      │           │
│  │ (Protect)   │          │          │ (Recover)   │           │
│  └──────┬──────┘          │          └──────┬──────┘           │
│         │                 │                 │                  │
│         │                 │                 │                  │
│         ▼                 ▼                 ▼                  │
│  ┌─────────────┐   ┌─────────────┐   ┌─────────────┐          │
│  │   탐지      │   │   분석      │   │   대응      │          │
│  │ (Detect)    │──▶│ (Analyze)   │──▶│ (Respond)   │          │
│  └─────────────┘   └─────────────┘   └─────────────┘          │
│                                                                 │
│  NIST Cybersecurity Framework 기반                              │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

예방 (Prevention)

영역 대응 방법
네트워크 방화벽, VLAN, 네트워크 분리
시스템 패치 관리, 보안 설정, 최소 권한
애플리케이션 시큐어 코딩, 입력 검증, WAF
사용자 보안 교육, 피싱 훈련, MFA

탐지 (Detection)

┌─────────────────────────────────────────────────────────────────┐
│                    탐지 체계                                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 네트워크 모니터링                                        │   │
│  │ - IDS/IPS                                               │   │
│  │ - 네트워크 트래픽 분석 (NTA)                             │   │
│  │ - NetFlow 분석                                          │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 엔드포인트 모니터링                                       │   │
│  │ - EDR (Endpoint Detection and Response)                  │   │
│  │ - 안티바이러스                                           │   │
│  │ - 호스트 기반 IDS (HIDS)                                 │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 로그 분석                                                │   │
│  │ - SIEM                                                  │   │
│  │ - 중앙 집중식 로그 관리                                   │   │
│  │ - 이상 탐지                                              │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 위협 인텔리전스                                          │   │
│  │ - IOC (Indicators of Compromise)                         │   │
│  │ - 위협 피드                                              │   │
│  │ - 취약점 정보                                            │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

대응 (Response)

┌─────────────────────────────────────────────────────────────────┐
│                    사고 대응 절차                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. 준비 (Preparation)                                          │
│     └─ 대응 계획 수립, 팀 구성, 도구 준비                        │
│                                                                 │
│  2. 식별 (Identification)                                       │
│     └─ 사고 감지, 범위 파악, 심각도 평가                         │
│                                                                 │
│  3. 봉쇄 (Containment)                                          │
│     └─ 단기: 즉각 격리                                          │
│     └─ 장기: 임시 수정 적용                                     │
│                                                                 │
│  4. 제거 (Eradication)                                          │
│     └─ 악성코드 제거, 취약점 패치                               │
│                                                                 │
│  5. 복구 (Recovery)                                             │
│     └─ 시스템 복원, 정상 운영 재개                               │
│                                                                 │
│  6. 교훈 (Lessons Learned)                                      │
│     └─ 사후 분석, 개선 사항 도출                                 │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

보안 체크리스트

┌─────────────────────────────────────────────────────────────────┐
│                    기본 보안 체크리스트                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  네트워크 보안                                                  │
│  ☐ 방화벽 규칙 검토 및 최소화                                    │
│  ☐ 네트워크 세분화 (VLAN)                                       │
│  ☐ 불필요한 포트/서비스 차단                                     │
│  ☐ VPN 암호화 통신                                              │
│  ☐ IDS/IPS 운영                                                │
│                                                                 │
│  시스템 보안                                                    │
│  ☐ 정기적인 보안 패치 적용                                       │
│  ☐ 불필요한 서비스 비활성화                                      │
│  ☐ 강력한 비밀번호 정책                                         │
│  ☐ SSH 키 기반 인증                                             │
│  ☐ 로그 수집 및 모니터링                                         │
│                                                                 │
│  애플리케이션 보안                                              │
│  ☐ 입력값 검증                                                  │
│  ☐ Prepared Statement 사용                                      │
│  ☐ 출력 인코딩                                                  │
│  ☐ HTTPS 적용                                                   │
│  ☐ 보안 헤더 설정                                               │
│                                                                 │
│  데이터 보안                                                    │
│  ☐ 중요 데이터 암호화                                           │
│  ☐ 정기적인 백업                                                │
│  ☐ 접근 권한 최소화                                             │
│  ☐ 로그 보관                                                    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

9. 연습 문제

기초 문제

  1. 스니핑/스푸핑
  2. 스니핑과 스푸핑의 차이를 설명하세요.
  3. ARP 스푸핑의 동작 원리를 설명하세요.

  4. DoS/DDoS

  5. DoS와 DDoS의 차이는?
  6. SYN Flood 공격의 원리와 대응 방법을 설명하세요.

  7. 웹 보안

  8. SQL Injection을 방지하는 가장 효과적인 방법은?
  9. Stored XSS와 Reflected XSS의 차이는?

중급 문제

  1. MITM
  2. SSL Stripping 공격을 설명하세요.
  3. HSTS가 이 공격을 방지하는 원리는?

  4. IDS/IPS

  5. 시그니처 기반과 이상 탐지의 장단점을 비교하세요.
  6. IDS와 IPS의 배치 위치가 다른 이유는?

  7. 시나리오 분석 다음 상황에서 발생할 수 있는 공격과 대응 방안을 제시하세요: ```

  8. 회사 네트워크에서 ARP 테이블이 비정상적으로 변경됨
  9. 웹 서버 접속 시 브라우저에 자물쇠가 없음
  10. 데이터베이스에서 대량의 SELECT 쿼리가 실행됨 ```

고급 문제

  1. 종합 보안
  2. 다음 아키텍처의 보안 취약점을 식별하세요: 인터넷 ─── 웹 서버 ─── DB 서버 (같은 네트워크)

  3. 사고 대응

  4. 랜섬웨어 감염 시 대응 절차를 순서대로 나열하세요.

10. 다음 단계

17_Practical_Network_Tools.md에서 ping, traceroute, Wireshark 등 실무 네트워크 도구 사용법을 배워봅시다!


11. 참고 자료

보안 프레임워크

도구

  • Snort/Suricata - 오픈소스 IDS/IPS
  • Wireshark - 패킷 분석
  • Burp Suite - 웹 보안 테스트
  • Nmap - 네트워크 스캐닝

학습 자료

to navigate between lessons