新しい会話を開始

未解決

Community Manager

 • 

3.1K メッセージ

318

2019年9月12日 20:00

OneFS:CSRF(クロスサイト リクエスト偽造)からクラスタを保護する方法(000517421)

プライマリ製品:Isilon OneFS 製品:Isilon OneFS、Isilon OneFS 8.0、Isilon OneFS 8.1 バージョン:9 記事タイプ:ナビゲーション 対象読者:レベル30 = お客様 最終発行日:2018年3月14日水曜日20:34:25(GMT) サマリー: 説明: クラスタのCSRF保護を確実にするには、次の両方の処理手順を実行します。 1. 以下に記載されているようにCSRF保護を有効にする 2. 以下に記載されているように基本認証を無効にする CSRF保護を有効にする方法 注 CSRF保護を有効にすると、以下の「認証付きCSRF保護を実装する方法」で説明するように、セッションを使用するカスタムAPIスクリプトが中断され、CSRF対策ヘッダーを使用するようにアップデートされません。 API認証を使用しない場合は、この処理手順を省略してCSRF保護を実装できます。 重要: 変更を行う前に、設定テンプレートをバックアップします。 /etc/mcp/templates/webui_httpd.confファイルの3つのセクションのそれぞれに対して、次の変更を行います。 AuthType Isilon IsiAuthName "platform" IsiAuthTypeBasic On IsiAuthTypeSessionCookie On IsiMultiZoneAllow On IsiAuthTypeBearer on IsiCsrfCheck On # Enable CSRF protection Require valid-user AuthType Isilon IsiAuthName "object" IsiAuthTypeBasic On IsiAuthTypeSessionCookie On IsiMultiZoneAllow On IsiCsrfCheck On # Enable CSRF protection Require valid-user AuthType Isilon IsiAuthName "namespace" IsiAuthTypeBasic On IsiAuthTypeSessionCookie On IsiMultiZoneAllow On IsiCsrfCheck On # Enable CSRF protection Require valid-user AuthType Isilon IsiAuthName "remote-service" IsiAuthTypeBasic On IsiAuthTypeSessionCookie On Require valid-user SetHandler fastcgi-script Options +ExecCGI Allow from all ErrorDocument 401 /json/401.json 基本認証を無効にする方法 重要: 基本認証を無効にすると、古いバージョンのInsightIQがクラスタに接続できなくなります。使用している環境でInsightIQを実行している場合は、InsightIQをバージョン4.1.2にアップグレードします。 注 基本認証を無効にすると、現在のバージョンのIsilon SDKを使用したコールがクラスタに対する認証を行わなくなります。 Apache設定テンプレートを手動で変更することにより、OneFSの以前のバージョンで基本認証を無効にすることができます。 重要: 変更する前に、設定テンプレートをバックアップします。 /etc/mcp/templates/webui_httpd.confファイルに次の変更を行います。 AuthType Isilon IsiAuthName "platform" IsiAuthTypeBasic Off # Disable basic authentication IsiAuthTypeSessionCookie On AuthType Isilon IsiAuthName "object" IsiAuthTypeBasic Off # Disable basic authentication IsiAuthTypeSessionCookie On AuthType Isilon IsiAuthName "namespace" IsiAuthTypeBasic Off # Disable basic authentication IsiAuthTypeSessionCookie On テンプレート ファイルに対する変更はすべて、自動的に検出され、クラスタの残りの部分に反映されます。 注 システム テンプレート ファイルを変更する場合は注意が必要です。すべてのエラーがクラスタに伝達され、クラスタのパフォーマンスが低下する可能性があります。さらに、Apacheの設定に対するカスタムの変更は、OneFSアップグレード後は保持されません。 -------------------------------------------------------------------------- 認証付きCSRF保護を実装する方法 CSRF攻撃からOneFS APIを保護するために、OneFS APIでは、 各リクエストでクライアントが追加のCSRF対策トークン ヘッダーを APIに渡すようになりました。CSRF対策トークンは、最初のAPI認証リクエストのサーバーから取得され、 認証チェックを渡すために、セッション トークンと共にすべてのAPIリクエストにも含まれている必要があります。 1. クライアントは、認証情報を持つ認証リクエストを OneFSセッションAPI(/session/1/session)に送信します。 2. サーバーは、提供された認証情報を検証し、 グローバルAPI許可チェックを実行します。クライアントIDが確認され、 許可チェックに合格すると、サーバーは セッション トークン(isisessid)と新しいCSRF対策トークン(isicsrf)の2つのcookieを使って応答します。両方のトークンは保存され、 後続のAPIリクエストが認証チェックを通過するの を防ぎます。認証に失敗した場合は、適切なHTTPエラー コードが 返されます。 * OneFSプラットフォームAPIへのcurlによる認証例: $ curl -vk https://10.0.0.1:8080/session/1/session -X POST \-H 'Content-Type: application/json' \-d '{ "username": "testuser","password": "A_Pa$$word","services": ["platform"]}' * Response from server HTTP/1.1 201 Created Date: Thu, 25 Jan 2018 22:34:20 GMT Server: Apache/2.2.34 (FreeBSD) mod_ssl/2.2.34 OpenSSL/1.0.2k-fips mod_fastcgi/2.4.6 Set-Cookie: isisessid=924bb64a-cffd-4d98-9ccc-6703fabc3210; path=/; HttpOnly; Secure; SameSite=strict Set-Cookie: isicsrf=8c5da1e4-5508-4609-9978-4a6d283e4c3a; path=/; Secure Content-Length: 96 Content-Type: application/json {"services":["platform"],"timeout_absolute":14400,"timeout_inactive":900,"username":"testuser"} 3. OneFSプラットフォームAPIに対して認証されるリクエスト を作成するには、クライアントはOneFSセッションcookie(isisessid)を通常どおり送信します。さらに、CSRFリクエスト検証チェックを通過するために、 クライアントは、最初の認証で取得したCSRFトークン クッキー(isicsrf)を 特別なヘッダー(X-CSRFトークン)に入れるとともに、 接続しているホストと一致するRefererヘッダーを埋めて 送信する必要があります。 curlリクエストの例 $ curl -vk https://10.0.0.1:8080/platform/1/auth/id \-b 'isisessid=924bb64a-cffd-4d98-9ccc-6703fabc3210' \ -H 'X-CSRF-Token: 8c5da1e4-5508-4609-9978-4a6d283e4c3a' \--referer https://10.0.0.1:8080 * Response from server HTTP/1.1 200 Ok Date: Thu, 25 Jan 2018 22:53:03 GMT Server: Apache/2.2.34 (FreeBSD) mod_ssl/2.2.34 OpenSSL/1.0.2k-fips mod_fastcgi/2.4.6 Allow: GET, HEAD Transfer-Encoding: chunked Content-Type: application/json {"ntoken": {"additional_id": [{"id": "SID:S-1-5-11"}],"gid": {"id": "GID:1800"},"group_sid": {"id": "SID:S-1-5-21-902947705-743178377-3070079125-800"}, "ifs_restricted": false,"local_address": "10.7.182.158","on_disk_group_id": {"id": "GID:1800"}, "on_disk_user_id": {"id": "UID:2000"},"privilege": [{"id": "ISI_PRIV_LOGIN_PAPI","name": "Platform API","read_only":true}], "protocol": 10,"remote_address": "10.7.182.130","uid": {"id": "UID:2000"},"user_sid": {"id": "SID:S-1-5-21-902947705-743178377-3070079125-1000"},"zid": 1,"zone_id": "System"}} プライマリ製品: Isilon OneFS 製品: Isilon OneFS、Isilon OneFS 8.0、Isilon OneFS 8.1

1添付ファイル

レスポンスがありません。
イベントは見つかりませんでした!

Top