⚠️ = 기출 함정 포인트. 여기 있는 건 전부 ⭐⭐⭐
01. 보안 개요
CIA 3요소
| 목표 | 지키는 수단 | 깨뜨리는 공격 |
|---|---|---|
| 기밀성 | 암호화 | 도청, 스니핑 |
| 무결성 | 해시, 전자서명 | 변조 |
| 가용성 | 백업, 이중화 | DoS |
- 추가 : 인증, 부인 방지(전자서명으로만), 책임 추적성(로그)
침해 유형
| 흐름 | 침해 | 소극적 vs 적극적 |
|---|---|---|
| 가로막기 → 가용성 | 가로채기 → 기밀성 | 소극적 = 도청, 트래픽 분석 (듣기만) |
| 변조 → 무결성 | 위조 → 무결성·인증 | 적극적 = 변조, 재전송, 가장, DoS |
⚠️ 트래픽 분석은 소극적
위험 관리
- 위험 = 자산 × 위협 × 취약점
- 처리 4가지 : 회피(안 함) / 전가(보험) / 감소(대책) / 수용(그냥 둠)
02. 암호
대칭키 vs 공개키
| 대칭키 | 공개키 | |
|---|---|---|
| 키 | 같은 키 | 공개키 + 개인키 |
| 속도 | 빠름 | 느림 |
| 키 분배 | 어려움 | 쉬움 |
| 키 개수 (n명) | n(n−1)/2 | 2n |
| 용도 | 대량 데이터 | 키 교환, 전자서명 |
| 알고리즘 | DES, AES, SEED, ARIA | RSA, DH, ECC, DSA |
- 하이브리드 (SSL, PGP) : 데이터는 대칭키로, 그 대칭키를 공개키로 암호화해 전달
- 공개키로 암호화 → 개인키로 복호화 (기밀성) / 개인키로 서명 → 공개키로 검증 (인증·부인방지)
대칭키 알고리즘 숫자
| 블록 | 키 | 라운드 | 구조 | |
|---|---|---|---|---|
| DES | 64 | 56 | 16 | 파이스텔 |
| AES | 128 | 128/192/256 | 10/12/14 | SPN |
| SEED, ARIA | 128 | 128~ | – | 국산 |
⚠️ DES 키는 56(64 아님). AES 블록은 항상 128, 라운드는 키 길이 따라
블록 암호 모드
- ECB : 블록 독립. 같은 평문 → 같은 암호문 → 가장 취약. 병렬 가능, IV 불필요
- CBC : 앞 암호문과 XOR. IV 필요. 가장 많이 씀. 오류가 다음 블록까지 전파
- CTR : 카운터 암호화. 병렬 가능, 현대적
- OFB/CFB : 스트림처럼 사용
공개키 알고리즘 기반
| 알고리즘 | 기반 | 비고 |
|---|---|---|
| RSA | 소인수분해 | 암호화 + 서명 |
| Diffie-Hellman | 이산대수 | 키 교환만 (암호화 X). 중간자 공격 취약 |
| ElGamal, DSA | 이산대수 | DSA = 서명 전용 |
| ECC | 타원곡선 | 짧은 키로 같은 강도 → 모바일 |
RSA 계산
1 | |
- 예 : p=3, q=11 → n=33, φ=20, e=3 → d=7 (21 mod 20 = 1)
해시 함수
- 임의 길이 → 고정 길이, 일방향(복호화 불가), 키 없음, 용도 = 무결성
- 조건 : 일방향성, 약한 충돌 저항성, 강한 충돌 저항성
- MD5 = 128비트, SHA-1 = 160비트 (둘 다 취약), SHA-256 현재 표준, HAS-160 국산
- 솔트 : 비밀번호에 랜덤값 붙여 해시 → 레인보우 테이블 무력화
- 생일 공격 : n비트 해시는 2^(n/2) 로 충돌
03. 인증
MAC vs 전자서명
| MAC | 전자서명 | |
|---|---|---|
| 키 | 공유 비밀키 | 개인키로 서명, 공개키로 검증 |
| 보장 | 무결성 + 출처 인증 | 무결성 + 인증 + 부인 방지 |
| 부인 방지 | X | O |
| 기밀성 | X | X |
⚠️ MAC은 부인 방지 불가. 전자서명은 기밀성 없음
- 서명 과정 : 메시지 → 해시 → 해시값을 개인키로 서명 → 수신자는 공개키로 풀어 직접 해시한 값과 비교
인증서 / PKI
- X.509 인증서 = CA가 “이 공개키는 이 사람 것” 서명. 공개키 포함, 개인키 없음
- 폐기 확인 : CRL(목록, 주기적) / OCSP(실시간)
- PKI 구성 : CA(발급·폐기), RA(신원 확인 대행), 디렉터리(저장소), 사용자
사용자 인증
| 유형 | 예 |
|---|---|
| 지식 (know) | 패스워드, PIN |
| 소유 (have) | OTP, 스마트카드 |
| 존재 (are) | 지문, 홍채 |
- 2요소 = 서로 다른 유형 2개. ⚠️ 비밀번호 + PIN은 2요소 아님
- 생체 : FAR(남을 나로, 보안 사고) / FRR(나를 남으로, 불편) / CER 낮을수록 좋음
- 커버로스 : 대칭키, KDC, 티켓, 시간 동기화 필수
- SSO : 한 번 로그인 → 뚫리면 전부
- 재전송 공격 대응 : nonce(챌린지-리스폰스), 타임스탬프
04. 접근 제어
- 순서 : 식별 → 인증 → 인가 (+ 책임 추적성)
- 원칙 : 최소 권한, 직무 분리, 알 필요성
접근 제어 모델
| 모델 | 결정 주체 | 기준 | 쓰는 곳 |
|---|---|---|---|
| DAC (임의적) | 소유자 | 신분, ACL | 일반 OS |
| MAC (강제적) | 시스템 | 보안 등급(레이블) | 군·정부 |
| RBAC | 관리자 | 역할 | 기업 |
보안 모델
| 모델 | 목표 | 규칙 |
|---|---|---|
| 벨-라파듈라 | 기밀성 | No Read Up / No Write Down (군) |
| 비바 | 무결성 | No Read Down / No Write Up (BLP 반대) |
| 클락-윌슨 | 무결성 | 직무 분리, 상업용 |
| 만리장성 | 이해 충돌 방지 | 경쟁사 자료 차단 |
⚠️ BLP = 기밀성, Biba·클락-윌슨 = 무결성
05. 네트워크 공격
포트
21 FTP / 22 SSH / 23 Telnet / 25 SMTP / 53 DNS / 80 HTTP / 110 POP3 / 443 HTTPS
- 3-way : SYN → SYN+ACK → ACK
스니핑 / 스푸핑
- 스니핑 : 프로미스큐어스 모드로 패킷 엿봄 (소극적). 스위치 환경에선 ARP 스푸핑으로 유도. 대응 = 암호화
- ARP 스푸핑 : IP↔MAC 위조 → 같은 LAN에서 가로채기. 대응 = 정적 ARP
- DNS 스푸핑 → 파밍
- 세션 하이재킹 : 인증 끝난 세션 가로채기
DoS
| 공격 | 핵심 |
|---|---|
| SYN 플러딩 | SYN만 보내고 ACK 안 함 → Half-open 연결로 큐 고갈 |
| Smurf | 출발지를 피해자로 위조한 ICMP를 브로드캐스트 |
| Land | 출발지 = 목적지 |
| Teardrop | 단편화 오프셋 조작 |
| Ping of Death | 거대 ICMP |
- DDoS : 봇넷(좀비 PC)을 C&C로 조종. DRDoS = 반사 서버 이용해 증폭
- 포트 스캔 : SYN(Half-open) 스캔 = 연결 안 맺어 로그 적음(스텔스)
06. 악성코드 / 사회공학
| 종류 | 자기 복제 | 숙주 | 특징 |
|---|---|---|---|
| 바이러스 | O | 필요 | 파일에 붙어 실행 시 전파 |
| 웜 | O | 불필요 | 네트워크로 스스로 전파 |
| 트로이 목마 | X | – | 정상 프로그램인 척 |
| 랜섬웨어 | – | – | 암호화 후 금전 요구 → 대응 백업 |
| 루트킷 | – | – | 관리자 권한 + 은폐 |
| 논리 폭탄 | – | – | 조건 만족 시 발동 |
| APT | – | – | 특정 목표 장기·지속 |
사회공학
- 피싱 : 가짜 링크 클릭 유도 / 스피어 피싱 : 특정인 겨냥 / 스미싱 : 문자 / 비싱 : 전화
- 파밍 : DNS·hosts 변조 → 정상 주소 쳐도 가짜 사이트
- 워터링 홀 : 자주 가는 사이트 미리 감염
⚠️ 피싱(링크) vs 파밍(DNS 변조)
07. 방화벽 · IDS · IPS · VPN
방화벽
| 유형 | 계층 | 검사 | 특징 |
|---|---|---|---|
| 패킷 필터링 | 3~4 | 헤더만 | 빠름, 내용 모름 |
| 상태 검사 | 3~4 | + 세션 상태 | 일반적 |
| 애플리케이션 게이트웨이 (프록시) | 7 | 내용까지 | 안전하지만 느림 |
- 구조 : 스크린드 서브넷(DMZ) 이 가장 안전. DMZ = 공개 서버(웹·메일) 두는 완충 구역
- 한계 : 내부자, 우회 트래픽, 바이러스, 신종 공격
IDS
| 오용 탐지 (시그니처) | 이상 탐지 (행위·통계) |
|---|---|
| 알려진 공격만 | 새로운 공격도 가능 |
| 오탐 적음 | 오탐 많음 |
- NIDS(네트워크 패킷, 암호화 트래픽 분석 불가) / HIDS(호스트 로그·파일)
- False Positive(정상을 공격으로) / False Negative(공격을 정상으로, 더 위험)
- IDS = 탐지만 / IPS = 탐지 + 차단 (인라인)
- 허니팟 : 미끼 시스템, 공격 기법 수집
VPN / IPSec
| 프로토콜 | 계층 |
|---|---|
| PPTP, L2TP(자체 암호화 X → IPSec 결합) | 2 |
| IPSec | 3 |
| SSL VPN | 4~7 (브라우저로 접속) |
| IPSec | 제공 |
|---|---|
| AH | 인증·무결성·재전송 방지. 암호화 X |
| ESP | 기밀성 + 인증·무결성 |
- 전송 모드 : 페이로드만, 종단 간 / 터널 모드 : 패킷 전체 캡슐화 + 새 헤더, 게이트웨이 간
- IKE : 키 교환 / SA : 보안 파라미터 합의, 단방향
⚠️ AH는 암호화 안 함. IPSec = 3계층, SSL = 4계층 위
08. 웹 · 메일 · 전자상거래
메일 보안
- PGP : 개인용, 신뢰의 웹 (인증서 X), 서명+암호화+압축+Radix-64
- S/MIME : X.509 인증서·PKI 기반, 기업용
SSL/TLS, SSH
- SSL/TLS : 전송 계층 위(4~7). 핸드셰이크(인증서·키 교환) + 레코드(단편화→압축→MAC→암호화). 하이브리드. HTTPS = HTTP + TLS, 443
- SSH (22) : Telnet(23, 평문) 대체
웹 취약점
| 취약점 | 공격 | 대응 |
|---|---|---|
| SQL 인젝션 | ' OR 1=1 -- |
입력 검증, Prepared Statement |
| XSS | 스크립트 삽입 → 다른 사용자 브라우저에서 실행, 쿠키 탈취 | 출력 인코딩, HttpOnly |
| CSRF | 로그인 사용자 모르게 요청 보내게 함 (송금 등) | 토큰 |
| 파일 업로드 | 웹셸 | 확장자·실행 권한 제한 |
| 디렉터리 트래버설 | ../ |
경로 필터링 |
⚠️ XSS = 클라이언트 공격 / CSRF = 사용자 권한으로 서버에 요청 위조
코드 공격
- 버퍼 오버플로 : 버퍼 넘겨 리턴 주소 덮어씀. 대응 = 경계 검사, 카나리, ASLR, DEP/NX.
strcpy, gets위험 - 포맷 스트링 :
printf(입력)의%n/ 레이스 컨디션 : 검사-사용 시간차
전자상거래 / 무선
- SET : VISA·Master, 이중 서명(상점은 카드정보 못 보고 은행은 주문 못 봄). 복잡해서 실패
- 무선 : WEP = RC4 = 취약 / WPA = TKIP / WPA2 = AES / WPA3 = SAE
09. OS · DB · 재해복구 · 포렌식
리눅스
- /etc/passwd (계정, 암호 자리 x) / /etc/shadow (암호 해시, root만). UID 0 = root
- 권한 r=4 w=2 x=1. umask : 파일 666, 디렉터리 777에서 뺌 (022 → 644 / 755)
| 특수 권한 | 숫자 | 의미 |
|---|---|---|
| SetUID | 4000 (s) | 실행 시 소유자 권한. root SetUID = 위험 |
| SetGID | 2000 (s) | 그룹 권한 |
| Sticky | 1000 (t) | /tmp, 본인 파일만 삭제 |
| 로그 | 내용 | 명령 |
|---|---|---|
| utmp | 현재 로그인 | who |
| wtmp | 로그인 기록 | last |
| btmp | 로그인 실패 | lastb |
윈도우
- SAM = 계정·암호 해시 DB / SID = 계정 고유 식별자 / NTFS = 파일별 권한·암호화 (FAT는 X)
DB 보안
- 추론·집합 공격 : 통계 질의 반복으로 개인 값 유추 → 질의 결과 최소 개수 제한
- 뷰, 최소 권한, 암호화, 감사
재해 복구
| 유형 | 복구 시간 | 비용 |
|---|---|---|
| 미러 | 즉시 | 최고 |
| 핫 | 수 시간 | 높음 |
| 웜 | 수일~수주 | 중간 |
| 콜드 | 수주~수개월 (공간만) | 최저 |
- RTO = 목표 복구 시간 / RPO = 목표 복구 시점(허용 데이터 손실량) / BIA = 업무 영향 분석
- BCP ⊃ DRP(IT 복구). 순서 : 범위 → BIA → 전략 → 계획 → 테스트
포렌식
- 5원칙 : 정당성, 재현, 신속성, 연계 보관성(Chain of Custody), 무결성(해시)
- 수집 순서 = 휘발성 순 : 메모리 → 네트워크 → 디스크 → 백업
- 원본 보존, 이미징한 사본으로 분석
10. 관리체계 · 표준 · 법
ISMS / 위험 분석
- PDCA (Plan 계획 → Do 실행 → Check 점검 → Act 개선)
- 정량적 : ALE = SLE × ARO, SLE = 자산가치 × EF / 정성적 : 등급(상중하), 델파이
- 접근법 : 기준선(체크리스트 일괄) / 상세 위험 분석 / 복합
표준
- ISO 27001 = ISMS 인증 요구사항 / 27002 = 통제 지침
- ISMS-P = ISMS + 개인정보(P). 101개 (ISMS만 80). 유효 3년, 매년 사후심사. 인증기관 KISA
- CC (ISO 15408) : PP(제품 유형, 사용자 작성) / ST(특정 제품, 개발자 작성) / TOE(평가 대상) / EAL 1~7, 7이 최고
- TCSEC(미국, D~A1, 기밀성) / ITSEC(유럽, E0~E6, 기능·보증 분리)
개인정보 보호법
- 소관 개인정보보호위원회
- 가명정보 : 통계·연구·공익 기록 목적 동의 없이 가능 / 익명정보 : 개인정보 아님
- 민감정보(건강·사상·생체), 고유식별정보(주민번호 등) → 별도 동의
- 최소 수집(입증 책임 처리자), 목적 달성 시 지체 없이(5일) 파기
- 유출 시 72시간 내 통지·신고 / CPO 지정 / 공공기관 영향평가(PIA) 의무
- ⚠️ 위탁(동의 X, 공개) vs 제3자 제공(동의 O)
- 정보통신망법 : ISMS 인증 의무, 침해사고 신고, 광고 Opt-in
⚡ 마지막 1분 함정 체크
| 함정 | 정답 |
|---|---|
| 트래픽 분석은 적극적? | 소극적 |
| 보험은 수용? | 전가 |
| DES 키 64비트? | 56 |
| ECB 안전? | 가장 취약 |
| DH로 암호화? | 키 교환만 |
| RSA는 이산대수? | 소인수분해 |
| MAC으로 부인 방지? | 불가 → 전자서명 |
| 전자서명이 기밀성 제공? | X |
| 인증서에 개인키? | 공개키만 |
| 커버로스는 공개키? | 대칭키·티켓·시간 동기화 |
| MAC(강제적)은 소유자 결정? | 등급·시스템 |
| BLP는 무결성? | 기밀성 (무결성 = Biba) |
| Smurf는 TCP? | ICMP 브로드캐스트 |
| 웜은 숙주 필요? | 불필요 |
| 피싱 vs 파밍 | 링크 vs DNS 변조 |
| 이상 탐지는 오탐 적다? | 많다 |
| 더 위험한 오류? | False Negative |
| IDS가 차단? | X, IPS |
| AH가 암호화? | X, ESP |
| IPSec 계층? | 3 |
| XSS는 서버 공격? | 클라이언트 |
| 이중 서명은 SSL? | SET |
| WEP 안전? | 취약, WPA2 = AES |
| SetUID 숫자? | 4000 |
| 로그인 실패 로그? | btmp |
| RPO는 시간? | 데이터 손실 시점 |
| 포렌식 수집 순서? | 메모리 먼저 |
| PP는 개발자 작성? | 사용자 (ST = 개발자) |
| EAL 1이 최고? | 7 |
| 위탁은 동의 필요? | X (제3자 제공 O) |