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

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

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

DNS 보안(DNSSEC·캐시 포이즈닝·존 트랜스퍼) · FTP 보안 · SNMP · 이메일 보안(SPF·DKIM) · HTTP · SQL Injection · XSS · CSRF · 파일 업/다운로드 취약점까지
애플리케이션보안 첫 번째 편을 완벽 정리합니다.

#정보보안기사 #애플리케이션보안 #DNS보안 #DNSSEC #SQLInjection #XSS #CSRF #이메일보안SPF

📋 목차

  • 1. DNS 기초 · hosts 파일 · 질의 순서
  • 2. DNS 보안 위협 (Pharming · 캐시 포이즈닝 · 존 트랜스퍼)
  • 3. DNSSEC · DNS 레코드 타입
  • 4. FTP 보안 (Active/Passive · Bounce · TFTP · Anonymous FTP)
  • 5. SNMP 보안 (MIB · 커뮤니티 스트링 · 폴링/트랩)
  • 6. 이메일 보안 (SPF · DKIM · Open Relay · RBL · 폭탄메일)
  • 7. HTTP 기초 (메서드 · 상태코드)
  • 8. SQL Injection
  • 9. XSS (Reflected vs Stored)
  • 10. CSRF · 파일 업로드/다운로드 취약점
  • 11. 최종 요약

1. DNS 기초 · hosts 파일 · 질의 순서

🔧 현직자 실무 포인트

DNS는 인터넷 인프라의 전화번호부입니다. hosts 파일 변조는 악성코드가 가장 먼저 시도하는 공격 중 하나입니다. 서버 운영 시 /etc/resolv.conf 설정 오류로 DNS 조회 실패가 자주 발생합니다. DNS 캐시 플러시는 장애 대응 시 기본 점검 항목입니다.

개념 설명
DNS Domain Name System. 도메인 이름 ↔ IP 주소 상호 변환. 위임받은 서버의 Zone 파일에 도메인 정보 저장
hosts 파일 IP↔도메인 매핑 정보 파일. DNS 서버 질의보다 우선 참조. 악성코드의 파밍 공격 대상
hosts.ics (Windows) hosts 파일보다 더 우선순위 높음. 악성코드가 변조하면 파밍 공격에 악용
/etc/resolv.conf (Linux) 기본 DNS 서버 등록 파일. /etc/hosts는 도메인↔IP 매핑 파일

🔢 Windows DNS 질의 우선순위

① DNS 캐시② hosts.ics③ hosts 파일④ DNS 서버

전체 DNS 질의 흐름: 캐시·hosts → 로컬 네임서버 → 루트 네임서버 → .com 네임서버 → 최종 도메인 네임서버

Q ipconfig /displaydns vs /flushdns 명령어는?
→ /displaydns = 로컬 DNS 캐시 확인 / /flushdns = DNS 캐시 삭제 파밍 의심 시 flushdns 후 재접속. DNS 변경 후 적용이 안 될 때도 flushdns 사용.
Q Recursive DNS vs Authoritative DNS 차이는?
→ Recursive = 클라이언트 대신 루트부터 계층적 질의 후 응답 / Authoritative = 위임받은 도메인에 대해서만 직접 응답
Q DNS 캐싱의 유효기간 설정은?
→ TTL (Time To Live) 값으로 캐시 유효기간 설정 TTL이 너무 길면 변경 사항 적용 지연, 너무 짧으면 DNS 서버 부하 증가.

🎯 시험 출제 포인트

  • hosts 파일 = DNS보다 우선 참조 / hosts.ics = hosts보다 더 우선
  • /etc/resolv.conf = Linux 기본 DNS 서버 설정
  • DNS 캐싱 유효기간 = TTL
  • ipconfig /displaydns = 캐시 확인 / /flushdns = 캐시 삭제
  • DNS 포트: 일반 조회=UDP 53 / 존 전송=TCP 53

2. DNS 보안 위협 — Pharming · 캐시 포이즈닝 · 존 트랜스퍼

