System Security Checker

서버의 운영체제 및 WAS의 보안 설정이 올바르게 되어 있는지 점검합니다. 간단한 설정으로 서버의 보안성을 향상시켜 보세요.

서버의 운영체제와 WAS의
보안 설정을 점검

고객 서버의 운영체제와 WAS의 보안 설정을 점검하여 취약점을
보완하기 위한 결과 리포트를 제공합니다.

시스템 안전성 향상
운영 체제에 대한 보안적인 요소를 고려하여 시스템 접근 권한 및 계정 등을 관리하는 것은 기본입니다. 아울러 WAS에 대한 보안 설정도 점검하실 수 있습니다. 더욱 안전한 서버 운영을 위해 주요 보안 설정 값들을 확인하고 관련 세부 항목들을 점검합니다.
꼼꼼한 보안 기준
한국인터넷진흥원(KISA)에서 가이드하고 있는 운영 체제 보안 설정 기준보다 좀 더 철저한 보안 정책을 제시합니다. 네이버의 다양한 서비스를 운영하며 축적한 경험을 바탕으로 자체적인 체크리스트를 수립하여 점검을 진행합니다.
상세 점검 후 결과 리포트 제공
시스템의 취약점이 드러나는 설정 값이 있는지 웹 기반의 콘솔을 통해 확인할 수 있습니다. 점검 후 발견된 부적합한 설정은 결과 리포트를 제공합니다. 조치 가이드를 함께 제공하여 설정을 변경하실 수 있도록 지원합니다.

상세기능

고객님의 안전한 보안 서비스를 위하여 다양한 기능을 제공합니다

활용 대상

  • 높은 수준의 서버 보안을 필요로 하는 고객
  • 간단한 설정만으로 시스템에 대한 보안 위협을 경감시키고자 하는 고객
  • KISA 가이드 등의 보안 인증이나 법률에서 요구하는 기준을 준수해야 하는 고객

점검 가능 대상

주요 제공 기능 표
분류설명
OS Linux
- CentOS 6.9
- CentOS 7.3
- Ubuntu 14.04
- Ubuntu 16.04

Windows
- Windows Server 2008 R2 with SP1 (64-bit)
- Windows Server 2012 R2 (64-bit)
WAS Apache(httpd)
Tomcat
Nginx

주요 점검 항목

주요 제공 기능 표
분류설명
계정 관리- 서버에 접근 가능한 계정에 대한 보안 설정을 점검합니다.
- 불필요한 계정의 유무를 살피고, 사용자 계정의 비밀번호 설정 정책을 확인합니다.
파일 권한 관리- 중요 시스템 파일에 대한 접근 권한을 점검합니다.
- 서버에서 중요한 정보를 저장하고 있는 파일에 대한 비인가자의 접근을 방지하기 위한 권한 설정을 확인합니다.
기본 설정- 기본적으로 설정되어야 하는 보안 설정 값들을 확인합니다.

세부 점검 항목 (Linux)

점검 항목세부 점검 항목설명
기본 설정UMASK 설정 관리- 시스템 내에서 사용자가 새로 생성하는 파일의 접근 권한은 UMASK 값에 따라 정해집니다.
- UMASK 값이 적당하지 않으면 잘못된 권한의 파일을 생성시킬 수 있습니다.
- UMASK 값은 '027' 또는, '022'를 권장합니다.
홈 디렉토리 권한 설정- 사용자 홈 디렉터리에 포함된 설정 파일이 비인가자에 의해 변조되면, 정상적인 사용자 서비스가 제한됩니다.
- 해당 홈 디렉터리의 소유자 이외의 일반 사용자들이 해당 홈 디렉터리를 수정할 수 없도록 제한하여야 합니다.
익명 FTP 비활성화- Anonymous FTP(익명 FTP)를 사용할 경우 악의적인 사용자가 시스템에 관한 정보를 획득할 수 있습니다.
- 특히 디렉터리에 쓰기 권한이 설정되어 있을 경우에는 local exploit을 사용하여 다양한 공격이 가능하게 됩니다.
- 반드시 인가된 사용자만 접속 할 수 있도록 설정하여, 권한이 없는 사용자의 FTP 사용을 제한하여야 합니다.
계정 관리root 계정 원격 접속 제한- root 계정은 시스템을 관리하는 매우 중요한 계정이므로, 직접 로그인하도록 허용하면 불법적인 침입자의 목표가 될 수 있습니다.
- root 계정의 원격 접속을 제한하고, 사용자가 생성한 별도의 사용자 계정으로 로그인한 뒤 su 명령을 이용하여 root 권한으로 변경하여 작업하는 것이 안전합니다.
/etc/shadow 파일 중 password가 없는 계정- 패스워드를 암호화 하지 않고 평문으로 저장하면, 정보 유출시 큰 피해가 발생합니다.
- "/etc/shadow" 파일에 암호화된 패스워드가 저장되도록 하고, 관리자 권한이 있는 사용자들만 읽을 수 있도록 제한해야 합니다.
root를 제외한 UID 0 계정 삭제- UID 값이 0을 가지는 계정은 root와 동일한 권한을 가집니다.
- root(UID=0)와 동일한 UID(User Identification)를 가진 계정 존재 시 root 권한으로 시스템 접근이 가능하므로 root 이외에 UID 0을 가진 계정이 존재하지 않도록 확인하여 조치해야 합니다.
패스워드 최소길이 설정- 계정의 패스워드가 짧게 설정되어 있는 경우, 무작위 대입 공격(Brute Force Attack)이나 패스워드 추측 공격(Password Guessing)에 취약합니다.
- 사용자가 계정의 패스워드를 8자리 이상으로 설정하도록 유도하기 위하여, 패스워드의 최소 길이 정책을 8자리 이상으로 설정해야 합니다.
Password 최장 사용기간 설정- 동일한 패스워드를 오래 사용하면, 이전에 발생한 외부 침입으로 인해 노출된 패스워드로 지속적인 공격에 노출됩니다.
- 사용자가 패스워드를 주기적으로 변경할 수 있도록 정책적으로 유도하는 것이 바람직합니다.
관리자 그룹에 최소한의 계정 포함- 시스템을 관리하는 root 계정이 속한 그룹은 시스템 운영 파일에 대한 접근 권한이 부여되어 있으므로 최소한의 계정만 등록되어 있어야 합니다.
- 허가 받지 않은 사용자에 의해 악의적인 파일 수정 및 변경이 일어나면 시스템 운영에 피해가 발생할 수 있어 관리자 그룹에 대한 관리가 필요합니다.
동일한 UID를 사용하는 계정사용 금지- UNIX 시스템은 모든 사용자 계정에 UID를 부여하여 해당 UID로 사용자 이름, 비밀번호, 홈 디렉터리 등과 같은 사용자 정보를 확인합니다.
- 만약 중복된 UID가 존재할 경우 시스템에서 동일한 사용자로 인식하여 문제가 발생할 수 있습니다.
- 또한, 공격자에 의한 개인 정보 및 관련 데이터 유출 발생 시에도 감사 추적이 어렵기 때문에 동일한 UID를 사용하는 계정이 없도록 관리해야 합니다.
로그인이 필요하지 않은 계정의 shell 권한점검- 일반적으로 nobody와 같은 계정은 로그인 쉘이 필요하지 않습니다.
- 로그인이 필요 없는 계정을 이용해 시스템에 접근하여 사용자의 명령어를 해석하고 악용할 가능성이 있으므로, /bin/false 쉘(Shell)을 부여해 로그인을 제한해야 합니다.
Session Timeout 설정- 계정이 접속된 상태로 방치될 경우 권한이 없는 사용자에게 중요 시스템이 노출되어 악의적인 목적으로 사용될 수 있습니다.
- 일정 시간동안 어떠한 이벤트도 발생하지 않으면, 연결을 강제 종료하는 Session Timeout 설정이 필요합니다.
파일 권한 설정중요 파일 권한 관리- 시스템 파일의 중요도에 따라 각 권한별로 실행할 수 있는 작업 범위를 설정해야 합니다.
- root를 제외한 다른 권한들은 읽기만 허용되는 등의 권한 제한 설정을 통해 시스템을 안정적으로 운영할 수 있습니다.

