Skip to main content

Serverのセキュリティ強化

Serverのセキュリティ強化とは、ネットワーク、OS、アプリケーションの各レイヤーでサーバー構成を変更して、攻撃対象領域を最小限に抑え、侵入に対する抵抗を最大化することです。ネットワークとOSを保護するには、次の推奨事項に従ってください。

  • Serverの最新バージョンとパッチをインストールします。

  • CA署名付きX.509 (TLS/SSL)証明書を使用して、ServerをHTTPS動作するように設定します。詳細については、「 Server SSL/TLSを設定 」を参照してください。

  • オペレーティングシステムとデータベースを強化し、セキュリティを保護します。

詳細については、 ユーザーとグループの管理 のヘルプページを参照してください。

アプリケーションを保護するには、次の推奨事項に従ってください。

  • 以下のWebアプリケーション構成の強化手順を確認し、環境および組織のポリシーに対し適切なものを適用します。

  • 以下のServer管理強化手順を確認し、環境および組織のポリシーに対し適切なものを適用します。

匿名アカウントとゲストアカウント

管理者設定を使用して、匿名アカウントとゲストアカウントを処理できます。次の指示に従うことをお勧めします。

  • ユーザー登録を無効にします。Windows認証(IWA)によってアクセスを有効にするか、管理者としてアカウントを作成します。

  • 未登録ユーザーがパブリックGalleryワークフローを実行できるようにするかを検討します。

詳細については、 ユーザーとグループの管理 のヘルプページを参照してください。

Server管理のセキュリティ強化手順

これらの設定は、アプリケーションの全体的なセキュリティ状態に影響を与える可能性のある、権限やその他のオプションに関連するServerの機能のさまざまな側面での動作を制御します。

Gallery の実行モード設定では、ワークフローが不正なアクションを起こさないようにセキュリティ制御を強化できます。Gallery の既定の実行モードは Unrestricted (制限なし)  に設定されており、制限なくすべてのワークフローを実行できます。この設定を Semi-safe (セミセーフ)  または Safe (セーフ) に構成すると、Server 環境の保護が強化され、ワークフローがステージングディレクトリ以外の場所との間でデータを読み書きしたり、制限されたツールを含むワークフローを実行したりするのを防止できます。これは、Server環境全体に適用される全般的な設定ですが、管理者は個々のワークフローレベルで例外として設定を上書きできます。Galleryの実行モードに関する詳細については、 Server UI のヘルプページを参照してください。

[ 設定 ] ページには、管理者権限(プロファイル > 管理者)でServerにログインしているユーザーがアクセスできる設定がいくつかあります。[ ユーザー設定 ] セクションで以下の設定ができます。

  • [ 既定のロール ] ドロップダウンを「アクセスなし」に設定すると、外部認証システム(SAML SSOまたは統合Windows認証)を使用してログインできるユーザーが、Server内で既定の参照アクセス権や実行アクセス権を持たないようにします。(ユーザーには、外部認証ドメインに存在するということ以上の規範によって明示的に権限を付与する必要があります)。

  • [ ユーザーによる登録が可能 ] トグルを無効にすると、未登録ユーザーが新しいアカウントにサインアップできなくなります(ビルトイン認証の場合のみ。Serverは外部認証システムにアカウントを追加できません)。

  • [ 未登録ユーザーがホームページでパブリックワークフローを実行できる ] トグルを無効にすると、匿名クライアントがホームページに公開されたワークフローを実行できなくなります。

Login Timeout

As of 22.1 you can configure login attempt timeouts by setting the Enforce Login Attempt Timeout switch (Admin > Settings > Configuration > Security Settings > Enforce Login Attempt Timeout).

ユーザー権利の割り当てプロセスは、各顧客の管理チームによって処理されます。

ロールには、ビューワー、アルティザン、キュレーターがあります。ロールと権限についての詳細は、「 ユーザーロールと権限 」のヘルプページを参照してください。

