PEAK XOOPS - Protector 3.50 beta in englishin japanese






Main : XOOPS Modules : 

Category: XOOPS Modules       icms   xc21   php5
Download Now! Download Now! Protector 3.50 beta Popular Version: 3.50 beta
Submitted Date:  2009/11/17
Description:
in englishin japanese

●要旨

Protector は、XOOPS2ベースの各種CMSを様々な悪意ある攻撃から守るためのモジュールです。

このモジュールでは、以下の攻撃を防ぎます。

- DoS
- 悪意あるクローラー(メール収集ボットなど)
- SQL Injection
- XSS (といっても、全てではありません)
- システムグローバル変数汚染
- セッションハイジャック
- ヌルバイト攻撃
- ディレクトリ遡り攻撃
- いくつかの危険なCSRF (XOOPS 2.0.9.2以下に存在するもの)
- Brute Force (パスワード総当たり)
- 拡張子偽装画像ファイルアップロード (すなわち、IE Content-Type XSS)
- 実行可能なファイルをアップロードする攻撃
- XMLRPC関連
- コメントSPAM/トラックバックSPAM等、あらゆるSPAM

これらの攻撃からあなたのXOOPS2ベースCMSを守り、ログに記録します。

ただし、このモジュールはあくまで、最大公約数的な防御しか行いません。
一部の3rdパーティモジュールに見られるような穴の一部は防げるかもしれませんが、すべての穴を防ぎきるものではなく、過信は禁物です。

その限界は承知の上で、すべてのXOOPS2ベースCMSユーザーに対して、インストールを強くお勧めします。



●利用方法

インストールには、XOOPS_TRUST_PATHの設定が必要です。

アーカイブのhtml内を、XOOPS_ROOT_PATH側にコピーし、アーカイブのxoops_trust_path内を、XOOPS_TRUST_PATH側にコピーします。

モジュール管理からインストールできれば、正しくファイルが置けています。

ただ、それだけではまったく動作していませんので、mainfile.php からも呼び出すようにすることが絶対必要条件です。

Protector をインストール後、お使いのXOOPS2ベースCMSの mainfile.php の一番下のあたりに

	include XOOPS_TRUST_PATH.'/modules/protector/include/precheck.inc.php' ;
	if (!isset($xoopsOption['nocommon']) && XOOPS_ROOT_PATH != '' ) {
		include XOOPS_ROOT_PATH."/include/common.php";
	}
	include XOOPS_TRUST_PATH.'/modules/protector/include/postcheck.inc.php' ;

と、赤くなっている2行を追加して下さい。

青色の部分は、最初にインストールした時のバージョンによって異なりますが、違っていても気にしなくて結構です。

バージョン3から、システムモジュール由来のIPアクセス拒否は利用しなくなりました。XOOPS_TRUST_PATH/modules/protector/configs を書込許可してください。Protectorが拒否IPを自動登録する場合、ここに記述するようになります。

もし、なんらかの理由で、自分自身がIP拒否リストに載ってしまった場合、バージョン2まではレスキューパスワードを利用していましたが、バージョン3からは、FTP等で XOOPS_TRUST_PATH/modules/protector/configs 内のファイルを編集または削除してください。

2.34から、実験的に、.htaccessによるDoS防御というオプションを追加しました。これを利用する場合、XOOPS_ROOT_PATHにある.htaccessを書込可能とする必要があります。導入する際には、.htaccessファイルが書込可能である、というリスクと比較して下さい。


●XOOPS Cube Legacy 2.1へのインストール

