Oracle® Fusion Middleware Oracle Adaptive Access Manager管理者ガイド 11gリリース1 (11.1.1) E67347-01 |
|
前 |
次 |
Oracle Adaptive Access Managerの予測分析機能は、データ・マイニングやデータ分析アルゴリズムなどのODM機能を統合する、即時利用可能な予測分析アプリケーションを使用して統計リスク分析をリアルタイムで実行できるようにすることによって、構成可能なルールおよび動作に関するプロファイリングを補完します。リスク分析は、時間とともにトレーニングされます。
この章には次の項が含まれます:
予測分析では、将来のイベントを予測するために、統計、データ・マイニングおよびゲーム理論の様々な技術を利用して、現在のファクトと履歴ファクトを分析します。
個々のユーザーの動作のプロファイリング: ユーザーの過去の動作を取得済の場合に、エンド・ユーザーのログイン動作が、過去の動作と比較して現在どれだけ異常であるかを判別するために、エンド・ユーザーのログイン動作が評価されます。
個々のデバイスのプロファイリング: ログインに使用されるデバイスの動作は、過去の動作が記録されていた場合、過去の動作と比較して現在どれだけ異常であるかを判別するために評価されます。
新規デバイスのプロファイリング: デバイスにプロファイリングする履歴データがない場合、デバイスにどれだけリスクがあるかを判別するために予測技術が使用されます。
ユーザー・タイプおよびロケーション・プロファイリング: 予測モデルでは、個々のユーザーではなくユーザーのタイプ(グループ、組織ID)に基づいて異常の度合いが評価されます。
ユーザー・タイプおよび時間プロファイリング: ロケーション・プロファイリングと同様に、時間プロファイリングでは、特定のユーザーの履歴データがあまりないが、同じタイプのユーザーに関連する本番データがある場合、動作の異常を識別するために予測技術が使用されます。
データ・マイニングとは、大量に保管されているデータを自動的に検索して、単純な分析では得られないパターンや傾向を見つける手続きです。データ・マイニングでは高度な数学的アルゴリズムを使用して、データを分割し、将来のイベントの発生確率を判断します。データ・マイニングは、データからの知識発見(KDD)としても知られています。
データ・マイニングを行うと、単純な問合せや報告技術では解決できない問題を解決できます。
Oracle Data Mining (ODM)は、Oracle Database 11g Enterprise Editionの即時利用可能な機能を拡張するオプションです。ODMは、予測および異常検出用のデータ・マイニング・アルゴリズムとデータ分析アルゴリズムを実装し、データベース内でのデータ・マイニング・モデルのデプロイメントを可能にします。ODMオプションは個別のコンポーネントではなく、機能がOracle Databaseカーネルに組み込まれており、データベース表に格納されたデータを処理します。分析するためにデータをデータベースからファイルに移動し、格納するためにファイルからデータベースに戻す必要はありません。データがデータベースの外部に出ることはなく、データ、データ準備、モデル作成およびモデルのスコアリングの結果は、すべてデータベースに残ります。
予測分析機能をアクティブ化する前に、次の前提条件が満たされていることを確認します。
Oracle 11g Enterprise Editionバージョンのデータベースが使用されています。
Oracle Data Mining (ODM)オプション
アイデンティティ管理スイートがインストールされています。
通常の様々なOAAMセッションを表す、妥当な量(少なくとも100)のOAAMセッションが存在します。
エージェント・ケース機能を使用して「不正」および「不正ではない」と分類される、少なくとも100以上のセッションが存在します。
注意: セッションを「不正」/「不正ではない」としてマークするには、セッションをリンクするエージェント・ケースを作成し、「確認済不正」または「不正ではない」の処置とともにエージェント・ケースをクローズします。 |
テストを目的とする場合、セッションを「不正」または「不正ではない」としてマークするための基準に注意してください。これは、ODM (Oracle Data Mining)モデルはその基準をトレーニング・データとして使用するためです。
ODMデータベース・ユーザーを作成します。SQLスクリプトcreate_odm_user.sql
を実行します。
入力を求められたら、最初のパラメータの値としてODMユーザー名を入力し、次に2番目のパラメータの値としてODMユーザーのパスワードを入力します。
スクリプトは、$MW_HOME\oaam\cli\odm
フォルダにあります。
OAAM CLI環境を設定します。Enterprise Managerを使用してCSF/資格証明ストアに次を追加したことを確認します。
OAAMデータベース・ユーザー名とパスワード(マップoaamの下でキー名としてoaam_db_keyを指定)。
ODMデータベース・ユーザー名とパスワード(マップoaamの下でキー名としてoaam_odm_db_keyを指定)。
OAAMデータベースのJDBC URLを使用してプロパティoaam.db.url
をoaam_cli.properties
に設定します。
デフォルトで、予測リスクではOAAM_CLASSIFIED_REQUEST_VIEWが使用されます。予測リスクがFlash以外のデバイスのセッションに対して機能するためには、OAAM_CLASSIFIED_REQ_NOFLASH_VWを使用する必要があります。
OAAM_CLASSFIED_REQ_NOFLASH_VWビューにはすべてのリクエストが含まれます(FlashとFlash以外の両方)。
OOTB ODMモデル「OAAM不正なリクエスト・モデル」でFlash以外のデータが使用されるように設定するには、initODM.shを実行する前に次のプロパティを設定します。
oracle.oaam.odm.model.enum.oaam_fraud_request_model.data_table_name=OAAM_CLASSFIED_REQ_NOFLASH_VW oracle.oaam.odm.model.enum.oaam_fraud_request_model.inputdata_mapping=oracle.oaam.odm.datamapping.enum.user_request_data_noflash
OAAM CLIフォルダでシェル・スクリプトinitODM.shを実行します。このスクリプトは次の処理を実行します。
ブラウザおよびFlashフィンガープリントの正規化されたデータを含むODM表をシードします。
OAAM_DEVICE_BROWSER_FPRINTS
OAAM_DEVICE_FLASH_FPRINTS
ODMモデルによって入力データとして使用される次のデータベース・ビューを作成します。
OAAM_CLASSIFIED_REQUESTS_VW
OAAM_INVESTIGATED_REQUESTS
OAAM_UNCLASSIFIED_REQUESTS_VW
OAAM_CLASSIFIED_REQ_NOFLASH_VW
OAAM_UNCLASSIFIED_REQ_NOFLASH_VW
必要なデータが存在する場合は、次のODMモデルを作成します。
OAAM_ANOMALY_REQUEST
OAAM_FRAUD_REQUEST
OAAM管理サーバーにログインし、予測分析ポリシーを「すべてのユーザー」または必要なユーザー・グループにリンクします。
WebLogicコンソールを使用してWebLogic管理サーバーにログインし、jdbc/OAAM_SERVER_ODM_DSなどのJNDI名でデータソースを作成してODMデータベース・ユーザーを指すようにし、OAAMサーバーの管理対象サーバーをターゲットとして追加します。
ODMの初期化では一部の列挙関連のプロパティが更新されるため、OAAMサーバーを再起動します。
異常検出をテストするには、OAAMデータベースにまだ存在しない異なる種類のブラウザまたはロケーションからログインを試みます。
不正セッション予測機能をテストするには、「確認済不正」の処置とともに閉じられたエージェント・ケースにリンクされている類似したセッションにログインします。
OAAM_CLASSFIED_REQ_NOFLASH_VW
デフォルトで、予測リスクではOAAM_CLASSIFIED_REQUEST_VIEWが使用されます。予測リスクがFlash以外のデバイスのセッションに対して機能するためには、OAAM_CLASSIFIED_REQ_NOFLASH_VWを使用する必要があります。
OAAM_CLASSFIED_REQ_NOFLASH_VWビューにはすべてのリクエストが含まれます(FlashとFlash以外の両方)。
OOTB ODMモデル「OAAM不正なリクエスト・モデル」でFlash以外のデータが使用されるように設定するには、次のプロパティを設定し、initODM.shを実行します。
oracle.oaam.odm.model.enum.oaam_fraud_request_model.data_table_name=OAAM_CLASSFIED_REQ_NOFLASH_VW oracle.oaam.odm.model.enum.oaam_fraud_request_model.inputdata_mapping=oracle.oaam.odm.datamapping.enum.user_request_data_noflash
この項では、ODMモデルの再作成に関する重要な点について説明します。
ODMモデルの再作成は、セッションに適切なフラグが付けられるように、最新のケース作成データによってODMにフィードバックを提供する1つの方法です。
ODMモデルがOAAMの最新のデータでトレーニングされるように、ODMモデルを定期的に再作成できます。
モデルの再作成の頻度は、リクエストの量に基づいて決定できます。毎月月末にモデルを再作成することをお薦めします。
プロパティoracle.oaam.predictive_analysis.request.period
を次のように設定することによって、ODMモデルで考慮される必要があるリクエストの日付範囲を設定できます。
値の形式は、<Number of Years>,<Number of Months>,<Number of Days>,<Number of Hours>
です。
例:
0 (ゼロ)を使用してすべてを指定できます。200万件以上のOAAMリクエストがある場合、モデルの作成に非常に多くの時間がかかり、メモリー不足に関連するデータベース・エラーが発生する可能性があるため、このオプションは注意して使用してください。
最後の2年は2,0,0,0または単に2を使用して指定できます。
最後の2年と3か月は2,3,0,0または単に2,3を使用して指定できます。
最後の3日は0,0,3,0を使用して指定できます。
最後の4時間は0,0,0,4を使用して指定できます。
OAAM CLI環境を設定し、スクリプトinitODM.sh
を実行します。
OAAMユーザー・リクエストは、認証後チェックポイント評価を受けます。
予測分析ポリシーは、認証後の一部として実行されます。
現在のリクエストが不正であるかどうかのチェックが実行されます。実行の一環として、現在のリクエストから必要な分類タイプおよび属性の値が取得され、指定したモデル名を持つODM SQL関数prediction_probability()が実行されます。このコールは、予測確率値を戻し、この値は指定された範囲内に収まるかどうかを確認するためにテストされます。その場合、OAAM不正の疑いがあるリクエスト・アラートが生成され、リスク・スコアが1000に設定されます。
現在のリクエストが異常であるかどうかのチェック・ルールが実行されます。実行の一環として、現在のリクエストから属性の値が取得され、指定したモデル名を持つODM SQL関数prediction_probability()が実行されます。このコールは、予測確率値を戻し、この値は指定された範囲内に収まるかどうかを確認するためにテストされます。その場合、「OAAM異常なリクエスト・モデル」アラートが生成され、リスク・スコアが1000に設定されます。
予測分析ルール条件の次のパラメータは調整および変更できます。
評価またはスコアリングに使用されるODMモデル名
ルール条件をトリガーする予測確率の範囲
エラーが発生した場合のデフォルトの戻り値
分類タイプ(不正なユーザーの確認ルール条件にのみ適用されます)
前述のパラメータを設定するには、「予測分析ポリシー」に移動し、必要なルールにナビゲートしてパラメータを更新します。
注意: 次の項では、通常はJavaコーディングの知識およびOAAMとODMの両方の知識があるインテグレータによって実行される高度な機能について説明します。 |
カスタム・ビュー定義を$MW_HOME\oaam\cli\odm\custom_oaam_odm_views.sql
に追加します。
注意: ビュー定義SQLが「;」で終了し、ファイル内に余分な行やコメントがないことを確認します。 |
OAAMデータベース・ユーザー名をハードコードしない場合は、OAAMスキーマを参照するときに常に変数<oaam_user>を使用します。これは、initODM.sh
を次回実行したときに実際のOAAMデータベース・ユーザー名に置き換えられます。
initODM.sh
を次回実行したときに、custom_oaam_odm_views.sql
でSQL文が実行され、カスタム・ビューが作成されます。
選択アクセスOAAM表を付与するSQL文をファイル$MW_HOME\oaam\cli\odm\custom_oaam_grants_to_odm_user.sql
に追加します。
注意: 注意: ビュー定義SQLが「;」で終了し、ファイル内に余分な行やコメントがないことを確認します。 |
ODMデータベース・ユーザー名をハードコードしない場合は、ODMデータベース・ユーザーを参照するときに常に変数<odm_user>を使用します。これは、initODM.sh
を次回実行したときに実際のODMデータベース・ユーザー名に置き換えられます。
initODM.sh
を次回実行したときに、custom_oaam_odm_views.sql
でSQL文が実行されます。
モデルのタイプを決定します。現在、OAAMではCLASSIFICATIONモデルのみがサポートされています。
既存のODMビューを使用してモデルを作成できるかどうかを確認します。できない場合は、新規ビューを作成し、その定義を$MW_HOME\oaam\cli\odm\custom_oaam_odm_views.sql
に追加します。
注意: ビュー定義SQLが「;」で終了し、ファイル内に余分な行やコメントがないことを確認します。 |
いずれかの新規ビューに、OAAM表またはカスタム表にアクセスするための追加の付与が必要かどうかを確認します。それらのカスタム付与を$MW_HOME\oaam\cli\odm\custom_oaam_grants_to_odm_user.sql
に追加します。
注意: grant文が「;」で終了し、ファイル内に余分な行やコメントがないことを確認します。 |
Oracle Data MinerまたはSQLコマンドcall dbms_data_mining.drop_model()を使用して、新規ODMモデルを作成します。詳細は、ODMのドキュメントを参照してください。
サンプル・データを使用してODMモデルをテストします。通常は、次を実行して行うことができます。
異常検出モデルの場合:
Select prediction_probability(<model_name>, '0' using <value1> as attribute1, <value2> as attribute2, …. <valueN> as attributeN> from dual
その他の分類モデルの場合:
Select prediction_probability(<model_name>, <classificationValue> using <value1> as attribute1, <value2> as attribute2, …. <valueN> as attributeN> from dual
テストを実行したら、次のプロパティを使用して新しい列挙要素をoracle.oaam.odm.model.enum
に追加します。
表19-1 oracle.oaam.odm.model.enumのプロパティ
プロパティ名 | ノート |
---|---|
name |
モデルの名前 |
description |
モデルの説明。 |
type |
モデルのタイプ。 異常検出: 分類: |
odm_model_name |
ODMモデルの正確な名前。OAAM設定スクリプトではこれを使用してODMモデルが作成されます。 |
data_table_name |
入力データ表またはビューの正確な名前。モデルはこの表またはビューの名前を使用して作成されます。 |
case_id_column |
各行を一意に識別するデータ表またはビューの列。 |
target_column |
異常検出モデルの場合は指定しないでください。分類モデルでは、値を予測する必要がある列を指定します。通常、この列には、 |
settings_table_name |
ODMモデルの設定が含まれるデータベース表の名前。明示的な設定がない場合は、既存の表「OAAM_ANOMALY_MODEL_SETTINGS」(異常検出モデルの場合)および「OAAM_ANOMALY_MODEL_SETTINGS」(分類モデルの場合)を使用できます。 |
inputdata_mapping |
評価またはスコアリングに必要な入力がOAAMデータにマッピングされる方法を指定します。新しい要件がない場合は、次の既存のマッピングを使用できます。そうでない場合は、19.10項「カスタム入力データ・マッピングの追加」を参照してください。
|
is_available |
|
この項では、カスタム入力データ・マッピングに関する情報を提供します。
カスタム入力データ・マッピングは、次の条件が当てはまる場合に必要になります。
即時利用可能なODMモデルの評価またはスコアに(即時利用可能な属性よりも)少ない属性を使用する場合。
既存の入力データ・マッピングとは異なる属性セットを含むカスタム表またはビューに基づいてカスタムODMモデルを作成する場合。
既存のOAAM属性を使用してカスタム入力データ・マッピングを作成できます。この方法は、セッション、ブラウザ・フィンガープリント、Flashフィンガープリントおよびロケーション・データを含むOAAMリクエスト・データを使用する既存のデータベース・ビューを再利用する場合に役立ちます。
入力データ・マッピングを作成する手順は次のとおりです。
新しい列挙要素をoracle.oaam.odm.datamapping.enum
に追加します。
モデル列挙要素のinputdata_mapping
プロパティを新しく追加した列挙要素を指すように設定します。
名前-値の必要なリストを、次のリストから新しく追加した列挙要素に追加します。
request_minute=request.minute
request_hour=request.hour
request_day_of_week=request.day_of_week
request_day_of_month=request.day_of_month
request_day_of_year=request.day_of_year
request_week_of_month=request.week_of_month
request_week_of_year=request.week_of_year
request_month=request.month
request_quarter=request.quarter
request_year=request.year
auth_status=request.auth_status
user_identifier=request.user_identifier
login_id=request.login_id
user_group_id=request.user_group
request_ip_address=request.ip_address
is_registered=request.is_registered
auth_client_type=request.auth_client_type
secure_client_type=request.secure_client_type
pre_auth_action=request.pre_auth_action
post_auth_action=request.post_auth_action
device_id=device.device_id
device_cookie_disabled=device.cookie_disabled
device_flash_disabled=device.flash_disabled
browser_country=browser.country
browser_language=browser.language
browser_language_variant=browser.language_variant
browser_name=browser.browser_name
browser_operating_system=browser.os
browser_user_agent_string=browser.user_agent_string
audio_video_disabled=flash_fingerprint.audio_video_disabled
has_accessibility=flash_fingerprint.has_accessibility
has_audio=flash_fingerprint.has_audio
has_audio_encoder=flash_fingerprint.has_audio_encoder
embedded_video=flash_fingerprint.embedded_video
has_ime_installed=flash_fingerprint.has_ime_installed
has_mp3=flash_fingerprint.has_mp3
supports_printer=flash_fingerprint.supports_printer
supports_screen_broadcast=flash_fingerprint.supports_screen_broadcast
supports_playback_screen_brd=flash_fingerprint.supports_playback_screen_brd
supports_streaming_audio=flash_fingerprint.supports_streaming_audio
supports_streaming_video=flash_fingerprint.supports_streaming_video
supports_native_ssl=flash_fingerprint.supports_native_ssl
contains_video_encoder=flash_fingerprint.contains_video_encoder
debug_version=flash_fingerprint.debug_version
flash_language=flash_fingerprint.flash_language
is_local_file_read_disabled =flash_fingerprint.is_local_file_read_disabled
manufacturer=flash_fingerprint.manufacturer
flash_operating_system =flash_fingerprint.flash_operating_system
aspect_ratio_of_screen =flash_fingerprint.aspect_ratio_of_screen
player_type=flash_fingerprint.player_type
is_color_screen=flash_fingerprint.is_color_screen
dots_per_inch=flash_fingerprint.dots_per_inch
screen_resolution=flash_fingerprint.screen_resolution
flash_version=flash_fingerprint.flash_version
country_id=location.country_id
state_id=location.state_id
city_id=location.city_id
metro_id=location.metro_id
isp_id=location.isp_id
routing_type=location.routing_type
connection_type=location.connection_type
connection_speed=location.connection_speed
top_level_domain=location.top_level_domain
sec_level_domain=location.secondary_level_domain
asn=location.asn
carrier=location.carrier
zip_code=location.zip_code
region_id=location.region_id
phone_area=location.phone_area
OAAMでODMモデルの評価またはスコアリング中にカスタム属性を使用する場合は、カスタム属性の値を取得するために使用できるカスタムJavaクラスを作成できます。
ODMモデルの作成および評価にカスタム属性を使用するには、次の手順を実行します。
新しい列挙要素を「oracle.oaam.predictive_analysis.attribute_resolvers.enum」に追加します。
カスタム属性の値を戻すロジックがあるJavaクラスの完全修飾クラス名として値を持つ「class」プロパティを追加します。
すべてのカスタム属性を新しく追加した列挙要素にプロパティとして追加します。これらのプロパティの値は、属性の名前や説明を指定できます。属性名として「name」、「description」、「class」は使用しないでください。
カスタム属性を処理するJavaクラスを作成します。
次のOAAMクラスを拡張する必要があります: oracle.oaam.integration.datamining.rules.OAAMAttributesResolver
このクラスはパラメータとしてrequestIdを取得するpublicコンストラクタを実装する必要があります。そのコンストラクタはスーパー・コンストラクタをコールする必要があります。
このクラスはメソッドpublic Object getValue(String attributeName)を拡張し、指定された属性の値を戻すロジックを持っている必要があります。AttributeNameは、「<enumElement>.<property>」の形式にします。
OAAM拡張共有ライブラリを使用してカスタムJavaクラスをOAAM拡張としてデプロイします。OAAM拡張機能のデプロイについては、開発者ガイドを参照してください。
カスタム・データベース・ビューを使用している場合は、新しい列挙要素を「oracle.oaam.odm.datamapping.enum」列挙に追加することによって、カスタム・マッピングを追加し、データベース・ビューの全列名をプロパティとしてその列要素に追加します。関連するカスタム属性名をそれらのプロパティの値として追加します。値は、<enumElement>.<property>の形式にする必要があります。
カスタム・データベース・ビューを使用していないが、既存のリクエスト・データのカスタム・マッピングを作成する場合は、次の表から必要な列を選択し、カスタム・マッピング列挙要素に追加します。
表19-2 カスタム・マッピング
A | B | C |
---|---|---|
request_minute |
device_flash_disabled |
flash_language |
request_hour |
browser_country |
is_local_file_read_disabled |
request_day_of_week |
browser_language |
manufacturer |
request_day_of_month |
browser_language_variant |
flash_operating_system |
request_day_of_year |
browser_name |
aspect_ratio_of_screen |
request_week_of_month |
browser_operating_system |
player_type |
request_week_of_year |
browser_user_agent_string |
is_color_screen |
request_month |
audio_video_disabled |
dots_per_inch |
request_quarter |
has_accessibility |
screen_resolution |
request_year |
has_audio |
flash_version |
auth_status |
has_audio_encoder |
country_id |
user_identifier |
embedded_video |
state_id |
login_id |
has_ime_installed |
city_id |
user_group_id |
has_mp3 |
metro_id |
request_ip_address |
supports_printer |
isp_id |
is_registered |
supports_screen_broadcast |
routing_type |
auth_client_type |
supports_playback_screen_brd |
connection_type |
secure_client_type |
supports_streaming_audio |
connection_speed |
pre_auth_action |
supports_streaming_video |
top_level_domain |
post_auth_action |
supports_native_ssl |
sec_level_domain |
device_id |
contains_video_encoder |
asn |
device_cookie_disabled |
debug_version |
carrier |
zip_code |
||
region_id |
||
phone_area |