정보보안기사

[정보보안기사(실기)] SECTION 07 애플리케이션 학습

tnvori 2026. 6. 3. 17:40

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

1. DNS

  1. 구조
    1. 용어 정리
      • Recursive/Cache 네임/DNS 서버
        • 관리하는/위임받은 도메인 없이 사용자 호스트로부터 질의가 들어오면 자신의 캐시에 저장된 정보 또는 반복적 질의를 통해 그 결과를 사용자 호스트에 응답해주는 네임 서버
        • 일반적으로 ISP 업체가 제공하는 DNS 서버
      • Authoritative 네임/DNS 서버
        • 특정 도메인에 대한 정보를 관리하면서 해당 도메인에 대한 정보를 관리하면서 해당 도메인에 대한 질의에만 응답해주는 네임 서버
        • 각 회사/사이트별로 자신의 도메인을 관리하는 DNS 서버
      • 재귀적 질의 — 자신의 캐시 데이터를 조회한 후 데이터가 있으면 사용자 호스트로 결과를 반환하고 없으면 최상의 루트 네임 서버로부터 질의 대상 도메인 네임 서버까지 반복적 질의를 수행한 후 결과 반환
      • 반복적 질의 — 최상위 루트 네임 서버부터 계층 구조에 따라 대상 도메인 네임 서버까지 각 네임 서버가 응답하는 위임된 네임 서버 정보에 따라 순차적으로 반복하여 진행하는 질의
    2. 동작 방식
      • 윈도우 호스트의 경우 질의에 대한 검색 순서 — 로컬 DNS 캐시, hosts.ics, hosts 파일 순으로 검색하고 없으면 시스템에 설정된 네임 서버로 요청
      • Linux/Unix 기준 네임 서버 관련 설정 파일
        • /etc/resolv.conf — 기본 네임 서버 설정 정보
        • /etc/hosts
          • 도메인/호스트명과 IP 주소 매핑정보
          • DNS 질의 순서 지정
    3. 네임 서버 질의/응답 패킷 분석
      • 응답 데이터가 512바이트 이하일 경우 UDP(53번), 초과일 경우 TCP(53번) 사용
  2. DNS Cache 관련 명령어
    1. ipconfig /displaydns — 로컬 DNS 캐시 정보 조회
    2. ipconfig /flushdns — 로컬 DNS 캐시 정보 삭제
  3. DNS Lookup 명령어
    1. 개요
    2. nslookup
      • 사용법
        • 명령 실행 후 대화형 모드로 질의
        • nslookup [도메인] [네임 서버]
    3. dig
      • 개요 — nslookup 대체를 위해 만들어짐
      • dig [@네임 서버] 도메인 [쿼리 유형] [쿼리 옵션]
      • 질의 옵션
        • +norecurse — authoriative 네임 서버에 반복적 질의를 수행하여 정상 응답 여부 점검
        • +tcp — 53/tcp 허용 여부 점검
        • +trace
          • 계층적 위임 설정 상태 점검
          • 최상위 루트 도메인으로부터 최종 질의 대상 도메인까지 계층 구조에 따른 질의 수행
    4. whois
      • 개요
        • whois 서버를 통해 해당 도메인의 등록 정보(소유 정보), 네트워크 할당 정보 등을 조회하기 위한 명령어
        • 해당 도메인명이 다른 사람에 의해 사용 중인지 점검
      • 사용법
        • whois 도메인명 — 해당 도메인의 등록 정보(소유 정보), 네임 서버 정보 등 조회
        • whois IP 주소 — 해당 주소의 네트워크 대역을 관리하는 대행자(ISP) 정보, 네트워크 할당 정보 등 확인
  4. DNS 스푸핑
    1. 개요
    2. 스니핑 기반 DNS 스푸핑
      • 개요
        • 희생자가 DNS 질의를 수행하면 이를 스니핑하다가 정상 주소를 입력해도 조작된 주소로 접속하도록 함
        • 이후에 도착하는 응답은 폐기됨
      • 실습 — 더미 허브에 모두 연결되어 있어 무차별 모드로 동작 시 스니핑 가능
      • 대응책
        • 스니핑 탐지 및 차단
        • 중요한 IP 주소에 대해서는 hosts 파일로 관리
    3. DNS 캐시 포이즈닝
      • 개요 — DNS 서버의 캐시 정보 조작
      • 대응책
        • 네임 서버의 소프트웨어(예: Bind DNS)를 최신 버전 상태로 유지
        • 도메인 관리용 DNS 서버는 재귀적 질의를 허용하지 않도록 설정하고, 제한된 사용자가 사용하는 Recursive DNS 서버라면 해당 사용자로 제한해서 허용
        • DNSSEC — 기존의 DNS에 공개키 암호화 보안 기능 추가
  5. DNS 서버(Bind DNS) 보안
    1. 마스터/슬레이브 네임 서버 이해하기
      • 리졸버 — 네임 서버로 질의를 수행하여 그 결과를 응용 프로그램에 반환하는 소프트웨어 모듈/라이브러리
    2. 존 파일 이해하기
      • 존 파일의 리소스 레코드 형식 — host_name [TTL] class record_type data
        • class — 인터넷 클래스를 의미하는 IN 지정
    3. 재귀적 질의에 대한 제한
    4. 존 전송에 대한 제한
      • 마스터 DNS 서버만을 운영할 경우 존 전송을 허용하지 않고 마스터와 슬레이브를 운영하는 환경에서는 지정한 슬레이브에서만 존 전송을 요청하도록 설정