hosts 파일 변조 / DNS 스푸핑
🎣 파밍 (Pharming)
악성코드로 hosts 파일 변조 또는 DNS 스푸핑으로 사용자를 가짜 사이트로 유도하여 개인정보 탈취. Private data + Farming 합성어.
캐시 DNS 조작
☠️ DNS 캐시 포이즈닝
캐시 DNS 서버의 캐시 정보를 조작하여 질의 시 가짜 IP로 응답 → 가짜 사이트 유도. DNS Spoofing의 대표 기법.
Zone 파일 유출
📤 DNS Zone Transfer 취약점
존 전송을 모든 서버에 허용 시 비인가자가 Zone 파일(호스트 정보·네트워크 구성 등 내부 정보) 획득 가능. TCP 53 포트 사용.
UDP 증폭 반사 DDoS
📡 DNS 증폭 공격
출발지 IP를 피해자로 위조하여 대량 DNS 질의 → 증폭된 응답이 피해자에게 집중. UDP 특성상 IP 위조 용이.
Q BIND DNS 서버에서 Zone Transfer를 특정 서버로만 허용하는 설정은?
→ named.conf 파일에서 allow-transfer { 슬레이브서버IP; }; 옵션 설정 존 전송은 허가된 슬레이브 서버 IP만 지정해야 합니다. 미설정 시 내부 네트워크 구성 정보 전체 유출.

🎯 시험 출제 포인트

  • 파밍 = hosts 파일 변조 or DNS 스푸핑 → 가짜 사이트 유도
  • DNS 캐시 포이즈닝 = 캐시 DNS 서버 캐시 정보 조작
  • Zone Transfer 취약점 = 모든 서버 허용 시 내부 정보 유출 / 대응: allow-transfer로 슬레이브만 허용
  • Zone Transfer 포트: TCP 53

3. DNSSEC · DNS 레코드 타입

Q DNSSEC이란?
→ DNS Security Extensions. 공개키 암호화로 데이터 원천 인증 + 무결성 제공 → DNS 스푸핑·캐시 포이즈닝·파밍 근본 방어
레코드 기능 예시
A 도메인 → IPv4 주소 매핑 http://www.example.com → 1.2.3.4
AAAA 도메인 → IPv6 주소 매핑 www → 2001:db8::1
CNAME 하나의 기준 도메인에 여러 별칭(서브도메인) 부여 http://ftp.example.comhttp://www.example.com
MX 메일 서버 지정 example.com → mail.example.com
NS 네임서버 지정 example.com → ns1.example.com
PTR IP → 도메인 역방향 조회 1.2.3.4 → http://www.example.com
TXT 텍스트 정보 저장 (SPF·DKIM 등) v=spf1 ip4:1.2.3.4 ~all
SOA Zone의 시작 권한 정보 일련번호·갱신주기·TTL 등

🎯 시험 출제 포인트

  • DNSSEC = 공개키 기반 DNS 무결성·원천 인증 / DNS 스푸핑 근본 방어
  • A 레코드 = 도메인→IPv4 / AAAA = 도메인→IPv6 / CNAME = 별칭 도메인
  • MX = 메일 서버 / PTR = 역방향 조회 / TXT = SPF·DKIM 등

4. FTP 보안 — Active/Passive · Bounce · TFTP · Anonymous FTP

🔧 현직자 실무 포인트

FTP는 평문 전송으로 현업에서는 SFTP(SSH 기반) 또는 FTPS(TLS 기반)로 대체합니다. Active Mode는 방화벽 환경에서 서버→클라이언트 연결 시도가 차단되어 Passive Mode를 주로 사용합니다. ftpusers 파일에 root를 반드시 등록해야 합니다.

