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 프로토콜
- 역할
- 인터넷 상에서 데이터 통신을 암호화하고, 서버(또는 클라이언트) 인증을 통해 도청·변조·위장 공격을 방지한다.
- 과정
- 핸드셰이크: 서버가 인증서(Certificate)를 전달하고, 클라이언트는 이를 검증한다. 이후 공개키를 사용해 대칭키(세션키) 교환.
- 암호화 통신: 세션키를 사용해 실제 데이터(HTTP 등)를 암호화해 전송.
- 무결성 검증: 메시지 인증 코드(MAC, HMAC 등)로 데이터 위·변조 여부 확인.
- 버전
- SSL은 3.0 버전을 끝으로 TLS로 대체.
- TLS 1.2, 1.3 등이 보편적으로 사용.
2.2 HTTPS 동작 원리
- 사용자가 https:// 로 시작하는 URL 요청
- 서버가 인증서(공개키 포함)를 클라이언트에게 전송
- 클라이언트가 인증서의 유효성을 검증(CA 서명 확인 등)
- 일회성 세션키(대칭키)를 공개키로 암호화해 서버로 전송
- 이후 대칭키를 통해 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를 동원, 서버·네트워크 자원을 고갈시킨다.
- 방어 전략
- 트래픽 필터링: 비정상 패킷 차단, SYN 쿠키 등 이용
- 대역폭 확장: CDN, 로드밸런싱 등을 통해 트래픽 분산
- 방화벽/IPS 튜닝: 임계값 설정, 자동 차단 정책
- 모니터링 & 경보: 유입 트래픽을 실시간 감시하여 이상 징후 조기 파악
요약
- 암호화 기초
- 대칭키와 공개키 암호 방식을 구분해 적절히 사용(속도 vs 키 교환 난이도).
- 웹 보안
- HTTPS는 SSL/TLS를 이용하여 HTTP 통신을 안전하게 보호.
- XSS, CSRF, SQL Injection 등 공격을 막기 위해 입력 검증, 토큰, Prepared Statement 등을 활용.
- 네트워크 보안 기초
- 방화벽, IDS/IPS, VPN, DDoS 대책 등을 통해 네트워크 트래픽을 모니터링하고 안전한 통신 환경을 구축.