2. HTTP

  1. 개요
    • 웹상에서 클라이언트와 서버 간 통신을 위해 개발된 프로토콜
    • 비연결형 프로토콜
    • Stateless 프로토콜
  2. 클라이언트 상태 정보 유지 기술
    • 쿠키
      • 영속 쿠키
        • 클라이언트에 파일 형태로 지속해서 존재하는 쿠키
        • 설정된 사이트 요청 시마다 쿠키 요청 헤더에 쿠키 정보를 담아 전달
      • 세션 쿠키
        • 클라이언트 메모리상에 세션이 유지되는 동안 존재하는 쿠키
        • 세션 종료 시 소멸
    • 세션
  3. HTTP 쿠키 관련 보안 속성
    • httponly
      • 클라이언트에서 스크립트를 통해 해당 쿠키에 접근하는 것 차단
      • 세션 ID를 저장하고 있는 세션 쿠키를 탈취하기 위한 XSS 대응
    • secure — HTTPS 통신일 경우에만 해당 쿠키 전송
  4. HTTP 요청 메시지 구조

3. FTP

  1. 개요
    • SFTP — 22/tcp
    • FTPS — 99/tcp
  2. 동작 모드
    1. FTP 능동 모드
      • 개요
        • 제어 채널
          • FTP 명령을 전달하기 위한 채널
          • 서버의 21/tcp 포트로 접속하여 제어 채널을 생성한 후 명령 전달
        • 데이터 채널
          • 데이터를 전달하기 위한 채널
          • 서버(20/tcp 포트 사용)에서 클라이언트의 1024/tcp 이상 포트로 접속하여 데이터 채널을 생성한 후 데이터 전달
      • 동작 방식
        • 클라이언트가 FTP 서버의 21/tcp 포트로 접속하여 제어 채널 생성
        • 사용자가 파일 목록을 보기 위해 ls 명령을 입력하면 FTP 클라이언트는 사용할 임시 포트를 결정한 후, FTP 서버에 PORT 명령을 이용하여 클라이언트 IP와 임시 포트 번호를 알려줌
        • FTP 서버는 클라이언트가 알려준 IP와 포트로 접속하여 데이터 채널 생성
        • 데이터 전송 후 데이터 채널 종료
      • 문제점 및 해결 방안
        • 클라이언트에 방화벽이 설치되어 원격 FTP 서버에서 클라이언트로의 접속을 허용하지 않는다면, 원격 FTP 서버로 접속은 되지만 데이터 채널 접속이 불가능
        • 해결 방안
          • 클라이언트 방화벽에 원격 FTP 서버에서 클라이언트로의 접속 허용 설정
          • 클라이언트에서 수동 모드로 원격 FTP 서버에 접속
    2. FTP 수동 모드
      • 개요
        • 제어 채널
        • 데이터 채널 — 클라이언트에서 서버의 1024/tcp 이상 포트로 접속하여 데이터 전달
      • 동작 방식
        • 사용자가 ls 명령을 입력하면 FTP 클라이언트는 수동 모드로 연결하기 위해 PASV 명령을 전송하고 서버는 임시 포트를 결정한 후 FTP 클라이언트에게 알려줌
        • 클라이언트는 서버가 알려준 포트로 접속하여 데이터 채널 생성
      • 문제점 및 해결 방안
        • 데이터 채널 생성을 위해 인바운드 트래픽에 대한 방화벽의 1024/tcp 이상 포트를 모두 허용해야 함
        • 방화벽의 상태 검사 기능을 통해 연결 상태를 추적하여 데이터 채널을 허용하도록 설정
  3. FTP 보안 취약점을 이용한 공격
    1. FTP 바운스
      • 개요
        • 데이터 채널을 생성할 때 임의의 목적지 IP와 포트 번호를 설정할 수 있는 FTP 설계의 구조적 취약점을 이용하여 대상 네트워크를 스캔하거나 공격자가 원하는 서버로 데이터를 전송하는 형태
        • 목적지 IP와 포트 번호를 임의의 주소로 지정 가능
      • 공격 방식
    2. TFTP 공격
      • 개요
        • TFTP
          • 매우 단순하고 간단한 파일 송수신 프로토콜
          • 69/udp 포트를 사용하며 별도의 인증 과정 없이 지정한 디렉터리에 접근
          • 목적
            • 자체 디스크가 없는 워크스테이션에 부팅 이미지 전달
            • 네트워크 장비의 운영체제를 백업 또는 복구하거나 설정 정보를 저장하거나 가져오는 용도
        • 공격자가 TFTP 서버에 있는 파일에 접근하거나 악의적인 파일 생성
      • 대응책
        • TFTP 서비스가 불필요한 경우 제거
        • 필요한 경우 secure mode로 운영 — chroot 기능을 이용하는 것으로 지정한 디렉터리를 최상위 디렉터리로 지정하여 상위 디렉터리 접근 방지
      • 실습
    3. 익명 FTP 공격
      • 개요
        • 익명 FTP
          • 익명 계정으로 FTP 접속이 가능한 서비스
          • 비밀번호 인증 없이 서버의 파일에 접근 가능
      • 대응책 — 반드시 필요한 경우가 아니라면 허용하지 않도록
      • 실습(vsFTP 서버)
    4. FTP 서버 취약점 — vsFTP, ProFTP 등 다양한 FTP 서버 프로그램에서 포맷 스트링, 버퍼 오버플로우 등의 새로운 취약점 발견 가능. 최신 FTP 서버 프로그램 사용 및 주기적인 보안 패치 작업 필요
  4. FTP 접근 제어 설정
    1. 설정 파일을 이용한 계정별 접근 제어
      • 개요
        • 평문 송수신을 하므로 중요 계정에 대해서는 FTP 접속 제한
        • ftpusers — 접속을 제한할 계정 정보를 담고 있는 설정 파일
        • vsFTP 서버의 경우 ftpusers 파일뿐만 아니라 user_list 파일을 이용해서 계정별 FTP 접속 제한 설정
      • ftpusers 파일 실습(vsFTP 서버)
      • user_list 파일 실습(vsFTP 서버만 해당) — vsftpd.conf에 userlist_enable=YES로 설정하면 user_list 파일을 이용하여 계정별 FTP 접속 제한 설정 가능
    2. TCP Wrapper를 이용한 접근 제어
      • hosts.allow, hosts.deny 이용
      • vsFTP 서버의 경우 vsftpd.conf에 tcp_wrappers=YES로 설정