FTP 모드 데이터 연결 방향 특징
Active Mode 서버(20번 포트) → 클라이언트 클라이언트 방화벽에서 차단되는 경우 많음
Passive Mode 클라이언트 → 서버 클라이언트가 서버에 데이터 연결 요청. 방화벽 환경에서 선호
FTP 보안 위협 설명 및 대응
FTP Bounce 공격 익명 FTP 서버를 통해 공격자 위치를 숨기고 내부 포트 스캔·메일 발송. FTP 서버가 데이터 목적지를 검사하지 않는 설계 취약점 악용
Anonymous FTP 인증 없이 anonymous/ftp 계정으로 누구나 접속 가능 → 악성코드 업로드·무단 다운로드. 필요한 경우가 아니면 비활성화
TFTP 취약점 Trivial FTP. UDP 69번 포트. 인증 기능 없음 → 임의 파일 접근 가능
보안 설정: -s 옵션으로 chroot 적용 (지정 디렉터리 상위 접근 차단)
ftpusers 파일 FTP 접속 제한 계정 목록 파일. root 등 특권 계정 등록 → 직접 FTP 접속 차단

🎯 시험 출제 포인트

  • Active Mode = 서버→클라이언트 데이터 연결 / Passive Mode = 클라이언트→서버
  • FTP Bounce = 익명 FTP로 공격자 위치 은닉
  • TFTP = UDP 69 / 인증 없음 / 보안 설정: -s 옵션(chroot)
  • ftpusers = FTP 접속 제한 계정 목록
  • Anonymous FTP = 불필요 시 비활성화

5. SNMP 보안 — MIB · 커뮤니티 스트링 · 폴링/트랩

SNMP 구성요소 설명
MIB
(Management Information Base)
관리 대상 장비의 정보와 자원을 객체로 정의한 데이터베이스. 관리자가 조회·설정할 수 있는 객체들의 집합
Community String SNMP 에이전트-매니저 인증에 사용하는 일종의 패스워드. 기본값 public(읽기)/private(쓰기) → 반드시 변경 필요
Polling 매니저가 에이전트에 정보 요청 → 에이전트 응답. 주기적 수집 방식
Trap (Event Reporting) 에이전트가 이벤트 발생 시 매니저에게 자동으로 알리는 방식. UDP 162번 포트
SNMPv3 인증 + 암호화 지원. v1/v2는 커뮤니티 스트링을 평문 전송 → 스니핑 취약
syslog 다양한 장비의 로그 메시지를 원격 로그 수집기로 전송하는 UDP 기반 표준 프로토콜

🎯 시험 출제 포인트

  • SNMP 일반 = UDP 161 / Trap = UDP 162
  • MIB = 관리 객체 데이터베이스
  • Community String 기본값 = public/private → 반드시 변경
  • Polling = 매니저가 요청 / Trap = 에이전트가 자동 알림
  • SNMPv3 = 인증 + 암호화 / v1·v2 = 평문 취약
  • syslog = 원격 로그 수집 UDP 프로토콜

6. 이메일 보안 — SPF · DKIM · Open Relay · RBL

🔧 현직자 실무 포인트

현대 메일 보안은 SPF + DKIM + DMARC 3종 세트가 표준입니다. SPF·DKIM 미설정 시 Google·Microsoft 등 주요 메일 서버에서 스팸으로 분류될 수 있습니다. Open Relay는 즉각 차단해야 할 심각한 보안 취약점입니다.

발신자 위조 방지 (DNS TXT)
📋 SPF
Sender Policy Framework. 도메인에서 메일 발송 가능한 서버 IP 목록을 DNS TXT 레코드에 등록. 발신자 위조(Email Spoofing) 방지.
이메일 디지털 서명
✍️ DKIM
DomainKeys Identified Mail. 이메일에 디지털 서명 추가 → 발신 도메인 진위 검증 + 메일 위변조 방지.
스팸 서버 IP 목록
🚫 RBL
Realtime Blackhole List. 스팸 발송 서버 IP 목록 실시간 관리. 메일 서버는 발신 서버 IP를 RBL에 조회하여 스팸 여부 판단.
인증 없이 모든 메일 중계
⚠️ Open Relay
SMTP 서버가 외부에서 오는 모든 메일을 인증 없이 중계 → 스팸 발송에 악용. 반드시 차단해야 함.
이메일 공격 설명
Mail Bomb (폭탄메일) 특정 대상에게 수만 통 대량 전송 → 시스템 고장 유발. 특정 대상 공격
Spam Mail (스팸메일) 불특정 다수에게 무차별 광고성 이메일 발송. 불특정 다수 대상

