웹 서버 보안
더 많은 작업
웹 서버 보안은 인터넷에 노출된 웹 서버가 침해되거나 정보를 흘리지 않도록 운영체제와 웹 서버 소프트웨어의 설정을 줄이고 잠그는(하드닝) 조치를 묶어 부르는 말이다.
웹 서버는 조직 네트워크에서 가장 자주 공격받는 호스트이다. NIST SP 800-44 는 웹 서버를 안전하게 두려면 서버 소프트웨어와 플랫폼을 고르는 일부터, 하부 운영체제와 웹 서버 소프트웨어를 안전하게 설정하고, 네트워크 보호 장치를 두고, 안전한 설정을 계속 유지하는 일까지 해야 한다고 정리한다.[1] 원칙은 세 가지로 요약된다. 쓰지 않는 기능은 끄고, 서버 프로세스에는 꼭 필요한 권한만 주며, 밖으로 내보이는 정보와 받아들이는 입력의 크기를 제한한다.
NIST 는 웹 서버 서비스 프로세스를 root·administrator 같은 관리자가 아니라 권한이 엄격히 제한된 사용자로 실행하게 하라고 한다. 서비스 프로세스는 웹 콘텐츠 파일을 읽을 수만 있고 쓸 수 없어야 하며, 공개 콘텐츠 디렉터리에도 쓰지 못하고, 로그 파일은 쓸 수만 있고 읽지 못하게 한다.[1] 침입자가 웹 애플리케이션 취약점으로 서버 프로세스를 장악해도 할 수 있는 일을 줄이려는 것이다. 사용자에게 서비스를 잘 제공하려고 웹 서버 실행 계정에 많은 권한을 주는 것은 최소 권한 원칙과 정반대이다. 유닉스 계열에서 80번처럼 1024번 미만 포트를 열 때는 root 로 시작한 뒤 요청을 처리하는 프로세스를 일반 계정으로 낮춘다 → 잘 알려진 포트
요청한 디렉터리에 기본 문서(index.html 등)가 없을 때 서버가 파일 목록을 만들어 보여 주는 기능은 끈다. 백업 파일, 소스 코드, 설정 파일의 위치가 드러나기 때문이다. NIST 도 웹 서버의 디렉터리 목록 출력은 대부분 꺼야 하며, 일반에 공개된 파일만 있는 디렉터리라도 목록으로 응답하지 말라고 한다.[1] 아파치는 Options 지시자에서 Indexes 를 빼면 아파치 웹 서버의 mod_autoindex 모듈이 목록을 만들지 않는다.[3] IIS 는 '디렉터리 검색'을 사용하지 않음으로 둔다 → 디렉토리 리스팅, 윈도우 IIS
- 아파치의
LimitRequestBody는 클라이언트가 보내는 HTTP 요청 본문의 최대 바이트 수를 정한다. 2.4.54 부터 기본값이 1GiB 이고 그 전에는 0(무제한)이었다[3] - IIS 는 요청 필터링의
maxAllowedContentLength로 요청 본문 크기를 제한하며 기본값은 30,000,000바이트(약 28.6MB)이다[4] - 크기 제한은 큰 파일로 디스크와 메모리를 채우는 서비스 거부를 막는다. 업로드 파일은 웹 서버가 실행하지 않는 별도 디렉터리에 두고 확장자를 검사한다 → 파일 업로드 취약점
- 응답 배너·헤더에 서버 종류와 버전을 드러내지 않는다
- 상세 오류 메시지를 외부에 보여 주지 않는다
- 원격 관리는 SSH·HTTPS 같은 안전한 경로로만 하고 관리 계정 권한도 최소로 둔다[1]
| 설정 | 맞는 조치 | 이유 |
|---|---|---|
| WebDAV | 쓰지 않으면 비활성화 | 원격 파일 생성·삭제 기능이 공격 경로가 된다 |
| 웹 서버 실행 계정 | 제한된 일반 계정 | 장악당해도 피해를 줄인다. 권한을 넓히는 것은 잘못이다 |
| 디렉터리 목록 | 끔 | 숨은 파일 위치 노출 |
| 업로드·다운로드 크기 | 최대 크기 지정 | 자원 고갈 방지 |
| 서버 배너·오류 | 최소 정보만 | 버전별 취약점 탐색 방지 |
- ↑ 1.0 1.1 1.2 1.3 「Guidelines on Securing Public Web Servers」(NIST SP 800-44 Version 2), NIST, https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-44ver2.pdf, 확인일: 2026-11-04.
- ↑ 「CVE-2017-7269」, NIST National Vulnerability Database, https://nvd.nist.gov/vuln/detail/CVE-2017-7269, 확인일: 2026-11-04.
- ↑ 3.0 3.1 「Apache Core Features」·「mod_autoindex」, Apache HTTP Server 2.4 Documentation, https://httpd.apache.org/docs/2.4/mod/core.html, 확인일: 2026-11-04.
- ↑ 「Request Limits <requestLimits>」, Microsoft Learn(IIS 구성 참조), https://learn.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/requestlimits/, 확인일: 2026-11-04.