4. SNMP

  1. 개요
    • TCP/IP 기반 네트워크상의 각 호스트로부터 정기적을 여러 관리 정보를 자동으로 수집하거나 실시간으로 상태를 모니터링 및 설정할 수 있도록 하는 프로토콜
    • 구성 요소
      • Manager — Agent에 필요한 정보를 요청하는 모듈
      • Agent — 관리 대상 시스템에 설치되어 필요한 정보를 수집하고 Manager에 전달
      • 주로 서버나 네트워크 장비에서 SNMP를 설정한 후 MRTG 프로그램을 이용하여 트래픽 관리 등을 위해 사용
      • MRTG — SNMP 기반의 장비 모니터링 프로그램
      • 애플리케이션 계층 프로토콜. 메시지는 요청과 응답 형식의 프로토콜에 의해 교환되기 때문에 전송 계층 프로토콜로 UDP 프로토콜 사용
  2. 동작 방식
    • 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 포트 사용
  3. 주요 용어
    • MIB(Management Information Bass)
      • 관리돼야 할 측정한 정보, 자원을 모아놓은 집합체
      • 관리자가 조회하거나 설정 가능한 객체들의 DB
      • 객체별로 트리 형식 구조
    • SMI
      • MIB를 정의하기 위한 일반적인 구조
      • ASN.1 언어 사용
      • 정의된 모든 객체는 name, syntax, encoding을 가짐
        • syntax — 객체의 데이터 유형(예: INTEGER, OCTET STRING)
        • encoding — 메시지 전송 시 비트 변환 규칙. BER 사용
  4. SNMP 접근 제한 설정
    • 보안 설정
    • SNMP 버전별 특징
      • v1 — 보안 기능이 없으며 community string만 일치하면 모든 정보를 얻을 수 있음
      • v2
        • 전송하는 정보에 대한 암호화와 해시 기능 추가
        • 송신처 인증 기능 없음
        • v2c — v2에 복잡한 보안 기능을 제거한 버전
      • v3 — 데이터 인증, 암호 기능 및 재사용 방지, 세분화된 접근 통제 등
    • community string
      • SNMP 데몬과 클라이언트가 데이터를 교환하기 전에 인증을 위해 사용하는 일종의 패스워드
      • 초기값으로 public 또는 private가 설정되어 있음
    • 암호화 여부 — v3의 경우 v2에 계정과 암호로 인증하는 보안 기능 추가
  5. SNMPv3 보안 서비스
    • 개요
      • 사용자 기반 보안 모델 — 비인가 사용자에 의한 데이터 변경, 도청, 재사용 공격에 대응하는 기능 제공
      • View-based Access Control Model — 인가된 사용자의 MIB 접근 통제 기능 제공
      • Authoriative 엔진 — SNMP 명령을 처리하거나 통지를 발생시키는 SNMP 엔진
    • 보안 매개변수
      • msgAuthriativeEngineID, msgAuthriativeEngineBoots, msgAuthriativeEngineTime — 메시지의 유효 시간을 계산하고 재전송 여부를 판단하는 데 이용
      • msgUserName, msgAuthenticationParameters — 위장 공격, 메시지 위변조 공격 방지
      • msgPrivacyParameters — 도청, 정보 노출 방지. 메시지 암호화(DES-CBC) 지원
  6. NMS
    • 개요
      • 네트워크상의 자원들을 모니터링하고 제어하기 위한 도구
      • 전체 시스템에서 관리하는 네트워크의 요소의 각 지점과 특정한 속성에 주소와 이름을 지정하고 주기적으로 각 요소가 가진 정보를 중앙 제어 센터에 제공하는 구조
      • Manager-Agent 구조
    • 네트워크 모니터링 방식
      • Polling — 요청/응답
      • Event Reporting — Agent가 자신의 상태를 주기적으로 알림

5. DHCP

  1. 개요
    • 동적으로 클라이언트의 네트워크 주소를 설정하기 위한 프로토콜
    • 67/udp(server), 68/udp(client) 포트 사용
  2. 관련 명령어
    • ipconfig /release — 할당받은 IP 주소 해제
    • ipconfig /renew — 새로운 IP 주소를 받음
  3. IP 할당 절차
    1. DHCP Discover
    2. DHCP Offer
    3. DCHP Request
    4. DHCP Ack — 서버는 해당 MAC과 IP 정보를 테이블에 저장하고 클라이언트에게 전송. 이를 받고 IP 정보 설정
  4. DHCP Starvation 공격
    • DHCP 서버의 할당 가능한 IP를 모두 소진하게 만들어 IP 할당이 불가능하게 하는 공격
    • discover 메시지를 서로 다른 MAC 주소로 대량으로 보내고, request 메시지까지 전송 후 실제로는 할당하지 않음