1. 탐지된 파일 삭제
PLURA 에서 웹쉘로 탐지한 파일이 시스템 개선, 유지 또는 보수를 위한 파일이 아닌 경우 격리하거나 삭제를 권고합니다.

2. 업로드 확장자 체크
White list 방식으로 허용된 확장자(ex> .png, .gif, .pdf)만 업로드할 수 있도록 Server 측에서 체크합니다.

3. 업로드 파일 이름 변경, 이동 및 실행권한 제거
1) 업로드 파일이 저장되는 경로에 실행권한을 제거합니다.
2) 업로드된 파일명을 DB에 저장하고 이름과 매핑되는 난수를 생성하여 파일명을 대체합니다.
3) 업로드된 파일 확장자를 서버에서 실행되지 않은 형태로 변경하거나 확장자를 제거한다.
4) 업로드된 파일을 URL요청으로 접근할 수 없는 곳으로 이동합니다.

4. 서버 보안 설정

  • Apache conf

이미지 파일에 존재하는 php code 가 실행되지 않도록 업로드 디렉터리에 php 코드가 실행되는 것을 방지합니다.
이러한 설정은 업로드된 이미지 파일에 실행 php code 가 존재하더라도 실행되지 않습니다.

<Directory /home/web/public_html/upload_dir>

    php_admin_value engine Off

</Directory>

 

  • PHP conf

1) disable_functions 설정

php 에서 지원하는 함수 기능을 허용하지 않는 옵션입니다.

이 옵션으로 시스템 명령이 실행되는 것을 방지할 수 있습니다.

disable_functions = system, exec, shell_exec, passthru, phpinfo, show_source, popen, proc_open, fopen_with_path, dbmopen, dbase_open, putenv, move_uploaded_file, chdir, mkdir, rmdir, chmod, rename, filepro, filepro_rowcount, filepro_retrieve, posix_mkfifo

2) allow_url_fopen 설정
php 에서 원격지에 있는 파일을 읽어오지 못 하도록 하는 옵션입니다.
이 옵션으로 원격지의 악성스크립트(webshell)가 실행되는 것을 방지할 수 있습니다.

allow_url_fopen = Off

 

5. 업로드 장소 물리적 분리

웹 서버와 파일 업로드 서버를 물리적으로 분리하여 파일 업로드를 이용한 공격으로부터 웹 서버 침투를 방어합니다.

 

PLURA WEBSHELL 해킹 탐지 시연 영상