特段違いはありません。
mainfile.php の書き換えポイントの周辺が違うので、パッチを当てた後を示しておきます。

    if (!defined('_LEGACY_PREVENT_LOAD_CORE_') && XOOPS_ROOT_PATH != '') {
        include XOOPS_TRUST_PATH.'/modules/protector/include/precheck.inc.php' ;
        @include_once XOOPS_ROOT_PATH.'/include/cubecore_init.php';
        if (!isset($xoopsOption['nocommon']) && !defined('_LEGACY_PREVENT_EXEC_COMMON_')) {
            include XOOPS_ROOT_PATH.'/include/common.php';
        }
        include XOOPS_TRUST_PATH.'/modules/protector/include/postcheck.inc.php' ;
    }



●ImpressCMSへのインストール

mainfile.php へのパッチは必要ありません。
アーカイブの extras/ImpressCMS/preload/protector.php を、ご利用中のImpressCMSのpreloadフォルダにコピーしてください。

preloadを提供してくれたvaughanに感謝します。


●バージョン2からのバージョンアップ

まず、mainfile.php から、Protectorに関する行を削除してください。

次に、いったんXOOPS_ROOT_PATH/modules/protector/ 内のファイルを全て削除します。

すぐに、インストールと同様に全ファイルをアップロードします。

管理画面からモジュール管理に入って、Protectorモジュールをアップデートします。

最後に、再度、mainfile.phpを編集し、precheckおよびpostcheckを有効にしてください。バージョン2では、XOOPS_ROOT_PATH となっていた部分が、バージョン3では、XOOPS_TRUST_PATH となっていることに注意が必要です。


●フィルタープラグインの利用

V3から、XOOPS_TRUST_PATH/modules/protector/filters_enabled/ にフィルタープラグインを格納することで、追加チェックや追加メッセージ・ロギングなどができるようになりました。作成や改造も簡単なはずです。

このアーカイブ内にデフォルトで用意されているフィルタープラグインのうち一般的なものを紹介します。

- postcommon_post_deny_by_rbl.php
スパム対策用。
RBLを利用してPOSTをはねます。
RBLに登録されたIPからの投稿はすべてSPAMだと判定します。問い合わせが入るため、投稿時の処理がやや重くなるかもしれません。(特にChatなどでは影響があるかも)

- postcommon_post_deny_by_httpbl.php
スパム対策用。
http:BLを利用してPOSTをはねます。
利用する前に、ファイルをエディタで開いて、
define( 'PROTECTOR_HTTPBL_KEY' , '............' ) ;
この行を書き換えます。HTTPBL_KEYは、http://www.projecthoneypot.org/ から取得してください。

-postcommon_post_need_multibyte.php
スパム対策用。
投稿に日本語が含まれていることを要求するプラグイン。
日本語が1文字も含まれていない100byte以上の文字列があったらSPAMだと判定します。

-postcommon_post_htmlpurify4guest.php
ゲストによるPOSTデータすべてについて、HTMLPurifierを通過させるフィルターです。
ゲストにHTMLを許可している場合では有効にすることを強くお勧めします。

-postcommon_register_insert_js_check.php
ロボットによるユーザ登録を防ぐプラグイン。
登録しようとするユーザのブラウザでJavaScriptが動作している必要があります。

-bruteforce_overrun_message.php
パスワードを指定回数以上間違えた時のメッセージを指定します。*_message.php というフィルタープラグインはいずれも、メッセージを指定するタイプのフィルターです。

-precommon_bwlimit_errorlog.php
過負荷防止機能が働いた時に、その旨をApacheのエラーログに記録します。
*_errorlog.php というフィルタープラグインはいずれも、エラーログに記録するタイプのフィルターです。


いずれも、XOOPS_TRUST_PATH/modules/protector/filters_byconfig/ に置いてあるので、必要に応じて、filters_enabled にコピーしてください。
XOOPS_TRUST_PATHは、複数サイトに利用出来る仕様なので、あるフィルターをサイトによって使い分けたいケースもあるでしょう。
その場合は、Protectorの一般設定に、利用したいフィルター名を記述してください。もちろん、記述のないサイトでは有効化されません。


●3.3からの新機能: DBレイヤートラップanti-SQL-Injection

