プライバシー管理
Backtrace には、個人を特定可能な情報のデータをスクラブする機能が揃っています。UNIX のコアダンプのネイティブ形式にも、Windows、Breakpad、Crashpad で使用されるミニダンプ形式にも対応します。
ミニダンプ用のデータスクラバー
ミニダンプファイルには、クラッシュしたプロセスの生データが含まれています。これには、個人を特定可能な情報(PII)などの機微なデータが含まれている可能性があります。それらの情報が Backtrace サーバーに送信されると、メタデータや属性が抽出され、ミニダンプファイルがディスクに保持されます。開発者は、これらのダンプをウェブブラウザーで直接表示したり、根本原因を分析する目的でダウンロードしたりできます。
データスクラバーを使用すると、管理者は Backtrace に送信された機微なデータを、ディスクにコミットされる前にダンプファイルから削除できます。ダンプに含まれるレジスタ値、メモリ、クラッシュ属性などのすべてのデータがスキャンされ、個人を特定可能な情報を示している可能性があるパターンが特定されます。
データスクラバーの主なクラスは、ビルトインスクラバーと正規表現スクラバーの 2 つです。次の情報をスクラブするビルトインスクラバーがあります。
- クレジットカード番号。
- 社会保障番号。
- 暗号化キー。
- 環境変数。
これらのスクラバーは、以下に適用されます。
- ファイルシステムパス。
- レジスタ値。
- メモリ領域。
環境変数スクラバーが有効になっている場合は、すべての環境変数がスクラブされます。
個人を特定可能なすべての情報は、ディスクにコミットされる前にその場で変換されます。問題のある情報はマスクされ、お使いのシステムデバッガーでファイルをロードできるように、ファイルの全体的な構造は変更されません。
ユーザー定義のスクラバーは、POSIX 正規表現を使用して定義することもできます。正規表現に依存するスクラバーは、文字列のように見えるダンプ内のすべてのデータに適用されます。たとえば、IP アドレスの文字列表現は、正規表現 [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
を使用してスクラブできます。
現時点では、スクラバーの管理は morgue コマンドラインユーティリティを介して処理されます。morgue の詳細については、こちらで確認してください。
リスト
Usage: morgue scrubber
たとえば、次のコマンドによって、プロジェクト minetest
のスクラバーの一覧が表示されます。
morgue scrubber minetest list
[1] credit_card
regexp: null
builtin: ccn
format: minidump
target: memory
enable: 0
[2] social_security
regexp: null
builtin: ssn
format: minidump
target: memory
enable: 0
[3] security_key
regexp: null
builtin: key
format: minidump
target: memory
enable: 0
[4] environment_variable
regexp: null
builtin: env
format: all
target: all
enable: 1
[5] ip_addr
regexp: [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
builtin: null
format: all
target: all
enable: 1
このプロジェクトには 5 つのデータスクラバーがあります。各スクラバーには id
番号が指定され、name
、regexp
、builtin
、format
、target
、enable
の各フィールドで構成されます。name は、人間が判読可能なスクラバーの名前です。regexp
は、ユーザーが定義する正規表現です。builtin は、Backtrace によって提供されるスクラバーです。現在の実装には、ccn、ssn、key、env があり、それぞれクレジットカード番号、社会保障番号、暗号化キー、環境変数を指します。format
は、該当するクラッシュエラーの形式を指します。minidump
である必要があります。target は、スクラブ対象のクラッシュエラーのデータ領域を指します。有効な値は、memory、map、registers、variable、all です。ただし、現在の実装では target は強制ではありません。代わりに、すべてのデータがスクラブされます。enable
は、クラッシュエラーデータにスクラバーを適用するかどうかを指定します。0
を指定するとスクラバーが無効になり、他の整数値を指定するとスクラバーが有効になります。
作成
Usage: morgue scrubber
または
Usage: morgue scrubber
regexp
または builtin
のいずれかを指定する必要があります。両方は不要です。--builtin=all
が選択された場合、すべてのビルトインスクラバーが一斉に作成されます。
オプションには、--format=
と --target=
が含まれます。指定されない場合、format
と target
の両方が all
に設定されます。
次の例では、IP アドレスをフィルタリングするスクラバーを作成します。
morgue scrubber minetest create --name=ip_scrubber --regexp='[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' --enable=1
変更
Usage: morgue scrubber
id
は、スクラバーの list
コマンドに表示される一意の番号を指します。ユーザーは通常、このコマンドを使用して、スクラバーの名前を変更したり、正規表現を調整したり、スクラバーを有効/無効にしたりします。
削除
Usage: morgue scrubber
ネイティブ UNIX ダンプの拡張機能
Linux、FreeBSD、IllumOS ベースのシステム用の高度なデバッガーを使用している場合は、LUA または C のプラグインのいずれかで Backtrace のプラグインシステムを介して、個人を特定可能な情報を変更および検閲できます。詳細はこちらで確認してください。
オンプレミスの Coronerd を使用している場合
coronerd.conf ファイルに次のスタンザを追加する必要があります。
"data_scrub": {
"enable": true
}
追加した後は、必ず coronerd サービスを再起動してください。