서버 정보 노출 취약점

mer1·2021년 6월 4일
0

WEB_VULNERABILITY

목록 보기
1/1
post-thumbnail

1. 개요

서버 정보 노출 취약점이란 서버/OS의 종류, 버전, 설치된 모듈 등의 정보가 응답 헤더에 노출이 되는 취약점이다. 해당 항목이 취약한 이유는 공격자가 버전을 확인하여 CVE 취약점을 검색해 공격을 시도할 수 있기 때문이다.

2. 점검 방법

점검은 칼리리눅스에서 curl을 이용해 진행하였다.

1) Nginx

  • 취약 여부 판별
curl -I 'IP 주소 또는 도메인'

웹 서버 응답 패킷에 서버 정보(nginx/1.14.0)가 노출되므로 취약하다고 판별할 수 있다.

2) Apache

  • 취약 여부 판별
curl -I 'IP 주소 또는 도메인'

웹 서버 응답 패킷에 서버 버전과 PHP 버전(Apache/2.2.8, PHP/5.2.4)이 노출되므로 취약하다고 판별할 수 있다.

X-Powered-By란?
-> 쉽게 말해서 어떤 기술로 개발되었는지를 나타냄


3. 대응방안

해당 취약점은 서버의 버전 정보를 확인할 수 있어 취약한 것이므로 서버의 정보가 노출되지 않도록 설정 파일을 수정한다.

  • 설정 파일 수정을 통해 정보가 노출되지 않도록 조치
  • Server, X-Powered-By, X-AspNet-Version 등 서버 정보가 노출될 수 있는 헤더 제거

1) Nginx

sudo vi /etc/nginx/nginx.conf

nginx.conf 파일에서 server_tokens을 off로 설정한다.

sudo service nginx restart

위 명령어를 이용해 nginx를 재시작한다.

다시 확인해본 결과, 서버의 버전 정보가 노출되지 않았다.


2) Apache

  • 서버 정보 노출 조치
sudo vi /etc/apache2/apache2.conf

apache2.conf 파일에서 ServerTokens을 Prod로 설정한다.

sudo service apache2 restart 또는
sudo /etc/init.d/apache2 restart

위 명령어를 이용해 apache를 재시작한다.

다시 확인해본 결과, 서버의 버전 정보가 노출되지 않았으나 X-Powered-By를 통해 PHP 버전 정보가 노출되고 있다.


  • X-Powered-By 정보 노출 조치
sudo find / -name php.ini

위 명령어를 입력하여 php.ini 위치를 찾는다.

sudo vi /etc/php5/apache2/php.ini

php.ini 파일에서 expose_php를 Off로 설정한다.

다시 확인해본 결과, 서버가 Apache라는 것 외에는 아무 정보도 노출이 되지 않았다.

4. 왜 점검하는가?

해당 취약점을 조치해야 하는 이유는 공격자 획득한 버전 정보를 이용해 CVE 취약점을 확인하고 공격을 시도할 수 있기 때문이다.

위 그림은 2020년에 발견된 Apache 취약점 중 일부 항목이다. 공격자는 알려진 취약점 정보를 이용해 어떤 버전에 어떤 포인트를 공격하면 될지 생각할 수 있게 된다.

2020년에 발생한 Apache CVE 정보는 링크를 참고하길 바란다.

profile
정보보안을 공부하는 학생 (github 블로그로 이사갔습니다!)

0개의 댓글