
New releaseSep 1, 2026
snuffleupagus v0.14.0
php7 및 php8용 보안 모듈 - 버그 클래스 제거 및 나머지 가상 패치!
Snuffleupagus
php7 및 php8용 보안 모듈 - 버그 클래스를 제거하고 나머지는 가상 패치합니다!
주요 기능 • 다운로드 • 예제 • 문서 • 라이선스 • 감사의 말
Snuffleupagus는 PHP 7+ 및 8+용 모듈로, 전체 버그 클래스를 제거하여 웹사이트에 대한 공격 비용을 획기적으로 높이도록 설계되었습니다. 또한 강력한 가상 패치 시스템을 제공하여 관리자가 PHP 코드를 수정하지 않고도 특정 취약점을 수정하고 의심스러운 동작을 감사할 수 있습니다.
주요 기능
- 눈에 띄는 성능 영향 없음
- 강력하면서도 작성하기 쉬운 가상 패치 규칙
- 여러 취약점 클래스 제거
- Unserialize 기반 코드 실행
mail기반 코드 실행- 쿠키 탈취 XSS
- 파일 업로드 기반 코드 실행
- 취약한 PRNG
- XXE
- 필터 기반 원격 코드 실행 및 관련 문제들
- 여러 하드닝 기능
- 비교적 합리적인 코드 베이스:
- 100%에 가까운 커버리지의 포괄적인 테스트 스위트
- 모든 커밋은 여러 배포판에서 테스트됨
clang-format으로 강제되는 코드 스타일- 포괄적인 문서
- coverity, codeql, scan-build 등 사용
다운로드
다운로드 페이지가 있으며, 여기서 배포판용 패키지를 찾을 수 있습니다. 물론 이 저장소를 git clone하거나 github에서 릴리스를 확인할 수도 있습니다.
예제
다음과 같은 다양한 예제 규칙을 제공합니다:
# `chmod` 함수 하드닝
sp.disable_function.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop();
# `system`에서 명령 주입 완화
sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();
규칙 위반 시 로그에 다음과 같은 줄이 표시됩니다:
[snuffleupagus][0.0.0.0][disabled_function][drop] The execution has been aborted in /var/www/index.php:2, because the return value (0) of the function 'strpos' matched a rule.
문서
원하는 모든 문서를 갖춘 포괄적인 웹사이트가 있습니다. 물론 직접 빌드할 수도 있습니다.
감사의 말
다음 분들께 감사드립니다:
- 거대한 영감의 원천이 된 Suhosin 프로젝트
- 개발을 초기에 후원한 NBS System
- 실험과 기여를 해준 Suhosin-ng 및 이를 후원한 NLNet
- 모든 기여자 여러분