| スホシン | |
|---|---|
| 原作者 | ステファン・エッサー |
| 初回リリース | 2006年10月2日 |
| 最終リリース | 0.9.38 / 2015年5月21日 |
| リポジトリ | github.com/sektioneins/suhosin |
| 書かれた | C |
| プラットフォーム | PHP |
| ライセンス | PHPライセンス |
| Webサイト | suhosin.org |
Suhosin(韓国語:수호신、発音: [suɦoɕin]、「守護天使」の意)は、ドイツの企業Sektion Einsによって開発されたPHPのオープンソース パッチであり、PHP拡張機能でもあります。パッチと拡張機能は独立した2つの部分で構成されており、個別に使用することも、組み合わせて使用することもできます。「Suhosinの目的は、安全でないPHPコーディングからサーバーを保護するセーフティネットとなることです。」[1]
Suhosinは、関数のホワイトリスト、リソース制限、透過的なセッションとCookieの暗号化、バイナリコンテンツフィルタ、ログ記録、その他のさまざまな保護機能を通じて、PHPがWebサーバーに追加する「攻撃可能な領域」を削減します。 [2]これにより、以前は安全ではないと判断されていたPHPプログラムを展開するリスクが軽減され、既知および未知の攻撃から保護されます。
特徴
元のパッチには低レベルのメモリ関連の強化がいくつか含まれていましたが、それらの機能はモジュールには存在しません。ただし、そのほとんどは PHP にアップストリームされています。
- クッキーの暗号化: XSSベースのクッキーの盗難を軽減するために、クッキーは暗号化され、攻撃者はその値を取得できなくなります。また、クッキーはユーザーエージェントとユーザーの IP アドレスの一部に関連付けられるため、盗まれたクッキーは攻撃者によって使用できなくなります。
- インクルード保護: アップロードされたファイルやリモート ファイルはインクルードできないため、任意のファイル インクルード攻撃が軽減されます。
- 一般的なコード実行ベクトルの無効化: evalキーワードは PHP の実際の関数ではないため、disable_functionディレクティブで無効にすることはできませんが、Suhosin はこの可能性を追加し、任意のコード実行につながる可能性のあるpreg_replace関数の悪名高い/e演算子を無効にできるようにしました。
- 無限再帰に対する保護:PHPには、無限再帰が発生するとセグメンテーション違反エラーが発生するという動作が文書化されています。これはメモリ安全性の問題であるため、Suhosinは、再帰回数が最大レベルに達した時点でアプリケーションを正常に終了させます。
- きめ細かな関数のホワイト/ブラック リスト: PHP のdisabled_functionディレクティブはまったくきめ細かではありませんが、Suhosin は仮想ホストおよびフォルダーごとに関数のホワイト リストとブラック リストのメカニズムを提供します。
- 機密変数名に対するブラックリスト: Suhosin は、GLOBALS、_COOKIE、_ENV、_FILES、_GET、_POST などの名前に続くグローバル予約済み変数名を持つ GET、POST、COOKIE 変数を削除します。
- ファイルアップロードの強化:Suhosinはファイルアップロード時のスクリプト呼び出しをサポートしており、アップロード時の自動ウイルススキャンなどが可能です。また、ELFファイル、バイナリファイルなどの不正アクセスを防ぐこともできます。
- 違反時のカスタムアクション: 違反変数をブロックし、特定のHTTP 応答コードを送信し、リダイレクトを発行し、さらに別の PHP スクリプトを実行します。
- 広範なログ記録: 複数のログ デバイス、問題のあるファイル名と行番号、攻撃者の IP アドレスを、リバース プロキシの背後でもログに記録します。
オペレーティングシステムによる配布
一部のLinuxディストリビューション、特にDebianバージョン6.x("Squeeze")までとGentoo Linuxでは、パッチと拡張機能の両方がデフォルトで適用されていました。SuhosinはDebianバージョン7(Wheezy)で削除されましたが、現在の開発ブランチでは再登場しています。[3]
Mac OS X Serverではデフォルトで有効になっています。
PHP 5.4以降、openSUSEはSuhosinパッチを削除しましたが、Suhosin拡張機能の移植版は維持しています。[4]
FreeBSD 10.1 は、Ports Collection で Suhosin 拡張機能を維持します。
開発の歴史と遺産
Suhosinは2006年に初めてリリースされ[5]、PHP 5.2.0を対象としていました。強化パッチの最後のリリースは、モジュールのリリースから数ヶ月後に行われました[6]。公式サイトの最後のニュース記事は2007年のものであり[5]、コードリポジトリでは2012年5月から2014年2月まで何も行われていませんでした。そのため、一部のディストリビューションではSuhosinプロジェクトは終了したとみなされていましたが、2014年頃にコミュニティの一部の人々がSuhosinプロジェクトへの貢献を始めました[7] 。PHPに機能をアップストリームする計画はありません[8]。
2015年11月、 PHP7と同様の強化機能を提供するためにsuhosin7が作成されましたが、[9]コミュニティの間で勢いを得られませんでした。[10] Snuffleupagusプロジェクトは、PHP7以降の後継となることを目指しています。
参照
参考文献
- ^ 第13章 PHP Webアプリケーションのセキュリティ保護 Tricia Ballad、William Ballad 著 出版社: Addison-Wesley Professional、Web ISBN 978-0-321-57431-2
- ^ 公式機能リスト
- ^ Debian sidのphp5-suhosinパッケージの概要 Archived 2007-10-12 at the Wayback Machine
- ^ メーリングリストアーカイブ: opensuse-factory (418 メール) 2014年11月5日アーカイブ、Wayback Machine
- ^ ab 「Hardened-PHPプロジェクト - PHPセキュリティ - ニュース」. hardened-php.net . 2017年1月18日閲覧。
- ^ SektionEins (2014-06-11)。 "ダウンロード"。スホシン。2017-01-18に取得。
- ^ “セクティオネイン/スホシン”. GitHub 。2017-01-18に取得。
- ^ 「'Re: [PHP-DEV] SuhosinパッチはDebian php5ビルドでデフォルトで無効化されています' - MARC」。marc.info 。2018年2月25日閲覧。
- ^ "first commit · sektioneins/suhosin7@aee7faf". GitHub . 2017年1月18日閲覧。
- ^ “sektioneins/suhosin7”. GitHub 。2017-01-18に取得。
外部リンク
- 公式サイト
- GitHubのSuhosin