Protector-3.3以降、データベースレイヤーを乗っ取って、動的なSQL Injection対策をする機能を追加しました。これによって、ほとんどのSQL Injection脆弱性は無害化できる気がします。(わざと穴を空けるつもりならいくらでも手はあるので、保証はしません)

これを有効にするためには、原理的にデータベースファクトリクラスにパッチを当てる必要があります。

patches/ フォルダに、各コア用のパッチ済データベースファクトリクラスファイルが用意されているので、この機能を利用したい場合には、これで上書きしてください。

もちろん、各コアチームが積極的にこのパッチをHEADに採用してくれるのがベストだと考えています。パッチについても、なるべく採用しやすい形にしたつもりです。

なお、以下のコアの最新版は、この機能のパッチが最初から当たっています。(対応ありがとうございます)

- XCL2.1.x
- ImpressCMS 1.x


●変更履歴

3.50 beta (2009/11/17)
- 各サイトのProtector一般設定でフィルターのON/OFFをコントロール可能とした
- filters_disabled に収まっていたフィルターをfilters_byconfigへ移動した
- FTPワームや第三者によるサイト改ざんチェッカーを新設した

3.41 (2009/11/17)
- swfファイルのファイルタイプ誤認に対応
- 言語ファイル追加
-- polish_utf8 (thx jagi)

3.40 (2009/09/16)
- 安定版として番号を振り直した
- "Xoops Protector" という名前をやめてシンプルに "Protector" へと変更した
- ImpressCMSおよびXCL対応アイコンを用意した (thx rene)
- 一部環境でのpostcommon_post_need_multibyteの動作不良に対応 (thx orange) 3.40a
- 言語ファイル更新
-- spanish (thx Colossus) 3.40b

3.36 beta (2009/08/27)
- HTMLPurifier を 4.0.0 に更新
- フィルター追加
-- postcommon_post_htmlpurify4everyone.php (POSTが常にHTMLPurifierを通過する)
-- postcommon_post_register_moratorium.php (登録直後のURL付投稿を禁止する) 3.36a
- 言語ファイル更新
-- persian (thx voltan) 3.36a

3.35 beta (2009/08/13)
- ImpressCMS等でmodinfo.phpが常に英語になっていたのを修正 (thx Phoenyx)
- DBLT-ASIのコメントに対する動作をリクエストから判断するように修正した
- モジュールメンテナーのために、Protectorの動作モードを知るための定数を定義した
-- PROTECTOR_ENABLED_ANTI_SQL_INJECTION
-- PROTECTOR_ENABLED_ANTI_XSS
- 言語ファイル更新
-- arabic (thx Onasre) 3.35a

3.34 beta (2009/07/06)
- DBレイヤートラップanti-SQL-Injection(DBLT-ASI)のコメントに対する動作を緩和した
- DBレイヤートラップが常にONになってしまう環境に対応するオプションの追加

3.33 beta (2009/04/03)
- PHP_SELFやPATH_INFOの特殊文字強制変換をやめた (thx nao-pon)
- PHP_SELFも大きな傘anti-XSSの対象に加えた
- PROTECTOR_VERSION 定数で、Protectorのバージョンを確認できるようにした
- ImpressCMS へのインストール方法やHTMLPurifierの適用を改善した (thx vaughan)
- F5Attackやクローラーで「ログのみ」の処理がおかしかったのを修正 (thx ChaFx)
- 大きな傘Anti-XSSの初期値を有効に変更した

3.32 beta (2009/01/27)
- nocommon状況でのDBレイヤートラップanti-SQL-Injection動作を回避した (thx naao)
- 言語ファイル更新
-- persian (thx voltan)

3.31 beta (2009/01/20)
- 一般設定などでダブルクオーテーションがあるとSQL Injectionと判定される問題を修正
- 言語ファイル更新
-- spanish (thx Colossus)

