web & php 보안 대책

26
Web & PHP Web & PHP 보보 보보 보보 보보 4 4 제 제제제제 제제제 제 제제제제 제제제 2000. 12. 5 2000. 12. 5 phpschool.com phpschool.com 제제제 제제제 [email protected] [email protected]

Upload: gisela

Post on 13-Jan-2016

57 views

Category:

Documents


8 download

DESCRIPTION

Web & PHP 보안 대책. 제4회 해킹방지 워크샵 2000. 12. 5 phpschool.com 정진호 [email protected]. Contents. 무엇이 무엇인가? PHP 의 특징 PHP Usage Stats 웹 서버 보안 관리 아파치 설정 - httpd.conf PHP 설정 - php.ini 웹서버 보안 문제의 몇가지 유형 서버 설정 문제의 실례 NMAP & Web Probe. 무엇이 무엇인가?. 웹의특성 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Web & PHP   보안 대책

Web & PHP Web & PHP 보안 대책보안 대책

제제 44 회 해킹방지 워크샵회 해킹방지 워크샵 2000. 12. 52000. 12. 5 phpschool.com phpschool.com 정진호정진호 [email protected]@wowlinux.com

Page 2: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

Contents Contents

무엇이 무엇인가 ? PHP 의 특징 PHP Usage Stats 웹 서버 보안 관리 아파치 설정 - httpd.conf PHP 설정 - php.ini 웹서버 보안 문제의 몇가지 유형 서버 설정 문제의 실례 NMAP & Web Probe

Page 3: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

무엇이 무엇인가무엇이 무엇인가 ??

웹의특성 buggy software opens up security holes large, complex programs contain bugs web servers are large, complex programs 불특정 다수라는 웹 서비스의 특성상 보안 문제의 발생

가능성이 높다

관리자 측면 시스템 사용자들의 CGI 서비스 외부 사용자에 대한 노출 잘못 설정된 설정파일의 위험성

Page 4: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

무엇이 무엇인가무엇이 무엇인가 ??

사용자 측면 웹서핑은 안전해 보이나 그렇지 않음 ActiveX 또는 Java 애플릿 등은 사용자 시스템 침입 가능 쿠키 (cookie) 및 서핑 히스토리의 보관

운영자 및 사용자 모두 Web 의 특성에 대한 이해 필요 TCP/IP 프로토콜은 보안이 고려되지 않은 설계 브라우저를 통해 전송되는 사용자 정보는 누출 가능

Page 5: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

PHP PHP 의 특징의 특징 Easy-to-use : Perl 이나 ASP 에 비해 쉽고 편리한 사용법 Cross-platform : Apache, Microsoft , Netscape 등 대부분의

웹 서버에서 사용가능 Database support - Informix, Microsoft SQL Server, mSQL,

MySQL, ODBC, Oracle , Sybase.

Popularity - 380 만 사이트 이상에서 사용 중 Open source - 지속적 업그레이드 , 버그 수정 , 저 비용 Open API - 사용자의 필요에 따라 모듈 작성 , 추가 HTTP 세션 , Java , 정규표현 , LDAP, SNMP, IMAP, COM

WDDX 지원 *WDDX : Web Distributed Data Exchange

Page 6: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

Apache Module Report - Apache Module Report - October 2000October 2000

Module 2000/9 2000/9 %

2000/10 2000/10 %

Growth%

PHP 437327 32.96% 429589 32.49% 1.45%

FrontPage

248015 18.69% 247642 18.73% -0.19%

perl 134207 10.11% 111576 10.09% 0.25%

mod_ssl 114988 8.67% 133414 8.44% 2.71%

OpenSSL

81016 6.11% 78030 5.90% 3.47%

ApacheJServ

48715 3.67% 46404 3.51% 4.62%

출처 : http://www.securityspace.com/s_survey/

most add on modules modify the web server "signature" that is returned on each web page, we are able to see who's using PHP, perl, SSL mods, language converters, language mods

Page 7: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

PHP Usage StatsPHP Usage Stats

Domains : 3,815,440 IP Addresses : 715,283

출처 출처 : : http://www.netcraft.com/Survey/http://www.netcraft.com/Survey/

Page 8: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

웹 서버 보안 관리웹 서버 보안 관리 DMZ 에 웹 서버를 위치시키고 http(80) 혹은 https(443) 를 제외한

