ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 주요정보통신기반시설 취약점 진단 상세가이드_Unix 서버진단 실습(4)
    취약점 점검 2023. 8. 21. 14:39

    점검대상 : centos 7(가상머신)

     

    3.14 일반사용자의 Sendmail 실행 방지

    • 점검내용 : SMTP 서비스 사용 시 일반사용자의 q 옵션 제한 여부 점검
    • 점검목적 : 일반사용자의 q 옵션을 제한하여 Sendmail 설정 및 메일큐를 강제적으로 drop 시킬 수 없게 하여 비인가자에 의한 SMTP 서비스 오류 방지
    • 보안위협 : 일반 사용자가 q 옵션을 이용해서 메일큐, Sendmail 설정을 보거나 메일큐를 강제적으로 drop 시킬 수 있어 악의적으로 SMTP 서버의 오류를 발생 시 킬 수 있음
    • 점검방법

    ps -ef 명령어를 사용하여 sendmail 서비스가 활성화 되어있는지 확인한다.
    sendmail 서비스가 활성화 되어있을경우 /etc/mail/sendmail.cf 설정을 열어 O PrivacyOption 설정부분에 restrictqrun 옵션을 추가해주고 sendmail 서비스를 재시작해준다.

     

    3.15 DNS 보안 버전 패치

    • 점검내용 : BIND 최신버전 사용 유무 및 주기적 보안 패치 여부 점검
    • 점검목적 : 취약점이 발표되지 않은 BIND 버전의 사용을 목적으로 함
    • 보안위협 : 9.10.3-P2 이하의 낮은 버전에서는 서비스거부 공격, 버퍼 오버플로우(Buffer Overflow) 및 DNS 서버 원격 침입 등의 취약성이 존재함

    BIND(Berkeley Internet Name Domain): BIND는 BSD 기반의 유닉스 시스템을 위해 설계된 DNS로 서버와 resolver 라이브러리로 구성되어 있음. 네임서버는 클라이언트들이 이름 자원들이나 객체들에 접근하여, 네트워크 내의 다른 객체들과 함께 정보를 공유할 수 있게 해주는 네트워크 서비스로 사실상 컴퓨터 네트워크 내의 객체들을 위한 분산 데이터베이스 시스템임

     

    • 점검방법

    ps -ef 명령어를 활용하거나 named -v 명령어를 활용하여 Bind 활성화 여부와 버전정보를 확인한다.(named -v 명령어가 실행되지 않는다면 bind 설치가 되지않았다는 뜻이다. 나는 설치가 안되었기때문에 설치를 해주었다.)

     

    서비스가를 사용하지 않는다면 systemctl stop, disable 명령어를 활용해 해당 서비스를 중지, 비활성화 시켜준다.

     

    서비스를 사용한다면 취약한 버전을 사용하지 않도록 yum update 명령어를 활용해 해당 서비스를 취약하지 않은 버전으로 업데이트 해준다.(사진은 방금 bind를 설치했기때문에 아무것도 업데이트 되지 않았다.)

     

    3.16 DNS Zone Transfer 설정

    • 점검내용 : Secondary Name Server로만 Zone 정보 전송 제한 여부 점검
    • 점검목적 : 허가되지 않는 사용자에게 Zone Transfer를 제한함으로써 호스트 정보, 시스 템 정보 등 정보 유출의 방지를 목적으로 함
    • 보안위협 : 비인가자 Zone Transfer를 이용해 Zone 정보를 전송받아 호스트 정보, 시스 템 정보, 네트워크 구성 형태 등의 많은 정보를 파악할 수 있음
    • 점검방법

    서비스를 사용할 경우에는 DNS 설정파일인 /etc/named.conf 파일의 OPTIONS의 allow-transfer (허가할 IP) 옵션을 추가해준다.

     

    서비스를 사용하지 않을 경우에는 systemctl stop 명령어나 disable 명령어를 통해 프로세스 중지 혹은 비활성화를 시켜준다. (리눅스 5.9 이하의 버전에서는 kill 명령어를 통해 서비스 중지)

     

    3.17 웹서비스 디렉토리 리스팅 제거

    • 점검내용 : 디렉터리 검색 기능의 활성화 여부 점검
    • 점검목적 : 외부에서 디렉터리 내의 모든 파일에 대한 접근 및 열람을 제한함을 목적으로 함
    • 보안위협 : 디렉터리 검색 기능이 활성화 되어 있을 경우, 사용자에게 디렉터리 내 파일 이 표시되어 WEB 서버 구조 노출뿐만 아니라 백업 파일이나 소스파일, 공 개되어서는 안 되는 파일 등이 노출 가능함
    • 점검방법

    Apache_home 경로의 httpd.conf 파일을 찾는다. /etc/httpd/conf/httpd.conf 파일로 경로가 되어있다.

     

    vi 편집기로 /etc/httpd/conf/httpd.conf 파일을 열어 디렉토리 리스팅 기능을 제한할 디렉토리에 Options 지시자에서 Indexes 지시자를 제거해준다.

     

    3.18 웹서비스 웹 프로세스 권한 제한

    • 점검내용 : Apache 데몬이 root 권한으로 구동되는지 여부 점검
    • 점검목적 : Apache 데몬을 root 권한으로 구동하지 않고 별도의 권한으로 구동함으로 써 침해사고 발생 시 피해범위 확산 방지를 목적으로 함
    • 보안위협 : 웹서비스 데몬을 root 권한으로 실행시 웹서비스가 파일을 생성, 수정하는 과정에서 웹서비스에 해당하지 않는 파일도 root 권한에 의해 쓰기가 가능하며 해킹 발생 시 root 권한이 노출될 수 있음
    • 점검방법

    아파치 설정파일인 /etc/httpd/conf/httpd.conf 파일을 열어 User, Group 부분이 root가 아닌 별도의 계정명으로 되어있는지 확인하고 root로 되어있을 시 root가 아닌 별도의 계정명으로 변경

     

    설정 완료 후 서비스 재시작

     

    3.19 웹서비스 상위 디렉토리 접근 금지

    • 점검내용 : “..” 와 같은 문자 사용 등으로 상위 경로로 이동이 가능한지 여부 점검
    • 점검목적 : 상위 경로 이동 명령으로 비인가자의 특정 디렉터리에 대한 접근 및 열람을 제한하여 중요 파일 및 데이터 보호를 목적으로 함
    • 보안위협 : 상위 경로로 이동하는 것이 가능할 경우 접근하고자 하는 디렉터리의 하위 경로에 접속하여 상위경로로 이동함으로써 악의적인 목적을 가진 사용자의 접근이 가능함
    • 점검방법

    vi 편집기를 이용하여 아파치 설정파일인 /etc/httpd/conf/httpd.conf 파일을 열어 설정된 모든 디렉터리의 AllowOverride 지시자에서 AuthConfig 옵션을 설정해준다. None -> AuthConfig (난 test라는 디렉터리에 적용시키려 이쪽에만 AllowOverride값을 AuthConfig로 바꿔줬다.)
    사용자 인증을 적용할 디렉토리에 .htaccess 파일을 생성하고 그림과 같이 삽입해준다.

    • AuthName : 인증 영역 (웹 브라우저의 인증 창에 표시되는 문구)
    • AuthType : 인증 형태 (Basic 또는, Digest)
    • AuthUserFile : 사용자 정보 (아이디 및 패스워드) 저장 파일 위치
    • Require : 접근을 허용할 사용자 또는 그룹 정의

     

    htpasswd -c 명령어를 사용하여 인증에 사용할 아이디 및 패스워드를 생성해준다.(test 라는 아이디를 만들고 있으므로 아이디는 만들고 싶은걸로 바꿔서 지정해줄 수 있고 동일한 패스워드를 두번 입력해주면 계정 생성이 완료된다.) 마지막으로 아파치 재시작해주면 설정완료

     

    3.20 웹서비스 불필요한 파일 제거

    • 점검내용 : Apache 설치 시 기본으로 생성되는 불필요한 파일의 삭제 여부 점검
    • 점검목적 : Apache 설치 시 디폴트로 설치되는 불필요한 파일을 제거함을 목적으로 함.
    • 보안위협 : Apache 설치 시 htdocs 디렉터리 내에 매뉴얼 파일은 시스템 관련정보를 노출하거나 해킹에 악용될 수 있음
    • 점검방법

    find 명령어를 이용해 아파치 홈 디렉터리 내 불필요한 파일 및 디렉터리가 존재하는지 여부 확인(아파치 홈에서 /htdocs/manual 위치를 알지 못해 find 명령어를 사용해서 찾았다. 없는 줄 알았지만 /etc/httpd/conf.d 디렉터리 안에 파일이 있는 것을 확인)

     

    rm 명령어로 불필요한 메뉴얼 파일 제거

     

    3.21 웹서비스 링크 사용금지

    • 점검내용 : 심볼릭 링크, aliases 사용 제한 여부 점검
    • 점검목적 : 무분별한 씸볼릭 링크, aliases 사용제한으로 시스템 권한의 탈취 방지를 목 적으로 함
    • 보안위협 : 웹 루트 폴더(DocumentRoot)에 root 디렉터리(/)를 링크하는 파일이 있으며 디렉터리 인덱싱 기능이 차단되어 있어도 root 디렉터리 열람이 가능함
    • 점검방법

    아파치 설정파일인 /etc/httpd/conf/httpd.conf 파일에서 모든 디렉터리에 대하여 Options 지시자의 FllowSymLinks 옵션이 설정되어있다.(해당 옵션이 있을 경우 심볼릭 링크를 만들 수 있어 보안에 취약해진다.)

     

    FllowSymLinks 옵션을 삭제 후 아파치 서비스를 재시작해준다.

     

    3.22 웹서비스 파일 업로드 및 다운로드 제한

    • 점검내용 : 파일 업로드 및 다운로드의 사이즈 제한 여부 점검
    • 점검목적 : 기반시설 특성상 원칙적으로 파일 업로드 및 다운로드를 금지하고 있지만 불가피하게 필요시 용량 사이즈를 제한함으로써 불필요한 업로드와 다운로 드를 방지해 서버의 과부하 예방 및 자원을 효율적으로 관리하기 위함
    • 보안위협 : 악의적 목적을 가진 사용자가 반복 업로드 및 웹 쉘 공격 등으로 시스템 권 한을 탈취하거나 대용량 파일의 반복 업로드로 서버자원을 고갈시키는 공격의 위험이 있음
    • 점검방법

    아파치 설정파일 /etc/httpd/conf/httpd.conf 파일을 열어 파일 업로드 및 다운로드 용량을 제한할 디렉터리에 LimitRequstBody 지시자가 설정되어있는지 확인 후 없다면 추가

     

    3.23 웹서비스 영역의 분리

    • 점검내용 : 웹 서버의 루트 디렉터리와 OS의 루트 디렉터리를 다르게 지정하였는지 점검
    • 점검목적 : 웹 서비스 영역과 시스템 영역을 분리시켜서 웹 서비스의 침해가 시스템 영 역으로 확장될 가능성을 최소화하기 위함
    • 보안위협 : 웹 서버의 루트 디렉터리와 OS의 루트 디렉터리를 다르게 지정하지 않았을 경우, 비인가자가 웹 서비스를 통해 해킹이 성공할 경우 시스템 영역까지 접 근이 가능하여 피해가 확장될 수 있음
    • 점검방법

    아파치 설정파일 /etc/httpd/conf/httpd.con 파일을 열어 DocumentRoot 설정부분에 "/usr/local/apache/htdocs","/usr/local/apache2/htdocs", "/var/www/html" 셋 중 하나가 아닌 별도의 디렉터리로 변경

     

     

Designed by Tistory.