3.30 beta (2009/01/14)
- DBレイヤートラップanti-SQL-Injectionを実装した
- 過負荷中のフィルターがかかった場合にエラーログを吐くフィルターを追加
- 不正IPとして弾かれたアクセスについてエラーログを吐くフィルターを追加
- 言語ファイル更新
-- spanish (thx Colossus)
- 過負荷対策フィルターについては503エラーを返すようにした (thx Colossus) 3.30a

3.22 (2008/12/03)
- 削除済クッキーが'deleted'という値で送られ、BruteForce扱いとなる現象に対応
- セキュリティガイドにXOOPS_TRUST_PATHがプライベートとなっているかのチェックを追加
- 言語ファイル追加
-- nederlands (thx Cath)
- 言語ファイル更新
-- persian (thx voltan) 3.22a
- ページナビを下にも表示するようにした (thx McDonald) 3.22a

3.21 (2008/11/21)
- 一般設定に帯域制限を追加
- IP BANを喰った相手に解除時間を知らせるメッセージをデフォルトにした
- precommonフィルターでも言語指定を可能にした
- 言語ファイル更新
-- spanish (thx Colossus) 3.21a
- 拒否IPリストを更新出来なくなっていたのを修正 (thx rohi) 3.21a

3.20 (2008/09/17)
- 安定版としてバージョン番号をふり直した
- 言語ファイル更新
-- arabic (onasre)
- 言語ファイル修正
-- de_utf8
- 言語ファイル追加
-- italian (thx Defcon1) 3.20a
- 携帯判定メソッド isMobile() をProtectorFilterAbstractクラスに追加 3.20b

3.17 beta (2008/04/24)
- URI SPAM判定で、自ホストと同一の場合は通過するようにした
- 言語ファイル更新
-- persian (thx stranger and voltan) 3.17a
- 言語ファイル追加
-- de_utf8 (thx wuddel) 3.17a

3.16 beta (2008/01/08)
- SPAMフィルター追加 postcommon_post_deny_by_httpbl (honeypotproject.orgのBL利用)
- 言語ファイル更新
-- polish (thx kurak_bu)

3.15 beta (2007/10/18)
- ログのコンパクト化追加
- ログの全削除追加
- 言語ファイル追加
-- fr_utf8 (thx gigamaster)

3.14 beta (2007/09/17)
- HTMLPurifier導入 (special thx! Edward Z. Yang) ※PHP4ではまともに動きません
- フィルターポイントを追加 (spamcheck, crawler, f5attack, bruteforce, purge)
- フィルタープラグイン追加
-- ゲスト投稿のすべてをHTMLPurifierに通過させるフィルター (PHP5専用)
-- SPAM判定された時にメッセージを表示する(リダイレクトする)フィルター
-- 悪質クローラ判定された時にメッセージを表示する(リダイレクトする)フィルター
-- F5アタック判定された時にメッセージを表示する(リダイレクトする)フィルター
-- ブルートフォース時にメッセージを表示する(リダイレクトする)フィルター
-- その他排斥処理される直前にメッセージを表示する(リダイレクトする)フィルター

3.13 beta (2007/08/22)
- フィルタープラグインをグローバル関数からクラスに変更
- フィルターポイントを追加 (badip, register)
- フィルタープラグイン追加
-- ユーザ登録時にJavaScriptチェックを入れるフィルター(ユーザ登録SPAM対策)
-- 拒否IP時にメッセージを表示するフィルター
-- 拒否IP時にリダイレクトするフィルター

3.12 beta (2007/08/16)
- $xoopsOption['nocommon'] が動作していなかったバグの修正

3.11 beta (2007/08/16)
- mainfile.php へのパッチでprecheckとpostcheckを取り違えても動くように対応
- RBLフィルターのデフォルトからniku.2ch.netを削除
- 言語ファイル追加
-- フランス語 (thx Christian)

