정보보안기사 | 애플리케이션보안 핵심 정리 (3-2편)

정보보안기사 | 애플리케이션보안 핵심 정리 (3-2편)

🖥️ 정보보안기사 | 애플리케이션보안 핵심 정리 (3-2편)

PGP · OWASP Top 10(A01~A10) · SSRF · DB 보안 · TDE · SET 이중서명 · OAuth 2.0 · 세션 하이재킹 · 쿠키 보안속성 · 웹서버 보안 설정까지
애플리케이션보안 두 번째 편을 완벽 정리합니다.

#정보보안기사 #애플리케이션보안 #OWASPTop10 #SSRF #TDE #OAuth2.0 #세션하이재킹 #웹서버보안설정

1. 이메일 보안 심화 — PGP · Received 헤더 · SpamAssassin

이메일 암호화 + 디지털 서명

🔒 PGP

Pretty Good Privacy. 전자메일 암호화·디지털 서명 제공. X.509 인증서 없이 Web of Trust(신뢰망) 방식으로 공개키 신뢰성 확보. S/MIME은 X.509 기반으로 기관 중앙 인증.
발송 경로 역추적

📧 Received 헤더

이메일 헤더 중 발송 경로 추적에 사용. 가장 아래쪽 Received 헤더가 처음 발송된 메일 서버. 스팸 발송 경로 역추적에 활용.
오픈소스 스팸 차단

🛡️ SpamAssassin

Apache 그룹 기반 오픈소스 스팸 차단 도구. 메일 헤더·콘텐츠 분석 + 화이트/블랙리스트 + RBL 등 다양한 규칙 조합으로 스팸 판별.
PGP vs S/MIME 비교

⚖️ 신뢰 모델 차이

PGP = Web of Trust (분산·사용자 간 상호 신뢰) / S/MIME = X.509 인증서 (중앙 CA 기반 신뢰). 시험에서 인증 방식 차이 자주 출제.

🎯 시험 출제 포인트

  • 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가 신규 진입한 점도 시험 출제 포인트입니다.

A01
Broken Access Control
취약한 접근 통제 (2017년 5위 → 1위)
A02
Cryptographic Failures
암호화 실패 (구 민감 데이터 노출)
A03
Injection
SQL·LDAP·OS 인젝션 등 (구 1위)
A04
Insecure Design
취약한 설계 (2021 신규)
A05
Security Misconfiguration
보안 설정 오류
A06
Vulnerable and Outdated Components
취약하고 오래된 구성요소
A07
Identification and Authentication Failures
식별 및 인증 실패
A08
Software and Data Integrity Failures
소프트웨어·데이터 무결성 실패 (2021 신규)
A09
Security Logging and Monitoring Failures
보안 로깅·모니터링 실패
A10
SSRF
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 공격이란?

→ Server-Side Request Forgery. 공격자가 서버를 이용하여 내부 네트워크나 외부 서비스에 요청을 보내도록 유도하는 공격. 방화벽·IP 접근제어 우회 가능. 예: 클라우드 메타데이터 서버(169.254.169.254)에 서버를 통해 접근 → 인증 정보 탈취. URL 파라미터로 내부 주소를 입력하는 형태로 공격.

Q Web Proxy 도구의 역할과 대표 도구는?

→ 클라이언트-서버 사이에서 HTTP 요청·응답을 가로채 필터링 우회·데이터 조작 대표 도구: Burp Suite(가장 많이 사용) · Paros · OWASP ZAP. 모의해킹·취약점 진단의 핵심 도구.

🎯 시험 출제 포인트

  • 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·REVOKE·DENY)로 구현.
간접 유추·등급 간 흐름 차단

🧠 추론통제 / 흐름통제

추론통제: 간접 노출 데이터로 다른 데이터가 유추되는 것 차단. 흐름통제: 높은 보안등급→낮은 등급으로의 정보 흐름 차단.
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 외부 네트워크 접근 차단 설정은?

→ my.cnf 설정 파일의 [mysqld] 항목에 skip-networking 추가 localhost(소켓 통신)만 허용되고 TCP/IP 연결은 전면 차단. 외부에서 직접 DB 접근 불가.