세부 점검 항목 (Windows)

점검 항목세부 점검 항목설명
계정 관리Administrator 계정 이름 바꾸기- 일반적으로 ' Administrator'로 설정되어 있는 관리자 계정의 이름을 변경함으로써 공격자가 패스워드 뿐만 아니라 계정 이름을 쉽게 유추하지 못하도록 설정해야 합니다.
Guest 계정 사용 제한- Guest 계정은 아무나 시스템에 접근할 수 있게하는 취약한 계정이므로 사용을 제한하여야 합니다.
- 불특정 다수의 접근이 필요할 경우 Guest 계정이 아닌 일반 사용자 계정을 생성해 사용하는 것을 권장합니다.
로그인 시도 실패 시 계정 잠금 임계값 설정- 무차별 암호 대입 공격 등에 대비해 몇 차례 이상 로그인 시도 실패 시 계정을 잠글 수 있도록 합니다.
- 잠긴 계정은 해당 계정을 재설정할 때까지 또는 계정 잠금 기간 정책 설정으로 지정된 시간(분)이 만료될 때까지 사용할 수 없습니다.
- 1에서 999까지 로그인 실패 횟수의 값을 설정하거나 값을 0으로 설정하여 계정이 잠기지 않도록 지정할 수 있습니다.
계정 잠금 기간 설정- 계정 잠금 기간 설정은 자동으로 잠금 해제되기 전까지 잠긴 계정이 잠긴 상태를 유지하는 시간(분)을 결정합니다.
- 1~99,999분 사이의 값을 지정할 수 있습니다.
- 0의 값은 관리자가 명시적으로 잠금을 해제할 때까지 계정이 잠기도록 지정합니다.
'해독 가능한 암호화를 사용하여 암호 저장' 사용 안함- 암호를 해독 가능한 방식으로 저장한다는 것은 암호를 해독할 수 있다는 의미입니다.
- 이 암호를 해독할 수 있는 능력이 있는 공격자는 손상된 계정을 사용하여 네트워크 리소스에 로그온할 수 있습니다.
- 응용 프로그램 요구 사항이 암호 정보를 보호해야 할 필요성보다 크지 않은 한, 해독 가능한 암호화를 사용하여 암호를 저장할 수 없도록 설정하는 것을 권장합니다.
Everyone 사용 권한을 익명 사용자에게 적용' 사용 안함- 이 정책 설정을 사용하면 익명 사용자가 도메인 계정 및 공유 폴더의 이름을 열거하고 기타 특정 활동을 수행할 수 있습니다.
- 기본적으로 익명 연결용으로 만들어진 토큰에는 Everyone SID가 포함되지 않습니다. 따라서 Everyone 그룹에 할당된 권한이 익명 사용자에게 적용되지 않습니다.
패스워드 복잡성 설정- 패스워드 설정 시 문자, 숫자, 특수 문자를 모두 포함하여 강력한 패스워드가 설정될 수 있도록 암호 복잡성을 설정하는 것을 권장합니다.
최소 패스워드 길이 설정- 최소 패스워드 길이 설정은 사용자 계정의 패스워드를 구성할 수 있는 최소 문자 수를 결정합니다.
- 1-14자 사이로 설정 가능합니다. 최소 패스워드 길이는 8자 이상으로 설정하는 것을 권고합니다.
- 최소 패스워드 길이를 '0'으로 설정하면 패스워드를 사용하지 않도록 설정할 수 있습니다.
패스워드 사용 기간 설정- 최소/최대 패스워드 사용 기간을 설정하여 사용자가 패스워드를 주기적으로 변경할 수 있도록 유도할 수 있습니다.
- 패스워드가 특정 기간(1-999일) 후 만료되도록 하거나, 일수를 '0'으로 설정하여 패스워드가 만료되지 않도록 지정할 수 있습니다.
최근 패스워드 기억- 최근에 사용한 패스워드를 기억하도록 설정하면 사용자가 이전에 즐겨 사용하던 패스워드를 다시 사용하는 것을 어느 정도 막을 수 있습니다.
- 사용자가 패스워드를 변경할 때, 이전 패스워드를 다시 사용할 수 있는 경우 패스워드 정책의 효과가 크게 줄어들기 때문에, 사용자가 최근에 사용한 패스워드를 기억하도록 하여 동일한 패스워드를 계속 반복해서 사용할 수 없도록 합니다.
마지막 사용자 이름 표시 안함- 디바이스에 로그온한 마지막 사용자의 이름을 보안된 데스크톱에 표시되지 않도록 설정해야 합니다.
- 마지막으로 로그온한 사용자의 이름이 로그온 대화 상자에 표시될 경우, 공격자는 이를 획득하여 패스워드를 추측하거나 무작위 공격을 시도할 수 있습니다.
콘솔 로그온 시 로컬 계정에서 빈 패스워드 사용 제한- 이 설정은 빈 패스워드를 사용하는 로컬 계정에 대해 원격 데스크톱 서비스, 텔넷, FTP(파일 전송 프로토콜) 등의 네트워크 서비스를 통한 원격 대화형 로그온을 허용할지 여부를 결정합니다.
- 이 정책 설정을 활성화하는 경우 로컬 계정은 원격 클라이언트에서 대화형 또는 네트워크 로그온을 수행하는데 사용할 비어 있지 않은 패스워드를 포함해야 합니다.
- 빈 패스워드는 컴퓨터 보안을 심각하게 위협하므로, 회사 정책 및 적합한 기술적 조치를 통해 금지해야 합니다.
서비스 관리불필요한 서비스 제거- 일반적으로 시스템에는 필요하지 않은 취약한 서비스들이 디폴트로 설치되어 실행되고 있으며 이러한 서비스 또는, 응용 프로그램은 공격 지점이 될 수 있습니다.
- 사용자의 환경에서 필요하지 않은 서비스나 실행 파일을 사용하지 않거나 제거하여야 합니다.
IIS 서비스 구동 점검- IIS 서비스는 WEB, FTP 등의 서비스를 제공해주는 유용한 서비스이지만 프로파일링, 서비스 거부, 불법적인 접근, 임의의 코드실행, 정보 공개, 바이러스, 웜, 트로이목마 등의 위협에 노출될 수 있으므로 필요하지 않은 서비스는 중지하여야 합니다.
FTP 서비스 구동 점검- 기본적인 FTP 서비스는 계정과 패스워드가 암호화되지 않은 채로 전송되어 간단한 *Sniffer에 의해서도 스니핑이 가능하므로 FTP 서비스를 사용하지 않을 것을 권고합니다.
*Sniffer: 네트워크 트래픽을 감시하고 분석하는 프로그램.
DNS Zone Transfer 설정- DNS 서버에 저장되어 있는 도메인 정보를 승인된 DNS서버가 아닌 다른 외부로 유출하는 것은 보안상 바람직하지 않습니다.
- 만약, DNS 도메인 정보가 외부로 노출될 경우 악의적인 사용자가 해당 정보를 이용하여 홈페이지 및 하위 URL 정보를 입수하여 웹 애플리케이션 구조를 예측하여 공격에 활용할 수 있습니다. - 적절한 보안 설정을 통하여 도메인 정보 전송을 제한하여야 합니다.
터미널 서비스 암호화 수준 설정- 터미널 서비스는 원격지에 있는 서버를 관리할 때 유용한 도구이지만 취약한 패스워드를 사용하거나 접근 제어가 적절하게 설정되어 있지 않은 경우 해킹의 도구로 악용될 수 있습니다.
-불필요하게 터미널 서비스가 사용되고 있지 않은지 점검하여야 합니다.
SNMP 서비스 구동 점검- SNMP 서비스는 시스템 상태를 실시간으로 파악하거나 설정하기 위해 사용하는 서비스입니다.
- 시스템의 주요 정보가 유출되거나 불법 수정될 수 있어 SNMP 서비스를 사용하지 않는 경우에는 중지해주어야 합니다.
Telnet 보안 설정- Telnet 서비스는 평문으로 데이터를 송수신하기 때문에 패스워드 방식으로 인증을 수행할 경우 ID 및 패스워드가 외부로 노출될 위험성이 있습니다.
- 따라서 Telnet 이용 시 네트워크상으로 패스워드를 전송하지 않는 NTLM 인증만 사용하여야 합니다.
※ Windows 서버의 Telnet 서비스는 NTLM 인증과 패스워드 인증 방법을 제공함.
- NTLM 인증: 패스워드를 전송하지 않고 negotiate/challenge/response 절차로 인증을 수행함.
-패스워드 인증: 관리자 및 TelnetClients 그룹에 포함된 ID/PWD로 인증 절차를 수행함.
로그 관리정책에 따른 시스템 로깅 설정- 법적 요구 사항과 조직의 정책에 따라 적절한 수준의 로깅 설정을 하여야 합니다.
- 감사 설정이 구성되어 있지 않거나 수준이 너무 낮으면 보안 관련 문제 발생 시 원인을 파악하기 어려우며 법적 대응을 위한 충분한 증거로 사용될 수도 없습니다.
- 그러나 감사 설정이 너무 높으면 보안 로그에 불필요한 항목이 많이 기록되므로 매우 중요한 항목과 혼동할 수 있으며 시스템 성능에도 심각한 영향을 줄 수 있습니다.
원격으로 액세스할 수 있는 레지스트리 경로 차단- Windows에 의해 사용되는 모든 초기화 및 환경설정 정보가 레지스트리에 저장되므로 레지스트리에 대한 철저한 보안이 요구됩니다.
- 레지스트리 편집기는 원격 접속으로도 그 키를 바꿀 수 있지만, 대단히 위험하므로 네트워크를 통한 레지스트리 접속을 차단하여야 합니다.
이벤트 로그 관리 설정- 최대 로그 크기는 '10,240Kb 이상'으로 설정하여 로그가 저장될 수 있는 공간을 충분히 확보해야 합니다.
- 이벤트 로그 관리는 '이벤트 겹쳐 쓰지 않음'으로 설정하여 로그가 자동으로 덮어 씌워짐으로써 과거의 로그가 삭제되는 일이 발생하지 않도록 확인해야 합니다.
보안 관리로그온하지 않고 시스템 종료 허용- 로그온 창에 '시스템 종료' 버튼을 비활성화 시킴으로써 허가되지 않은 사용자가 시스템 종료를 하는 위협을 방지할 수 있습니다.
SAM 계정과 공유의 익명 열거 허용 안 함- SAM(보안 계정 관리자) 계정과 공유의 익명 열거가 허용될 경우 악의적인 사용자가 계정 이름 목록을 확인하고 이 정보를 사용하여 암호를 추측하거나 사회 공학적 공격기법을 수행할 수 있습니다.
Autologon 기능 제어- Autologon 기능은 레지스트리에 암호화 되어 저장된 대체 증명을 사용하여 자동으로 로그인하는 기능입니다.
- 침입자가 해킹 도구를 이용하여 레지스트리에서 로그인 계정 및 암호를 확인할 수 있으므로 Autologon 기능을 사용하지 않도록 설정해야 합니다.
이동식 미디어 포맷 및 꺼내기 허용- 사용자가 관리 권한을 갖고 있는 임의의 컴퓨터로만 이동식 디스크의 데이터를 이동하고, 파일에 대한 소유권을 얻어 파일을 보거나 수정할 수 있도록 해야 합니다..
사용자가 프린터 드라이버를 설치할 수 없게 함- 악의적인 사용자가 고의적으로 잘못된 프린터 드라이버를 설치하여 컴퓨터를 손상시킬 수 있으며, 프린터 드라이버로 위장한 악성 코드를 설치할 수 있습니다.
- 사용자가 프린터 드라이버를 설치할 수 없게 설정하여야 합니다.
경고 메시지 설정- 시스템에 로그온을 시도하는 악의적인 사용자들에게 관리자는 시스템의 불법적인 사용에 대하여 경고 창을 띄움으로써 적절한 보안수준으로 시스템이 보호되고 있음을 알리며 공격자의 활동을 주시하고 있다는 경각심을 줄 수 있습니다.
LAN Manager 인증 수준- Lan Manager 인증 수준 설정을 통해 네트워크 로그온에 사용할 Challenge/Response 인증 프로토콜을 결정합니다.
- LAN Manager는 네트워크를 통한 파일 및 프린터 공유 등과 같은 작업 시 인증을 담당합니다.
- 보다 안전한 인증을 위해 NTLMv2를 사용하는 것을 권장합니다.
※ NTLMv2는 Windows 2000, 2003, XP 이상에서 지원되며, Windows 98, NT 버전과통신 할 경우 패치를 설치하여야 합니다.

