[CTX]
[ALL]
Defense Against Attackers
アタッカー防御
SIGSEGV や SIGBUS のような致命的な信号が発生した後、DeleGate は、
クライアントホストへのサービスを直ちに停止します。
致命的エラー発生の原因は、エラー前に、侵入の試みが失敗した印ととらえることもできます。
同時に、事象を通知するため、DeleGate は、
ADMIN パラメーターに指定した管理者に報告メールを送信します。
アタッカーのもっとも典型的な手段は、スタック上のバッファオーバーフローで、
存在するアドレス上にターゲットバッファが存在していることを期待しており、
スタックアドレスをランダ厶化することは、アタック成功の糸口を減少するのに効果的です。
そして、アタックの失敗は致命的エラーを発生させ、DeleGate により捕捉されます。
疑わしいクライアントホストは、関連ファイル (ADMDIR/shutout/ 内) を削除するか、
TIMEOUT=shutout (デフォルト30分) のファイル有効期限が切れるまで、シャットアウトされます。
安全のためには、TIMEOUT="shutout:0" (無限) が望ましく、
アタッカーに2度とチャンスを与えないようにしましょう。
しかし、致命的エラーは、DeleGate のいつものバグで発生するほうが高く、
既定値を扱いにくくしています...
とにかく、以下のオプションを理解し、アクセス制御 設定はもちろんのこと、
このような攻撃も防ぐよう、意識を高く持ってください。
- TIMEOUT=shutout:N [30m] ... アタック再試行間隔の最短
- MAXIMA=randstack:N [32] ... スタックアドレスのランダム化
- MAXIMA=randenv:N [1024] ... 環境変数のランダム化
- MAXIMA=randfd:N [32] ... クライアントソケットディスクリプターのランダム化
- CHROOT=dirPath ... アクセス可能なファイル空間を制限
- OWNER=user [nobody] ... DeleGateプロセスの能力を制限
- ADMIN=E-mail-address ... 正しく SMTP 配送できること
- DGSIGN=mask [V.R.P/Y.M.D] ... DeleGate のバージョンをクライアント・サーバーから隠す
- -Phost:port [0.0.0.0:] ... 入口ポートのインターフェースを制限
- -Tx [off] ... システムコールを無効化
- -Fimp [none] ... DeleGate 実行ファイルのユーザーと能力を制限
-
起動時、元の環境変数とスタック領域上のコマンドライン引数はヒープ領域に移動、消去され、
アタッカーの侵入コードに利用されないようになっています。
同時に、ランダムな長さの値 (MAXIMA=randenv の最大値) を持つ RANDENV ダミー環境変数が、
環境変数のランダムなアドレスに挿入され、フィルタープログラムや、
CGI プログラムのような子プロセスに継承されます。