1

MongoDB のセキュリティに対する私の信頼は揺らいでいます。私が何か間違ったことをしているという説明で、それが回復されることを望んでいます...

次のようにMongoDBのWindowsサービスを作成しました:

mongod --logpath "C:\mongoDB\logs" --logappend --dbpath "C:\mongoDB\data\db" --serviceName MongoDB --serviceDisplayName "Mongo DB" --port 27017 --auth --install

次に、DB を作成し、管理ユーザーをその DB の system.users コレクションに追加しました。

次に、その DB にランダムな情報を入力して、作成したテスト コレクションを作成しました。

これまでのところ、すべてが素晴らしく、管理者の資格情報を持っている場合にのみ DB にアクセスできます...

今、重要な部分...

次のようにサービスを削除しました。

mongod --remove --serviceName "MongoDB"

次に、サービスを再作成しましたが、次のような認証はありません。

mongod --logpath "C:\mongoDB\logs" --logappend --dbpath "C:\mongoDB\data\db" --serviceName MongoDB --serviceDisplayName "Mongo DB" --port 27017 --noauth --install

私を驚かせたのは、作成したDBに今認証でアクセスできるようになったことです...

何か違うことをするべきだったと教えてください。

4

3 に答える 3

5

認証は、データベース レベルではなく、デーモン レベルで行われます。データ自体は暗号化されておらず、アクセス制御もされていません。資格情報を必要とせずにサービスを実行すると、予想どおり、サービスに接続して使用するために資格情報は必要ありません。

サーバーにアクセスできてデーモンを変更できる場合は、定義上、いずれにせよデータファイルにアクセスできるため、これは一般に問題とは見なされません。

于 2012-11-07T19:02:25.317 に答える
1

認証がないということは、資格情報を提供する必要がないことを意味します。

noauth

Default: true

Disable authentication. Currently the default. Exists for future compatibility and clarity.

For consistency use the auth option.

ソース

構成の誤りは、データベースの認証手段を無効にしたことです。

于 2012-11-07T18:59:57.867 に答える
0

良い...

データベース ファイルをテキスト エディターで編集すると、保存されている情報が表示されるので、その情報は暗号化されていません。

私の意見では、このアイデアの順序に従って、セキュリティで保護されたデータベースで mongodump または mongorestore コマンドを実行するときにユーザーとパスワードを指定するのは冗長です。悪意のある管理者がデータのエクスポートに興味を持っている場合、データベース ファイル自体を編集することで、もちろんより多くの作業を行うことができます:P

認証がインスタンス自体ではなくDBレベルであることは知っていますが(管理データベースを介して)、Windowsを削除するために認証を指定する必要がないため、悪意のあるユーザーがDB情報を取得するのは非常に簡単です。サービス...

ご意見ありがとうございます!

于 2012-11-08T10:06:41.927 に答える