세부 점검 항목 (Apache)

점검 항목세부 점검 항목설명
Minimize Moduleslog_config_module 사용log_config 모듈은 클라이언트 요청의 유연한 로깅을 제공하고 각 로그에 대한 정보를 제공합니다. 로깅 설정을 활성화 하는 것을 권장합니다.
webdav_modules 사용 금지"WebDAV는 클라이언트가 웹 서버에서 파일과 리소스를 만들고, 이동하고, 삭제할 수 있도록 하는 HTTP프로토콜의 확장입니다. WebDAV는 널리 사용되지 않으며, 클라이언트가 웹 서버에서 무단 파일을 수정할 수 있으므로 심각한 보안 문제가 발생할 수 있으므로, 사용하지 않아야 합니다."
status_module 사용 금지"Apache mod_status Module은 현재 서버 성능 통계를 제공합니다. 웹 페이지로 사용 가능한 서버 성능 상태 정보를 제공하는 것이 편리할 수 있지만, 이 모듈을 비활성화하는 것이 좋습니다."
autoindex_module 사용 금지Apache autoindex 모듈은 서버에 있는 디렉터리의 내용을 나열한 웹 페이지를 자동으로 생성합니다. index.html와 같은 생성되지 말아야 할 페이지가 생성되므로, 비활성화 해야 합니다.
proxy module 사용 금지"아파치 프록시 모듈은 서버가 프록시 또는 역 방향으로 작동하도록 허용합니다. 프록시 모듈이 로드된 프록시 및 기타 프로토콜의 프록시를 제공합니다. 아파치 설치가 다른 네트워크에 대한 프록시 요청 또는 다른 네트워크에 있지 않을 경우, 프록시 모듈을 로드해서는 안 됩니다."
userdir module 사용 금지tilde (~)를 이용한 사용자 홈디렉토리 접근을 허용하지 않으려면 비활성화되어야 합니다.
info_module 사용 금지아파치 mod_info 모듈은/etc/ server-info URL위치에 대한 액세스를 통해 서버 설정에 대한 정보를 제공하므로, 해당 모듈을 사용하지 않아야 합니다.
Permission, Ownershipapache 사용 Group 제한일반적으로 Apache는 포트 80 및 443에서 수신 대기하기 위해 루트 권한으로 시작되지만 웹 서비스를 수행하려면 루트가 아닌 다른 사용자로 실행될 수 있고 실행되어야합니다. Apache User 및 Group 지시문은 사용할 사용자 및 그룹을 지정하는 데 사용됩니다.
apache 사용 User 제한일반적으로 Apache는 포트 80 및 443에서 수신 대기하기 위해 루트 권한으로 시작되지만 웹 서비스를 수행하려면 루트가 아닌 다른 사용자로 실행될 수 있고 실행되어야합니다. Apache User 및 Group 지시문은 사용할 사용자 및 그룹을 지정하는 데 사용됩니다.
apache 로그인 shell 제한apache 계정은 일반 로그인 계정으로 사용해서는 안되며, 계정을 사용하여 로그인 할 수 없도록하려면 유효하지 않거나 nologin 쉘을 할당해야합니다.
apache 계정 잠금 정책Apache가 실행되는 사용자 계정에는 유효한 암호가 없어야하지만 잠겨 있어야합니다.
Access Control루트 디렉토리 접근 제어 - Order"Apache Directory 지시문을 사용하면 액세스 제어 및 기타 많은 기능과 옵션에 대한 디렉토리 별 구성을 허용합니다. 중요한 사용법 중 하나는 특별히 허용 된 것을 제외하고 운영 체제 디렉토리 및 파일에 대한 액세스를 허용하지 않는 기본 거부 정책을 만드는 것입니다. 이것은 OS 루트 디렉토리에 대한 액세스를 거부하여 수행됩니다.
Order deny,allow"
루트 디렉토리 접근 제어 - Deny"Apache Directory 지시문을 사용하면 액세스 제어 및 기타 많은 기능과 옵션에 대한 디렉토리 별 구성을 허용합니다. 중요한 사용법 중 하나는 특별히 허용 된 것을 제외하고 운영 체제 디렉토리 및 파일에 대한 액세스를 허용하지 않는 기본 거부 정책을 만드는 것입니다. 이것은 OS 루트 디렉토리에 대한 액세스를 거부하여 수행됩니다.
Deny from all"
AllowOverride 설정 - noneApache OverRide 지시문을 사용하면 .htaccess 파일을 사용하여 인증, 문서 유형 처리, 자동 생성 색인, 액세스 제어 및 옵션을 비롯한 많은 구성을 무시할 수 있습니다. 서버가 AccessFileName에 지정된대로 .htaccess 파일을 찾으면 해당 파일에 선언 된 지시문이 이전 액세스 정보를 무시할 수 있어야합니다. 이 지정 문을 없음으로 설정하면 .htaccess 파일이 완전히 무시됩니다. 이 경우 서버는 파일 시스템의 .htaccess 파일을 읽지 않습니다. 이 지시문을 All로 설정하면 .htaccess Context가있는 지시문을 .htaccess 파일에 사용할 수 있습니다.
Minimize Features and ContentOptions 설정 - none"루트(/) OS 레벨에 대한 옵션 지시는 루트 디렉토리 수준에서 최소한의 옵션만 허용하는 최소권한 정책을 따라야 합니다. 그런 다음 특정 웹 사이트 또는 웹 사이트의 일부에 필요한 경우 옵션을 추가하여 사용할 수 있습니다. Options가 활성화되어 있어야 하며, 옵션 지시자의 값은 none이어야 합니다."
기본 컨텐츠 사용제한 - server-status"아파치 설치시에 사용 용도에 적합하지 않거나 불필요한 기본 컨텐츠가 설치될 수 있습니다. 이러한 샘플 콘텐츠의 주요 기능은 기본 웹 사이트를 제공하고, 사용자 설명서를 제공하거나 웹 서버의 특수 기능을 시연하는 것입니다. 서비스에 필요하지 않은 default 콘텐츠를 제거해야 합니다."
기본 컨텐츠 사용제한 - server-info"아파치 설치시에 사용 용도에 적합하지 않거나 불필요한 기본 컨텐츠가 설치될 수 있습니다. 이러한 샘플 콘텐츠의 주요 기능은 기본 웹 사이트를 제공하고, 사용자 설명서를 제공하거나 웹 서버의 특수 기능을 시연하는 것입니다. 서비스에 필요하지 않은 default 콘텐츠를 제거해야 합니다."
기본 컨텐츠 사용제한 - perl-status"아파치 설치시에 사용 용도에 적합하지 않거나 불필요한 기본 컨텐츠가 설치될 수 있습니다. 이러한 샘플 콘텐츠의 주요 기능은 기본 웹 사이트를 제공하고, 사용자 설명서를 제공하거나 웹 서버의 특수 기능을 시연하는 것입니다. 서비스에 필요하지 않은 default 콘텐츠를 제거해야 합니다."
HTTP TRACE 사용 금지Apache TraceEnable 명령을 사용하여 HTTP TRACE 요청 방식을 비활성화합니다.
Logging, Monitoring에러로그 수준 설정 - LogLevel noticeLogLevel 지시문은 에러 로그의 수준을 구성하는 데 사용됩니다. 로그 수준 값은 emerg, alert, crit, error, warn, notice, info 및 debug의 표준 syslog 수준입니다. emerg 레벨에서 notice 레벨까지의 모든 에러가 기록할 수 있도록 notice 레벨로 설정하는 것을 권장합니다.
에러로그 수집 설정ErrorLog 지시문은 에러 로그 파일 이름을 구성합니다.
로그 포맷 정의LogFormat 지시문은 액세스 로그 항목에 포함될 형식 및 정보를 정의합니다.
CustomLog 포맷 정의CustomLog 지시문은 로그 파일, syslog 기능 또는 파이프 로깅 유틸리티를 지정합니다.
SSL/TLSssl_module 사용"SSL (Secure Sockets Layer) 또는 TLS (Transport Layer Security)느 트래픽을 암호화하는데 사용되므로 개인 정보 및 사용자 자격 증명의 기밀성을 제공합니다. 그러나 전송 중 데이터를 암호화했기 때문에 클라이언트가 제공하는 데이터가 서버에있는 동안 보호 된다는 의미는 아닙니다. mod_ssl 모듈은 Apache 용 SSL / TLS를 구현하는 가장 많이 사용되는 표준 모듈입니다. Red Hat 시스템에서 발견 된 새로운 모듈은 mod_ssl을 보완하거나 대체 할 수 있으며 동일한 기능과 추가 보안 서비스를 제공합니다. mod_nss는 Mozilla의 NSS (Network Security Services) 소프트웨어를 Apache 모듈로 구현 한 것으로, TLS 외에도 광범위한 암호화 기능을 구현합니다. 데이터의 보호를 위하여 mod_ssl 또는 mod_nss를 설치하여야 합니다."
Information LeakageServerTokens 설정서버의 버전에 대하여 최소한의 정보만을 제공하도록 Apache ServerTokens 지시문을 구성하십시오. 값을 Prod 또는 ProductOnly로 설정하는 것을 권장합니다.
ServerSignature 설정오류 페이지와 같은 서버 생성 문서 맨 아래 서명 등에 추가되는 정보를 제한하기 위하여, ServerSignature 지시문을 off 하는 것을 권장합니다.
Denial of Service MitigationsKeepAlive 설정KeepAlive 지시문은 아파치가 그 클라이언트의 후속 HTTP 요청을 처리하기 위해 클라이언트 당 동일한 TCP 연결을 재사용할지 여부를 제어합니다. KeepAlive 지정 문을 On으로 설정하는 것을 권장합니다.
MaxKeepAliveRequests 설정MaxKeepAliveRequests 지시문은 KeepAlive가 설정된 경우 연결 당 허용되는 요청 수를 제한합니다. 0으로 설정하면 무제한 요청이 허용됩니다. MaxKeepAliveRequests 지시문을 100 이상으로 설정하는 것을 권장합니다.
Timeout 설정TimeOut 지시문은 Apache HTTP 서버가 입/출력 호출이 완료 될 때까지 대기하는 최대 시간 (초)을 제어합니다. TimeOut 지시문을 10 이하로 설정하는 것을 권장합니다.
KeepAliveTimeout 설정KeepAliveTimeout 지시문은 Apache가 활성 상태로 유지되는 연결을 닫기 전에 후속 요청을 대기하는 시간 (초)을 지정합니다. 15초 이하로 설정하는 것을 권장합니다.

