ウイルス対策ソフトウェアのファイアウォール PHPIDS が PHP ウェブサイト サーバーを作成 Trinity Aegis Security
|
張志祥
|
ウイルス対策ソフトウェアファイアウォール PHPIDSビルドphpWeb サーバー Trinityイージスセキュリティ
外部ネットワークに情報を公開したい限り、侵入や盗聴に遭遇することは避けられず、特に php ではセキュリティインシデントが次々と発生します。 webサーバーの巨大な市場で、セキュリティ システムを構築するにはどうすればよいでしょうか?ウイルス対策ソフトウェア、ファイアウォール、PHPIDS は私が構築する鉄の三角形 php Web サーバー トリニティ Aegis セキュリティ システム、ベテランを選択するレベル ホストを保護するウイルス対策ソフトウェア (Antivirus) とファイアウォール (Firewall) に加えて、ホストを保護する侵入検知もありますシステム ( IDS)、おとり侵入検知システム (Honeypot)、使用状況分析システム、ログ ファイル さまざまな可能性のある情報セキュリティ インシデント (ウイルス、トロイの木馬、DOS 攻撃など) に対抗または検出するためのシステムおよびその他の方法を分析し、現在最も一般的に使用されている検出と防御システム IDS でなければなりません。
最初にウイルス対策ソフトウェアをインストールします: 360 Kingsoft Trends McCaffee
次にファイアウォールをインストールします:サードパーティのファイアウォール
納得
Green Alliance およびその他の検出ツール
最後に IDSをインストールします。
IDS は、不審な送信が見つかった場合にネットワーク トラフィックをリアルタイムで検出するシステムです (例: DOS)。 攻撃)、IDS は直ちにアラートを送信するか、積極的に防御します。ただし、近年の攻撃パターンはアプリケーション層で発生するように徐々に変化しています。 XSS および SQL として
インジェクション およびその他の Web 攻撃手法は、従来の IDS では効果的に検出できません。
『PHPIDS』は、 PHP 開発環境用の侵入検知のセットです。システムは、事前定義されたルール ファイルを使用してユーザー入力データを項目ごとに比較し、侵入を防止する効果を実現します。インストール方法と試した結果を以下の筆者が解説します。
「PHPIDS ダウンロードページ」 にアクセスしてください。ダウンロード:
PHPIDS 0.7 (ZIP)MD5SHA1
PHPIDS 0.7 (tarball、gzip 圧縮)MD5SHA1
PHPIDS 0.7 (tarball、bzip 圧縮)MD5SHA1
PHPIDS 0.6.5 (ZIP)MD5SHA1
PHPIDS 0.6.5 (tarball、gzip 圧縮)MD5SHA1
PHPIDS 0.6.5 (tarball、bzip 圧縮)MD5SHA1
PHPIDS 0.6.4 (ZIP)MD5SHA1
PHPIDS 0.6.4 (tarball、gzip 圧縮)MD5SHA1
PHPIDS 0.6.4 (tarball、bzip 圧縮)MD5SHA1
最新バージョンをダウンロード)、解凍後に 3 つのフォルダーがあります: docs、lib、 テスト。その中で、
「lib」フォルダーには、カスタム ルール ファイルや ログ一時保存などのコア プログラム コードが保存されます。
「docs」フォルダーには、サンプル ファイルを含むドキュメントが保存されます。これを使用するには、lib フォルダーを Web サーバーのディレクトリ にコピーするだけです。
example.php ファイルを docs/examples に lib フォルダーとして指定すると、ユーザーは example.php のファイル名を変更できます。次に、example.php を開いて、次のプログラム コードを見つけてください:
set_include_path(
get_include_path()
.PATH_SEPARATOR
.'lib/'
);
プログラム コードの 4 行目を、lib フォルダーに相対的な場所に変更します (作成者が lib は example.php と同じディレクトリに配置されるため、'lib/') に設定し、最後に As Web サイト内のすべての php ファイルが example.php を参照している限り、この監視プラットフォームを使用できます。たとえば、ファイル index.php の最初の行に、 を追加します。
include("example.php"); 次の作成者は、XSS と SQL インジェクション の 2 つの異なる攻撃タイプを使用して PHPIDS実験用のモニタリング プラットフォーム。
>スクリプト 言語により、他の通常のユーザーが Web ページを表示しているときに、ブラウザが悪意のあるプログラム コードを積極的にダウンロードして実行するか、秘密裏にインポートされます。悪意のある Web サイト、および何らかの影響を受ける可能性がある
SQL インジェクション攻撃のターゲットは、データベース自体の問題を悪用したり、オペレーティング システムや Web サイトの脆弱性をターゲットにしたりすることではありません。検証設計を誤って悪用する。
プログラマが Web アプリケーションを作成する場合、ユーザーの入力が適切にフィルタリングおよび処理されないと、プログラムはコンテンツをクエリ命令に結合して、データベース サーバー
。ユーザーが入力したデータにデータベース システムにとって特別な意味を持つ記号やコマンドが含まれている場合、それが使用される可能性があります。攻撃者は命令を発行する機会があります。データベース システムにアクセスし、侵入を引き起こします。 XSS と同様に、ユーザーは Web の入力フィールドを使用して実行します。違いは であることです。 SQL
インジェクション はデータベースの損失またはデータの盗難を引き起こします。
攻撃するには、 example.php を使用してファイルの URL の後に XSS 攻撃:
index.php?
攻撃タイプを
SQL に変更すると、Web ページで [図 1 ] のように表示されます。インジェクション を実行すると、結果は[図2]のように表示されます。
図1 検出
XSS 攻撃結果
図2検出
SQL インジェクション攻撃結果
まず、システムは影響を受けるルール条件の数を自動的にカウントします。次に、検出された攻撃タイプのリストを表示します (xss など)。 クロスサイト スクリプティング 攻撃が検出されました。csrf は、クロスサイトが検出されたことを示します
request forgery、sqli は、SQL コマンドが検出されたことを示しますなど)、最後に詳細1 つの検出結果。さらに、システムが不快な言葉を含む文字列を検出すると、その文字列は lib/IDS/tmp の phpids_log.txt に自動的に保存されます。 システム管理者による監視を容易にするための記録。
図3 XSS ルールファイル
PHPIDS ルール ファイルは、次のように「/lib/IDS/default_filter.xml」に配置されます。 [図 3] 正規表現 ( Regular) を使用した、示されているルールの 1 つ
Expression) の説明を作成し、すべての説明を XML ファイル形式で保存します。これにより、公式 Web サイトはルール ファイルを随時更新します。 ウェブ 攻撃の新たな波。一方、を使用したくない場合は、
PHPIDS、ここで提供されるルールは、フィルター プログラムの開発者の参考として使用できます。
結論と最適解
PHPIDS は、Web 開発者が参照できる無料のプログラム コードを提供しており、 🎜>Web 攻撃手法を利用し、Web サイト管理者がハッカーによる攻撃を受けていないかどうかを確認するためのリアルタイム監視プラットフォームも提供します。しかし、現時点での最大の欠点は、攻撃を隔離するために、Web サイト内のすべての php プログラム ファイルに example.php を追加する必要があることです。さらに、開発者は、各プログラム ファイルが追加後に Web サイトのパフォーマンスに影響を与えるかどうかを考慮する必要があります。興味のある読者は、Web セックスのセキュリティを強化するために、それをダウンロードしてインストールすることをお勧めします。
最適プラン
Web サイトには何百もの php ファイルがあり、 をインクルードすることは不可能です。 さて、どうしましょうか?
続きを読む-
|
インストール手順:
1. phpid をダウンロードします。
、バージョン 7 をテストしました。
http://www.open-open.com/news/view/cc55a2
2. phpidsを Web サイトのルート ディレクトリ
に解凍します。
3 ルートディレクトリに解凍できない場合は、mod_rewrite
を使用できます。
リライトエンジンがオン
RewriteCond %{REQUEST_URI} ^/phpids(.*)
RewriteRule ^(.+)$ - [F]
構成の使用法:
1. config/config.ini.php カスタム構成を編集します。メールを設定して送信するだけなのでとても簡単です。
2. ; 死ぬ(); ?>
3.
4.;PHPIDS Config.ini
5.
6. ; 一般的な構成設定
7.
8.
9. [一般]
10、
11. ; PHPIDS が動作するようにカスタマイズします
12. filter_type = xml
13.
14. ;base_path = /full/path/to/IDS/
15. use_base_path = false
16.
17. フィルターパス=default_filter.xml
18. tmp_path = tmp
19. scan_keys = false
20、
21. ; 別の HTMLPurifier ソースを使用する場合は、ここで指定します。
22.
; デフォルトでは、PHPIDS に同梱されているファイルが使用されます。
23.
HTML_Purifier_Path = ベンダー/htmlpurifier/HTMLPurifier.auto.php
24.
HTML_Purifier_Cache = ベンダー/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer
25、
26.
; の前に HTML を含むフィールドを定義します。
27、
; PHPIDS ルールに違反します (PHPIDS 0.5 の新機能)
28.
;html[] = POST.__wysiwyg
29、
30、
; どのフィールドに JSON データが含まれ、そのように扱われるかを定義します
31
32、 ;json[] = POST.__jsondata
33、
34、 ;どのフィールドを監視すべきかを定義します (a[b]=c は a.b 経由で参照される必要があります)
35、 例外[] = GET.__utmz
36、 例外[] = GET.__utmc
37、
38、 ;ワイルドカード例外には正規表現を使用できます - 例: /.*foo/i
39、
40、 ; PHPIDS は PHP 5.1.2 で実行されるはずですが、これはテストされていません - set
41、 ;マイナー バージョンとの互換性を強制するためのこの値
42、 min_php_version = 5.1.6
43、
44、; PHPIDS ロガーを使用する場合は、ここで特定の構成を定義できます
45、
46、 [ロギング]
47、
48、 ;ファイルログ
49、 パス = tmp/phpids_log.txt
50、
51、 ;メールログ
52、
53、 ;セーフモードを有効にすると、スパムの試みを防ぐことができることに注意してください。
54、 ;ドキュメントを参照
55、 受信者[] = test@test.com.invalid
56、 件名 = "PHPIDS が侵入の試みを検出しました!"
57、 ヘッダー = "送信者: info@phpids.org"
58、 封筒 = ""
59、 セーフモード = true
60、 urlencode = true
61、 allowed_rate = 15
62、
63、 ;データベースログ
64、
65、 ラッパー = "mysql:host=localhost;port=3306;dbname=phpids"
66、 user = phpids_user
67、 パスワード = 123456
68、 テーブル = 侵入
69、
70、;ファイル キャッシュ以外の方法を使用したい場合は、e
で設定できます。
71、
72、[キャッシング]
73、
74、 ;キャッシュ: セッション|ファイル|データベース|memcached|なし
75、 キャッシュ = ファイル
76、 有効期限 = 600
77、
78、 ; ファイルキャッシュ
79. パス = tmp/default_filter.cache
80、
81、 ; データベースキャッシュ
82、 ラッパー = "mysql:host=localhost;port=3306;dbname=phpids"
83、 ユーザー = phpids_user
84、 パスワード = 123456
85、 テーブル = キャッシュ
86、
87、 ;
88、 ;ホスト = ローカルホスト
89、 ;ポート = 11211
90, ;key_prefix = PHPIDS
91.
92、
93、
94、
/** オリジナルは Zhang Xunlei です。qq への参加を歓迎します-- 158393237 ディスカッション用
95、
*PHPIDS
96、
*要件:PHP5、
SimpleXML
97、 *
98、 >グループ
(https://phpids.org)
99、
*
100, *このプログラムは無料ソフトウェアです;
あなたはそれを再配布
および/または変更できます。 >
101. GNU一般パブリックライセンス 公開作成者:
102.
*無料ソフトウェア財団; のバージョン2ライセンス。103、 *
104、 *このプログラムはで配布されています それが役立つことを願っています、
105、 *ただしなし保証; さえもの暗黙的保証なしで
106、 *商品性またはフィットネスA 特定の目的。
を参照
107、 *GNU一般パブリックライセンス 詳細詳細。
108、 */
109、
110、 // PHPIDS のインクルード パスを適切に設定します
111、 set_include_path(
112、 get_include_path()
113、 。
PATH_SEPARATOR
114、 。 'lib/'
115、 );
116、
117、 if (!session_id()) {
118、 session_start();
119、 }
120、
121、 require_once'IDS/Init.php';
122、
123、 試してみる {
124、
125、 /*
126、 * PHPIDS を実行するのは非常に簡単です
127、 * 1. スキャン対象を定義します
128、 *
129、 * array_merge が何を行うか、またこれがどのように干渉する可能性があるかに留意してください
130、 * 変数_順序設定
131、 */
132、 $request =array(
133、 'リクエスト' =>$_REQUEST,
134、 'GET' =>$_GET,
135、 'POST' =>$_POST,
136、 'COOKIE' =>$_COOKIE
137、 );
138、
139、 $init = IDS_Init::init(ディレクトリ名(__FILE__)
。 '/IDS/Config/Config.ini.php');
140、
141、 /**
142、 *もリセットできます全体構成
143、 *配列またはを内にマージ データ
144、 *
145、 *この使用法は上書きされませんすでに存在する値
146、 *$config->setConfig(array('General'=>array('filter_type'=>'xml')));
147、 *
148、 *これは(2番目を参照)パラメータ)
149、 *$config->setConfig(array('General'=>array('filter_type'=>'xml')),true);
150、 *
151、 *またはあなたはアクセスできます設定直接のようにここ:
152、
*/
153、
154、
$init->config['全般'][ 'base_path']
= ディレクトリ名(__FILE__) .'/IDS/' ;
155、
$init->config['全般'][ 'use_base_path']
= true;
156、
$init->config['キャッシュ'][ 'キャッシュ']
= 'なし';
157、
158、
// 2. PHPIDS を開始し、結果を取得します
159、
$ids =new IDS_Monitor( $request,$init);
160、
$result =$ids->run();
161、
162、
/*
163、
* これで、結果を分析できるようになります:
164、
*
165、
* 結果オブジェクトには疑わしいものが見つかります166、 * 追加情報で強化された、渡された配列のフィールド
167、 *
168、 * 注: さらに、
によってこの情報をダンプすることもできます。
169、 * IDS_Report が実装されているため、単に結果オブジェクトをエコーする
170、 * __toString メソッド。
171、 */
172、 if (!$result->isEmpty()) {
173、 echo$result;
174、
175、 /*
176、 * 結果を記録するための次の手順はオプションです
177、 */
178、 require_once'IDS/Log/File.php';
179、 require_once'IDS/Log/Composite.php';
180、
181、 $compositeLog =new IDS_Log_Composite();
182、 $compositeLog->addLogger(IDS_Log_File::getInstance($init));
183、
184、 /*
185、 * 別のロギング機能を使用する場合もあることに注意してください
186、 * IDS_Log_Email または IDS_Log_Database など
187、 *
188、 * ラッパーをテストするには、次の行のコメントを解除するだけです
189、 */
190、 /*
191、 *
192、 require_once 'IDS/Log/Email.php';
193、 require_once 'IDS/Log/Database.php';
194、
195、 $compositeLog->addLogger(
196、 IDS_Log_Email::getInstance($init),
197、 IDS_Log_Database::getInstance($init)
198、 );
199、 */
200、 $compositeLog->execute($result);
201、
202、
203、 } else {
204、 echo'攻撃は検出されませんでした - クリックすると攻撃の例が表示されます';
205、 }
206、 } catch (例外$e) {
207、 /*
208、 * sth はひどく間違っていました - おそらく
209、 * フィルター ルールが見つかりませんでしたか?
210、 */
211、 printf(
212、 'エラーが発生しました: %s',
213、 $e->getMessage()
214、 );
215、 }
2、编辑php.ini、以下の内容を追加します:
auto_prepend_file=”D:MYOAwebrootphpidslibids.php”