
냉수육. 살짝 차갑고 쫄깃한 식감이 인상 깊었다

1. DNS
- 구조
- 용어 정리
- Recursive/Cache 네임/DNS 서버
- 관리하는/위임받은 도메인 없이 사용자 호스트로부터 질의가 들어오면 자신의 캐시에 저장된 정보 또는 반복적 질의를 통해 그 결과를 사용자 호스트에 응답해주는 네임 서버
- 일반적으로 ISP 업체가 제공하는 DNS 서버
- Authoritative 네임/DNS 서버
- 특정 도메인에 대한 정보를 관리하면서 해당 도메인에 대한 정보를 관리하면서 해당 도메인에 대한 질의에만 응답해주는 네임 서버
- 각 회사/사이트별로 자신의 도메인을 관리하는 DNS 서버
- 재귀적 질의 — 자신의 캐시 데이터를 조회한 후 데이터가 있으면 사용자 호스트로 결과를 반환하고 없으면 최상의 루트 네임 서버로부터 질의 대상 도메인 네임 서버까지 반복적 질의를 수행한 후 결과 반환
- 반복적 질의 — 최상위 루트 네임 서버부터 계층 구조에 따라 대상 도메인 네임 서버까지 각 네임 서버가 응답하는 위임된 네임 서버 정보에 따라 순차적으로 반복하여 진행하는 질의
- Recursive/Cache 네임/DNS 서버
- 동작 방식
- 윈도우 호스트의 경우 질의에 대한 검색 순서 — 로컬 DNS 캐시, hosts.ics, hosts 파일 순으로 검색하고 없으면 시스템에 설정된 네임 서버로 요청
- Linux/Unix 기준 네임 서버 관련 설정 파일
- /etc/resolv.conf — 기본 네임 서버 설정 정보
- /etc/hosts
- 도메인/호스트명과 IP 주소 매핑정보
- DNS 질의 순서 지정
- 네임 서버 질의/응답 패킷 분석
- 응답 데이터가 512바이트 이하일 경우 UDP(53번), 초과일 경우 TCP(53번) 사용
- 용어 정리
- DNS Cache 관련 명령어
- ipconfig /displaydns — 로컬 DNS 캐시 정보 조회
- ipconfig /flushdns — 로컬 DNS 캐시 정보 삭제
- DNS Lookup 명령어
- 개요
- nslookup
- 사용법
- 명령 실행 후 대화형 모드로 질의
- nslookup [도메인] [네임 서버]
- 사용법
- dig
- 개요 — nslookup 대체를 위해 만들어짐
- dig [@네임 서버] 도메인 [쿼리 유형] [쿼리 옵션]
- 질의 옵션
- +norecurse — authoriative 네임 서버에 반복적 질의를 수행하여 정상 응답 여부 점검
- +tcp — 53/tcp 허용 여부 점검
- +trace
- 계층적 위임 설정 상태 점검
- 최상위 루트 도메인으로부터 최종 질의 대상 도메인까지 계층 구조에 따른 질의 수행
- whois
- 개요
- whois 서버를 통해 해당 도메인의 등록 정보(소유 정보), 네트워크 할당 정보 등을 조회하기 위한 명령어
- 해당 도메인명이 다른 사람에 의해 사용 중인지 점검
- 사용법
- whois 도메인명 — 해당 도메인의 등록 정보(소유 정보), 네임 서버 정보 등 조회
- whois IP 주소 — 해당 주소의 네트워크 대역을 관리하는 대행자(ISP) 정보, 네트워크 할당 정보 등 확인
- 개요
- DNS 스푸핑
- 개요
- 스니핑 기반 DNS 스푸핑
- 개요
- 희생자가 DNS 질의를 수행하면 이를 스니핑하다가 정상 주소를 입력해도 조작된 주소로 접속하도록 함
- 이후에 도착하는 응답은 폐기됨
- 실습 — 더미 허브에 모두 연결되어 있어 무차별 모드로 동작 시 스니핑 가능
- 대응책
- 스니핑 탐지 및 차단
- 중요한 IP 주소에 대해서는 hosts 파일로 관리
- 개요
- DNS 캐시 포이즈닝
- 개요 — DNS 서버의 캐시 정보 조작
- 대응책
- 네임 서버의 소프트웨어(예: Bind DNS)를 최신 버전 상태로 유지
- 도메인 관리용 DNS 서버는 재귀적 질의를 허용하지 않도록 설정하고, 제한된 사용자가 사용하는 Recursive DNS 서버라면 해당 사용자로 제한해서 허용
- DNSSEC — 기존의 DNS에 공개키 암호화 보안 기능 추가
- DNS 서버(Bind DNS) 보안
- 마스터/슬레이브 네임 서버 이해하기
- 리졸버 — 네임 서버로 질의를 수행하여 그 결과를 응용 프로그램에 반환하는 소프트웨어 모듈/라이브러리
- 존 파일 이해하기
- 존 파일의 리소스 레코드 형식 — host_name [TTL] class record_type data
- class — 인터넷 클래스를 의미하는 IN 지정
- 존 파일의 리소스 레코드 형식 — host_name [TTL] class record_type data
- 재귀적 질의에 대한 제한
- 존 전송에 대한 제한
- 마스터 DNS 서버만을 운영할 경우 존 전송을 허용하지 않고 마스터와 슬레이브를 운영하는 환경에서는 지정한 슬레이브에서만 존 전송을 요청하도록 설정
- 마스터/슬레이브 네임 서버 이해하기
2. HTTP
- 개요
- 웹상에서 클라이언트와 서버 간 통신을 위해 개발된 프로토콜
- 비연결형 프로토콜
- Stateless 프로토콜
- 클라이언트 상태 정보 유지 기술
- 쿠키
- 영속 쿠키
- 클라이언트에 파일 형태로 지속해서 존재하는 쿠키
- 설정된 사이트 요청 시마다 쿠키 요청 헤더에 쿠키 정보를 담아 전달
- 세션 쿠키
- 클라이언트 메모리상에 세션이 유지되는 동안 존재하는 쿠키
- 세션 종료 시 소멸
- 영속 쿠키
- 세션
- 쿠키
- HTTP 쿠키 관련 보안 속성
- httponly
- 클라이언트에서 스크립트를 통해 해당 쿠키에 접근하는 것 차단
- 세션 ID를 저장하고 있는 세션 쿠키를 탈취하기 위한 XSS 대응
- secure — HTTPS 통신일 경우에만 해당 쿠키 전송
- httponly
- HTTP 요청 메시지 구조
3. FTP
- 개요
- SFTP — 22/tcp
- FTPS — 99/tcp
- 동작 모드
- FTP 능동 모드
- 개요
- 제어 채널
- FTP 명령을 전달하기 위한 채널
- 서버의 21/tcp 포트로 접속하여 제어 채널을 생성한 후 명령 전달
- 데이터 채널
- 데이터를 전달하기 위한 채널
- 서버(20/tcp 포트 사용)에서 클라이언트의 1024/tcp 이상 포트로 접속하여 데이터 채널을 생성한 후 데이터 전달
- 제어 채널
- 동작 방식
- 클라이언트가 FTP 서버의 21/tcp 포트로 접속하여 제어 채널 생성
- 사용자가 파일 목록을 보기 위해 ls 명령을 입력하면 FTP 클라이언트는 사용할 임시 포트를 결정한 후, FTP 서버에 PORT 명령을 이용하여 클라이언트 IP와 임시 포트 번호를 알려줌
- FTP 서버는 클라이언트가 알려준 IP와 포트로 접속하여 데이터 채널 생성
- 데이터 전송 후 데이터 채널 종료
- 문제점 및 해결 방안
- 클라이언트에 방화벽이 설치되어 원격 FTP 서버에서 클라이언트로의 접속을 허용하지 않는다면, 원격 FTP 서버로 접속은 되지만 데이터 채널 접속이 불가능
- 해결 방안
- 클라이언트 방화벽에 원격 FTP 서버에서 클라이언트로의 접속 허용 설정
- 클라이언트에서 수동 모드로 원격 FTP 서버에 접속
- 개요
- FTP 수동 모드
- 개요
- 제어 채널
- 데이터 채널 — 클라이언트에서 서버의 1024/tcp 이상 포트로 접속하여 데이터 전달
- 동작 방식
- 사용자가 ls 명령을 입력하면 FTP 클라이언트는 수동 모드로 연결하기 위해 PASV 명령을 전송하고 서버는 임시 포트를 결정한 후 FTP 클라이언트에게 알려줌
- 클라이언트는 서버가 알려준 포트로 접속하여 데이터 채널 생성
- 문제점 및 해결 방안
- 데이터 채널 생성을 위해 인바운드 트래픽에 대한 방화벽의 1024/tcp 이상 포트를 모두 허용해야 함
- 방화벽의 상태 검사 기능을 통해 연결 상태를 추적하여 데이터 채널을 허용하도록 설정
- 개요
- FTP 능동 모드
- FTP 보안 취약점을 이용한 공격
- FTP 바운스
- 개요
- 데이터 채널을 생성할 때 임의의 목적지 IP와 포트 번호를 설정할 수 있는 FTP 설계의 구조적 취약점을 이용하여 대상 네트워크를 스캔하거나 공격자가 원하는 서버로 데이터를 전송하는 형태
- 목적지 IP와 포트 번호를 임의의 주소로 지정 가능
- 공격 방식
- 개요
- TFTP 공격
- 개요
- TFTP
- 매우 단순하고 간단한 파일 송수신 프로토콜
- 69/udp 포트를 사용하며 별도의 인증 과정 없이 지정한 디렉터리에 접근
- 목적
- 자체 디스크가 없는 워크스테이션에 부팅 이미지 전달
- 네트워크 장비의 운영체제를 백업 또는 복구하거나 설정 정보를 저장하거나 가져오는 용도
- 공격자가 TFTP 서버에 있는 파일에 접근하거나 악의적인 파일 생성
- TFTP
- 대응책
- TFTP 서비스가 불필요한 경우 제거
- 필요한 경우 secure mode로 운영 — chroot 기능을 이용하는 것으로 지정한 디렉터리를 최상위 디렉터리로 지정하여 상위 디렉터리 접근 방지
- 실습
- 개요
- 익명 FTP 공격
- 개요
- 익명 FTP
- 익명 계정으로 FTP 접속이 가능한 서비스
- 비밀번호 인증 없이 서버의 파일에 접근 가능
- 익명 FTP
- 대응책 — 반드시 필요한 경우가 아니라면 허용하지 않도록
- 실습(vsFTP 서버)
- 개요
- FTP 서버 취약점 — vsFTP, ProFTP 등 다양한 FTP 서버 프로그램에서 포맷 스트링, 버퍼 오버플로우 등의 새로운 취약점 발견 가능. 최신 FTP 서버 프로그램 사용 및 주기적인 보안 패치 작업 필요
- FTP 바운스
- FTP 접근 제어 설정
- 설정 파일을 이용한 계정별 접근 제어
- 개요
- 평문 송수신을 하므로 중요 계정에 대해서는 FTP 접속 제한
- ftpusers — 접속을 제한할 계정 정보를 담고 있는 설정 파일
- vsFTP 서버의 경우 ftpusers 파일뿐만 아니라 user_list 파일을 이용해서 계정별 FTP 접속 제한 설정
- ftpusers 파일 실습(vsFTP 서버)
- user_list 파일 실습(vsFTP 서버만 해당) — vsftpd.conf에 userlist_enable=YES로 설정하면 user_list 파일을 이용하여 계정별 FTP 접속 제한 설정 가능
- 개요
- TCP Wrapper를 이용한 접근 제어
- hosts.allow, hosts.deny 이용
- vsFTP 서버의 경우 vsftpd.conf에 tcp_wrappers=YES로 설정
- 설정 파일을 이용한 계정별 접근 제어
4. SNMP
- 개요
- TCP/IP 기반 네트워크상의 각 호스트로부터 정기적을 여러 관리 정보를 자동으로 수집하거나 실시간으로 상태를 모니터링 및 설정할 수 있도록 하는 프로토콜
- 구성 요소
- Manager — Agent에 필요한 정보를 요청하는 모듈
- Agent — 관리 대상 시스템에 설치되어 필요한 정보를 수집하고 Manager에 전달
- 주로 서버나 네트워크 장비에서 SNMP를 설정한 후 MRTG 프로그램을 이용하여 트래픽 관리 등을 위해 사용
- MRTG — SNMP 기반의 장비 모니터링 프로그램
- 애플리케이션 계층 프로토콜. 메시지는 요청과 응답 형식의 프로토콜에 의해 교환되기 때문에 전송 계층 프로토콜로 UDP 프로토콜 사용
- 동작 방식
- Manger는 162/udp, Agent는 161/udp
- 매니저와 에이전트 간 통신을 위한 일치 사항 — SNMP 버전, Community String, PDU(Protocol Data Unit)
- PDU 타입
- Get Request — 매니저가 에이전트로 원하는 객체의 특정 정보 요청
- Get Next Request — 매니저가 에이전트로 이미 요청한 정보의 다음 정보 요청
- Set Request — 매니저가 에이전트로 특정한 값을 설정하기 위해 사용
- Get Response — 에이전트가 매니저에 해당 변수값 전송
- Trap — 에이전트가 매니저에 어떤 정보를 비동기적으로 알리기 위해 사용
- (SNMPv2) Get Bulk Request — 요청할 객체의 범위를 지정하여 한 번에 요청
- (SNMPv2) InformRequest — 관리 시스템 간의 정보 전달 목적
- 데이터 수집 방식
- Polling — 매니저가 에이전트에 정보를 요청하면 응답하는 방식. 에이전트가 161/udp 포트 사용
- Event Reporting — 에이전트가 이벤트 발생 시 이를 매니저에게 알리는 방식(Trap 메시지). Manager가 162/udp 포트 사용
- 주요 용어
- MIB(Management Information Bass)
- 관리돼야 할 측정한 정보, 자원을 모아놓은 집합체
- 관리자가 조회하거나 설정 가능한 객체들의 DB
- 객체별로 트리 형식 구조
- SMI
- MIB를 정의하기 위한 일반적인 구조
- ASN.1 언어 사용
- 정의된 모든 객체는 name, syntax, encoding을 가짐
- syntax — 객체의 데이터 유형(예: INTEGER, OCTET STRING)
- encoding — 메시지 전송 시 비트 변환 규칙. BER 사용
- MIB(Management Information Bass)
- SNMP 접근 제한 설정
- 보안 설정
- SNMP 버전별 특징
- v1 — 보안 기능이 없으며 community string만 일치하면 모든 정보를 얻을 수 있음
- v2
- 전송하는 정보에 대한 암호화와 해시 기능 추가
- 송신처 인증 기능 없음
- v2c — v2에 복잡한 보안 기능을 제거한 버전
- v3 — 데이터 인증, 암호 기능 및 재사용 방지, 세분화된 접근 통제 등
- community string
- SNMP 데몬과 클라이언트가 데이터를 교환하기 전에 인증을 위해 사용하는 일종의 패스워드
- 초기값으로 public 또는 private가 설정되어 있음
- 암호화 여부 — v3의 경우 v2에 계정과 암호로 인증하는 보안 기능 추가
- SNMPv3 보안 서비스
- 개요
- 사용자 기반 보안 모델 — 비인가 사용자에 의한 데이터 변경, 도청, 재사용 공격에 대응하는 기능 제공
- View-based Access Control Model — 인가된 사용자의 MIB 접근 통제 기능 제공
- Authoriative 엔진 — SNMP 명령을 처리하거나 통지를 발생시키는 SNMP 엔진
- 보안 매개변수
- msgAuthriativeEngineID, msgAuthriativeEngineBoots, msgAuthriativeEngineTime — 메시지의 유효 시간을 계산하고 재전송 여부를 판단하는 데 이용
- msgUserName, msgAuthenticationParameters — 위장 공격, 메시지 위변조 공격 방지
- msgPrivacyParameters — 도청, 정보 노출 방지. 메시지 암호화(DES-CBC) 지원
- 개요
- NMS
- 개요
- 네트워크상의 자원들을 모니터링하고 제어하기 위한 도구
- 전체 시스템에서 관리하는 네트워크의 요소의 각 지점과 특정한 속성에 주소와 이름을 지정하고 주기적으로 각 요소가 가진 정보를 중앙 제어 센터에 제공하는 구조
- Manager-Agent 구조
- 네트워크 모니터링 방식
- Polling — 요청/응답
- Event Reporting — Agent가 자신의 상태를 주기적으로 알림
- 개요
5. DHCP
- 개요
- 동적으로 클라이언트의 네트워크 주소를 설정하기 위한 프로토콜
- 67/udp(server), 68/udp(client) 포트 사용
- 관련 명령어
- ipconfig /release — 할당받은 IP 주소 해제
- ipconfig /renew — 새로운 IP 주소를 받음
- IP 할당 절차
- DHCP Discover
- DHCP Offer
- DCHP Request
- DHCP Ack — 서버는 해당 MAC과 IP 정보를 테이블에 저장하고 클라이언트에게 전송. 이를 받고 IP 정보 설정
- DHCP Starvation 공격
- DHCP 서버의 할당 가능한 IP를 모두 소진하게 만들어 IP 할당이 불가능하게 하는 공격
- discover 메시지를 서로 다른 MAC 주소로 대량으로 보내고, request 메시지까지 전송 후 실제로는 할당하지 않음
'정보보안기사' 카테고리의 다른 글
| [정보보안기사(실기)] SECTION 08 웹 애플리케이션 취약점 (2) (0) | 2026.06.06 |
|---|---|
| SECTION 08 웹 애플리케이션 취약점 (1) (1) | 2026.06.05 |
| [정보보안기사(실기)] SECTION 06 라우터 보안 (0) | 2026.05.31 |
| [정보보안기사(실기)] SECTION 05 네트워크 보안 프로토콜 - SSL/TLS (0) | 2026.05.27 |
| [정보보안기사(실기)] SECTION 05 네트워크 보안 프로토콜 - 가상 사설망, IPsec (0) | 2026.05.26 |