このページでは、Datadog に送信されるデータのセキュリティについて説明します。クラウドやアプリケーションのセキュリティ製品や機能をお探しの場合は、セキュリティのセクションをご覧ください。

ローカルにインストールされた Agent または HTTP API を使用して Datadog サービスにデータを送信できます。Datadog を使用する上で Datadog Agent を必ず使用しなければならないわけではありませんが、大半のお客様が Agent を利用しています。ここでは、安全な環境を維持するために利用できる主なセキュリティ機能について説明します。

Agent ディストリビューション

Agent の公式リポジトリおよびバイナリパッケージは署名されています。次の公開鍵のいずれかに対して署名を確認して、ディストリビューションチャンネルを確認します。

Debian および Ubuntu では、datadog-agent パッケージに datadog-signing-keys パッケージのソフト依存性があるため、上記のキーが APT により信頼されます。パッケージを最新に更新しておくと、最新の署名キーをシステムに保つことができます。

Windows MSI

Windows 上で Datadog Agent インストーラファイルの署名を検証するには、Get-AuthenticodeSignature の出力を FormatList (fl) にパイプし、次のことを確認します。

  • ステータスが有効であること
  • 証明書が Datadog, Inc によって署名されていること
  • 発行者が DigiCert であること

例えば、ddagent-cli-7.49.1.msi という名前の .msi ファイルを検証する場合:

Get-AuthenticodeSignature ddagent-cli-7.49.1.msi | fl

コマンドの出力が A certificate chain could not be built to a trusted root authority (信頼できる root 認証局への証明書チェーンを構築できなかった) の場合、そのマシンは DigiCert root CA の更新が必要になるかもしれません。

情報セキュリティ

Datadog Agent は、デフォルトで、TLS で暗号化された TCP 接続を介して Datadog にデータを送信します。バージョン 6 では、Datadog への接続時に最小の TLS バージョン強制するように Agent を設定できます。たとえば、PCI の要件を満たすために、“強力な暗号化” を使用する必要がある場合は、Agent v6/7 を使用し、Agent の構成ファイルで min_tls_version: 'tlsv1.2'、または Agent < 6.39.0/7.39.0 では force_tls_12: true を設定をする必要があります。

ネットワークとプロキシ

Datadog は SaaS 製品です。監視データを送信するには、お客様のネットワークから公共のインターネットへのアウトバウンド接続を確立する必要があります。トラフィックは常に Agent から Datadog へと開始され、デフォルトでは、TLS で暗号化された TCP 接続で行われます。Datadog から Agent へのセッションが開始されることはありません。必要な Datadog のドメインとポートをリストアップする方法については、Agent のネットワークのページを参照してください。さらに、公共のインターネットに直接接続していないホスト、またはアウトバウンドトラフィックが制限されているホストを監視する場合は、監視データをプロキシから送信することを検討してください。

Agent ログの難読化

Datadog Agent は、Agent のトラブルシューティングをサポートするため、必要に応じてローカルにログを生成します。安全対策として、これらのローカルログは、何らかの資格情報 (API キー、パスワード、トークンキーワードなど) を表している可能性があるいくつかのキーワードとパターンを使用してフィルターされた後、難読化されてからディスクに書き込まれます。

ローカル HTTPS サーバー

Agent v6/7 は、実行中の Agent と Agent ツール (たとえば、datadog-agent コマンド) の間の通信を容易にするために、ローカル HTTPS API を公開しています。API サーバーは、ローカルネットワークインターフェイス (localhost/127.0.0.1) からのみアクセスすることができ、Agent を実行しているユーザーだけが読み取ることができるトークンを使用して認証が強制されます。ローカル HTTPS API への通信は、localhost 上での傍受から保護するため、転送時に暗号化されます。

Agent GUI

Agent v6/7 には、デフォルトでグラフィカルユーザーインターフェイス (GUI) が付属しており、デフォルトの Web ブラウザで起動します。この GUI は、GUI を起動するユーザーが、Agent の構成ファイルを開く権限も含めて、正しいユーザーアクセス許可を持つ場合にのみ起動されます。GUI には、ローカルネットワークインターフェイス (localhost/127.0.0.1) からのみアクセスできます。最後に、GUI は、GUI サーバーとのすべての通信を認証し、クロスサイトリクエストフォージェリ (CSRF) 攻撃から防御するために使用するトークンを生成して保存するため、ユーザーの cookie を有効にする必要があります。必要に応じて、GUI を完全に無効にすることもできます。

Agent のセキュリティスキャン

Datadog の脆弱性管理プログラムには、サポート用インフラストラクチャー/アプリケーションコンポーネントの定期評価が含まれています。たとえば、サポート用コアサービスのアクティブスキャンを行います。Datadog のセキュリティチームは、Datadog の脆弱性管理ポリシーに従って月 1 回のスキャンを実施して、構成やソフトウェアの脆弱性を特定し、見つかった脆弱性の修正状況を追跡します。

特に Container Agent に関しては、Datadog は CoreOS の Clairsnyk.io を使用して定期的に脆弱性統計情報の分析を実施しています。さらに、Container Agent を Docker Trusted RegistryRed Hat Container Catalog にリリースする際にセキュリティスキャンを利用しています。Datadog の社内脆弱性管理プログラムに加えて、Datadog はコンテナセキュリティベンダーとも連携しています。

