정보보안기사

[정보보안기사(실기)] SECTION 09 웹 서버 취약점

tnvori 2026. 6. 7. 16:34

냉동실에 안 넣은 국내산 생 가오리 조림. 진짜 맛있음

1. 디렉터리 리스팅 취약점

  1. 개요 — 강제 브라우징을 통해 서버 내의 모든 디렉터리 및 파일 목록 탐색
  2. 실습
    • 취약한 사이트 실습(APM 환경)
    • 안전한 사이트 실습(APM 환경)
      • httpd.conf의 Options Indexes → Options None
    • 안전한 사이트 실습(IIS 및 Tomcat 환경)
      • IIS 웹 서버 환경에서의 디렉터리 인덱싱 기능 제거 — 디렉터리 검색 기능 해제
      • Tomcat 웹 서버 환경에서의 디렉터리 인덱싱 기능 제거 — web.xml의 default 서블릿 초기 설정에 listings 파라미터를 false로 설정

2. 웹 서비스 메서드 설정 취약점

  1. 개요 — PUT, DELETE 등의 불필요한 메서드를 허용했을 경우 이를 악용하여 웹 서버에 악성 파일을 생성하거나 중요 파일의 삭제 및 수정 등이 가능한 취약점
  2. 실습
    • 취약한 사이트 실습(APM 환경) — telnet으로 접속 후 OPTIONS 메서드 요청 메시지 전송
    • 안전한 사이트 실습(APM 환경)
      • http.conf를 통한 불필요한 메서드 사용 제한 — 디렉터리 섹션의 LimitExcept 지시자

3. 관리자 페이지 노출 취약점

  1. 개요
  2. 실습
    • 취약한 사이트 실습(APM 환경)
    • 안전한 사이트 실습(APM 환경)
      • 추측하기 어려운 페이지
      • 관리자 페이지에 대한 접근 제어 설정
        • 관리자 IP 등록 — Aloow from
    • 디렉터리 접근 제어(httpd.conf) 테스트

4. 위치 공개 취약점

  1. 개요
  2. 실습
    • 취약한 사이트 실습(AP 환경)
    • 안저한 사이트 실습 — httpd.conf를 통해 특정 확장자를 가진 파일에접근 차단

5. 검색 엔진 정보 노출 취약점

  1. 개요
    • 검색 엔진에 의해 해킹에 필요한 정보가 검색되는 취약점
    • 로봇 배제 표준
      • 검색 로봇에 대한 웹사이트의 디렉터리 및 파일들에 대한 검색 조건을 명시해놓은 국제 규약
      • 접근 제한에 대한 설정을 robots.txt에 기술
    • 검색 로봇
      • 검색 엔진이 검색 데이터베이스의 내용을 보충하기 위해 웹사이트를 검색하여 정보를 가져오는 프로그램
      • robots.txt를 확인하고 이를 준수하여 컨텐츠 수집
    • 악의적인 검색 엔진의 경우 로봇 배제 표준 무시
  2. 실습
    • robots.txt 설정 방법
      • User-agent와 Allow/Disallow
      • 웹 사이트의 최상위 주소에 저장
    • 설정 예
      • 설정 파일명은 반드시 robots.txt이어야 함
      • 대소문자 구분
      • 띄어쓰기 유의
    • 검색 엔진 접근 차단 여부 확인 방법
      • 웹 사이트 URL/rotobts.txt 확인
      • 해당 파일이 없는 경우는 검색 엔진 접근 차단 설정 미적용 상태

6. 기타 웹 서버 보안 대책(아파치 기준)

  1. 웹 서비스 최소 권한 사용자 운영
    1. 개요
    2. 대응책
      • 웹 서버 프로세스를 실행할 별도의 사용자 및 그룹을 생성하고 해당 사용자로 시스템에 로그인할 수 없도록 설정 — apahce 사용자와 apache 그룹을 생성하고 해당 사용자의 로그인 셸 부분을 /sbin/nologin 또는 /bin/false로 설정하여 시스템에 로그인할 수 없도록 함
      • httpd.conf의 서버 프로세스 실행 권한을 해당 사용자 및 그룹으로 설정
  2. 심볼릭 링크 사용 설정 제거
    1. 개요
      • 심볼릭 링크 기능을 사용하여 다른 위치의 파일이나 디렉터리와 연결하여 사용 가능
      • 웹에서 허용하는 디렉터리 외에 다른 디렉터리를 참조하는 링크가 존재하는 경우 해당 링크에 액세스할 수 있는 위험성 존재
    2. 대응책 — httpd.conf의 / 섹션의 Options에서 FollowSymLinks 설정 제거
  3. 웹 서비스 정보 숨김
    1. 개요
    2. 대응책
      • httpd.conf의 ServerTokens 지시자
        • Prod — 웹 서버 종류
        • Min — Prod 정보 + 웹 서버 버전
        • OS — Min 정보 + 운영체제(기본값)
        • Full — OS 정보 + 설치된 모듈 정보
      • ServerSignature 지시자 — 웹 서버에서 직접 생성하는 에러 메시지, 디렉터리 리스팅 메시지 등에 웹 서버, OS 모듈 등의 정보 제공 여부 지정
  4. 웹 서버 설정 파일 주요 지시자
    1. 일반 설정
      • ServerRoot
      • Listen
      • User
        Group
      • ServerTokens
      • ServerSignature
      • ServerAdmin — 클라이언트에게 전달되는 에러 메시지에 포함될 관리자 메일 주소 설정
      • DocumentRoot
      • DirectoryIndex
    2. 타임아웃 관련 설정
      • Timeout — 초 단위
      • KeepAlive
        • 클라이언트와 서버 프로세스 간 연결을 일정 조건에 따라 지속시켜 동일한 연결을 통해 동일 클라이언트의 다수 요청을 처리하는 기능 사용 여부 지정
        • 일반적으로 매번 클라이언트 요청에 대해 연결을 설정하고 응답 이후에 연결을 종료하는 방식(Connectionless)에 비해 웹 서버의 TCP 연결 설정에 대한 부하 감소
        • MaxKeepAliveRequests
        • KeepAliveTimeout
        • RequestReadTimeout
          • 클라이언트로부터 요청 메시지의 헤더부와 바디부를 모두 수신하는 시간에 대한 타임아웃 지정
          • Slow 계열 HTTP DoS 공격에 효과적 대응
    3. 로그 관련 설정
      • ErrorLog
      • CustomLog — 접속 기록을 저장하기 위한 로그 파일의 경로 지정