세부 점검 항목 (Tomcat)

점검 항목세부 점검 항목설명
Remove Extraneous Resources서비스에 불필요한 파일 제거Tomcat을 설치할 때 기본적으로 제공되는 어플리케이션과 설명문서, 기타 디렉토리는 삭제하는 것을 권장합니다. 샘플 리소스는 불필요한 정보를 외부에 유출할 우려가 있어 삭제하는 것이 바람직합니다.
Limit Server Platform Information Leaks서버 정보 노출을 방지를 위한 server.info 문자열 변경"기본적으로 server.info 속성에는 애플리케이션 서비스의 이름과 버전 정보가 포함되어 있습니다. 이 값은 클라이언트가 tomcat 서버에 연결할 때 Tomcat 클라이언트에 표시되어 서버의 정보를 노출시키게 됩니다.
server.info 속성을 변경하여 정보를 차단하면, 공격자가 서버 플랫폼에 영향을 주는 취약성을 판단하기가 더 어려워 질 수 있습니다."
서버 정보 노출을 방지를 위한 server.number 문자열 변경"server.number 속성은 실행중인 Tomcat의 상세 버전을 나타냅니다. 이 값은 연결될 때 Tomcat 클라이언트에게 표시됩니다.
서버의 상세 버전을 노출하면 공격자가 서버 플랫폼에 영향을 미치는 취약점을 찾기가 쉬워집니다. 서버 버전 문자열을 변경하여 공격자가 어떤 취약점이 서버 플랫폼에 영향을 미치는지 판단하기 어렵게 하는 것이 좋습니다."
서버 정보 노출을 방지를 위한 server.built 날짜 변경"server.built 날짜는 Tomcat이 컴파일되고 패키징 된 날짜를 나타냅니다. 이 값은 클라이언트가 서버에 연결할 때 Tomcat 클라이언트에 제공됩니다.
서버의 설치 날짜를 노출하면 공격자가 서버 플랫폼에 영향을 미치는 취약점을 찾기가 쉬워집니다. Server.bulit 문자열을 변경하여 공격자가 어떤 취약점이 서버 플랫폼에 영향을 미치는지 판단하기 어렵게 하는 것이 좋습니다."
X-Powered-By HTTP Header 사용하지 않음"xpoweredBy 설정은 Apache Tomcat이 XPowered-By HTTP 헤더를 통해 존재 여부를 알릴 것인지 결정합니다. 이 값을 false로 설정하는 것이 좋습니다. server 속성은 Apache Tomcat을 추가적으로 마스킹하는 HTTP 헤더에서 보내지는 기본값을 덮어 씁니다.
Tomcat이 이러한 방식으로 자신의 존재를 광고하는 것을 방지하면 공격자가 서버 플랫폼에 어떤 취약점이 영향을 미치는지 판단하기가 더 어려워 질 수 있습니다."
Stack Traces 정보 노출 제한"요청 처리 중에 런타임 오류가 발생하면 Apache Tomcat은 요청자에게 디버깅 정보를 표시합니다. 이러한 디버그 정보는 요청자에게 노출하지 않는 것이 좋습니다.
호출 스택과 같은 디버깅 정보에는 공격자가 유용 할 수있는 중요한 정보가 포함되어있는 경우가 많습니다. Tomcat이 이 정보를 제공하지 못하도록 함으로써 민감한 정보가 잠재적 인 공격자에게 누설될 위험이 줄어 듭니다."
HTTP TRACE 사용하지 않음"HTTP TRACE는 주어진 요청에 대한 디버깅 및 진단 정보를 제공합니다.
TRACE 요청에 대한 응답에서 발견된 진단 정보에는 공격자에게 유용한 정보가 포함되어 있는 경우가 많습니다. Tomcat이 이 정보를 제공하지 못하도록 함으로써 민감한 정보가 잠재적 인 공격자에게 누설 될 위험이 줄어 듭니다."
Protect the Shutdown PortSet a nondeterministic Shutdown command value"Tomcat은 종료 명령을 처리하기 위해 기본적으로 TCP 8005 포트를 사용합니다. 이 포트에 연결하고 SHUTDOWN명령을 전송하면 Tomcat 내의 모든 응용 프로그램이 중지됩니다. 정지 포트는 루프 백 인터페이스에 바인딩 되어 있으므로 네트워크에 노출되지 않습니다. $CATALINANAL_HOME/conf/server.xml의 Shutdown 특성에 'nondeterministic' 값을 설정하는 것이 좋습니다.
Shutdown 옵션을 'nondeterministic' 값으로 설정하면 악성 로컬 사용자가 Tomcat을 종료하지 못할 수 있습니다."
Shutdown port 사용 금지"Tomcat은 TCP 포트 8005에서 수신 대기 요청을 허용합니다. 이 포트에 연결하고 SHUTDOWN 명령을 보내면 Tomcat 내의 모든 응용 프로그램이 중지됩니다. 종료 포트는 루프백 인터페이스에 바인딩되어 있으므로 네트워크에 노출되지 않습니다. 이 기능을 사용하지 않으면 종료 포트를 사용하지 않는 것이 좋습니다.
종료 포트를 비활성화하면 shutdown 명령을 사용하여 Tomcat 서버를 비활성화하는 악성 로컬 엔티티의 위험이 제거됩니다."
Protect Tomcat Configurations접근 제한 설정 : $CATALINA_HOME"$CATALINA_HOME은 루트 Tomcat 디렉토리에 대한 경로를 보유하는 환경 변수입니다. 허가되지 않은 수정으로부터 Tomcat 바이너리와 라이브러리를 보호하기 위해이 액세스를 보호하는 것이 중요합니다.
$CATALINA_HOME의 소유권은 tomcat_admin : tomcat입니다. 또한 $CATALINA_HOME에 대한 권한으로 인해 world (o-rwx)에 대한 읽기, 쓰기 및 실행이 금지되고 그룹 (g-w)에 대한 쓰기 액세스가 금지되는 것이 좋습니다.
$CATALINA_HOME이 보호되지 않으면 Tomcat을 탐색하거나 의존하는 프로세스 및 데이터의 보안이 손상 될 수 있습니다."
접근 제한 설정 : $CATALINA_BASE"$CATALINA_BASE는 대부분의 상대 경로가 해석되는 기본 디렉토리를 지정하는 환경 변수입니다. $CATALINA_BASE는 일반적으로 실행중인 Tomcat의 인스턴스가 여러 개인 경우에 사용됩니다. Tomcat 관련 바이너리와 라이브러리를 무단으로 수정하지 못하도록하기 위해서는 이 액세스를 보호하는 것이 중요합니다. $CATALINA_BASE의 소유권은 tomcat_admin : tomcat이어야합니다. 또한 $CATALINA_BASE에 대한 권한으로 인해 world (o-rwx)에 대한 읽기, 쓰기 및 실행이 금지되고 그룹 (g-w)에 대한 쓰기 액세스가 금지되는 것이 좋습니다.
$CATALINA_BASE가 보호되지 않으면 Tomcat에서 트래버스하거나 의존하는 프로세스 및 데이터의 보안이 손상 될 수 있습니다."
접근 제한 설정 : $CATALINA_HOME/conf/"$CATALINA_HOME/conf/ 디렉토리에는 Tomcat 구성 파일이 들어 있습니다. 이 디렉토리의 소유권은 tomcat_admin : tomcat입니다. 또한 이 디렉토리에 대한 사용 권한이 전체 (o-rwx)에 대한 읽기, 쓰기 및 실행을 금지하고 그룹 (g-w)에 대한 쓰기 액세스를 금지하는 것이 좋습니다.
이러한 디렉토리에 대한 액세스를 제한하면 로컬 사용자가 악의적으로 또는 실수로 Tomcat의 구성을 변경하는 것을 방지 할 수 있습니다."
접근 제한 설정 : $CATALINA_HOME/logs/"$CATALINA_HOME/logs/ 디렉토리에는 Tomcat 로그가 들어 있습니다. 이 디렉토리의 소유권은 tomcat_admin : tomcat입니다. 또한 이 디렉토리의 사용 권한이 전체 (o-rwx)에 대한 읽기, 쓰기 및 실행을 금지하는 것이 좋습니다.
이러한 디렉토리에 대한 액세스를 제한하면 로컬 사용자가 악의적으로 또는 부주의하게 Tomcat의 로그를 변경하는 것을 방지 할 수 있습니다."
접근 제한 설정 : $CATALINA_HOME/temp/"$CATALINA_HOME/temp/ 디렉토리는 임시 정보를 디스크에 저장하기 위해 Tomcat에서 사용됩니다. 이 디렉토리의 소유권은 tomcat_admin : tomcat입니다. 또한 이 디렉토리의 사용 권한이 전체(o-rwx)에 대한 읽기, 쓰기 및 실행을 금지하는 것이 좋습니다.
이러한 디렉토리에 대한 액세스를 제한하면 로컬 사용자가 악의적으로 또는 부주의하게 Tomcat의 무결성을 조작하는 것을 방지 할 수 있습니다."
접근 제한 설정 : $CATALINA_HOME/bin/"$CATALINA_HOME/bin/ 디렉토리는 Tomcat 런타임의 일부인 실행 파일을 포함합니다. 이 디렉토리의 소유권은 tomcat_admin : tomcat입니다. 또한 이 디렉토리에 대한 권한으로 인해 전체(o-rwx)에 대한 읽기, 쓰기 및 실행이 금지되고 그룹 (g-w)에 대한 쓰기 액세스가 금지되는 것이 좋습니다.
이러한 디렉토리에 대한 액세스를 제한하면 로컬 사용자가 악의적으로 또는 부주의하게 Tomcat 프로세스의 무결성을 조작하는 것을 방지 할 수 있습니다."
접근 제한 설정 : $CATALINA_HOME/webapps/"$CATALINA_HOME/webapps 디렉토리에는 Tomcat을 통해 배포되는 웹 응용 프로그램이 포함되어 있습니다. 이 디렉토리의 소유권은 tomcat_admin : tomcat입니다. 또한 $CATALINA_HOME/webapps에 대한 권한은 전체(o-rwx)에 대한 읽기, 쓰기 및 실행을 금지하고 그룹 (g-w)에 대한 쓰기 액세스를 금지하는 것이 좋습니다.
이러한 디렉토리에 대한 액세스를 제한하면 로컬 사용자가 악의적으로 또는 부주의하게 웹 어플리케이션의 무결성을 조작하는 것을 방지 할 수 있습니다."
접근 제한 설정 : catalina.policy"catalina.policy 파일은 Tomcat에 대한 보안 정책을 구성하는 데 사용됩니다. 이 파일에 대한 액세스 권한이 변경되지 않도록 적절하게 보호 할 수 있는 적절한 권한이 있는 것이 좋습니다.
이 파일에 대한 액세스를 제한하면 로컬 사용자가 톰캣의 보안 정책을 악의적으로 또는 우연히 변경하는 것을 방지 할 수 있습니다."
접근 제한 설정 : catalina.properties"catalina.properties는 클래스 로더 정보, 보안 패키지 목록 및 성능 등록 정보를 포함하여 Tomcat에 대한 설정을 포함하는 Java 등록 정보 파일입니다. 이 파일에 대한 액세스 권한이 변경되지 않도록 적절하게 보호 할 수 있는 적절한 권한이 있는 것이 좋습니다.
이 파일에 대한 액세스를 제한하면 로컬 사용자가 톰캣의 보안 정책을 악의적으로 또는 우연히 변경하는 것을 방지 할 수 있습니다."
접근 제한 설정 : context.xml "context.xml 파일은 모든 웹 응용 프로그램에 의해 로드되고 특정 구성 옵션을 설정합니다. 이 파일에 대한 액세스 권한이 변경되지 않도록 적절하게 보호 할 수 있는 적절한 권한이 있는 것이 좋습니다.
이 파일에 대한 액세스를 제한하면 로컬 사용자가 톰캣의 보안 정책을 악의적으로 또는 우연히 변경하는 것을 방지 할 수 있습니다."
접근 제한 설정 : logging.properties"logging.properties는 로깅 구성을 지정하는 Tomcat 파일입니다. 이 파일에 대한 액세스 권한이 변경되지 않도록 적절하게 보호 할 수 있는 적절한 권한이 있는 것이 좋습니다.
이 파일에 대한 액세스를 제한하면 로컬 사용자가 톰캣의 보안 정책을 악의적으로 또는 우연히 변경하는 것을 방지 할 수 있습니다."
접근 제한 설정 : server.xml"server.xml에는 Tomcat 서블릿 정의 및 구성이 포함되어 있습니다. 이 파일에 대한 액세스 권한이 변경되지 않도록 적절하게 보호 할 수 있는 적절한 권한이 있는 것이 좋습니다.
이 파일에 대한 액세스를 제한하면 로컬 사용자가 톰캣의 보안 정책을 악의적으로 또는 우연히 변경하는 것을 방지 할 수 있습니다."
접근 제한 설정 : tomcat-users.xml"tomcat-users.xml에는 Tomcat 응용 프로그램에 대한 인증 정보가 들어 있습니다. 이 파일에 대한 액세스 권한이 변경되지 않도록 적절하게 보호 할 수 있는 적절한 권한이 있는 것이 좋습니다.
이 파일에 대한 액세스를 제한하면 로컬 사용자가 톰캣의 보안 정책을 악의적으로 또는 우연히 변경하는 것을 방지 할 수 있습니다."
접근 제한 설정 : web.xml"web.xml은 응용 프로그램 구성 설정을 저장하는 Tomcat 구성 파일입니다. 이 파일에 대한 액세스 권한이 변경되지 않도록 적절하게 보호 할 수 있는 적절한 권한이 있는 것이 좋습니다.
이 파일에 대한 액세스를 제한하면 로컬 사용자가 톰캣의 보안 정책을 악의적으로 또는 우연히 변경하는 것을 방지 할 수 있습니다."
Configure Realms안전하지 않은 Realms 사용 제한"realm이란 사용자의 유효한 웹 응용 프로그램을 식별하는 데 사용되는 사용자 이름과 암호의 데이터베이스입니다. Realms 구성을 검토하여 Tomcat이 아래에 나열된 realm은 사용하지 않도록 설정해야 합니다.
- MemoryRealm
- JDBCRealm
- UserDatabaseRealm
- JAASRealm"
LockOut Realms 사용LockOut realm은 로그인 실패가 여러번 발생할 때, 사용자 로그인을 잠글 수 있는 기능입니다. 여러번 로그인을 실패한 계정을 잠그면 무작위 대입 공격에 대하 위협을 줄일 수 있습니다.
Connector SecurityConnector 옵션 : clientAuth=true 로 설정Client-cert 인증에는 서버에 연결하는 각 클라이언트에 인증에 사용되는 인증서가 있어야 합니다. 이는 일반적으로 암호만으로 인증을 하는 방식에 비해, 클라이언트 인증서도 함께 가지고 있어야 하므로 암보 기반 인증 보다 강력한 인증으로 간주됩니다.
Connector 옵션 : SSLEnabled, secure 옵션 확인"보안 속성은 커넥터 보안 상태를 커넥터를 통해 작동하는 응용 프로그램에 전달하는 데 사용됩니다. 이것은 일반적으로 request.isSecure()를 호출하여 수행됩니다. SSLEnabled 속성이 true로 설정된 커넥터에 대해 secure 속성이 true로 설정되었는지 확인하십시오.
커넥터의 보안 상태를 정확하게 보고하는 것은 Tomcat에 기반한 애플리케이션이 의도하지 않은 보안 통제 장치에 의존하지 않는다는 것을 보장하는 데 도움이 됩니다."
Connector 옵션 : sslProtocol=TLS 사용"sslProtocol 설정은 Tomcat이 트래픽 보호에 사용할 프로토콜을 결정합니다. sslProtocol 특성을 TLS로 설정하는 것이 좋습니다.
TLS 프로토콜에는 SSLv1 또는 SSLv2와 같이 다른 보안 전송 프로토콜에 영향을주는 약점이 없습니다. 따라서 TLS는 전송 중에 데이터의 기밀성과 무결성을 보호하기에 적합합니다."
Application DeploymentTomcat이 Security Manager를 이용하여 실행되어야 함"Security Manager를 사용하여 샌드 박스에서 실행되도록 응용 프로그램을 구해야 합니다. Security Manager는 Tomcat이 액세스 할 수 있는 클래스를 제한하여 실수 또는 트로이 목마, 악성 코드로부터 서버를 보호합니다.
Security Manager로 Tomcat을 실행하면 신뢰할 수 없는 코드가 파일 시스템의 파일에 액세스하지 못 하도록 막을 수 있는 샌드 박스에서 응용 프로그램이 실행됩니다."
자동 배포(autoDeploy) 기능 사용 금지autoDeploy 옵션은 Tomcat이 실행되는 중에 응용 프로그램의 자동 배포를 허용합니다. 이 기능은 사용하지 않는 것이 좋습니다. 실행시에 자동배포 가능한 경우, 악의적이거나 검증되지 않은 애플리케이션이 배포될 수 있는 우려가 있습니다.
시동시 자동배포(deployOnStartup) 기능 사용 금지deployOnStartup 옵션은 Tomcat이 시동될 때 응용 프로그램의 자동 배포를 할지 결정하는 flag 입니다. 이 기능을 사용하지 않도록 설정하는 것이 좋습니다. 이를 통해 악성 또는 검증되지 않은 응용 프로그램을 배포할 수 있으며 사용하지 않도록 설정해야 합니다.
Miscellaneous Configuration SettingsRECYCLE_FACADES 옵션 사용"RECYCLE_FACADES 옵션은 각 요청에 대해 새 façade가 작성되는지 여부를 지정할 수 있습니다. 새로운 façade가 만들어지지 않으면 다른 세션에서 정보 유출 가능성이 있으므로 true로 설정하는 것이 좋습니다.
RECYCLE_FACADES가 false로 설정되면 Tomcat은 요청 사이에 세션 façade를 재활용합니다. 이렇게하면 서로 다른 요청간에 정보가 유출 될 수 있습니다."
경로 구분 기호를 추가하는 옵션 (ALLOW_BACKSLASH) 사용 금지Tomcat에서 다른 경로 구분 기호를 지정할 수 있으면, 공격자가 이전에 mod_proxy와 같은 프록시에서 차단 한 응용 프로그램에 액세스 할 수 있는 가능성이 생깁니다. 추가적인 경로 구분 기호를 허용하면 공격자가 이전에 표시되지 않은 응용 프로그램이나 영역을 가져올 우려가 있으므로 ALLOW_BACKSLASH 옵션은 사용하지 않는 것이 좋습니다.
경로 구분 기호를 추가하는 옵션 (ALLOW_ENCODED_SLASH) 사용 금지Tomcat에서 다른 경로 구분 기호를 지정할 수 있으면, 공격자가 이전에 mod_proxy와 같은 프록시에서 차단 한 응용 프로그램에 액세스 할 수 있는 가능성이 생깁니다. 추가적인 경로 구분 기호를 허용하면 공격자가 이전에 표시되지 않은 응용 프로그램이나 영역을 가져올 우려가 있으므로 ALLOW_ENCODED_SLASH 옵션은 사용하지 않는 것이 좋습니다.
사용자 정의 상태 메시지 (USE_CUSTOM_STATUS_MSG_IN_HEADER) 옵션 사용금지"사용자 정의 상태 메시지를 지정할 수 있으면 추가 헤더를 삽입 할 수 있는 우려가 있습니다. 사용자 지정 헤더 상태 메시지가 필요한 경우 US-ASCII 형식인지, 사용자가 제공한 데이터는 포함되어 있지 않은지 확인하십시오.
헤더에서 사용자가 제공 한 데이터를 허용하면 XSS가 가능합니다."
enableLookups 옵션 사용 금지"Connector에서 enableLookups 옵션을 true로 설정하려면 정보를 로깅 하기 전에 DNS look-up이 필요합니다. 로깅을 추가할 때는 리소스가 추가됩니다.
enableLookups를 허용하면 드물게 추가 오버 헤드가 추가될 수 있습니다."