🎯 시험 출제 포인트

  • SPF = DNS TXT 레코드에 메일 서버 IP 등록 → 발신자 위조 방지
  • DKIM = 이메일 디지털 서명 → 위변조 방지
  • RBL = 스팸 서버 IP 블랙리스트 실시간 조회
  • Open Relay = 인증 없이 모든 메일 중계 → 스팸 발송 악용
  • Mail Bomb = 특정 대상 대량 메일 / Spam = 불특정 다수 광고 메일

7. HTTP 기초 — 메서드 · 상태코드

HTTP 메서드 역할 특징
GET 데이터 조회 URL 파라미터로 데이터 전송 → 주소창에 노출. 북마크 가능
POST 데이터 전송(생성) 요청 바디에 데이터 담아 전송 → URL에 미노출
PUT 데이터 수정(전체 교체) 리소스 전체 업데이트
DELETE 데이터 삭제 리소스 삭제
PATCH 데이터 부분 수정 리소스 일부 업데이트
상태 코드 의미 설명
200 OK 요청 성공
301 Moved Permanently 영구 리다이렉트
403 Forbidden 접근 권한 없음
404 Not Found 페이지를 찾을 수 없음
500 Internal Server Error 서버 내부 오류

🎯 시험 출제 포인트

  • GET = URL에 데이터 노출 / POST = 요청 바디에 데이터
  • 200=성공 / 301=영구 리다이렉트 / 404=페이지 없음 / 500=서버 오류

8. SQL Injection

🔧 현직자 실무 포인트

OWASP Top 10에서 매년 상위를 차지하는 대표 취약점입니다. 실무에서는 Prepared Statement 적용이 가장 확실한 대응입니다. WAF를 추가하더라도 Prepared Statement 없이는 우회 가능합니다.

Q SQL Injection 공격 원리는?
→ 입력값 검증 취약점을 이용하여 악의적인 SQL 쿼리를 삽입 → DB 비정상 조작 예: 아이디 입력란에 ‘ OR ‘1’=’1 입력 시 모든 계정 로그인 가능. 인증 우회·데이터 탈취·DB 삭제 등 가능.
Q SQL Injection 대응 방법은?
→ ① Prepared Statement (가장 확실) ② 입력값 유효성 검사 ③ 특수문자 필터링 ④ WAF 적용 Prepared Statement: SQL 구조와 데이터를 분리하여 입력값이 쿼리 구조를 바꿀 수 없게 함.

🎯 시험 출제 포인트

  • SQL Injection = 입력값에 SQL 쿼리 삽입 → DB 비정상 조작
  • 가장 확실한 대응: Prepared Statement
  • 추가 대응: 입력값 검사 · 특수문자 필터링 · WAF

9. XSS (Cross-Site Scripting)

XSS 유형 원리 특징
Reflected XSS
(반사형)
악성 스크립트가 서버에 저장되지 않고 즉시 반사되어 실행. 악성 링크 클릭 시 즉시 공격 URL에 스크립트 포함. 피해자가 링크 클릭해야 실행
Stored XSS
(저장형)
악성 스크립트가 서버 DB에 저장됨 → 조회 시마다 자동 실행 게시판·댓글 등에 삽입. 조회하는 모든 사용자 피해
DOM-based XSS 서버를 거치지 않고 클라이언트 사이드 DOM 조작으로 실행 서버 로그에 기록 안 됨
Q XSS 대응 방법은?
→ ① 입력값 특수문자 이스케이프/인코딩 ② CSP(Content Security Policy) 헤더 설정 ③ HttpOnly 쿠키 설정 CSP 헤더: 허용된 출처의 스크립트만 실행 허용. HttpOnly: JavaScript에서 쿠키 접근 차단 → 쿠키 탈취 방지.

