OS認証がOracleデータベースのセキュリティ低下と見なされるのはなぜですか?


29

Oracleは、OSに応じて認証を廃止されたOracle Databaseセキュリティ・ガイド言いれ、

REMOTE_OS_AUTHENTパラメータはOracle Database 11gリリース1(11.1)で非推奨となり、下位互換性のためにのみ保持されていることに注意してください。

さらに、ほとんどのセキュリティ情報とツールは、OS(外部)認証をセキュリティの問題と見なし ています。なぜそうなのかを理解しようとしています。OS認証のいくつかの利点を次に示します。

  1. OS認証がなければ、アプリケーションは、それぞれ独自のセキュリティモデルと脆弱性を持つさまざまなアプリケーションにパスワードを保存する必要があります。
  2. ドメイン認証はすでに安全でなければなりません。そうでない場合、データベースセキュリティはデータベースへのアクセスを遅くするだけで、それを防ぐことはできません。
  3. 1つのドメインパスワードのみを覚える必要があるユーザーは、接続する必要があるさまざまなデータベースの数が増えるにつれて、安全性の低いデータベースパスワードを作成するよりも簡単に、より安全なドメインパスワードを作成できます。

Oracleが外部認証を非推奨にしていることをどこで知りましたか?
ジャスティンケーブ

1
@Justin Caveその情報で質問を更新します。
リーリッフェル

2
更新していただきありがとうございます。しかし、Oracleは外部認証を卑下されていないだけで、明確にするために、それは非推奨です、リモート、一般的にあまり安全で外部認証を(ガイウスは、以下の議論として)
ジャスティン洞窟

回答:


16