세부 점검 항목 (Nginx)

점검 항목세부 점검 항목설명
Nginx버퍼 오버플로우 방지 - client_body_buffer_size 설정클라이언트 요청의 body 내용을 읽기 위한 버퍼 크기를 설정합니다. 요청 본문이 버퍼보다 큰 경우, 본문 전체 또는 해당 파트만 임시 파일에 기록됩니다. 기본적으로 버퍼 크기는 메모리 페이지 두개와 같습니다. 32비트(x86) 플랫폼 및 x86-64에서 8K 사이즈로 기본 설정됩니다. 일반적으로 64비트 플랫폼에서는 16K 사이즈로 설정합니다.
버퍼 오버플로우 방지 - client_header_buffer_size 설정클라이언트 요청 헤더를 읽기 위한 버퍼의 크기를 설정합니다. 대부분의 요청은 1K바이트 버퍼로도 충분합니다. 하지만 요청에 긴 쿠키가 포함되어 있거나 WAP 클라이언트의 요청인 경우 1K 사이즈가 부족할 수 있습니다. 요청 또는 요청 헤더 필드가 이 버퍼에 맞지 않으면 large_client_header_buffers 명령으로 구성된 더 큰 버퍼를 할당해야 합니다.
버퍼 오버플로우 방지 - client_max_body_size 설정클라이언트 요청 body의 허용되는 최대 크기를 설정합니다. 이 크기는 "Content-Length" 요청 헤더 필드에 지정됩니다. 요청의 크기가 구성된 값을 초과하면 413(Request Entity Too Large) 오류가 클라이언트로 반환됩니다. 브라우저에서 이 오류를 올바르게 표시할 수 없습니다. 크기를 0으로 설정하면 클라이언트 요청 바디 크기를 확인할 수 없습니다. 100K 이상으로 설정하는 것을 권장합니다.
버퍼 오버플로우 방지 - large_client_header_buffers 설정클라이언트 요청 헤더를 읽는 데 사용되는 버퍼의 최대 크기를 설정합니다. 요청 행은 버퍼 크기를 초과할 수 없으며, 414 (Request-URI Too Large) 오류가 클라이언트로 반환됩니다. 요청 헤더 필드는 버퍼 크기를 초과할 수 없으며, 그렇지 않으면 400 (Bad Request) 오류가 클라이언트로 반환됩니다. 버퍼는 수요가 있을 때만 할당된다. 기본적으로 버퍼 크기는 8K 바이트입니다. 요청 처리가 끝난 후 연결이 keep-alive 상태로 전환되면 버퍼가 해제됩니다.
버전 정보 삭제server_tokens 옵션은 Nginx에게 오류 페이지에 현재 버전을 표시할 것인지를 설정합니다. 이는 특정 버전의 알려진 취약점으로 인한 웹 서버 공격을 방지하기 위해, 해당 정보를 공유하지 않도록 설정되어야 합니다.
Slow HTTP DoS 공격 차단 - client_body_timeout클라이언트 요청에 대한 본문 읽기 시간 제한을 정의합니다. 이 제한시간은 전체 요청 본문의 전송이 아닌, 두개의 연속 읽기 작업 사이의 기간에 대해서 설정됩니다. 클라이언트가 이 시간 내에 전송하지 않으면 408(Request Time-out)) 오류가 클라이언트로 반환됩니다.
Slow HTTP DoS 공격 차단 - client_header_timeout클라이언트 요청 헤더를 읽기 위한 제한시간을 정의합니다. 클라이언트가 이 시간 내에 전체 헤더를 전송하지 않으면 408((Request Time-out) 오류가 클라이언트로 반환됩니다.
Slow HTTP DoS 공격 차단 - keepalive_timeoutkeep-alive 제한시간을 설정합니다. 첫번째 매개 변수는 서버 측에서 keep-alive 클라이언트 연결이 열린 상태로 유지될 시간 제한을 설정합니다. 0 값은 keep-alive클라이언트 연결을 사용하지 않도록합니다. 선택적인 두번째 파라미터는 "keep-alive:timeout=time"응답 헤더 필드에 값을 설정합니다. 두개의 파라미터는 서로 다를 수 있습니다. "keep-alive:timeout=time"헤더 필드는 Mozilla 와 Konqueror에 의해 인식됩니다. MSIE는 자체적으로 keep-alive 연결을 60초 후에 닫습니다.
Slow HTTP DoS 공격 차단 - send_timeout클라이언트에 응답을 전송하기 위한 시간 제한을 설정합니다. 이 제한시간은 전체 응답을 전송하기 위한 것이 아니라, 두개의 연속 쓰기 작업 사이에서만 설정됩니다. 클라이언트가 이 시간 내에 아무 것도 수신하지 못하면 연결이 닫힙니다.
SSL/TLS 설정가능하면 SSLv2, SSLv3 등을 사용하지 않도록 설정해야 합니다. 대신 TLS를 사용하는 것을 권장합니다.
BEAST 공격 차단을 위한 서버 사이드 설정BEAST 또는 "SSL/TLS에 대한 브라우저 익스플로잇"은 SSL/TLS 와 함께 사용되는 암호 블록 체인(CBC)에 대한 공격입니다. 이 공격을 방지하기 위해서, 클라이언트 대신에 서버에 의해 결정되도록 암호에 대한 선호도를 설정해야 합니다.
안전하지 않은 암호방식 사용 금지트리플 DES는 상대적으로 오래 된 암호로, 지난 18년 동안 여러가지 취약점이 확인되었습니다. 때문에 DES를 포함한 취약한 암호화 방식은 사용하지 않도록 설정하여야 합니다.
클릭재킹 방지구성에서 전체적으로 적용되는 보호 헤더를 클릭합니다. HSTS 헤더는 HTTPS에만 존재합니다. 중요한 데이터는 캐시 또는 저장되지 않습니다.
content-type 스니핑 차단 설정HTTP 응답의 헤더에 MIME 형식을 추가하여 전송하여 보안 위험을 방지합니다. 헤더가 브라우저에 파일 형식을 정의된 대로 컨텐츠 스니핑을 허용하지 않도록, nosniff 옵션을 추가하여야 합니다.
Cross-site scripting (XSS) 필터 설정Cross-site scripting (XSS) 공격을 방지하기 위하여 X-XSS-Protection 옵션을 설정해야 합니다. X-XSS-Protection 옵션을 설정하여 어느 정도의 XSS공격을 방지할 수 있으며 이는 IE8+, 크롬, 오페라, 안드로이드 사파리와 호환됩니다.
안전한 SSL 보안 설정ssl stripping 공격을 당하면 피해자 시스템의 모든 트래픽은 해커가 생성한 프록시를 통해 라우팅 되며 이는 MITM(Man-In-the-Middle)공격으로 간주할 수 있습니다. 공격을 방지하기 위하여 nginx의 보안 설정에 Strict-Transport-Security 헤더를 추가해야 합니다.

요금 안내

서비스 이용량에 따른 유연한 요금제를 제공합니다.

System Security Checker는 진단 횟수에 따라 이용요금이 부과됩니다.

구분진단 건수진단건당 이용요금
OS월 100회 이하100원 / 건
월 100회 초과80원 / 건
WAS구분 없음20,000원 / 건
  • OS 취약점 진단은 Windows, Linux가 동일한 요금제로 적용됩니다.
  • WAS 취약점 진단은 Apache, Tomcat, Nginx가 동일한 요금제로 적용됩니다.

현재 보고 계신 페이지 내용이 도움이 되셨나요?

아쉬운 점이 있다면 이야기해 주세요.
0/5000
내용을 입력해 주세요
의견 보내기