🎯 시험 출제 포인트

  • XSS = 악성 스크립트 삽입 → 피해자 브라우저에서 실행
  • Reflected = 즉시 반사 실행 / Stored = DB 저장 후 조회 시마다 실행
  • XSS 대응: 특수문자 이스케이프 + CSP 헤더
  • XSS 피해: 쿠키 탈취 · 피싱 · 세션 하이재킹

10. CSRF · 파일 업로드/다운로드 취약점

인증된 사용자 권한 악용
🔀 CSRF
Cross-Site Request Forgery. 인증된 사용자가 의도하지 않은 요청을 서버에 전송. 사용자가 악성 링크 클릭 시 자동 전송. 대응: CSRF Token · Referer 검증 · SameSite 쿠키
악성 스크립트 업로드
📤 파일 업로드 취약점
확장자·파일타입 검증 부재 → php·jsp 악성 파일 업로드 → 웹 쉘 실행. 대응: 화이트리스트 확장자 필터링 + 웹 루트 외부 저장 + 실행 권한 제거
경로 조작 임의 파일 접근
📂 파일 다운로드 취약점
경로 파라미터에 ../ 삽입 → 상위 디렉터리 이동 → 서버 임의 파일 다운로드. Directory Traversal 공격이라고도 함.
XSS vs CSRF 비교
⚖️ 차이점
XSS = 악성 스크립트 실행 (피해자 브라우저 대상). CSRF = 인증된 사용자 권한으로 위조 요청 전송 (서버 대상).

🎯 시험 출제 포인트

  • CSRF = 인증된 사용자의 권한으로 위조 요청 / 대응: CSRF Token
  • CSRF 추가 대응: Referer 헤더 검증 · SameSite 쿠키
  • 파일 업로드 = 악성 스크립트 업로드 → 웹 쉘 / 대응: 화이트리스트 + 웹 루트 외부 저장
  • 파일 다운로드 = ../ 경로 조작 → 임의 파일 접근 (Directory Traversal)

11. 📌 애플리케이션보안 3-1편 최종 요약

🎯 절대 암기 포인트

  • DNS 질의 우선순위: DNS 캐시 → hosts.ics → hosts → DNS 서버
  • hosts.ics = hosts 파일보다 우선순위 높음 (윈도우)
  • /etc/resolv.conf = Linux DNS 서버 설정
  • ipconfig /displaydns = 캐시 확인 / /flushdns = 캐시 삭제
  • DNS 포트: UDP 53(일반 조회) / TCP 53(존 전송)
  • 파밍 = hosts 파일 변조 or DNS 스푸핑 → 가짜 사이트
  • DNS 캐시 포이즈닝 = 캐시 DNS 서버 캐시 정보 조작
  • Zone Transfer 대응: named.conf에서 allow-transfer로 슬레이브 서버만 허용
  • DNSSEC = 공개키 기반 DNS 무결성·원천 인증
  • A 레코드=IPv4 / AAAA=IPv6 / CNAME=별칭 / MX=메일 / TXT=SPF·DKIM
  • FTP Active=서버→클라이언트 / Passive=클라이언트→서버
  • TFTP = UDP 69 / 인증 없음 / -s 옵션으로 chroot
  • ftpusers = FTP 접속 제한 계정 목록
  • SNMP: 일반=UDP 161 / Trap=UDP 162
  • Community String 기본값=public/private → 반드시 변경
  • SNMPv3 = 인증 + 암호화 (v1·v2는 평문)
  • SPF = DNS TXT에 메일 서버 IP 등록 / DKIM = 이메일 디지털 서명
  • Open Relay = 인증 없이 모든 메일 중계 → 스팸 악용
  • GET=URL 노출 / POST=바디 전송
  • HTTP: 200=성공 / 301=리다이렉트 / 404=페이지 없음 / 500=서버 오류
  • SQL Injection 최우선 대응: Prepared Statement
  • Reflected XSS=즉시 반사 / Stored XSS=DB 저장 후 반복 실행
  • XSS 대응: 이스케이프 + CSP 헤더
  • CSRF 최우선 대응: CSRF Token
  • 파일 업로드 대응: 화이트리스트 + 웹 루트 외부 저장
  • 파일 다운로드 취약점 = Directory Traversal (../)