PHP는 매우 인기 있는 웹사이트 스크립팅 언어이지만 본질적인 보안은 매우 취약합니다. 이 기사에서는 PHP 향상 계획(Hardened-PHP 프로젝트)과 새로운 Suhosi 계획에 대해 설명합니다.
PHP는 논란의 여지가 있지만 가장 인기 있는 웹사이트 스크립팅 언어입니다. 가격이 저렴하기 때문에 인기가 높습니다. 그러나 이러한 저렴한 가격으로 인해 PHP로 작성된 웹사이트 애플리케이션이 점점 더 많아지고 동시에 PHP 자체도 보안 취약점에 노출되는 경우가 늘어나고 있습니다. 기능을 보면 PHP는 매우 불안정하지만 동시에 스크립팅 언어 자체가 매우 유연하고 이를 사용하여 코드를 구현하기가 쉽지만 이러한 코드는 비대하고 안전하지 않습니다. 사용자. 모든 종류의 애플리케이션이 SQL 주입, 사이트 간 스크립팅, 임의 실행 등에 취약한 취약점을 계속해서 드러낸다고 가정할 수 있습니다.
safe_mode 및 open_basedir과 같은 내장된 PHP 보안 조치가 무시되기 때문에 PHP 강화 프로젝트는 보다 안전한 PHP를 생성하고 PHP에 대한 유효성 검사도 수행합니다. 처음에는 PHP 자체를 패치하고 다시 컴파일해야 하는 향상된 PHP 패치를 통해 이러한 작업이 수행되었습니다. 최근 PHP Enhancement Project에서는 Suhosin이라는 새로운 프로젝트를 출시했습니다.
Sohosin은 두 부분으로 구성됩니다. 첫 번째 부분은 PHP 패치입니다. 이 패치는 Zend 엔진 자체를 강화하여 버퍼 오버플로를 방지하고 관련 약점을 방지합니다. 두 번째 부분은 PHP용 독립형 모듈인 Suhosin의 확장입니다. 두 부분이 함께 작동할 수도 있고 확장이 독립적으로 작동할 수도 있습니다.
개발자는 보안을 유지하기 위해 자체 PHP 설치를 유지하고 싶어하지 않으며, PHP 자체가 가질 수 없는 더 많은 보안 기능을 제공하기 위해 확장 모듈을 사용하여 공급업체가 제공하는 Linux 배포 시스템에서 직접 PHP를 사용하는 것을 선호합니다.
확장 기능은 설치가 쉽습니다. PECL을 통해 설치하거나 다운로드하여 컴파일할 수도 있습니다:
$ tar xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
suhosin을 사용하려면 , 아래와 같이 /etc/php.ini를 추가해야 합니다:
Extension=suhosin.so
대부분의 사람들에게는 기본 구성 옵션으로 충분합니다. 설정을 강화하려면 /etc/php.ini에 해당 값을 추가하면 됩니다. 다양한 구성 옵션이 웹사이트에 자세히 소개되어 있습니다. 이러한 지침은 초기 구성에 도움이 될 수 있습니다.
Suhosin을 사용하면 이러한 로그를 시스템 로그에 넣거나 동시에 다른 로그 파일에 쓸 수 있습니다. 또한 각 가상 호스트에 대한 블랙리스트 및 화이트리스트를 생성할 수도 있습니다. 요청, 파일 업로드 및 쿠키. 암호화된 세션과 쿠키를 보내고, 보낼 수 없는 저장소를 설정하는 등의 작업도 할 수 있습니다. 원래 PHP 강화 패치와 달리 Suhosin은 Zend Optimizer와 같은 타사 확장 프로그램과 호환됩니다.