機密ファイルを含むLinuxマシンがあります。ユーザーは、コンピューターを使用しているときにそれらにアクセス(読み取り)できる必要がありますが、別のハードドライブ(同じマシンに追加された可能性のあるUSBスティックまたは別のハードドライブ)にコピーすることはできません。
メインのハードドライブは、誰かがそれを抽出してファイルを盗むのを防ぐために暗号化されています。
目標を達成するために、私はSELinuxまたは他のアプローチを自由に使用できます。
更新:
答えを読んだ後、私は明確にしたいと思います:
画面の写真を撮るユーザーについてはあまり気にしていません。実際のファイルを保護することが私の主な目標です。
すべてのファイルを保護するのが最適でしたが、私は主にデータセット全体(非常に大きい)を保護することを懸念しています。いくつかのファイルがリークされた場合でも、損傷は管理可能です。さらに、ファイルが大量であるため、非効率的な方法で1つずつ抽出することは現実的ではありません。
コンピュータのユーザーには管理者権限が与えられません。
LinuxでUSBストレージを無効にするには、モジュールをブラックリストに登録します。
modprobe -r usb-storage
echo blacklist usb-storage >> /etc/modprobe.d/10-usbstorage-blacklist.conf
echo blacklist uas >> /etc/modprobe.d/10-usbstorage-blacklist.conf
ユーザーがマシンに物理的にアクセスでき、暗号化キーを知っている場合は、ソフトウェアをどのように使用してもゲームは稼働します。
私の提案は、マシンの物理インターフェースへのアクセスを制限することです。ボックス内でロックし、ユーザーがキーボード、マウス、画面を介してのみ操作できるようにします。
また、ユーザーが何かをコピーするのを阻止できないことにも注意してください。最悪の場合?電話をかけ、ファイルをふるいにかけながら画面の写真を撮ります。データ損失防止は私の意見では停止をターゲットにする必要があります偶発的信頼できないデバイスへのコピー。
これはファイルのコピーをはるかに困難にする可能性のある別のアプローチですが、それはあなたの側からより多くの努力を投資する必要があります。
情報へのアクセスは、安全な場所にあるリモートサーバー上のデータベース(MySQLやPostgreSQLなど)に格納されている情報を使用して、クライアントサーバーアーキテクチャベースで設定できます。
次に、サーバーから情報を取得してユーザーに表示するクライアントアプリケーションを実行するアクセスステーションを提供します。
したがって、ユーザーが情報に直接アクセスできるようにする代わりに、情報をユーザーにフィードします。
デスクトップ環境の機能を制限したり、USBポートを無効にしたりすることで、ユーザーがデータをコピーしにくくすることができます。また、アプリはテキストではなく画像として情報を表示できますが、これは、使いやすさの観点から適切です。
しかし、これはすべて、データベースにアクセスできる唯一のホストがyoがユーザーに提供するロックダウンされたクライアントステーションであり、アクセスステーションを改ざんしたりプラグインできないように制御された環境にあることを前提としています。ネットワークへの独自のデバイス。
これがユースケースに適したアプローチであるかどうかは、脅威モデルと、これに投資する準備ができている作業量によって異なります。
USBのブロックに加えて(上記の他の回答を参照):
ネットワーキングを無効にしてください...
OK、私は完全にセキュリティの専門家ではないので、おそらくこれは完全に適切ではありません(コメントでお知らせください!)。
ボックスを物理的に保護できる場合(そうでない場合、すべてのベットがオフになります)、ユーザーにユーザーA
でのみログオンさせることができます。ただし、機密ファイルはすべてユーザーB
に属し、ユーザーA
にはアクセスできません。ユーザーB
にも属しているが、setuid
ビットセットが設定されている1つのプログラム「PDFビューア」を除くと、実行時にユーザーB
のコンテキストで実行され、ファイルにアクセスできるようになります。ビューアなので、ファイルを表示できますが、コピーはできません。
またはこれらの線に沿って何か。コツはsetuid
ビットです。
あなたのファイルは安全な場所にあるコンピューターに保存することができます。
その上にVNCサーバーをセットアップし、ファイル転送機能を無効にします。 この質問 ごとにServerFaultでTightVNCで実行できます。
ファイルを保存するコンピューターで他のポートが開いていないことを確認します。
VNCクライアントステーションを提供し、次の方法でロックします。
これにより、ユーザーがファイルを操作する便利な方法を提供しながら、ユーザーが情報をコピーすることが困難になります。 VNCはフルスクリーンモードで動作し、ユーザーがローカルステーションのファイルを操作するような印象を与えることができます。
すべてのUSBデバイスを無効にしたい場合は、usb-storage.ko(LinuxでのUSB大容量記憶装置ドライバー)をご覧ください。ドライバを無効にすると、含まれているすべてのUSBデバイス、キーボード/マウスに影響します。ドライバーを無効にするには、/ etc/modprobe.d/blacklist.confを変更してドライバーをブラックリストに登録します。次の行を追加してください:
blacklist usb-storage
このソリューションは、他のユーザーがSudo権限を持っていないことを前提としています。
「彼のタスクを達成するために必要な権利を1つだけ与える」という原則に従って、システムのユーザーが許可したことだけを実行することを強制する制限付きシェルを実装できます。
ユーザーが次のことができない場合:
次に、データを盗み出す唯一の方法は、実行を許可されているコマンドの1つをハッキングすることです...
「制限付きシェル」は、次の方法で非常に簡単に実装できます。
さらに、GNU/Linuxで利用できる制限されたシェルがたくさんあります。
自動化ではなく手順による人間のボトルネックのようなものはどうですか?提案されたすべてのソリューションは、コンピュータにアクセスを制限することを提案しています。これは、コンピュータが最終的に最低レベルで愚かであり、彼らが言われたことをするという問題に苦しんでいます。 HDはディスク全体の暗号化を使用しているため、マシンの電源が入っている間はすべてのファイルをプレーンテキストで使用できます。
フルディスク暗号化に加えて、ハードドライブ上のすべてのファイルを暗号化します。各ファイルはランダムに生成された異なるパスワードで暗号化しますが、インデックスを介した何らかのキーワード検索機能を備えています。ユーザーがファイルを要求するには、管理者に要求を出す必要があります。パスワードは、ユーザーが使用できないリソースにオフラインで保存されます。次に、管理者は要求されたファイルのパスワードを取得し、パスワードを入力して、ユーザーのファイルを復号化します。表示ソフトウェアによっては、ファイルをディスク上ではなくメモリ内のみに置くこともできます。管理者は、1日に制限された量のファイルのみを復号化するように指示される場合があります。
これは、USB /ネットワーク/その他のアクセスを無効にするなど、上記の方法に追加されます。この方法の利点は、コピーの方法が大幅に制限されることです。コピー方法が発見された場合、被害は復号化を要求されたファイルのみに限定されます。
もちろん、これはシナリオによっては実行できない場合がありますが、各ファイルが個別に保護されるため、非常に高いレベルのセキュリティが提供されます。