Serverと永続レイヤー(MongoDB)の間のセキュリティ

ServerとMongoDB間の接続は、次の方法で保護されます。

  • 接続はMongoクライアントドライバーを経由します(既定ではこれはトラフィックを暗号化しません)。

  • Enterprise MongoはTLS/SSLをサポートしています( https://docs.mongodb.com/v3.0/core/security-transport-encryption/ を参照)が、これらの接続はServerに付属のEmbedded MongoDBオプションではサポートされていません。

  • 暗号化されたデータベース接続が必要な場合は、Enterprise Mongoをインストールしたユーザー管理型Mongo、またはMongoDB Atlas SaaSに切り替えることを検討してください。

    また、Alteryx Serverコンポーネントとデータベースサーバー間にSSH接続転送またはVPN接続をインストールすることもできますが、そのインストール方法は、このガイドでは説明しません。

POODLE攻撃

Alteryx DesignerとServerは11.5リリース以降でTLS 1.2をサポートしています。POODLE攻撃が懸念される場合は、脆弱なプロトコルがSchannelで無効になっていることを確認します。

Webアプリケーション設定のセキュリティ強化手順

これらの設定は、ServerのフロントエンドGUIがネットワーク接続されたHTTP/Sクライアントとどのようにやり取りするかに影響します。

Alteryx Serverの既定のインストールでは、インストールと構成を簡素化するためにHTTP (暗号化なし)が使用されますが、X.509証明書を導入し、ServerのSSL/TLS (HTTPS)を有効にしてクライアントとサーバー間の通信を暗号化することをお勧めします。これにより、Serverが正当であることが確認され、ユーザーセッションの整合性と機密性が保護されます。X.509証明書要求を作成し(クライアントがサーバーの参照に使用するFQDN形式のホスト名を指定します)、その要求を組織が信頼する認証局によって署名する必要があります。手順については、「 Server SSL/TLSを設定 」を参照してください。

HTTPリクエストヘッダー「Host」はHTTPクライアントによって送信され、クライアントが最初に接続を試みたインターネットホスト名とポート番号が含まれています。

管理者としてServerにログインしている場合は、 管理者 > 設定 > 設定 の中の [ セキュリティ ] セクションにある [ 許可されたホスト ] フィールドで、Serverのサービス提供を許可するホストを指定できます。

HTTP ホストヘッダー攻撃を防止するセキュリティ対策として、これを使用してください。完全修飾ドメイン名( ホスト.ドメイン )を1行に1つずつ入力します。詳細については、 Alteryx Server設定 のヘルプページを参照してください。

HTTPレスポンスヘッダーは、リクエストへの応答時にServerから送信されます。 %ProgramFiles%\Alteryx\bin\server\config\alteryx.config の<httpHeaders>セクションにスタンザを追加することで、カスタムヘッダーの設定や、既存のヘッダーに対するServerの既定値の変更ができます。

以下は、定期的なペネトレーションテスト(SDLCの一部)のためにServer強化の目的で内部的に使用される一連のヘッダーです。すべてのクライアントと互換性があるとは限りません。組織のニーズとポリシーに応じて、環境に合わせて値を更新または調整することができます。

<httpHeaders>
    <header name="Cache-Control" value="no-store; max-age=0" />
    <header name="Strict-Transport-Security" value="max-age=31536000; 
includeSubDomains" />
    <header name="X-Content-Type-Options" value="nosniff" />
    <header name="Content-Security-Policy" value="default-src 'self'; 
img-src 'self' data:; font-src 'self' data:; script-src 'self' 'unsafe-eval' 'unsafe-inline'; 
style-src 'self' 'unsafe-inline'; frame-ancestors 'self'; form-action 'self'" />
    <header name="Access-Control-Allow-Origin" value="https://server.domain.tld" />
    <header name="Vary" value="Origin" />
    <header name="Referrer-Policy" value="no-referrer; strict-origin-when-cross-origin" />
</httpHeaders>