모든 포트에 대해 방화벽을 설치 . SSH 과 같은 보안 로그인 기능이 없는 서비스는 제거 . 불필요한

서비스는 공격에 이용 가능 일회성 패스워드 혹은 암호화된 연결이 아니라면 모든 원격 관리는 불허 관리자나 루트 레벨의 접근을 가질 수 있는 사람의 수를 제한 모든 사용자의 활동을 기록하고 인터넷 상의 다른 호스트에 로그들을

저장한다 . 모니터링 시스템으로 주기적으로 의심이 가는 활동에 대해 기록 / cgi-bin 스크립트 디렉터리에서 불필요한 파일을 삭제

Printenv , test-cgi 웹 서버에 기본적으로 제공되는 문서 트리 삭제

htdocs/manual 등 발표되는 즉시 관련된 모든 패치를 적용 원격관리 시 보안 연결이 가능하도록 하는 SSH 이용 nmap 과 같은 툴로 취약성에 대해 웹 서버를 주기적으로 스캔

Page 9: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

아파치 설정 – 아파치 설정 – httpd.confhttpd.conf

User nobody Group nobody

아파치의 최초의 프로세스만 수퍼유저 권한으로 실행 이후 실제 서비스는 복사 (fork) 된 자식 프로세스가 담당

부모 프로세스는 요청에 따라 적절한 수의 자식 프로세스를 생성하고 제거하는 것을 담당

Port 80 1023 이하의 포트 사용 시 root 권한으로 실행

<Directory /> Options FollowSymLinks Indexes AllowOverride None </Directory>

Indexes 옵션제거

Page 10: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

아파치 설정 – 아파치 설정 – httpd.confhttpd.conf

DirectoryIndex index.html index.php index.php3 index.phtml 색인파일의 검색 순서

AddType application/x-httpd-php .php .php3 .inc .html .htm .phtml AddType application/x-httpd-php-source .phps

Php 스크립트 파일 등록

설정파일 점검 # /usr/local/apache/bin/httpd -t

Page 11: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

PHP PHP 설정 – 설정 – php.iniphp.ini

include_path require(), include() 등의 함수에 의해 사용되는 인클루드

파일의 디렉토리 위치 :(unix) , ;(win32) 로 복수의 디렉토리 지정 가능

gpc_order GET/POST/COOKIE 변수의 우선 순위 초기값 - GPC ex) GP - 쿠키무시 , 동일한 이름의 post 변수는 get

변수로 덮어씀 open_basedir

PHP 엔진에 의해 사용될 스크립트 파일의 위치 지정 해당 디렉토리 이외의 스크립트 파일들은 해석 ( 실행 ) 되지

않음 심볼릭 링크의 사용은 가능 초기값은 모든 파일을 실행 가능

Page 12: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

PHP PHP 설정 – 설정 – php.iniphp.ini

safe_mode On 안전모드로 php 를 실행

doc_root 만일 safe_mode 가 설정되면 해당 디렉토리 밖의 모든

파일이 실행금지됨 upload_max_filesize

업로드 할 수 있는 최대 파일 크기를 설정 upload_tmp_dir

파일이 업로드 될 디렉토리 . 기본적으로 / tmp max_execution_time

스크립트 실행 시간을 초단위로 설정 memory_limit

스크립트 실행시 사용가능한 메모리 크기 (byte).

Page 13: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

웹서버 보안 문제의 몇가지 유형웹서버 보안 문제의 몇가지 유형

서버 설정 상의 오류 → 매뉴얼 숙독 및 관련사이트 방문

프로그래밍 상의 오류 → 수많은 테스트와 사용자 피드백을 통한 지속적 패치

보안 버그 → 관련 사이트 모니터링

Page 14: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

설정 상의 문제설정 상의 문제

httpd.conf 아파치의 UID 를 nobody 로 PHP 가 아파치의 모듈로 사용될 때는 아파치의 사용자

permission 을 계승받음 . ( 일반적으로 "nobody" 로 설정 )

php.ini safe_mode On , doc_root 지정 , 적절한 크기의 upload_max_filesize ,

upload_tmp_dir 지정 로컬 사용자의 ID / passwd 와 DB User 의 ID /

passwd 를 반드시 별도로 관리

Page 15: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

프로그래밍 및 작업상의 오류프로그래밍 및 작업상의 오류