次のシナリオを検討してください。

  1. gaiusOracleサーバーには外部認証を備えた名前のUnixユーザーがいるため、Oracleには対応するユーザーがありますops$gaius。シェルにログインすると、Oracleスキーマに直接ログインすることもできます。また、cronジョブにはスクリプトにパスワードを埋め込む必要もありません。
  2. LANが100%安全であり、クライアントが信頼できることを前提として、リモートOS認証が許可されます(通常許可されるrlogin/ と同じrsh
  3. 攻撃者が何らかの手段でラップトップをLANに接続し、そこで働いていることを認識し、ラップトップでローカルユーザーを作成し、gaiusそのユーザーとしてSQL * Plusを実行します。
  4. Oracleは、見ている(つまり、OSUSERV$SESSION)であるgaiusとログとリモートユーザーops$gaius

それだけでばかばかしいほど簡単に偽装するではないのですが、私の皮肉屋の帽子に入れて、Oracleはあなたに彼らの販売を任意のより多くのお金を作ることができない空想のシングルサインオン製品 ...方法により行いますが、OSの利点として育てるすべてのポイントを満たすにレベル認証。1つよりも2つのパスワードは完全に偽物です。とにかく、ほとんどの人はそれらを同じに設定します(Oracleにはこれを防ぐメカニズムはありません)。

一般的な原則は、攻撃者が物理的にアクセスできる場合、ソフトウェアで防御することは非常に難しいということです。そして、クライアントを決して信頼しません。


2
それよりもさらに悪い。参照してくださいorafaqの「なぜOPS $はクライアント/サーバー環境でセキュリティリスクを占めているの?」 (彼らは窓を非難するが、あなたは正しい、それはネットワーク上の何でもある)
ジョー

3
Windowsドメインにあるサーバーは、これをどのように考慮しますか?つまり、攻撃者はドメインを含むアカウントを取得するためにコンピューターをドメインに参加させる必要がありますか、それとも実際にコンピューターに参加することなくドメインの存在をシミュレートできますか?
リーリッフェル

私はそれがすべてのサーバーは、UNIXであり、すべてのデスクトップは、Windowsた時点で、もともと書かれた推測しています
ガイウス

3
@Leigh-OS_AUTHENT_PREFIXを信頼できるWindowsドメインに設定することにより、WindowsクライアントでリモートOS認証をより安全にすることができます。そのためには、リモートクライアントがその信頼できるドメイン上にある(または存在しているように見える)必要があります。これにより、ささいな「予備のポートにコンピューターを接続し、ローカルユーザーを追加して、あなたがいる」という攻撃の水準を大幅に引き上げることができますが、それでも非常に優れています。
ジャスティン洞窟

1
実際のAD / Kerberos認証を行っていて、ユーザーからチケットを取得してKDCで検証している場合と比較して対比します。
-araqnid

8

単一障害点が増加し、データのリスク表面が拡大します。

システムにアクセスする攻撃者は、OS認証によりデータベースにアクセスできます。データベースへのより安全なアクセスを要求することにより、潜在的な攻撃者は、ユーザーではなくルートまたはオラクルアクセスを取得するために、侵害されたシステムで権限を昇格させる必要があります。

この問題は、データベースへの外部アクセスの機能です。外部アクセスがなく、マシンが完全に保護されている場合、許可の問題は議論の余地があります。ただし、開発者がアクセスできる場合、OSレベルのユーザー権限により、潜在的なセキュリティ障害の範囲が広がります。

多層アクセスを使用してセキュリティ侵害の範囲を制限し、すべてのインスタンスのOSレベルアカウントを作成することなく、ユーザー、アプリケーション、またはクライアントに必要なアクセス許可することを検討してください。


わかりやすいので、簡単に言うと、2つのユーザー名/パスワード要件は1つよりも安全です。あなたのポイントは合理的に聞こえます。
リーリッフェル

これは微妙に間違った答えです-問題は外部認証ではなく、リモート外部認証です。以下で説明します。
ガイウス

@Gaius外部のOS認証は、リモートでなければ、ほとんど価値がないという点で極端に制限されないでしょうか?OracleはOSを使用した認証を非推奨ではなく、リモートコンピューターからのOS認証のみを非推奨と言っていますか?
リーリッフェル

@Leigh-ローカルアカウントのOS認証の主な使用例は、データベースサーバー上の非常に強力なアカウントにアクセスする必要のあるデータベースサーバーで実行されている多数のシェルスクリプトがあるDBAタイプのタスクです。OS認証により、これらのシェルスクリプトで暗号化されていないDBAレベルのパスワードを使用することを回避できます。
ジャスティン洞窟

個々 cronsで、シェルスクリプトまたは何として実装され、一般的に、バッチ・ジョブ、@Justin
ガイウス

4

Gaiusは、リモートオペレーティングシステム認証(ローカルマシンユーザーが別のパスワードを指定せずにデータベースにアクセスできるようにする通常のオペレーティングシステム認証とは対照的に)が比較的安全でない理由をすでに指摘しています。

Oracleは、リモートオペレーティングシステムで認証されたユーザーではなく、エンタープライズユーザー(または本格的なID管理スイート)を使用することを人々に奨励したいので、この方向に進んでいると思います。エンタープライズユーザーには、リモートオペレーティングシステムで認証されたユーザーと同じ利点がありますが、実際にはOracleはユーザーを認証するためにActive Directoryサーバーにアクセスします。セキュリティチェックをクライアントマシンに任せることなく、同じシングルサインオンのメリットを得ることができます。


LDAP認証は、別のワームの缶を開く可能性があります...より長い回答を投稿します。
ジョー

+1エンタープライズユーザーセキュリティをご指摘いただきありがとうございます。私たちはすでに高度なセキュリティを検討しており、これがさらに魅力的です。
リーリッフェル

4

具体的にはidentスタイル認証を指しますが、データベースや他のログインをOSのログインに結び付ける他の方法も同様に悪いことを指摘したいと思います。(ローカルパスワードファイル、LDAP、または資格情報の実際の保存用のもの)

データベース(またはWebサーバー、または認証を行っているもの)へのリモート接続を許可する場合、一部のOSはアカウントをブルートフォースするのが困難になるように設定されているルールを無視します(たとえば、失敗した試行のIPアドレスをブロックします;ロック一定数のフェルールなどの期間のユーザー。通常、これらのルールはに結び付けられsshd、認証システム全体ではありません

したがって、誰かがデータベース/ウェブサーバー/リモートに接続できる場合、データベースは試行を遅くする同じメカニズムを持っている傾向がないため、パスワードをブルートフォースすることができ、必要な資格情報を見つけたらsshします。


2
ここでの推論にしたがうかどうかわかりません。OracleがLDAPに対して認証されている場合、パスワードを取得するためにLDAPを解除する必要があります。通常のOracleユーザーの場合のように、ブルートフォースするパスワードハッシュのローカルコピーはありません。攻撃者がLDAP認証を破るのを心配している場合、おそらくOracleユーザーを認証する方法よりも大きな問題があります。そして、何度も試行に失敗した後にアカウントをロックしたり、許可されたIPアドレスを制限したりするようにOracleを構成するのは簡単です。実際、その多くは11gのデフォルトの動作です。
ジャスティン洞窟

@Justin:OSにログインするための資格情報がデータベース(またはWebサーバーなど)にログインするための資格情報と同じになるように結び付ける場合にのみ問題になります。そして、Oracleは私が最後に使用したときよりも認証について良くなっているように聞こえますが、他のほとんどのデータベースはそうではありません。(MacOS XのサーバーのユーザーがスワップアウトしなければならないようにApacheは、どちらかないmod_auth_applemod_auth_digest_apple、問題はまだ10.6に存在する場合、私がテストしていないものの、デフォルトのバージョンの)
ジョー・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.