본문으로 건너뛰기

Day 4: 네트워크 보안

  • 보안 기초

    • 암호화(Encryption) 개념
    • 대칭키, 공개키 암호화 방식
  • 웹 보안

    • SSL/TLS 프로토콜
    • HTTPS 동작 원리
    • XSS, CSRF, SQL Injection 등 웹 공격 유형
  • 네트워크 보안 기초

    • 방화벽(Firewall), IDS, IPS
    • VPN(Virtual Private Network)
    • DDoS 원리와 방어 전략

1. 보안 기초

1.1 암호화(Encryption) 개념

  • 암호화는 평문(Plaintext)을 암호문(Ciphertext)으로 변환하여, 권한이 없는 사람이 내용을 해독하기 어렵게 만드는 기법을 의미한다.
  • 복호화(Decryption)를 통해 암호문을 다시 평문으로 되돌릴 수 있다.
  • 안전한 통신, 데이터 보호, 인증 등에 핵심적으로 사용된다.

1.2 대칭키 암호화(Symmetric Key Encryption)

  • 특징
    • 암호화와 복호화에 동일한 키(Key)를 사용한다.
    • 대표 알고리즘: AES, DES, 3DES 등.
    • 연산 속도가 빠르며, 대용량 데이터 암호화에 적합하다.
  • 장점
    • 처리 속도가 빠르고 구현이 단순하다.
  • 단점
    • 키 교환(Key Exchange) 문제 발생: 상대방과 같은 키를 미리 안전하게 공유해야 한다는 점이 어렵다.
    • 여러 명과 통신할 때, 모든 쌍마다 다른 키를 공유해야 하므로 관리가 복잡하다.

1.3 공개키 암호화(Public Key Encryption)

  • 특징
    • 공개키(Public Key)와 비밀키(Private Key)를 한 쌍으로 사용한다.
    • 공개키로 암호화한 메시지는 오직 해당 쌍의 비밀키로만 복호화 가능하다.
    • 대표 알고리즘: RSA, ECC(타원 곡선 암호).
  • 장점
    • 키 교환이 비교적 용이: 공개키는 마음껏 배포해도 되고, 비밀키는 소유자만 안전하게 관리한다.
    • 디지털 서명(Digital Signature) 기능 제공(비밀키로 서명, 공개키로 검증).
  • 단점
    • 대칭키 암호화보다 연산 부담이 훨씬 크다.
    • 대용량 데이터 암호화에는 부적합, 주로 키 교환이나 전자서명에 활용된다.

2. 웹 보안

2.1 SSL/TLS 프로토콜

  • 역할
    • 인터넷 상에서 데이터 통신을 암호화하고, 서버(또는 클라이언트) 인증을 통해 도청·변조·위장 공격을 방지한다.
  • 과정
    1. 핸드셰이크: 서버가 인증서(Certificate)를 전달하고, 클라이언트는 이를 검증한다. 이후 공개키를 사용해 대칭키(세션키) 교환.
    2. 암호화 통신: 세션키를 사용해 실제 데이터(HTTP 등)를 암호화해 전송.
    3. 무결성 검증: 메시지 인증 코드(MAC, HMAC 등)로 데이터 위·변조 여부 확인.
  • 버전
    • SSL은 3.0 버전을 끝으로 TLS로 대체.
    • TLS 1.2, 1.3 등이 보편적으로 사용.

2.2 HTTPS 동작 원리

  1. 사용자가 https:// 로 시작하는 URL 요청
  2. 서버가 인증서(공개키 포함)를 클라이언트에게 전송
  3. 클라이언트가 인증서의 유효성을 검증(CA 서명 확인 등)
  4. 일회성 세션키(대칭키)를 공개키로 암호화해 서버로 전송
  5. 이후 대칭키를 통해 HTTP 메시지를 암호화해 교환(HTTPS)

2.3 XSS, CSRF, SQL Injection 등 웹 공격 유형

  • XSS (Cross-Site Scripting)
    • 웹 페이지에 악성 스크립트가 삽입되어, 사용자의 브라우저에서 의도치 않은 스크립트가 실행되는 공격.
    • 예: 게시판에 자바스크립트 코드를 삽입, 방문자의 쿠키 탈취.
  • CSRF (Cross-Site Request Forgery)
    • 사용자의 권한을 탈취해, 공격자가 의도한 요청을 사용자의 브라우저로부터 발생시키는 공격.
    • 예: 사용자가 인증된 상태에서 특정 악성 링크 클릭 시, 서버는 정상 사용자 요청으로 인식.
  • SQL Injection
    • 입력값에 SQL 쿼리를 삽입해, DB에서 민감 정보를 무단으로 열람·삭제하거나 시스템 제어.
    • 예: 로그인 폼에 ' OR '1'='1 등의 코드를 입력해 인증 우회.

대응책: 입력값 검증, XSS 필터링, CSRF 토큰 사용, Prepared Statement 사용 등 보안 코딩 기법과 웹 방화벽(Web Application Firewall) 등을 적용한다.


3. 네트워크 보안 기초

3.1 방화벽(Firewall), IDS, IPS

  • 방화벽(Firewall)
    • 내부·외부 네트워크 트래픽을 규칙 기반으로 제어.
    • 패킷 필터링(OSI 3~4계층), 애플리케이션 게이트웨이(OSI 7계층) 등 다양한 방식 존재.
  • IDS (Intrusion Detection System)
    • 네트워크 트래픽 또는 시스템 로그를 분석하여 침입 의심 패턴을 탐지·알림.
    • 수동적 대응(탐지·알림)에 중점.
  • IPS (Intrusion Prevention System)
    • IDS 기능 + 실시간 차단·방어 기능.
    • 의심 트래픽을 자동으로 차단하거나 세션을 종료시킴.

3.2 VPN (Virtual Private Network)

  • 개념
    • 공용 인터넷망을 사설망처럼 안전하게 이용할 수 있도록, 암호화 터널을 구성하는 기술.
    • 원격지 근무, 지사-본사 간 연결 등에 사용.
  • 동작 원리
    • 송신측과 수신측 사이에 가상 터널을 생성하고, 데이터를 암호화해 전달.
    • IPSec, SSL VPN 등 다양한 구현 방식.

3.3 DDoS(Distributed Denial of Service) 원리와 방어 전략

  • 원리
    • 대규모 트래픽을 동시에 목표 서버로 보내 과부하나 장애를 일으킨다.
    • 봇넷 등 다수의 좀비 PC를 동원, 서버·네트워크 자원을 고갈시킨다.
  • 방어 전략
    1. 트래픽 필터링: 비정상 패킷 차단, SYN 쿠키 등 이용
    2. 대역폭 확장: CDN, 로드밸런싱 등을 통해 트래픽 분산
    3. 방화벽/IPS 튜닝: 임계값 설정, 자동 차단 정책
    4. 모니터링 & 경보: 유입 트래픽을 실시간 감시하여 이상 징후 조기 파악

요약

  1. 암호화 기초
    • 대칭키와 공개키 암호 방식을 구분해 적절히 사용(속도 vs 키 교환 난이도).
  2. 웹 보안
    • HTTPS는 SSL/TLS를 이용하여 HTTP 통신을 안전하게 보호.
    • XSS, CSRF, SQL Injection 등 공격을 막기 위해 입력 검증, 토큰, Prepared Statement 등을 활용.
  3. 네트워크 보안 기초
    • 방화벽, IDS/IPS, VPN, DDoS 대책 등을 통해 네트워크 트래픽을 모니터링하고 안전한 통신 환경을 구축.