php 스크립트의 업로드소스는 올라오는 즉시 확장자를 phps 로 변경 아파치 설정에서 phps 가 소스만 볼수 있도록 설정 아예 업로드 금지 스크립트 파일이름 임의 변경 DB 에 BLOB 으로 입력

기타 알고리즘의 오류 기타 백업 파일에 의한 문제

VIM 의 백업파일 생성 / usr/share/vim/vimrc 파일 "set nobackup

FS 이용 시 Editor 의 백업파일 생성 FTP 의 백업파일 생성

Page 16: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

PHP PHP 자체 버그 예 – 자체 버그 예 – syslog()syslog()

문제점 PHP 스크립트 사용 가능한 웹 서버가 php.ini 에서 에러 로깅의 기능을 가능하게 했을 경우 POST 방식으로 웹 서버에서 php3 스크립트를 생성 쉘코드와 다른 데이타를 에러 메시지에 포함 시킬수 있음 이 메시지는 항상 스트링 형식으로 syslog() 함수에 전달 익스플로잇 프로그램과 함께 쉘 코드를 일반 사용자 아이디로

원격으로 실행이 가능

해결방법 php.ini 에 로깅를 사용하지 못하도록 설정 PHP 스크립트에 syslog 명령어를 사용금지 참고 : http://www.securenews.co.kr/board.html

Page 17: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

서버 설정파일 문제의 실례서버 설정파일 문제의 실례

검색엔진 이용 connect.inc 찾기 결과

Page 18: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

서버 설정파일 오류의 실례서버 설정파일 오류의 실례

httpd.conf 설정파일

Page 19: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

로컬 사용자의 스크립트 파일 접근 문제로컬 사용자의 스크립트 파일 접근 문제

문제점 PHP 에서 MySQL 이나 oracle 등의 데이타베이스에

접속하기 위해 스크립트 파일에 계정명 그리고 패스워드를 기입

rw-r--r-- 라는 디폴트 퍼미션으로 생성된 PHP 소스파일은 같은 서버에서 웹호스팅서비스를 받는 불순한 사용자의 접근 가능

해결책 패스워드와 계정명 , 데이타베이스명이 기입된 파일은

퍼미션을 rwxr-x--- 로 수정 telnet [ 사용도메인 ] 으로 로그인 php3 소스파일의 퍼미션 수정 : chmod 750 파일명

Page 20: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

NMAP -- The Network MapperNMAP -- The Network Mapper

http://www.insecure.org/nmap/ 대규모 네트웍의 포트스케닝 PERL 유틸리티 단일 호스트에도 잘 작동함 다양한 프로토콜을 지원 - UDP, TCP, ICMP... GUI 및 유용하고 편리한 기능 제공

Page 21: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

NMAP -- The Network MapperNMAP -- The Network Mapper

namp 실행 결과

Page 22: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

Web ProbeWeb Probe

URL : http://www.securityspace.com web server type, OS, response time certificate data for SSL sites.

Regular Information Web Server Software Server History Response Time

Security Information Security Protocol Encryption Level Certificate Data

Page 23: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

Web Probe - Web Probe - ResultsResults

phpschool.com phpschool.com 점검 결과점검 결과 SecuritySpace (SSL) SecuritySpace (SSL) 점검 결과점검 결과

Page 24: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

맺음말맺음말

어떠한 시스템도 " 완벽하게 안전 "할 수 없음 가능한 최선의 방법은 시스템에 침입하는 일을 최대한

어렵게 만드는 것 PHP 의 강력함을 적절히 통제하기 위한 조치 및 연구

필요 웹 프로그래머는 반드시 네트웍 엔지니어 및 시스템

관리자의 능력 겸비 필요 PHP 의 보안 문제의 대부분은 개발자의 무지와

설정의 오류에서 비롯됨 게으름과 무관심이 가장 큰 문제 주요 사이트의 꾸준한 모니터링 필요

Page 25: Web & PHP   보안 대책

와우리눅스㈜와우리눅스㈜

참고 사이트참고 사이트

통신망침해사고대응팀 http://www.certcc.or.kr/ 한국정보보호센터 http://www.kisa.or.kr/ 해커즈 뉴스 http://www.hackersnews.org/ 한국전산원 http://www.nca.or.kr/ 한국 아파치 사용자 모임 http://www.apache.kr.net/ PHPSCHOOL http://phpschool.com/ ZEND http://zend.com/

Page 26: Web & PHP   보안 대책

감사합니다감사합니다

Download

http://phpschool.com - 자료실