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. 업로드 장소 물리적 분리

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