Q TDE(Transparent Data Encryption)란?

→ DBMS 내장 암복호화 기능으로 커널 수준 처리. 성능 최적화 + 애플리케이션 수정 불필요. DB 파일·백업 파일을 암호화하여 물리적 매체 탈취 시에도 데이터 보호. Oracle TDE, MS SQL TDE 등에서 제공.

🎯 시험 출제 포인트

  • 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이란?

→ Open Authentication 2.0. 제3자 앱에 리소스 소유자 대신 리소스 서버 접근 권한을 위임하는 개방형 표준 인증 프로토콜 구글·카카오·네이버 간편 로그인이 대표 사례. 비밀번호를 공유하지 않고도 제3자 앱이 API에 접근 가능.

🎯 시험 출제 포인트

  • SET 이중서명 = 주문정보+결제정보 분리 보호 / 상점→결제정보 숨김 / 은행→주문정보 숨김
  • 이중서명 처리: 두 메시지의 다이제스트 합산 해시 → 고객 개인키로 암호화
  • OAuth 2.0 = 제3자 앱에 접근 권한 위임 / 비밀번호 공유 없이 API 인증

7. 세션 보안 — 세션 하이재킹 · 쿠키 속성

Q 세션 하이재킹(Session Hijacking)이란?

→ 인증된 사용자의 세션 ID를 탈취 → 해당 사용자로 위장하여 서비스 접근 세션 ID 탈취 방법: XSS(쿠키 탈취) · 스니핑 · 예측 가능한 세션 ID. 대응: HttpOnly 쿠키 + HTTPS 강제 + 세션 고정 공격 방지.
쿠키 보안 속성기능방어 대상
SecureHTTPS 연결에서만 쿠키 전송평문 HTTP 전송 시 쿠키 탈취 방지
HttpOnlyJavaScript에서 쿠키 접근 차단XSS 공격으로 쿠키 탈취 방지
SameSite동일 사이트 요청에서만 쿠키 전송CSRF 공격 방지

🎯 시험 출제 포인트

  • 세션 하이재킹 = 세션 ID 탈취 후 위장 접근
  • Secure = HTTPS만 전송 / HttpOnly = JS 접근 차단 → XSS 쿠키 탈취 방지
  • SameSite = CSRF 방지

8. 웹서버 보안 설정 — Apache 설정 · Web Shell

🔧 현직자 실무 포인트

Apache 웹서버 보안 점검에서 Options -Indexes와 ServerTokens Prod 설정은 가장 기본적인 체크리스트입니다. Web Shell은 파일 업로드 취약점으로 서버에 올려진 악성 스크립트로, 탐지 시 즉시 삭제하고 업로드 경로 접근 통제를 강화해야 합니다.

보안 설정적용 파일설명
Options -Indexeshttpd.conf디렉터리 리스팅(파일 목록 노출) 차단. Indexes 항목 제거
ServerTokens Prodhttpd.conf응답 헤더에서 웹서버 버전 정보 최소화. Prod=제품명만 표시
ServerSignature Offhttpd.conf오류 페이지 하단의 서버 서명(버전 정보) 숨김
skip-networkingmy.cnfMySQL 외부 TCP 접근 전면 차단 (localhost 소켓만 허용)

Q Web Shell이란?

→ 공격자가 파일 업로드 취약점으로 웹 서버에 업로드한 악성 스크립트. 웹 브라우저를 통해 서버 OS 명령 실행 가능. 대응: 파일 업로드 시 실행 불가 확장자만 허용(화이트리스트) + 업로드 경로 실행 권한 제거 + 웹 루트 외부 저장.

🎯 시험 출제 포인트

  • 디렉터리 리스팅 차단: 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-OptionsClickjacking 방지. 페이지가 iframe으로 다른 사이트에 삽입되는 것 차단X-Frame-Options: DENY 또는 SAMEORIGIN
X-Content-Type-OptionsMIME 타입 스니핑 방지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 가장 확실한 방어
📌 Prepared Statement 원리

쿼리 구조를 미리 컴파일해두고 사용자 입력값은 바인딩 파라미터로만 전달합니다. 입력값에 ‘ 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 (../)