🖥️ 정보보안기사 | 애플리케이션보안 핵심 정리 (3-2편)
PGP · OWASP Top 10(A01~A10) · SSRF · DB 보안 · TDE · SET 이중서명 · OAuth 2.0 · 세션 하이재킹 · 쿠키 보안속성 · 웹서버 보안 설정까지
애플리케이션보안 두 번째 편을 완벽 정리합니다.
1. 이메일 보안 심화 — PGP · Received 헤더 · SpamAssassin
🔒 PGP
📧 Received 헤더
🛡️ SpamAssassin
⚖️ 신뢰 모델 차이
🎯 시험 출제 포인트
- PGP = 이메일 암호화·서명 / Web of Trust (X.509 없이 신뢰망)
- Received 헤더 = 발송 경로 추적 / 가장 아래쪽 = 최초 발송 서버
- SpamAssassin = 오픈소스 / 헤더·콘텐츠 분석 + RBL 활용
2. OWASP Top 10 (2021) — 치명적 웹 취약점 10가지
OWASP Top 10은 보안 점검 기준으로 현업에서 체크리스트처럼 활용됩니다. 2021년 버전에서는 A01이 기존 SQL Injection에서 Broken Access Control(취약한 접근 통제)로 변경되어 중요합니다. A10에 SSRF가 신규 진입한 점도 시험 출제 포인트입니다.
취약한 접근 통제 (2017년 5위 → 1위)
암호화 실패 (구 민감 데이터 노출)
SQL·LDAP·OS 인젝션 등 (구 1위)
취약한 설계 (2021 신규)
보안 설정 오류
취약하고 오래된 구성요소
식별 및 인증 실패
소프트웨어·데이터 무결성 실패 (2021 신규)
보안 로깅·모니터링 실패
Server-Side Request Forgery (2021 신규)
🎯 시험 출제 포인트
- A01:2021 = Broken Access Control (취약한 접근 통제) — 2017년 5위→1위
- A03:2021 = Injection (구 1위 → 3위로 하락)
- A10:2021 = SSRF — 2021 신규 진입
- 2021 신규 항목: A04 Insecure Design / A08 무결성 실패 / A10 SSRF
3. SSRF 공격 · Web Proxy 도구
Q SSRF 공격이란?
Q Web Proxy 도구의 역할과 대표 도구는?
🎯 시험 출제 포인트
- SSRF = 서버를 통해 내부 네트워크 접근 / 방화벽 우회 가능
- SSRF 대응: URL 유효성 검사 강화 + 내부 IP 허용 목록 화이트리스트화
- Web Proxy 대표 도구: Burp Suite · Paros
4. DB 보안 — Aggregation · Data Diddling · DCL · 통제 3종
DB 접근통제는 최소 권한 원칙을 적용해야 합니다. 개발자 계정에 DBA 권한을 부여하는 것은 매우 위험합니다. Aggregation(집성) 공격은 개별 데이터는 공개돼 있어도 여러 개를 조합하면 기밀이 될 수 있다는 점에서 데이터 분류 정책이 중요합니다.
🧩 Aggregation (집성)
🔄 Data Diddling
🔐 접근통제
🧠 추론통제 / 흐름통제
| DB DCL 명령어 | 역할 | 비고 |
|---|---|---|
| GRANT | 권한 부여 | GRANT SELECT ON 테이블 TO 사용자; |
| REVOKE | 권한 회수 | 부여된 권한 제거 |
| DENY | 권한 금지 | GRANT와 충돌 시 DENY 우선 적용 |
🎯 시험 출제 포인트
- Aggregation = 낮은 등급 조각 조합 → 높은 등급 정보 유추
- Data Diddling = 원본 데이터 바꿔치기
- GRANT=부여 / REVOKE=회수 / DENY=금지 / DENY 우선 적용
- 추론통제 = 간접 유추 차단 / 흐름통제 = 높은→낮은 등급 흐름 차단
5. DB 보안 설정 — MySQL skip-networking · TDE
Q MySQL 외부 네트워크 접근 차단 설정은?
Q TDE(Transparent Data Encryption)란?
🎯 시험 출제 포인트
- MySQL 외부 접근 차단: my.cnf → skip-networking
- TDE = DBMS 내장 암호화 / 커널 수준 / 앱 수정 불필요
- TDE 장점: 성능 최적화 + 투명성(애플리케이션 영향 없음)
6. 전자결제 보안 — SET 이중서명 · OAuth 2.0
OAuth 2.0은 현재 모든 주요 서비스의 소셜 로그인·API 인증에 사용됩니다. “구글 계정으로 로그인”, “카카오로 로그인”이 전부 OAuth 2.0 흐름입니다. SET 이중서명은 상점과 은행 각각에 불필요한 정보를 숨기는 프라이버시 보호 메커니즘이 핵심입니다.
Q SET 프로토콜의 이중서명(Dual Signature)이란?
Q OAuth 2.0이란?
🎯 시험 출제 포인트
- SET 이중서명 = 주문정보+결제정보 분리 보호 / 상점→결제정보 숨김 / 은행→주문정보 숨김
- 이중서명 처리: 두 메시지의 다이제스트 합산 해시 → 고객 개인키로 암호화
- OAuth 2.0 = 제3자 앱에 접근 권한 위임 / 비밀번호 공유 없이 API 인증
7. 세션 보안 — 세션 하이재킹 · 쿠키 속성
Q 세션 하이재킹(Session Hijacking)이란?
| 쿠키 보안 속성 | 기능 | 방어 대상 |
|---|---|---|
| Secure | HTTPS 연결에서만 쿠키 전송 | 평문 HTTP 전송 시 쿠키 탈취 방지 |
| HttpOnly | JavaScript에서 쿠키 접근 차단 | XSS 공격으로 쿠키 탈취 방지 |
| SameSite | 동일 사이트 요청에서만 쿠키 전송 | CSRF 공격 방지 |
🎯 시험 출제 포인트
- 세션 하이재킹 = 세션 ID 탈취 후 위장 접근
- Secure = HTTPS만 전송 / HttpOnly = JS 접근 차단 → XSS 쿠키 탈취 방지
- SameSite = CSRF 방지
8. 웹서버 보안 설정 — Apache 설정 · Web Shell
Apache 웹서버 보안 점검에서 Options -Indexes와 ServerTokens Prod 설정은 가장 기본적인 체크리스트입니다. Web Shell은 파일 업로드 취약점으로 서버에 올려진 악성 스크립트로, 탐지 시 즉시 삭제하고 업로드 경로 접근 통제를 강화해야 합니다.
| 보안 설정 | 적용 파일 | 설명 |
|---|---|---|
| Options -Indexes | httpd.conf | 디렉터리 리스팅(파일 목록 노출) 차단. Indexes 항목 제거 |
| ServerTokens Prod | httpd.conf | 응답 헤더에서 웹서버 버전 정보 최소화. Prod=제품명만 표시 |
| ServerSignature Off | httpd.conf | 오류 페이지 하단의 서버 서명(버전 정보) 숨김 |
| skip-networking | my.cnf | MySQL 외부 TCP 접근 전면 차단 (localhost 소켓만 허용) |
Q Web Shell이란?
🎯 시험 출제 포인트
- 디렉터리 리스팅 차단: httpd.conf에서 Options -Indexes
- 버전 정보 숨김: ServerTokens Prod + ServerSignature Off
- Web Shell = 파일 업로드 취약점 → 악성 스크립트 → OS 명령 실행
9. 웹 보안 헤더 — CSP · X-Frame-Options
| 보안 헤더 | 방어 대상 | 설정값 예시 |
|---|---|---|
| CSP (Content-Security-Policy) | XSS · 데이터 인젝션 방지. 허용된 출처의 리소스만 로드 | Content-Security-Policy: default-src ‘self’ |
| X-Frame-Options | Clickjacking 방지. 페이지가 iframe으로 다른 사이트에 삽입되는 것 차단 | X-Frame-Options: DENY 또는 SAMEORIGIN |
| X-Content-Type-Options | MIME 타입 스니핑 방지 | X-Content-Type-Options: nosniff |
| HSTS (Strict-Transport-Security) | HTTP → HTTPS 강제 리다이렉트 | max-age=31536000; includeSubDomains |
🎯 시험 출제 포인트
- CSP = Content Security Policy / 리소스 출처 제한 / XSS 방어
- X-Frame-Options = Clickjacking 방지 / iframe 삽입 차단
- X-Frame-Options 값: DENY(모든 iframe 차단) / SAMEORIGIN(같은 도메인만 허용)
10. Input Validation vs Output Encoding · Prepared Statement 원리
| 방어 기법 | 역할 | 방어 대상 |
|---|---|---|
| Input Validation (입력값 검증) | 입력값이 허용된 형식인지 검사. 화이트리스트 방식 적용 | SQL Injection · XSS · 모든 인젝션 공격 1차 방어 |
| Output Encoding (출력 인코딩) | 출력 시 특수문자(<, >, &, ” 등)를 이스케이프·인코딩 처리 | XSS 방어의 핵심. 스크립트 실행 방지 |
| Prepared Statement (준비된 구문) | SQL 쿼리 구조를 먼저 컴파일 → 입력값은 데이터로만 처리. 쿼리 구조 고정 | SQL Injection 가장 확실한 방어 |
쿼리 구조를 미리 컴파일해두고 사용자 입력값은 바인딩 파라미터로만 전달합니다. 입력값에 ‘ OR ‘1’=’1 같은 SQL 명령이 포함되더라도 문자열 데이터로만 처리되어 실행되지 않습니다.
🎯 시험 출제 포인트
- Input Validation = 입력값 형식 검사 (화이트리스트)
- Output Encoding = 출력 특수문자 이스케이프 → XSS 방어
- Prepared Statement = 쿼리 구조 고정 / 입력값은 데이터로만 → SQL Injection 방어
- Input Validation + Output Encoding = XSS 방어 핵심 2종 세트
11. 📌 애플리케이션보안 3-1 ~ 3-2 통합 최종 요약
🎯 절대 암기 포인트 — 전체 통합
- DNS 질의 우선순위: DNS 캐시 → hosts.ics → hosts → DNS 서버
- DNS 포트: UDP 53(일반 조회) / TCP 53(존 전송)
- 파밍 = hosts 파일 변조 or DNS 스푸핑 / DNSSEC = 공개키 기반 DNS 무결성
- Zone Transfer 대응: named.conf allow-transfer로 슬레이브만 허용
- A 레코드=IPv4 / CNAME=별칭 / MX=메일 / TXT=SPF·DKIM
- FTP Active=서버→클라이언트 / Passive=클라이언트→서버
- TFTP = UDP 69 / 인증 없음 / -s 옵션 chroot 보안 설정
- SNMP: UDP 161(일반) / UDP 162(Trap) / v3=인증+암호화
- Community String 기본값 = public/private → 반드시 변경
- SPF = DNS TXT에 메일 서버 IP 등록 / DKIM = 이메일 디지털 서명
- Open Relay = 인증 없이 모든 메일 중계 → 스팸 악용
- PGP = 이메일 암호화 / Web of Trust (X.509 없이 신뢰망)
- Received 헤더 = 가장 아래쪽 = 최초 발송 서버
- OWASP A01:2021 = Broken Access Control (구 5위→1위)
- OWASP A10:2021 = SSRF (2021 신규 진입)
- SSRF = 서버를 통해 내부 네트워크 접근 / 방화벽 우회
- Aggregation = 낮은 등급 조각 조합 → 기밀 유추
- Data Diddling = 원본 데이터 바꿔치기
- DB DCL: GRANT=부여 / REVOKE=회수 / DENY=금지, DENY 우선 적용
- MySQL 외부 차단: my.cnf → skip-networking
- TDE = DBMS 내장 암호화 / 커널 수준 / 앱 수정 불필요
- SET 이중서명 = 주문정보+결제정보 분리 / 상점→결제정보 숨김 / 은행→주문정보 숨김
- OAuth 2.0 = 제3자 앱에 접근 권한 위임
- 세션 하이재킹 = 세션 ID 탈취 후 위장 접근
- Secure 쿠키 = HTTPS만 전송 / HttpOnly = JS 접근 차단(XSS 쿠키 탈취 방지)
- SameSite 쿠키 = CSRF 방지
- Apache 디렉터리 리스팅 차단: Options -Indexes
- Apache 버전 숨김: ServerTokens Prod + ServerSignature Off
- Web Shell = 파일 업로드 취약점 → 악성 스크립트로 OS 명령 실행
- CSP = 리소스 출처 제한 → XSS 방어 / X-Frame-Options = Clickjacking 방지
- SQL Injection 최우선 방어: Prepared Statement (쿼리 구조 고정)
- XSS 방어 핵심: Output Encoding(이스케이프) + CSP 헤더
- CSRF 방어: CSRF Token + Referer 검증 + SameSite 쿠키
- Input Validation = 입력 형식 검사 / Output Encoding = 출력 이스케이프
- 파일 다운로드 취약점 = Directory Traversal (../)

