web-dev-qa-db-ja.com

統合監査を使用して失敗したログオン試行を追跡する方法

ORA_LOGON_FAILURESポリシーを有効にして実行しようとしました

select * from expanded_audit_trail where Unified_audit_policies = 'ORA_LOGON_FAILURES';

しかし、それは機能しません。ログインに失敗したすべての試みは監査されませんでした。それで私は何を間違っていますか?

3
Denis Lolik

_ORA_LOGON_FAILURES_を有効にしましたが、統合監査を適切に有効にしましたか?

デフォルトの混合モード監査では、_audit_trail_をnoneに設定すると、_ORA_LOGON_FAILURES_を有効にしてログオンの失敗を監査できなくなります。

これは、デフォルトに設定されたすべてのもの(DBCAによってaudit_trailがDBに設定された状態)でどのように機能するかです。

_SQL> audit policy ora_logon_failures;

Audit succeeded.

SQL> select count(*) from unified_audit_trail 
     where unified_audit_policies = 'ORA_LOGON_FAILURES' and return_code = 1017;

  COUNT(*)
----------
         0

SQL> connect 1/1
ERROR:
ORA-01017: invalid username/password; logon denied


Warning: You are no longer connected to Oracle.
SQL> connect / as sysdba
Connected.
SQL> select count(*) from unified_audit_trail
     where unified_audit_policies = 'ORA_LOGON_FAILURES' and return_code = 1017;

  COUNT(*)
----------
         1
_

また、統合監査全体をSGAでバッファリングし、すぐにではなく後でディスクに書き込むことができます。その場合、クエリを実行する前に手動でフラッシュします。

_EXEC DBMS_AUDIT_MGMT.flush_unified_audit_trail;
_

それでも、すべてを適切に構成した場合は、次のようにヒットした可能性があります。

バグ19383839-統合監査-ログオンなしOR失敗したログオンアクションがキャプチャされました

編集:

わかりました、それで私はそれを自分でテストしなければなりませんでした、そうでなければ私はそれを信じていなかっただろう。ドキュメントに記載されている内容( AUDIT_TRAIL )とは異なり、_audit_trail_をnoneに設定すると、純粋な統合監査を使用している場合でも効果があります。しかし、これは意図されたものではなく、バグです。修正は最新のPSU(12.1.0.2.170117)に含まれていませんが、上記の1回限りのパッチ(19383839)をインストールすると問題が実際に解決しました。問題は、このパッチがWindowsプラットフォームで利用できないことです。 (私はこれをLinuxとWindowsの両方でテストしました。Windowsは常にOracleで作業するときに考慮する必要がある要素だからです。)

_audit_trail_をDBに設定しても、混合モードは再度有効になりません。再リンク(DLLの名前を変更)すると、純粋な統合監査が有効になり、これを上書きします。これを確認するには、_AUD$_または_DBA_AUDIT_SESSION_。したがって、_audit_trail_をDBに設定することをお勧めします。

4
Balazs Papp