7. 웹 로그 분석

  1. 개요
    • 액세스 로그 — 클라이언트가 웹 서버에 요청한 자원에 대한 정보
    • 에러 로그
  2. 웹 로그 분석 목적
    • 접속 사용자의 행위, 취향 등 분석
    • 보안 사고 발생 시 추적 가능한 증거 자료
    • 보안 사고 발생 전 이상 징후, 해킹 시도, 해킹 성공 여부 확인
    • 다양한 웹 공격 패턴 파악
    • 접속 시간, 접근 파일 정보, 사용자 정보, 요청 방식, 성공 여부 등 확인
  3. 웹 로그 구조
    • 웹 로그 종류
      • NCSA CLF(Common Log Format) — Apache 및 Tomcat의 기본 포맷
      • NCSA ELF(Extended Log Format) — NCSA CLF에 Refere 값과 User-Agent 값이 포함된 포맷
      • W3C ELF — Referer와 User-Agent를 비롯한 Cookie 및 사용자 정보를 추가로 남길 수 있는 포맷. 주로 IIS에서 사용
    • 웹 로그 포맷(NCSA ELF)
      • Host
      • Ident — 클라이언트의 사용자 이름. 보통 “-”로 대체
      • Authuser — 인증이 요청된 사용자 이름. 보통 “-”로 대체
      • Dat and Time
      • Request
      • Status
      • Bytes
      • Referer — 요청된 URL이 참조되거나 링크된 URL
      • User-Agent
    • 로그 예
  4. 웹 로그 분석 실습

8. 보안 서버 구축

  1. 개요
    • 인터넷상에서 정보를 암호화하여 송수신하는 기능이 구축된 웹 서버
    • 이미 사용하고 있는 웹 서버에 SSL/TLS 인증서나 암호화 소프트웨어를 설치하여 암호 통신을 지원하는 것
  2. 보안 서버 구축의 필요성
    • 정보 유출 방지
    • 위조 사이트 방지 — SSL/TLS 인증서가 인증
    • 기업 신뢰도 향상
  3. 보안 서버 구축의 법적 근거
    • 개인정보보호법 관련 개인정보보호위원회 고시 개인정보의 안정성 확보 조치 기준
      • 제7조(개인정보의 암호화)
        • 개인정보처리자는 비밀번호, 생체인식정보 등 인증정보를 저장 또는 정보통신망을 통하여 송수신하는 경우에 이를 안전한 암호 알고리즘으로 암호화하여야 한다.
        • 개인정보처리자는 개인정보를 정보통신망을 통하여 인터넷망 구간으로 송수신하는 경우에는 이를 안전한 암호 알고리즘으로 암호화하여야 한다.
  4. SSL/TLS 관련 보안 가이드
    1. SSL/TLS 서버 인증서 생성 시 보안 가이드
      • 키쌍 생성 시 2048비트 이상의 키를 사용하고 서버 개인키에 대한 접근은 최소화하며 안전하게 관리한다.
      • 인증서 발급 시 인증서 서명 알고리즘을 SHA-2 이상으로 설정한다.
      • 인증서 발급 시 주체/소유자의 CN을 서브 도메인까지 명시한다.
        • 서브 도메인을 명시하지 않으면 임의의 서브 도메인 인증서로 악용 가능
      • 신뢰할 수 있는 인증 기관을 통해 인증서를 발급한다.
    2. OpemSSL 라이브러리 보안 가이드
      • 취약점이 발견된 OpenSSL 라이브러리 버전을 사용할 경우 보안 업데이트를 수행한다.
    3. SSL/TLS 웹 서버 설정 보안 가이드
      • 취약한 암호화 통신 방법으로 알려진 SSL 2.0, SSL 3.0 프로토콜을 비활성화하고, TSL 1.0 ~ 1.2 프로토콜을 사용한다.
      • 취약한 암호 방식을 사용하는 암호 도구 목록을 제거한다.
        • ALL
        • !aNULL — 인증을 하지 않는 Cipher Suite 제거
        • !eNULL — 암호화를 하지 않는 Cipher Suite 제거
        • !EXP — 약한 암호키를 사용하는 수출용 Cipher Suite 제거
        • !ADH — Anonymous Diffie-Hellman Cipher Suite 제거
        • !DES, !RSA, !MD5