🖥️ 정보보안기사 | 애플리케이션보안 핵심 정리 (3-1편)
DNS 보안(DNSSEC·캐시 포이즈닝·존 트랜스퍼) · FTP 보안 · SNMP · 이메일 보안(SPF·DKIM) · HTTP · SQL Injection · XSS · CSRF · 파일 업/다운로드 취약점까지
애플리케이션보안 첫 번째 편을 완벽 정리합니다.
📋 목차
- 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 네임서버 → 최종 도메인 네임서버
🎯 시험 출제 포인트
- hosts 파일 = DNS보다 우선 참조 / hosts.ics = hosts보다 더 우선
- /etc/resolv.conf = Linux 기본 DNS 서버 설정
- DNS 캐싱 유효기간 = TTL
- ipconfig /displaydns = 캐시 확인 / /flushdns = 캐시 삭제
- DNS 포트: 일반 조회=UDP 53 / 존 전송=TCP 53
2. DNS 보안 위협 — Pharming · 캐시 포이즈닝 · 존 트랜스퍼
🎯 시험 출제 포인트
- 파밍 = hosts 파일 변조 or DNS 스푸핑 → 가짜 사이트 유도
- DNS 캐시 포이즈닝 = 캐시 DNS 서버 캐시 정보 조작
- Zone Transfer 취약점 = 모든 서버 허용 시 내부 정보 유출 / 대응: allow-transfer로 슬레이브만 허용
- Zone Transfer 포트: TCP 53
3. DNSSEC · DNS 레코드 타입
| 레코드 | 기능 | 예시 |
|---|---|---|
| A | 도메인 → IPv4 주소 매핑 | http://www.example.com → 1.2.3.4 |
| AAAA | 도메인 → IPv6 주소 매핑 | www → 2001:db8::1 |
| CNAME | 하나의 기준 도메인에 여러 별칭(서브도메인) 부여 | http://ftp.example.com → http://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는 즉각 차단해야 할 심각한 보안 취약점입니다.
| 이메일 공격 | 설명 |
|---|---|
| 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 없이는 우회 가능합니다.
🎯 시험 출제 포인트
- SQL Injection = 입력값에 SQL 쿼리 삽입 → DB 비정상 조작
- 가장 확실한 대응: Prepared Statement
- 추가 대응: 입력값 검사 · 특수문자 필터링 · WAF
9. XSS (Cross-Site Scripting)
| XSS 유형 | 원리 | 특징 |
|---|---|---|
| Reflected XSS (반사형) |
악성 스크립트가 서버에 저장되지 않고 즉시 반사되어 실행. 악성 링크 클릭 시 즉시 공격 | URL에 스크립트 포함. 피해자가 링크 클릭해야 실행 |
| Stored XSS (저장형) |
악성 스크립트가 서버 DB에 저장됨 → 조회 시마다 자동 실행 | 게시판·댓글 등에 삽입. 조회하는 모든 사용자 피해 |
| DOM-based XSS | 서버를 거치지 않고 클라이언트 사이드 DOM 조작으로 실행 | 서버 로그에 기록 안 됨 |
🎯 시험 출제 포인트
- XSS = 악성 스크립트 삽입 → 피해자 브라우저에서 실행
- Reflected = 즉시 반사 실행 / Stored = DB 저장 후 조회 시마다 실행
- XSS 대응: 특수문자 이스케이프 + CSP 헤더
- XSS 피해: 쿠키 탈취 · 피싱 · 세션 하이재킹
10. 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 (../)