Detadog のセキュリティにバグを発見された場合は、security@datadoghq.com にご連絡ください。24 時間以内に対応いたします。Datadog との通信を暗号化する必要がある場合は、Datadog の PGP キーをダウンロードできます。発見した問題が解決されるまで、問題を公表されないようにお願いいたします。

非特権ユーザーとして実行

デフォルトでは、Agent は Linux では dd-agent ユーザーとして、Windows では ddagentuser アカウントとして実行されます。例外は以下のとおりです。

  • system-probe が Linux で root として、Windows で LOCAL_SYSTEM として実行。
  • process-agent が Windows で LOCAL_SYSTEM として実行。
  • security-agent が Linux で root として実行。

機密情報管理

Agent の構成ファイルに機密情報がプレーンテキストで格納されることを避ける必要がある場合は、機密情報管理パッケージを利用できます。このパッケージを使用すると、Agent は、ユーザー提供の実行プログラムを呼び出して機密情報の取得や解読を処理してから、処理した機密情報をメモリにロードします。任意のキー管理サービス、認証方法、継続的インテグレーションワークフローを使用して、実行プログラムを設計できます。

詳細については、秘密情報管理のドキュメントを参照してください。

テレメトリーの収集

非政府サイト上の Agent は、Datadog Agent に関する環境情報、パフォーマンス情報、および機能使用状況の情報を収集します。Agent が政府サイトを検出した場合、または Datadog Agent FIPS Proxy が使用されている場合、Agent はこのテレメトリー収集を自動的に無効化します。そのような検出が不可能な場合 (例えば、プロキシを使用している場合)、Agent のテレメトリーは送信されますが、Datadog のインテークで即座に破棄されます。そもそもこのデータが送信されること自体を避けるために、Datadog は Agent コンフィギュレーションファイルで agent_telemetry 設定を更新し、明示的に Agent のテレメトリーを無効化することを推奨しています。以下はその例です。

agent_telemetry:
  enabled: false
DD_AGENT_TELEMETRY_ENABLED=false

Datadog は、Datadog Agent に関する環境情報、パフォーマンス情報、および機能使用状況の情報を収集する場合があります。これには、Datadog Agent の診断ログや、難読化されたスタックトレースを含むクラッシュダンプが含まれ、Datadog Agent のサポートおよびさらなる改善に役立ちます。

このテレメトリー収集は、以下の例のように Agent コンフィギュレーションファイルで agent_telemetry 設定を更新することで無効化できます。

agent_telemetry:
  enabled: false
DD_AGENT_TELEMETRY_ENABLED=false

テレメトリー内容:

メタデータ (source)
マシン ID
マシン名
OS
OS バージョン
Agent バージョン
メトリクス (source)説明
checks.execution_timeチェックの実行時間 (ミリ秒単位)
pymem.inusePython インタープリタによって割り当てられているバイト数
pymem.allocAgent 起動以来、Python インタープリタによって割り当てられた累計バイト数
api_server.request_duration_secondsCLI コマンド実行性能 (実行された場合)
logs.decodedデコードされたログの総数
logs.processed処理されたログの総数
logs.sender_latencyHTTP sender latency in millisecondsHTTP 送信者の遅延時間 (ミリ秒単位)
logs.bytes_missedAgent が消費される前に失われたバイト数の総計 (ログローテーション後など)
logs.sent送信されたログの総数
logs.droppedドロップされたログの総数
logs.bytes_sentエンコード前に送信されたバイト数の総計 (該当する場合)
logs.encoded_bytes_sentエンコード後に送信されたバイト数の総計 (該当する場合)
dogstatsd.udp_packetsDogStatsD UDP パケットのバイト数
dogstatsd.uds_packetsDogStatsD UDS パケットのバイト数
transactions.input_count受信トランザクション数
transactions.requeued再キューイングされたトランザクション数
transactions.retries再試行されたトランザクション数
point.sent送信されたメトリクスの総数
point.droppedドロップされたメトリクスの総数
oracle.activity_samples_countクエリアクティビティを計測する際に取得した行数 (収集されたアクティビティサンプル数)
oracle.activity_latencyTime to retrieve query activity in millisecondsクエリアクティビティ取得時間 (ミリ秒単位)
oracle.statement_metricsデータベースメトリクス取得時間 (ミリ秒単位)
oracle.statement_plan_errors実行計画取得時のエラー数
postgres.collect_relations_autodiscovery_msリレーションのオートディスカバリー収集時間 (ミリ秒単位)
postgres.collect_stat_autodiscovery_msオートディスカバリー統計の収集時間 (ミリ秒単位)
postgres.get_new_pg_stat_activity_mspg_stat_activity 取得時間 (ミリ秒単位)
postgres.get_new_pg_stat_activity_countpg_stat_activity 収集のために取得された総行数
postgres.get_active_connections_msアクティブな接続取得時間 (ミリ秒単位)
postgres.get_active_connections_countアクティブな接続取得のために取得された総行数
postgres.collect_activity_snapshot_msアクティビティスナップショット取得時間 (ミリ秒単位)
postgres.collect_statement_samples_msステートメントサンプル取得時間 (ミリ秒単位)
postgres.collect_statement_samples_countステートメントサンプル収集のために取得された総行数

適用可能なメトリクスのみが送信されます。例えば、DBM が有効でない場合、データベース関連のメトリクスは一切送信されません。

その他の参考資料