3.10 beta (2007/07/30)
- precheckのconfigは、ローカルキャッシュから取得するようにした
- MySQLへの二重コネクションを極力排除した
- 信用できるIPが一部で機能していないバグの修正
- インストールとmainfileパッチの順番が逆でもエラーが出ないようにした
- ホダ塾インストーラだとフォルダのパーミッションを事前にチェックするロジックの追加
- 拒否IPを「一致」「前方一致」「正規表現」のいずれでも表記できるようにした
- 拒否IPに時間制限を設けた
- configsディレクトリが書込禁止になっている場合のWarningを追加

3.04 (2007/06/13)
- phpmailerのコマンド実行脆弱性に対するチェックを追加した
- postcommon_post_need_multibyte のチェックをもう少し強力にした (3.04a)

3.03 (2007/06/03)
- インストーラアタックへの対策を追加した
- 言語名変更
-- ja_utf8 (以前のjapaneseutf) 3.03a

3.02 (2007/04/08)
- ID風変数の強制変換の処理をもう少し緩やかにした
- セキュリティガイドのリンク切れを修正
- DoS/crawlerチェックをスキップできる手段の提供(ある定数を定義する)
- D3システムのアップデート
- 言語ファイル追加
-- persian (thx voltan)
-- russian (thx West) 3.02a
-- arabic (thx onasre) 3.02b
-- japaneseutf 3.02c

3.01 (2007/02/10)
- IPソートルールの変更
- 言語ファイル追加
-- portuguesebr (thx beduino)
-- spanish (thx PepeMty)
-- polish (thx kurak_bu) 3.01a
-- german (thx wuddel) 3.01b
- module_icon.php をキャッシュ可能に 3.01c
- module_icon.php のtypo修正 3.01d

3.00 (2007/02/06)
- 安定版としてのリリース
- ログレベル指定ミスの修正
- マルチバイトプラグインが登録ユーザのPOSTを弾かないように修正 (thx mizukami)
- 本家版2.2.xとの相性問題の改善 3.00a

3.00beta2 (2007/01/31)
- プラグインシステムの導入 (とりあえず postcommon_post_* というタイプのみ)
- フィルタープラグインの追加
-- postcommon_post_deny_by_rbl.php (RBLによるIPベースなSPAM対策)
-- postcommon_post_need_multibyte.php (文字種類によるSPAM対策)

3.00beta (2007/01/30)
- XOOPS_TRUST_PATH側に本体を置くことにした
- IP拒否機能を単純なファイル処理(configsディレクトリ下)に変更した
- グループ1になれるIPアドレス制限機能の追加(これも単なるファイル処理)
- レスキュー機能の削除 (3.0以降は単にFTP等でファイルを削除すれば復活します)
- テーブル構造の修正 (MySQL5対応)
- BigUmbrella anti-XSS の導入
- コメント・トラックバックSPAM対策機能追加
- Cube 2.1 Legacy RC での動作確認


●謝辞
- Kikuchi (繁体中国語ファイル)
- Marcelo Yuji Himoro (ブラジルのポルトガル語・スペイン語ファイル)
- HMN (フランス語ファイル)
- Defkon1 (イタリア語ファイル)
- Dirk Louwers (オランダ語ファイル)
- Rene (ドイツ語ファイル)
- kokko (フィンランド語ファイル)
- Tomasz (ポーランド語ファイル)
- Sergey (ロシア語ファイル)
- Bezoops (スペイン語ファイル)
(以上、バージョン2までの言語ファイル作成者です。バージョン3ではいったん削ってます。すみません)
- beduino (ブラジルのポルトガル語ファイル)
- PepeMty (スペイン語ファイル)
- kurak_bu (ポーランド語ファイル)
- wuddel (ドイツ語)
- voltan&stranger (ペルシャ語)
- onasre (アラビア語)


また、このモジュール作成にあたり、様々なご指導・ご鞭撻をいただいた、zxチームの皆様、とりわけJM2さん、minahitoさんに、心より感謝いたします。



------------------------------------------------------------

GIJ=CHECKMATE <gij@peak.ne.jp>
2004-2009

PEAK XOOPS http://xoops.peak.ne.jp/


Downloaded 42000 times  42000  File Size 758.80 KB  Supported Platforms tar.gz|zip|php5|xc21|icms  Home Page http://www.peak.ne.jp/
Modify | Report Broken File | Tell a Friend | Comments (4)


Comments list

jagi  Posted on 2010/1/1 21:02
Upgrading xoops ( or any other admin action with checked files ) blocking site access with info "site manipulation checked".
1. how admin can reset this / "... do not edit this field" ;) / ?
2. why not check : is admin logon and auto turn of this protection in session?
GIJOE  Posted on 2009/8/28 17:23
hi voltan.

Thank you for the quick contribution!

I've just updated my repository with your language files.
It will be included in the next release.
voltan  Posted on 2009/8/28 16:50
pcnador  Posted on 2009/1/29 8:29
thanks vaughan everything is alright
vaughan  Posted on 2009/1/29 7:44
if you read the readme file included in the package it states you need to apply a patch to your XOOPS

you can find the patches directory in xoops_trust_path/modules/protector/patches included in the protector package.

Quote:
= NEW FEATURE SINCE 3.3: DBLayer trapping anti-SQL-Injection

This feature can beat almost malicious SQL Injection attacks if you uses some modules vulnerable to "SQL Injection".

However, you have to patch a file "class/database/databasefactory.php" to enable the feature.

I prepared patches/ folder, and it contains patched databasefactory.php for each cores.

Of course, I welcome if each core teams adpot the patches as HEAD
pcnador  Posted on 2009/1/29 7:29
Hello

when I've upgraded to this new version I've found this warning :
databasefactory.php' : Your databasefactory is not ready for DBLayer Trapping anti-SQL-Injection. Some patches are required

what do I need to do to fix this issus especialy my website hacked many times last days
GIJOE  Posted on 2009/1/16 5:22
hi McDonald.

Quote:

Maybe a stupid remark from me, but when I unzip Protector 3.30 beta I see that the patches for the ../class/databasefactory.php are in XOOPS_TRUST_PATH/modules/protector/patches/.
I assume this folder should not be uploaded as found in the zip file, but the patched file only to ../class/database/. Correct?
Yes.

copy xoops_trust_path/modules/protector/patches/(core_versions)/databasefactory.php in the archive into your ROOT/class/database/
McDonald  Posted on 2009/1/15 20:23 | Last modified
Hello GIJOE,

Maybe a stupid remark from me, but when I unzip Protector 3.30 beta I see that the patches for the ../class/databasefactory.php are in XOOPS_TRUST_PATH/modules/protector/patches/.
I assume this folder should not be uploaded as found in the zip file, but the patched file only to ../class/database/. Correct?
jagi  Posted on 2008/4/28 3:34
Protector 3.17 beta -> Permissions - work for me only with altsys installed ... can be Deactivate but must be installed.
Without altsys:
Fatal error: Call to a member function getVar() on a non-object in D:\codeArt\xoops_trust_path\libs\altsys\myblocksadmin.php on line 19

Call Stack
# Time Memory Function Location
1 0.0011 73200 {main}( ) ..\index.php:0
2 0.2035 3038952 require( 'D:\codeArt\xoops_trust_path\modules\protector\admin.php' ) ..\index.php:10
3 0.2589 3975912 include( 'D:\codeArt\xoops_trust_path\libs\altsys\myblocksadmin.php' ) ..\admin.php:54
stranger  Posted on 2008/4/26 2:04
stranger wrotes:
Hi GIJOE, I've retranslated Persian language files for protector, there were too many mistakes in it and was not updated since 3.02 ...
You can get the files by clicking here
Sincerely,
Stranger.
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!