<!DOCTYPE html><html lang="en"><head> <title> pdb1 - Oracle Database Security Assessment </title></head> <style> td.sev0 { background-color:#00ff00; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; } td.sev1 { background-color:#cccccc; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; } td.sev2 { background-color:#00bfff; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; } td.sev3 { background-color:#ffff00; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; } td.sev4 { background-color:#ffa500; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; } td.sev5 { background-color:#f80000; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; } </style> <style> table { font-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif; font-size:14px; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } thead { background-color: #eeeeee; font-weight:normal; color:black; border-bottom:3px double grey; padding:12px 17px } tfoot { background-color: #eeeeee; } h1 { font-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif; text-align: center; } h2 { font-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif; text-decoration: underline; } h3 { font-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif; } p { font-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif; } p.footnote { font-size: 12px } table.finding { font-family:Lucida Sans Unicode, Lucida Grande, Sans-Serif; font-size:14px; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; width:800px; } tr.ruleid { font-size:10px; background-color: #eeeeee; border-collapse:collapse; border:1px solid #8DA6B1; margin:20px; text-align:left; font-weight:bold; } td.number { text-align: right; } td.total { text-align: right; font-weight: bold; } td.finding_head { text-align: left; vertical-align: top; font-weight: bold; width: 100px; } td.finding_cell { text-align: left; vertical-align: top; } a.home { width: 30px; height: 22px; line-height:20px; position: fixed; text-indent: 7px; z-index: 999; right: 50px; bottom: 25px; background: #dddddd no-repeat center 43%; font-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif; font-size:10px; color: black; cursor:pointer; -webkit-border-radius: 30px; -moz-border-radius: 30px; border-radius: 10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } a.up { width: 30px; height: 22px; position: fixed; text-indent: 7px; z-index: 999; right: 80px; bottom: 25px; background: #dddddd no-repeat center 43%; font-weight:bold; font-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif; font-size:16px; color: black; cursor:pointer; -webkit-border-radius: 30px; -moz-border-radius: 30px; border-radius: 10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } a.down { width: 30px; height: 22px; position: fixed; text-indent: 7px; z-index: 999; right: 20px; bottom: 25px; background: #dddddd no-repeat center 43%; font-weight:bold; font-family: Lucida Sans Unicode, Lucida Grande, Sans-Serif; font-size:16px; color: black; cursor:pointer; -webkit-border-radius: 30px; -moz-border-radius: 30px; border-radius: 10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } .reftag { background-color: #374A58; color: #fff; text-align: center; border-radius: 6px; padding: 1px 0; margin: 1px; float: right; width: 50px; height: 15px; } </style> <script> var sectionStart = [0]; // find offset function findPos(obj) { var curtop = 0; do { curtop += obj.offsetTop; } while (obj = obj.offsetParent); return curtop; } // navigate the array function go(p_action) { var epsilon = 20; // considered at section start if within a few pixels var curpos = window.pageYOffset; if (p_action == "up") { for (var i = sectionStart.length-1; i >= 0; i--) { if (sectionStart[i] < curpos-epsilon) { window.scroll(0, sectionStart[i]); break; } } } else if (p_action == "down") { for (var i = 0; i < sectionStart.length; i++) { if (sectionStart[i] > curpos+epsilon) { window.scroll(0, sectionStart[i]); break; } } } else if (p_action == "top") { window.scroll(0, 0); } } var beforePrint = function() { document.getElementById("up").style.visibility = "hidden"; document.getElementById("down").style.visibility = "hidden"; document.getElementById("home").style.visibility = "hidden"; }; var afterPrint = function() { document.getElementById("up").style.visibility = ""; document.getElementById("down").style.visibility = ""; document.getElementById("home").style.visibility = ""; }; function init() { // populate array with H2 elements var elements = document.getElementsByTagName("h2"); for (var i = 0; i < elements.length; i++) { sectionStart.push(findPos(elements[i])); } // prevent navigation buttons from printing if (window.matchMedia) { var mediaQueryList = window.matchMedia('print'); mediaQueryList.addListener(function(mql) { if (mql.matches) { beforePrint(); } else { afterPrint(); } }); } window.onbeforeprint = beforePrint; window.onafterprint = afterPrint; } </script> <body onload="init();"> <a id="up" class="up" onclick="go('up');">⇧</a> <a id="home" class="home" onclick="go('top');">Top</a> <a id="down" class="down" onclick="go('down');">⇩</a> <h1>Oracle Database Security Assessment</h1> <h3><center>Highly Confidential</center></h3> <h3> アセスメント実施日時 </h3> <table cellpadding="4" border="1" rules="cols" summary="Data table for アセスメント実施日時"> <thead><tr> <th align="center" scope="col"> Date of Data Collection </th> <th align="center" scope="col"> Date of Report </th> <th align="center" scope="col"> Reporter Version </th> </tr> </thead> <tr> <td align="left"> Thu Mar 26 2020 02:43:00 </td> <td align="left"> Thu Mar 26 2020 02:50:44 </td> <td align="left"> 2.2 (September 2019) - b855 </td> </tr> </table> <h3> アセスメント対象データベース </h3> <table cellpadding="4" border="1" rules="cols" summary="Data table for アセスメント対象データベース"> <thead><tr> <th align="center" scope="col"> Name </th> <th align="center" scope="col"> Container (Type:ID) </th> <th align="center" scope="col"> Platform </th> <th align="center" scope="col"> Database Role </th> <th align="center" scope="col"> Log Mode </th> <th align="center" scope="col"> Created </th> </tr> </thead> <tr> <td align="left"> ORA001 </td> <td align="left"> ORA001_PDB1 (PDB:3) </td> <td align="left"> Linux x86 64-bit </td> <td align="left"> PRIMARY </td> <td align="left"> NOARCHIVELOG </td> <td align="left"> Fri May 31 2019 12:26:00 </td> </tr> </table> <h2>Summary</h2> <table border="1" cellpadding="4" rules="cols" summary="Summary of report sections" width="800px" table-layout="fixed"> <thead><tr> <th align="left" scope="col" style="width:30%;vertical-align:top;"> Section </th> <th align="center" scope="col" style="width:10%;vertical-align:top;">Pass</th> <th align="center" scope="col" style="width:10%;vertical-align:top;">Evaluate</th> <th align="center" scope="col" style="width:10%;vertical-align:top;">Advisory</th> <th align="center" scope="col" style="width:10%;vertical-align:top;">Low<br>Risk</th> <th align="center" scope="col" style="width:10%;vertical-align:top;">Medium<br>Risk</th> <th align="center" scope="col" style="width:10%;vertical-align:top;">High<br>Risk</th> <th align="center" scope="col" style="width:11%;vertical-align:top;"> Total<br>Findings </th> </tr></thead> <tr> <td align="left"><a href="#基本情報"> 基本情報 </a></td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 1 </td> <td class="total"> 1 </td> </tr> <tr> <td align="left"><a href="#ユーザーアカウント"> ユーザーアカウント </a></td> <td class="number"> 4 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 4 </td> <td class="number"> 3 </td> <td class="number"> 1 </td> <td class="total"> 12 </td> </tr> <tr> <td align="left"><a href="#権限とロール"> 権限とロール </a></td> <td class="number"> 6 </td> <td class="number"> 14 </td> <td class="number"> 0 </td> <td class="number"> 1 </td> <td class="number"> 1 </td> <td class="number"> 0 </td> <td class="total"> 22 </td> </tr> <tr> <td align="left"><a href="#権限付与のコントロール"> 権限付与のコントロール </a></td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 2 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="total"> 2 </td> </tr> <tr> <td align="left"><a href="#ファイングレインアクセス制御"> ファイングレインアクセス制御 </a></td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 5 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="total"> 5 </td> </tr> <tr> <td align="left"><a href="#監査"> 監査 </a></td> <td class="number"> 7 </td> <td class="number"> 5 </td> <td class="number"> 1 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="total"> 13 </td> </tr> <tr> <td align="left"><a href="#暗号化"> 暗号化 </a></td> <td class="number"> 0 </td> <td class="number"> 1 </td> <td class="number"> 1 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="total"> 2 </td> </tr> <tr> <td align="left"><a href="#データベース構成"> データベース構成 </a></td> <td class="number"> 8 </td> <td class="number"> 3 </td> <td class="number"> 0 </td> <td class="number"> 1 </td> <td class="number"> 1 </td> <td class="number"> 1 </td> <td class="total"> 14 </td> </tr> <tr> <td align="left"><a href="#ネットワーク構成"> ネットワーク構成 </a></td> <td class="number"> 1 </td> <td class="number"> 1 </td> <td class="number"> 0 </td> <td class="number"> 0 </td> <td class="number"> 1 </td> <td class="number"> 0 </td> <td class="total"> 3 </td> </tr> <tr> <td align="left"><a href="#オペレーティングシステム"> オペレーティングシステム </a></td> <td class="number"> 1 </td> <td class="number"> 1 </td> <td class="number"> 0 </td> <td class="number"> 2 </td> <td class="number"> 1 </td> <td class="number"> 0 </td> <td class="total"> 5 </td> </tr> <tfoot><tr> <th align="left" scope="row">Total</th> <td class="total"> 27 </td> <td class="total"> 25 </td> <td class="total"> 9 </td> <td class="total"> 8 </td> <td class="total"> 7 </td> <td class="total"> 3 </td> <td class="total"> 79 </td> </tr></tfoot> </table> <h2><a name="基本情報">基本情報</a></h2> <h3> データベースバージョン </h3> <table cellpadding="4" border="1" rules="cols"> <tr> <td align="left"> Oracle Database 18c EE Extreme Perf Release 18.0.0.0.0 - Production </td> </tr> <tr> <td align="left"> Security options used: Advanced Security </td> </tr> </table> <h3> セキュリティ機能利用状況 </h3> <table cellpadding="4" border="1" rules="cols" summary="Data table for セキュリティ機能利用状況"> <thead><tr> <th align="center" scope="col"> Feature </th> <th align="center" scope="col"> Currently Used </th> </tr> </thead> <tr> <td align="left"> ユーザー認証 </td> <td align="center"> </td> </tr> <tr> <td align="left"> パスワード認証 </td> <td align="center"> Yes </td> </tr> <tr> <td align="left"> Global Authentication </td> <td align="center"> No </td> </tr> <tr> <td align="left"> External Authentication </td> <td align="center"> No </td> </tr> <tr> <td align="left"> </td> <td align="center"> </td> </tr> <tr> <td align="left"> アクセス許可制御 </td> <td align="center"> </td> </tr> <tr> <td align="left"> Database Vault </td> <td align="center"> No </td> </tr> <tr> <td align="left"> Privilege Analysis </td> <td align="center"> No </td> </tr> <tr> <td align="left"> </td> <td align="center"> </td> </tr> <tr> <td align="left"> 暗号化 </td> <td align="center"> </td> </tr> <tr> <td align="left"> Tablespace Encryption </td> <td align="center"> Yes </td> </tr> <tr> <td align="left"> Column Encryption </td> <td align="center"> No </td> </tr> <tr> <td align="left"> Network Encryption </td> <td align="center"> Yes </td> </tr> <tr> <td align="left"> </td> <td align="center"> </td> </tr> <tr> <td align="left"> 監査 </td> <td align="center"> </td> </tr> <tr> <td align="left"> Unified Audit </td> <td align="center"> Yes </td> </tr> <tr> <td align="left"> Fine Grained Audit </td> <td align="center"> No </td> </tr> <tr> <td align="left"> Traditional Audit </td> <td align="center"> Yes </td> </tr> <tr> <td align="left"> </td> <td align="center"> </td> </tr> <tr> <td align="left"> FINE-GRAINED ACCESS CONTROL </td> <td align="center"> </td> </tr> <tr> <td align="left"> Virtual Private Database </td> <td align="center"> No </td> </tr> <tr> <td align="left"> Real Application Security </td> <td align="center"> No </td> </tr> <tr> <td align="left"> Label Security </td> <td align="center"> No </td> </tr> <tr> <td align="left"> Data Redaction </td> <td align="center"> No </td> </tr> <tr> <td align="left"> Transparent Sensitive Data Protection </td> <td align="center"> No </td> </tr> </table> <h3> パッチ適用状況 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> INFO.PATCH </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev5" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> High Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 最新のPSUが見つかりません </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Latest comprehensive patch: Mar 28 2019 (364 days ago) Binary Patch Inventory: Patch ID (Comprehensive): 22832106 (created March 2019) SQL Patch History: Action time: Fri May 31 2019 12:37:00 Action: APPLY Version: 18.1.0.0.0 Description: MERGE ON DATABASE RU 18.6.0.0.0 OF 27710072 29250317 Action time: Fri May 31 2019 12:37:00 Action: APPLY Version: 18.1.0.0.0 Description: OJVM RELEASE UPDATE: 18.6.0.0.190416 (29249584) Action time: Fri May 31 2019 12:37:00 Action: APPLY Version: 18.6.0.0.0 Description: Database Release Update : 18.6.0.0.190416 (29301631) </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 最新のSecurity Patchを適用してデータベースを最新に保つことは 非常に重要です。Oracle Databaseは、Patch Set Updates (PSU)を定期的にリリースしており、最新のPSUをできる限り早く適用して下さい。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 1.1<br>Oracle Database 12c STIG v1 r10: Rule SV-76029r2 </td><td></td></tr> </table> <h2><a name="ユーザーアカウント">ユーザーアカウント</a></h2> <p> Note: Predefined Oracle accounts which are locked are not included in this report. To include all user accounts, run the report with the -a option. <h3> ユーザーアカウント </h3> <table cellpadding="4" border="1" rules="cols" summary="Data table for ユーザーアカウント"> <thead><tr> <th align="center" scope="col"> User Name </th> <th align="center" scope="col"> Status </th> <th align="center" scope="col"> Profile </th> <th align="center" scope="col"> Tablespace </th> <th align="center" scope="col"> Oracle Defined </th> <th align="center" scope="col"> Auth Type </th> </tr> </thead> <tr> <td align="left"> APP </td> <td align="left"> EXPIRED </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> C##DBV_ACCTMGR </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> C##DBV_OWNER </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> C##OMCTEST </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> C##TEST </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> DBSAFE </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> DBSNMP </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> SYSAUX </td> <td align="center"> Yes </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> DEV01 </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> MAL </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> MONITOR </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> OMCTEST </td> <td align="left"> EXPIRED </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> PDBUSER </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> SCOTT </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> USERS </td> <td align="center"> Yes </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> SOE </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> SOE </td> <td align="center"> No </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> SYS </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> SYSTEM </td> <td align="center"> Yes </td> <td align="left"> PASSWORD </td> </tr> <tr> <td align="left"> SYSTEM </td> <td align="left"> OPEN </td> <td align="left"> DEFAULT </td> <td align="left"> SYSTEM </td> <td align="center"> Yes </td> <td align="left"> PASSWORD </td> </tr> </table> <h3> SYSTEM、SYSAUX表領域を利用しているユーザ・スキーマ </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.TBLSPACE </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> デフォルトで SYSTEM・SYSAUX 表領域にデータを格納するユーザはいません </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> SYSTEMとSYSAUX表領域は、Oracle Databaseの管理ユーザ用に用意された表領域です。表領域を使い尽くすことによるサービスの停止を避けるために、通常のユーザ・スキーマがこの領域を使用することは避けて下さい。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75949r2, SV-75951r3 </td><td></td></tr> </table> <h3> サンプルスキーマ </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.SAMPLE </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev4" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Medium Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 1 sample schema. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Sample schemas: SCOTT </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> サンプルスキーマは、開発者へ簡単なサンプルを提供するために用意されており、良く知られています。それらは一般的に本番システムでは不要であり極力取り除くべきです。なぜなら、それはデータベースへの攻撃の糸口を不必要に増加させるためです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 1.3<br>Oracle Database 12c STIG v1 r10: Rule SV-76167r3 </td><td></td></tr> </table> <h3> アクティブでないユーザー </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.INACTIVE </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev3" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Low Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 9 user accounts that would remain open even if inactive. Found 6 unlocked users inactive for more than 30 days. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users with unlimited INACTIVE_ACCOUNT_TIME: APP, DBSAFE, DEV01, MAL, MONITOR, OMCTEST, PDBUSER, SCOTT, SOE Inactive users: APP, DBSAFE, MONITOR, OMCTEST, PDBUSER, SOE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> もしユーザーアカウントが既に使用されていない場合、それは不要なだけでなく、システムへの攻撃の糸口を不必要に増加させます。さらに定期的に利用されていないアカウントでは不正利用に気付きにくいです。30日以上の未使用になっているアカウントはアクティブのままにするかどうか 考慮する必要があります。解決策は、指定された日数内にデータベースインスタンスにログインしていないアカウントを自動的にロックするように、ユーザーに割り当てられたプロファイルにINACTIVE_ACCOUNT_TIMEを設定することです。まれに使用されているアカウントを不正な活動について監査することもお勧めします。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-76207r2 </td><td></td></tr> </table> <h3> パスワードが期限切れのユーザー </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.EXPIRED </td> <td colspan="2"> </td> </tr><tr> <td class="sev3" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Low Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 2 unlocked users with password expired for more than 30 days. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users with expired passwords: APP, OMCTEST </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> パスワードの有効期限切れは、ユーザが定期的にパスワードを変更することを確実にするために使用されます。もしユーザのパスワードが30日を経過して期限切れになったらユーザは少なくともその期間まったくログインしていなかったことを示します。長期間使用していないアカウントは、アクティブのままにするかどうか考慮する必要があります。 </td><td></td></tr> </table> <h3> パスワードの大文字小文字の区別 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.CASE </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> パスワードで大文字小文字を区別しています。 </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> SEC_CASE_SENSITIVE_LOGON=TRUE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> パスワードでは大文字小文字を区別することが推奨されます。大小文字を含むことで、攻撃者がパスワードを推測して攻撃しなければならないパスワードのリストが劇的に増加します。SEC_CASE_SENSITIVE_LOGONパラメータをTRUEにすることでデータベースはパスワードの大小文字を区別するようになります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.12 </td><td></td></tr> </table> <h3> デフォルトのパスワードを利用しているユーザー </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.DEFPWD </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev5" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> High Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 1 unlocked user account with default password. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users with default password: SCOTT </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 事前定義されたアカウントのデフォルトのパスワードは よく知られ、攻撃者にとっての足かがりの手段になります。よく知られているパスワードは、ロックされているアカウントも含めて変更しておくことが求められます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 1.2<br>Oracle Database 12c STIG v1 r10: Rule SV-76031r1, SV-76339r1 </td><td></td></tr> </table> <h3> クライアント認証受け入れの最低バージョン </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.AUTHVERS </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev3" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Low Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 最小限のクライアントバージョンが正しく構成されていません。 </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> SQLNET.ALLOWED_LOGON_VERSION_SERVER is not set (default value = 12). Recommended value is 12a. </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 時代に沿ってOracleはアカウント認証のパスワードに使用されているアルゴリズムを安全なバージョンへと徐々に対応しています。また、古いソフトウェアの互換性を残すために、Oracle Databaseは以前のパスワードのバージョンもサポートしています。sqlnet.oraにあるALLOWED_LOGON_VERSION_SERVERパラメータは、Oracle Databaseが受け入れるパスワードのバージョンを決定します。より安全にするためには、必要に応じてクライアントをアップグレードし、このパラメータを高い値に設定することです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-76025r2 </td><td></td></tr> </table> <h3> パスワード認証情報 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.VERIFIER </td> <td colspan="2"> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> All user accounts are authenticated using the latest password verifier version. No user accounts have HTTP verifiers. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Database supports password versions up to 12c. Users authenticated using the prior weaker password verifiers: (none) Users with HTTP verifiers: (none) </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> それぞれのユーザーアカウントのために、データベースは複数のパスワードのハッシュ値の認証情報を保持しています。また、それぞれの認証情報は、異なるパスワード認証アルゴリズムをサポートしています。すべてのユーザアカウントは、クライアントがサポートする最新のアルゴリズムを使用して認証できるように、データベースでサポートされている最新パスワードバージョンの認証情報を含める必要があります。すべてのクライアントがアップグレードされた時、古い認証情報が取り去られることによってユーザーアカウントのセキュリティは向上します。また、HTTPパスワード認証情報はXML データベース認証に使われます。このアクセスを必要としないユーザーアカウントから、これらの認証情報を削除するには、ALTER USERコマンドを使用します </td><td></td></tr> </table> <h3> ユーザーに関する初期化パラメーター </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.PARAM </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Examined 2 initialization parameters. No issues found. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> SEC_MAX_FAILED_LOGIN_ATTEMPTS=3 RESOURCE_LIMIT=TRUE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> SEC_MAX_FAILED_LOGIN_ATTEMPTSパラメータはひとつのセッションでコネクションを切断するまでに何回のログイン試行失敗を許容するかを設定します。複数回のログイン試行失敗後にユーザーアカウントをロックするユーザープロファイルのFAILED_LOGIN_ATTEMPTSパラメータとは独立していています。 接続を閉じる前のログイン試行失敗や複数回のログイン試行失敗後のアカウントのロックを制御しないと、ブルートフォース攻撃が成功し、サービス拒否(DoS)が発生します。 ユーザープロファイルのリソース制限を有効にするためにはRESOURCE_LIMITパラメータをTRUEに設定する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.13, 2.2.19<br>Oracle Database 12c STIG v1 r10: Rule SV-76305r4 </td><td></td></tr> </table> <h3> ユーザープロファイル </h3> <table cellpadding="4" border="1" rules="cols" summary="Data table for ユーザープロファイル"> <thead><tr> <th align="center" scope="col"> Profile Name </th> <th align="center" scope="col"> Parameter </th> <th align="center" scope="col"> Value </th> </tr> </thead> <tr> <td align="left"> DEFAULT </td> <td align="left"> (Number of Users) </td> <td align="left"> 16 </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> CONNECT_TIME </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> FAILED_LOGIN_ATTEMPTS </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> IDLE_TIME </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> INACTIVE_ACCOUNT_TIME </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> PASSWORD_GRACE_TIME </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> PASSWORD_LIFE_TIME </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> PASSWORD_LOCK_TIME </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> PASSWORD_REUSE_MAX </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> PASSWORD_REUSE_TIME </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> DEFAULT </td> <td align="left"> PASSWORD_VERIFY_FUNCTION </td> <td align="left"> NULL </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> (Number of Users) </td> <td align="left"> 0 </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> CONNECT_TIME </td> <td align="left"> UNLIMITED (DEFAULT) </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> FAILED_LOGIN_ATTEMPTS </td> <td align="left"> 3 </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> IDLE_TIME </td> <td align="left"> 15 minute(s) </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> INACTIVE_ACCOUNT_TIME </td> <td align="left"> 35 day(s) </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> PASSWORD_GRACE_TIME </td> <td align="left"> 5 day(s) </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> PASSWORD_LIFE_TIME </td> <td align="left"> 60 day(s) </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> PASSWORD_LOCK_TIME </td> <td align="left"> UNLIMITED </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> PASSWORD_REUSE_MAX </td> <td align="left"> 10 </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> PASSWORD_REUSE_TIME </td> <td align="left"> 365 day(s) </td> </tr> <tr> <td align="left"> ORA_STIG_PROFILE </td> <td align="left"> PASSWORD_VERIFY_FUNCTION </td> <td align="left"> ORA12C_STIG_VERIFY_FUNCTION </td> </tr> </table> <h3> パスワード有効期限が設定されていないユーザー </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.NOEXPIRE </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev3" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Low Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 9 users with passwords that never expire. Found 9 users with no limits on password reuse. Found 9 users with no minimum time before password reuse. Found 9 users without locking after password expiration. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> PASSWORD_LIFE_TIME: Profiles with limited password lifetime: ORA_STIG_PROFILE (60 days) Profiles with unlimited password lifetime: DEFAULT Users with unlimited password lifetime: APP, DBSAFE, DEV01, MAL, MONITOR, OMCTEST, PDBUSER, SCOTT, SOE PASSWORD_REUSE_MAX: Profiles with limits on password reuse: ORA_STIG_PROFILE (10 times) Profiles without limits on password reuse: DEFAULT Users without limits on password reuse: APP, DBSAFE, DEV01, MAL, MONITOR, OMCTEST, PDBUSER, SCOTT, SOE PASSWORD_REUSE_TIME: Profiles with minimum time before password reuse: ORA_STIG_PROFILE (365 days) Profiles without minimum time before password reuse: DEFAULT Users without minimum time before password reuse: APP, DBSAFE, DEV01, MAL, MONITOR, OMCTEST, PDBUSER, SCOTT, SOE PASSWORD_GRACE_TIME: Profiles with locking after password expiration: ORA_STIG_PROFILE (5 days) Profiles without locking after password expiration: DEFAULT Users without locking after password expiration: APP, DBSAFE, DEV01, MAL, MONITOR, OMCTEST, PDBUSER, SCOTT, SOE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> パスワードの失効はユーザーがパスワードの変更を確実に実施するために利用されますまた、自動的に一時的なアカウントを無効にするためのメカニズムを提供します。失効されないパスワードが残っているとパスワードが長期間変更されない可能性があります。パスワードの定期的な変更が必須ではない場合、ユーザーは同じパスワードを複数のアカウントで利用しがちとなります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 3.3, 3.4, 3.5, 3.6<br>Oracle Database 12c STIG v1 r10: Rule SV-76047r2, SV-76051r3, SV-76211r2, SV-76229r2 </td><td></td></tr> </table> <h3> ログイン試行失敗後のアカウントロック </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.NOLOCK </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev4" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Medium Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 9 users with unlimited failed login attempts. Found 9 users without minimum lock time. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> FAILED_LOGIN_ATTEMPTS: Profiles with limited failed login attempts: ORA_STIG_PROFILE (3) Profiles with unlimited failed login attempts: DEFAULT Users with unlimited failed login attempts: APP, DBSAFE, DEV01, MAL, MONITOR, OMCTEST, PDBUSER, SCOTT, SOE PASSWORD_LOCK_TIME: Profiles with minimum lock time: (none) Profiles without minimum lock time: DEFAULT, ORA_STIG_PROFILE Users without minimum lock time: APP, DBSAFE, DEV01, MAL, MONITOR, OMCTEST, PDBUSER, SCOTT, SOE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 攻撃者はありふれたパスワードのリストの中にユーザのパスワードがないかを試みる推測攻撃を行うことがよくあります。これらの攻撃を防ぐために、ログインの試みが何度か失敗した場合にはユーザーアカウントをロックすることが賢明です。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 3.1, 3.2<br>Oracle Database 12c STIG v1 r10: Rule SV-76047r2, SV-76093r2, SV-76095r2, SV-76097r2 </td><td></td></tr> </table> <h3> パスワード検証ファンクション </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> USER.PASSWD </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev4" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Medium Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 9 users not using password verification function. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Profiles with password verification function: ORA_STIG_PROFILE (ORA12C_STIG_VERIFY_FUNCTION) Profiles without password verification function: DEFAULT Users without password verification function: APP, DBSAFE, DEV01, MAL, MONITOR, OMCTEST, PDBUSER, SCOTT, SOE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> パスワード検証ファンクションは、ユーザのパスワードが最小限の複雑性(長さ、数字、特殊文字を含んでいるか、以前使用したパスワードと異なるか等)を満たしているかどうかチェックします。Oracle Databaseでそれらの組み合わせを事前定義されたファンクションまたはユーザ独自のファンクションが使用できます。すべてのユーザプロファイルはこのファンクションを含むべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 3.8<br>Oracle Database 12c STIG v1 r10: Rule SV-76209r1, SV-76213r1, SV-76215r1 , SV-76217r1, SV-76219r1, SV-76221r1, SV-76225r1 </td><td></td></tr> </table> <h2><a name="権限とロール">権限とロール</a></h2> <h3> すべてのシステム権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.SYSTEM </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 8 out of 16 users have been directly or indirectly granted system privileges via 738 grants. 7 users are granted 21 system privileges directly. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users directly or indirectly granted each system privilege: ADMINISTER ANY SQL TUNING SET: DBSAFE, DEV01, MONITOR ADMINISTER DATABASE TRIGGER: DBSAFE, DEV01, MONITOR ADMINISTER RESOURCE MANAGER: DBSAFE, DEV01, MONITOR, SOE(D) ADMINISTER SQL MANAGEMENT OBJECT: DBSAFE, DEV01, MONITOR ADMINISTER SQL TUNING SET: DBSAFE, DEV01, MONITOR ADVISOR: DBSAFE, DEV01, MONITOR ALTER ANY ANALYTIC VIEW: DBSAFE, DEV01, MONITOR ALTER ANY ASSEMBLY: DBSAFE, DEV01, MONITOR ALTER ANY ATTRIBUTE DIMENSION: DBSAFE, DEV01, MONITOR ALTER ANY CLUSTER: DBSAFE, DEV01, MONITOR ALTER ANY CUBE: DBSAFE, DEV01, MONITOR ALTER ANY CUBE BUILD PROCESS: DBSAFE, DEV01, MONITOR ALTER ANY CUBE DIMENSION: DBSAFE, DEV01, MONITOR ALTER ANY DIMENSION: DBSAFE, DEV01, MONITOR ALTER ANY EDITION: DBSAFE, DEV01, MONITOR ALTER ANY EVALUATION CONTEXT: DBSAFE, DEV01, MONITOR ALTER ANY HIERARCHY: DBSAFE, DEV01, MONITOR ALTER ANY INDEX: DBSAFE, DEV01, MONITOR, OMCTEST ALTER ANY INDEXTYPE: DBSAFE, DEV01, MONITOR ALTER ANY LIBRARY: DBSAFE, DEV01, MONITOR ALTER ANY MATERIALIZED VIEW: DBSAFE, DEV01, MONITOR ALTER ANY MEASURE FOLDER: DBSAFE, DEV01, MONITOR ALTER ANY MINING MODEL: DBSAFE, DEV01, MONITOR ALTER ANY OPERATOR: DBSAFE, DEV01, MONITOR ALTER ANY OUTLINE: DBSAFE, DEV01, MONITOR ALTER ANY PROCEDURE: DBSAFE, DEV01, MONITOR ALTER ANY ROLE: DBSAFE, DEV01, MONITOR ALTER ANY RULE: DBSAFE, DEV01, MONITOR ALTER ANY RULE SET: DBSAFE, DEV01, MONITOR ALTER ANY SEQUENCE: DBSAFE, DEV01, MONITOR ALTER ANY SQL PROFILE: DBSAFE, DEV01, MONITOR ALTER ANY SQL TRANSLATION PROFILE: DBSAFE, DEV01, MONITOR ALTER ANY TABLE: DBSAFE, DEV01, MONITOR, OMCTEST ALTER ANY TRIGGER: DBSAFE, DEV01, MONITOR, OMCTEST ALTER ANY TYPE: DBSAFE, DEV01, MONITOR ALTER DATABASE: DBSAFE, DEV01, MONITOR ALTER LOCKDOWN PROFILE: DBSAFE, DEV01, MONITOR ALTER PROFILE: DBSAFE, DEV01, MONITOR ALTER RESOURCE COST: DBSAFE, DEV01, MONITOR ALTER ROLLBACK SEGMENT: DBSAFE, DEV01, MONITOR ALTER SESSION: DBSAFE, DEV01, MONITOR, SOE(D) ALTER SYSTEM: DBSAFE, DEV01, MONITOR, OMCTEST, SOE(D) ALTER TABLESPACE: DBSAFE, DEV01, MONITOR ALTER USER: DBSAFE, DEV01, MONITOR ANALYZE ANY: DBSAFE, DEV01, MONITOR, OMCTEST, SOE(D) ANALYZE ANY DICTIONARY: DBSAFE, DEV01, MONITOR, SOE(D) AUDIT ANY: DBSAFE, DEV01, MONITOR, OMCTEST AUDIT SYSTEM: DBSAFE, DEV01, MONITOR, OMCTEST BACKUP ANY TABLE: DBSAFE, DEV01, MONITOR CHANGE NOTIFICATION: DBSAFE, DEV01, MONITOR COMMENT ANY MINING MODEL: DBSAFE, DEV01, MONITOR COMMENT ANY TABLE: DBSAFE, DEV01, MONITOR, OMCTEST CREATE ANALYTIC VIEW: DBSAFE, DEV01, MONITOR CREATE ANY ANALYTIC VIEW: DBSAFE, DEV01, MONITOR CREATE ANY ASSEMBLY: DBSAFE, DEV01, MONITOR CREATE ANY ATTRIBUTE DIMENSION: DBSAFE, DEV01, MONITOR CREATE ANY CLUSTER: DBSAFE, DEV01, MONITOR CREATE ANY CONTEXT: DBSAFE, DEV01, MONITOR, OMCTEST CREATE ANY CREDENTIAL: DBSAFE, DEV01, MONITOR CREATE ANY CUBE: DBSAFE, DEV01, MONITOR CREATE ANY CUBE BUILD PROCESS: DBSAFE, DEV01, MONITOR CREATE ANY CUBE DIMENSION: DBSAFE, DEV01, MONITOR CREATE ANY DIMENSION: DBSAFE, DEV01, MONITOR CREATE ANY DIRECTORY: DBSAFE, DEV01, MONITOR CREATE ANY EDITION: DBSAFE, DEV01, MONITOR CREATE ANY EVALUATION CONTEXT: DBSAFE, DEV01, MONITOR CREATE ANY HIERARCHY: DBSAFE, DEV01, MONITOR CREATE ANY INDEX: DBSAFE, DEV01, MONITOR, OMCTEST CREATE ANY INDEXTYPE: DBSAFE, DEV01, MONITOR CREATE ANY LIBRARY: DBSAFE, DEV01, MONITOR CREATE ANY MATERIALIZED VIEW: DBSAFE, DEV01, MONITOR CREATE ANY MEASURE FOLDER: DBSAFE, DEV01, MONITOR CREATE ANY MINING MODEL: DBSAFE, DEV01, MONITOR CREATE ANY OPERATOR: DBSAFE, DEV01, MONITOR CREATE ANY OUTLINE: DBSAFE, DEV01, MONITOR CREATE ANY PROCEDURE: DBSAFE, DEV01, MONITOR, OMCTEST CREATE ANY RULE: DBSAFE, DEV01, MONITOR CREATE ANY RULE SET: DBSAFE, DEV01, MONITOR CREATE ANY SEQUENCE: DBSAFE, DEV01, MONITOR CREATE ANY SQL PROFILE: DBSAFE, DEV01, MONITOR CREATE ANY SQL TRANSLATION PROFILE: DBSAFE, DEV01, MONITOR CREATE ANY SYNONYM: DBSAFE, DEV01, MONITOR CREATE ANY TABLE: DBSAFE, DEV01, MONITOR, OMCTEST CREATE ANY TRIGGER: DBSAFE, DEV01, MONITOR, OMCTEST CREATE ANY TYPE: DBSAFE, DEV01, MONITOR CREATE ANY VIEW: DBSAFE, DEV01, MONITOR CREATE ASSEMBLY: DBSAFE, DEV01, MONITOR CREATE ATTRIBUTE DIMENSION: DBSAFE, DEV01, MONITOR CREATE CLUSTER: DBSAFE, DEV01, MONITOR, OMCTEST, SOE CREATE CREDENTIAL: DBSAFE, DEV01, MONITOR CREATE CUBE: DBSAFE, DEV01, MONITOR CREATE CUBE BUILD PROCESS: DBSAFE, DEV01, MONITOR CREATE CUBE DIMENSION: DBSAFE, DEV01, MONITOR CREATE DATABASE LINK: DBSAFE, DEV01, MONITOR CREATE DIMENSION: DBSAFE, DEV01, MONITOR CREATE EVALUATION CONTEXT: DBSAFE, DEV01, MONITOR CREATE HIERARCHY: DBSAFE, DEV01, MONITOR CREATE INDEXTYPE: DBSAFE, DEV01, MONITOR, OMCTEST, SOE CREATE JOB: DBSAFE, DEV01, MONITOR, SOE(D) CREATE LIBRARY: DBSAFE, DEV01, MONITOR CREATE LOCKDOWN PROFILE: DBSAFE, DEV01, MONITOR CREATE MATERIALIZED VIEW: DBSAFE, DEV01, MONITOR CREATE MEASURE FOLDER: DBSAFE, DEV01, MONITOR CREATE MINING MODEL: DBSAFE, DEV01, MONITOR CREATE OPERATOR: DBSAFE, DEV01, MONITOR, OMCTEST, SOE CREATE PLUGGABLE DATABASE: DBSAFE, DEV01, MONITOR, PDBUSER CREATE PROCEDURE: DBSAFE, DEV01, MONITOR, OMCTEST, SOE(D) CREATE PROFILE: DBSAFE, DEV01, MONITOR CREATE PUBLIC DATABASE LINK: DBSAFE, DEV01, MONITOR CREATE PUBLIC SYNONYM: DBSAFE, DEV01, MONITOR CREATE ROLE: DBSAFE, DEV01, MONITOR CREATE ROLLBACK SEGMENT: DBSAFE, DEV01, MONITOR CREATE RULE: DBSAFE, DEV01, MONITOR CREATE RULE SET: DBSAFE, DEV01, MONITOR CREATE SEQUENCE: DBSAFE, DEV01, MONITOR, OMCTEST, SOE(D) CREATE SESSION: APP(D), DBSAFE, DEV01, MONITOR, OMCTEST, PDBUSER, SOE(D) CREATE SQL TRANSLATION PROFILE: DBSAFE, DEV01, MONITOR CREATE SYNONYM: DBSAFE, DEV01, MONITOR CREATE TABLE: DBSAFE, DEV01, MONITOR, OMCTEST, SOE(D) CREATE TABLESPACE: DBSAFE, DEV01, MONITOR CREATE TRIGGER: DBSAFE, DEV01, MONITOR, OMCTEST, SOE CREATE TYPE: DBSAFE, DEV01, MONITOR, OMCTEST, SOE CREATE USER: DBSAFE, DEV01, MONITOR CREATE VIEW: DBSAFE, DEV01, MONITOR, OMCTEST(D), SOE(D) DEBUG ANY PROCEDURE: DBSAFE, DEV01, MONITOR DEBUG CONNECT ANY: DBSAFE, DEV01, MONITOR DEBUG CONNECT SESSION: DBSAFE, DEV01, MONITOR DELETE ANY CUBE DIMENSION: DBSAFE, DEV01, MONITOR DELETE ANY MEASURE FOLDER: DBSAFE, DEV01, MONITOR DELETE ANY TABLE: DBSAFE, DEV01, MONITOR DROP ANY ANALYTIC VIEW: DBSAFE, DEV01, MONITOR DROP ANY ASSEMBLY: DBSAFE, DEV01, MONITOR DROP ANY ATTRIBUTE DIMENSION: DBSAFE, DEV01, MONITOR DROP ANY CLUSTER: DBSAFE, DEV01, MONITOR DROP ANY CONTEXT: DBSAFE, DEV01, MONITOR, OMCTEST DROP ANY CUBE: DBSAFE, DEV01, MONITOR DROP ANY CUBE BUILD PROCESS: DBSAFE, DEV01, MONITOR DROP ANY CUBE DIMENSION: DBSAFE, DEV01, MONITOR DROP ANY DIMENSION: DBSAFE, DEV01, MONITOR DROP ANY DIRECTORY: DBSAFE, DEV01, MONITOR DROP ANY EDITION: DBSAFE, DEV01, MONITOR DROP ANY EVALUATION CONTEXT: DBSAFE, DEV01, MONITOR DROP ANY HIERARCHY: DBSAFE, DEV01, MONITOR DROP ANY INDEX: DBSAFE, DEV01, MONITOR, OMCTEST DROP ANY INDEXTYPE: DBSAFE, DEV01, MONITOR DROP ANY LIBRARY: DBSAFE, DEV01, MONITOR DROP ANY MATERIALIZED VIEW: DBSAFE, DEV01, MONITOR DROP ANY MEASURE FOLDER: DBSAFE, DEV01, MONITOR DROP ANY MINING MODEL: DBSAFE, DEV01, MONITOR DROP ANY OPERATOR: DBSAFE, DEV01, MONITOR DROP ANY OUTLINE: DBSAFE, DEV01, MONITOR DROP ANY PROCEDURE: DBSAFE, DEV01, MONITOR, OMCTEST DROP ANY ROLE: DBSAFE, DEV01, MONITOR DROP ANY RULE: DBSAFE, DEV01, MONITOR DROP ANY RULE SET: DBSAFE, DEV01, MONITOR DROP ANY SEQUENCE: DBSAFE, DEV01, MONITOR DROP ANY SQL PROFILE: DBSAFE, DEV01, MONITOR DROP ANY SQL TRANSLATION PROFILE: DBSAFE, DEV01, MONITOR DROP ANY SYNONYM: DBSAFE, DEV01, MONITOR DROP ANY TABLE: DBSAFE, DEV01, MONITOR, OMCTEST DROP ANY TRIGGER: DBSAFE, DEV01, MONITOR, OMCTEST DROP ANY TYPE: DBSAFE, DEV01, MONITOR DROP ANY VIEW: DBSAFE, DEV01, MONITOR DROP LOCKDOWN PROFILE: DBSAFE, DEV01, MONITOR DROP PROFILE: DBSAFE, DEV01, MONITOR DROP PUBLIC DATABASE LINK: DBSAFE, DEV01, MONITOR DROP PUBLIC SYNONYM: DBSAFE, DEV01, MONITOR DROP ROLLBACK SEGMENT: DBSAFE, DEV01, MONITOR DROP TABLESPACE: DBSAFE, DEV01, MONITOR DROP USER: DBSAFE, DEV01, MONITOR EM EXPRESS CONNECT: DBSAFE, DEV01, MONITOR EXECUTE ANY ASSEMBLY: DBSAFE, DEV01, MONITOR EXECUTE ANY EVALUATION CONTEXT: DBSAFE, DEV01, MONITOR EXECUTE ANY INDEXTYPE: DBSAFE, DEV01, MONITOR EXECUTE ANY LIBRARY: DBSAFE, DEV01, MONITOR EXECUTE ANY OPERATOR: DBSAFE, DEV01, MONITOR EXECUTE ANY PROCEDURE: DBSAFE, DEV01, MONITOR, OMCTEST EXECUTE ANY RULE: DBSAFE, DEV01, MONITOR EXECUTE ANY RULE SET: DBSAFE, DEV01, MONITOR EXECUTE ANY TYPE: DBSAFE, DEV01, MONITOR EXECUTE ASSEMBLY: DBSAFE, DEV01, MONITOR EXPORT FULL DATABASE: DBSAFE, DEV01, MONITOR FLASHBACK ANY TABLE: DBSAFE, DEV01, MONITOR FLASHBACK ARCHIVE ADMINISTER: DBSAFE, DEV01, MONITOR FORCE ANY TRANSACTION: DBSAFE, DEV01, MONITOR FORCE TRANSACTION: DBSAFE, DEV01, MONITOR GLOBAL QUERY REWRITE: DBSAFE, DEV01, MONITOR GRANT ANY OBJECT PRIVILEGE: DBSAFE, DEV01, MONITOR GRANT ANY PRIVILEGE: DBSAFE, DEV01, MONITOR GRANT ANY ROLE: DBSAFE, DEV01, MONITOR IMPORT FULL DATABASE: DBSAFE, DEV01, MONITOR INSERT ANY CUBE DIMENSION: DBSAFE, DEV01, MONITOR INSERT ANY MEASURE FOLDER: DBSAFE, DEV01, MONITOR INSERT ANY TABLE: DBSAFE, DEV01, MONITOR, OMCTEST LOCK ANY TABLE: DBSAFE, DEV01, MONITOR, OMCTEST LOGMINING: DBSAFE, DEV01, MONITOR MANAGE ANY FILE GROUP: DBSAFE, DEV01, MONITOR MANAGE ANY QUEUE: SOE(D) MANAGE FILE GROUP: DBSAFE, DEV01, MONITOR MANAGE SCHEDULER: SOE(D) MANAGE TABLESPACE: DBSAFE, DEV01, MONITOR MERGE ANY VIEW: DBSAFE, DEV01, MONITOR ON COMMIT REFRESH: DBSAFE, DEV01, MONITOR QUERY REWRITE: DBSAFE, DEV01, MONITOR READ ANY FILE GROUP: DBSAFE, DEV01, MONITOR READ ANY TABLE: DBSAFE, DEV01, MONITOR, OMCTEST REDEFINE ANY TABLE: DBSAFE, DEV01, MONITOR RESTRICTED SESSION: DBSAFE, DEV01, MONITOR RESUMABLE: DBSAFE, DEV01, MONITOR SELECT ANY CUBE: DBSAFE, DEV01, MONITOR SELECT ANY CUBE BUILD PROCESS: DBSAFE, DEV01, MONITOR SELECT ANY CUBE DIMENSION: DBSAFE, DEV01, MONITOR SELECT ANY DICTIONARY: DBSAFE, DEV01, MONITOR SELECT ANY MEASURE FOLDER: DBSAFE, DEV01, MONITOR SELECT ANY MINING MODEL: DBSAFE, DEV01, MONITOR SELECT ANY SEQUENCE: DBSAFE, DEV01, MONITOR SELECT ANY TABLE: DBSAFE, DEV01, MAL(D), MONITOR, OMCTEST SET CONTAINER: DBSAFE, DEV01, MONITOR, OMCTEST, PDBUSER UNDER ANY TABLE: DBSAFE, DEV01, MONITOR UNDER ANY TYPE: DBSAFE, DEV01, MONITOR UNDER ANY VIEW: DBSAFE, DEV01, MONITOR UNLIMITED TABLESPACE: APP(D), DBSAFE(D), DEV01(D), MONITOR(D), OMCTEST(D) UPDATE ANY CUBE: DBSAFE, DEV01, MONITOR UPDATE ANY CUBE BUILD PROCESS: DBSAFE, DEV01, MONITOR UPDATE ANY CUBE DIMENSION: DBSAFE, DEV01, MONITOR UPDATE ANY TABLE: DBSAFE, DEV01, MONITOR, OMCTEST USE ANY JOB RESOURCE: DBSAFE, DEV01, MONITOR USE ANY SQL TRANSLATION PROFILE: DBSAFE, DEV01, MONITOR </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> システム権限は、データへのアクセスやデータベース全体に対して管理操作を実行する権限として提供されます。最小権限の原則に従って、システム権限は慎重に付与しなければなりません。どの権限が不必要か判断つかない時、Privilege Analysis機能が、ユーザやロールが必要とする最小の権限を洗い出すのに役立ちます。場合によっては、すべてのオブジェクトを対象に付与されているシステム権限が、より制限されたオブジェクト権限に置き換えることが可能かもしれません。また、システム権限の受領者がその権限を別に付与する必要があるときは、システム権限はWITH ADMINオプションで付与しておく必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.7<br>Oracle Database 12c STIG v1 r10: Rule SV-75923r3, SV-76065r1, SV-76081r3, SV-76299r3 </td><td></td></tr> </table> <h3> すべてのロール </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.ROLES </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 6 out of 16 users have been directly or indirectly granted roles via 17 grants. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users directly or indirectly granted each role: AUDIT_ADMIN: OMCTEST AUDIT_VIEWER: OMCTEST CAPTURE_ADMIN: OMCTEST CONNECT: OMCTEST, PDBUSER DBA: DBSAFE, DEV01, MONITOR ORA_DSCS_ASSESSMENT: OMCTEST ORA_DSCS_AUDIT_COLLECTION: OMCTEST ORA_DSCS_AUDIT_SETTING: OMCTEST ORA_DSCS_DATA_DISCOVERY: OMCTEST ORA_DSCS_MASKING: OMCTEST PDB_DBA: PDBUSER RESOURCE: OMCTEST, SOE SELECT_CATALOG_ROLE: OMCTEST </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ロールは、特定のタスクやジョブ機能に権限が要求される場合、関連する権限をグループとして管理できる便利な方法です。個々の受領者が要求しているよりも多くの権限が参照されてるような広範囲なロールの場合は、特に注意をして下さい。権限分析は、受領者が実際に必要とする特定の権限を決定するために使用することができます。受領者がロールを変更したり、そのロールを別に付与するような権限が必要な場合は、ロールにadminオプションで付与しておく必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.4.1 </td><td></td></tr> </table> <h3> コードベースのアクセス制御 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.CBAC </td> <td colspan="2"> </td> </tr><tr> <td class="sev4" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Medium Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Code Based Access Control (CBAC) enabled for 2 Program Units. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Following Program Units are granted CBAC Roles: SYS.DBMS_MDX_ODBO: DBMS_MDX_INTERNAL Users with execute privilege: PUBLIC GSMADMIN_INTERNAL.EXCHANGE: DATAPUMP_EXP_FULL_DATABASE, DATAPUMP_IMP_FULL_DATABASE Privileges granted via CBAC role: CREATE SESSION, CREATE TABLE, ALTER DATABASE, ALTER PROFILE, ALTER RESOURCE COST, ALTER USER, AUDIT ANY, AUDIT SYSTEM, CREATE PROFILE, CREATE SESSION, DELETE ANY TABLE, EXECUTE ANY OPERATOR, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE, SELECT ANY TABLE PUBLIC is granted Execute on Program Units via CBAC Role. </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> コードベースのアクセス制御(CBAC)を使用して、PL/SQL関数、プロシージャ、パッケージなどのプログラムユニットに追加の権限を付与できます。CBACを使用すると、データベースロールをPL/SQL関数、プロシージャ、またはパッケージに添付できます。これらのデータベースロールは、実行時に有効になり、プログラムユニットが呼び出し元ユーザーの環境で必要な権限で実行できるようにします。 </td><td></td></tr> </table> <h3> アカウント管理権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.ACCT </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 3 out of 16 users have been directly or indirectly granted account management privileges via 39 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of ALTER USER, CREATE USER, DROP USER: DBSAFE <- DBA: ALTER USER, CREATE USER, DROP USER DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE: ALTER USER DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER USER, CREATE USER, DROP USER DBSAFE <- DBA <- EM_EXPRESS_ALL: ALTER USER, CREATE USER, DROP USER DBSAFE <- DBA <- IMP_FULL_DATABASE: ALTER USER, CREATE USER, DROP USER DEV01 <- DBA: ALTER USER, CREATE USER, DROP USER DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE: ALTER USER DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER USER, CREATE USER, DROP USER DEV01 <- DBA <- EM_EXPRESS_ALL: ALTER USER, CREATE USER, DROP USER DEV01 <- DBA <- IMP_FULL_DATABASE: ALTER USER, CREATE USER, DROP USER MONITOR <- DBA: ALTER USER, CREATE USER, DROP USER MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE: ALTER USER MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER USER, CREATE USER, DROP USER MONITOR <- DBA <- EM_EXPRESS_ALL: ALTER USER, CREATE USER, DROP USER MONITOR <- DBA <- IMP_FULL_DATABASE: ALTER USER, CREATE USER, DROP USER </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ユーザーアカウントの管理権限(ALTER USER, CREATE USER, DROP USER)は、ユーザ作成や変更、パスワードの変更等で使用されます。これはより強い権限を持つ他のユーザーアカウントを乱用することができてしまう可能性があるので、注意が必要です。ユーザーアカウント管理権限を持つユーザーを監査する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75935r2 </td><td></td></tr> </table> <h3> ロールおよび権限管理権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.MGMT </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 3 out of 16 users have been directly or indirectly granted role and privilege management privileges via 75 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of ALTER ANY ROLE, CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE: DBSAFE <- DBA: ALTER ANY ROLE, CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE: GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DBSAFE <- DBA <- EM_EXPRESS_ALL: ALTER ANY ROLE, CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DBSAFE <- DBA <- IMP_FULL_DATABASE: CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DEV01 <- DBA: ALTER ANY ROLE, CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE: GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DEV01 <- DBA <- EM_EXPRESS_ALL: ALTER ANY ROLE, CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE DEV01 <- DBA <- IMP_FULL_DATABASE: CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE MONITOR <- DBA: ALTER ANY ROLE, CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE: GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE MONITOR <- DBA <- EM_EXPRESS_ALL: ALTER ANY ROLE, CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE MONITOR <- DBA <- IMP_FULL_DATABASE: CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ユーザのシステム権限(ALTER ANY ROLE, CREATE ROLE, DROP ANY ROLE, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE)は、ロールや権限セットの内容を変更することや他のユーザへ付与することができます。これはデータベースにある多くのセキュリティ制御を迂回するために使うことができるので、慎重に付与する必要があります。Privilege Analysis機能は、ユーザーまたはロールが権限セットを管理する権限を使用しているかどうかを判断するのに役立ちます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.3.10, 4.3.11, 4.3.12 </td><td></td></tr> </table> <h3> データベース管理権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.DBMGMT </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 5 out of 16 users have been directly or indirectly granted database management privilege via 41 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of ALTER DATABASE, ALTER SYSTEM, CREATE ANY LIBRARY, CREATE LIBRARY, DROP ANY LIBRARY: DBSAFE <- DBA: ALTER DATABASE, ALTER SYSTEM, CREATE ANY LIBRARY, CREATE LIBRARY, DROP ANY LIBRARY DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE: ALTER DATABASE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER DATABASE, CREATE ANY LIBRARY, DROP ANY LIBRARY DBSAFE <- DBA <- EM_EXPRESS_ALL: ALTER SYSTEM DBSAFE <- DBA <- IMP_FULL_DATABASE: ALTER DATABASE, CREATE ANY LIBRARY, DROP ANY LIBRARY DEV01 <- DBA: ALTER DATABASE, ALTER SYSTEM, CREATE ANY LIBRARY, CREATE LIBRARY, DROP ANY LIBRARY DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE: ALTER DATABASE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER DATABASE, CREATE ANY LIBRARY, DROP ANY LIBRARY DEV01 <- DBA <- EM_EXPRESS_ALL: ALTER SYSTEM DEV01 <- DBA <- IMP_FULL_DATABASE: ALTER DATABASE, CREATE ANY LIBRARY, DROP ANY LIBRARY MONITOR <- DBA: ALTER DATABASE, ALTER SYSTEM, CREATE ANY LIBRARY, CREATE LIBRARY, DROP ANY LIBRARY MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE: ALTER DATABASE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER DATABASE, CREATE ANY LIBRARY, DROP ANY LIBRARY MONITOR <- DBA <- EM_EXPRESS_ALL: ALTER SYSTEM MONITOR <- DBA <- IMP_FULL_DATABASE: ALTER DATABASE, CREATE ANY LIBRARY, DROP ANY LIBRARY OMCTEST <- ORA_DSCS_MASKING: ALTER SYSTEM SOE: ALTER SYSTEM </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> データベースの管理権限(ALTER DATABASE, ALTER SYSTEM, CREATE ANY LIBRARY, CREATE LIBRARY, DROP ANY LIBRARY)は、データベースの操作を変更し、セキュリティ保護を回避することができます。CREATE LIBRARYを使用すると、ユーザーはライブラリを作成または置換できます。これは信頼できる管理者にのみ付与し、十分に監査する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.3.7, 4.3.8, 4.3.9 </td><td></td></tr> </table> <h3> 監査管理パッケージ </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.AUDMGMT </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 4 out of 16 users have been directly or indirectly granted EXECUTE on Audit management packages via 20 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of EXECUTE on DBMS_AUDIT_MGMT: DBSAFE <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DBSAFE <- DBA <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DBSAFE <- DBA <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DBSAFE <- DBA <- IMP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DEV01 <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DEV01 <- DBA <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DEV01 <- DBA <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT DEV01 <- DBA <- IMP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT MONITOR <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT MONITOR <- DBA <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT MONITOR <- DBA <- EXP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT MONITOR <- DBA <- IMP_FULL_DATABASE <- EXECUTE_CATALOG_ROLE: EXECUTE on DBMS_AUDIT_MGMT OMCTEST <- ORA_DSCS_AUDIT_COLLECTION: EXECUTE on DBMS_AUDIT_MGMT OMCTEST <- ORA_DSCS_AUDIT_SETTING <- AUDIT_ADMIN: EXECUTE on DBMS_AUDIT_MGMT </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> DBMS_AUDIT_MGMTパッケージは、監査証跡管理手順および機能を実行するために使用されます。実行権限を持つユーザーは、監査証跡レコードまたはアーカイブされたファイルを削除するCLEAN_AUDIT_TRAILなどのサブプログラムを起動できます。アクセスは厳密に制限され、この機能を正当に必要としているユーザーにのみ付与されるべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: SV-76149r1, SV-76151r1, SV-76153r1 </td><td></td></tr> </table> <h3> 監査管理権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.AUDIT </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 4 out of 16 users have been directly or indirectly granted privilege to manage audit policies via 26 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of AUDIT ANY, AUDIT SYSTEM: DBSAFE <- DBA: AUDIT ANY, AUDIT SYSTEM DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM DBSAFE <- DBA <- IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM DEV01 <- DBA: AUDIT ANY, AUDIT SYSTEM DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM DEV01 <- DBA <- IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM MONITOR <- DBA: AUDIT ANY, AUDIT SYSTEM MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM MONITOR <- DBA <- IMP_FULL_DATABASE: AUDIT ANY, AUDIT SYSTEM OMCTEST <- ORA_DSCS_AUDIT_SETTING <- AUDIT_ADMIN: AUDIT ANY, AUDIT SYSTEM </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 監査の管理権限(AUDIT ANY, AUDIT SYSTEM)は、データベースの監査ポリシーを追加、削除、変更するために使用されます。これは不正なアクティビティを隠すために使用される危険性があるので慎重に付与する必要があります。Privilege Analysis機能は、ユーザーまたはロールが監査管理権限を使用したかどうかを判断するのに役立ちます。これらの権限を持つユーザーは十分に監査する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.3.3<br>Oracle Database 12c STIG v1 r10: Rule SV-76113r1 </td><td></td></tr> </table> <h3> 幅広いデータアクセス権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.DATA </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 5 out of 16 users have been directly or indirectly granted broad data access privileges via 124 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of SELECT ANY TABLE, READ ANY TABLE, INSERT ANY TABLE, DELETE ANY TABLE, ALTER ANY TABLE, UPDATE ANY TABLE, CREATE ANY TRIGGER, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, SELECT ANY DICTIONARY: DBSAFE <- DBA: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, READ ANY TABLE, SELECT ANY DICTIONARY, SELECT ANY TABLE, UPDATE ANY TABLE DBSAFE <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: SELECT ANY TABLE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE: DELETE ANY TABLE, SELECT ANY TABLE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: SELECT ANY TABLE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE DBSAFE <- DBA <- EXP_FULL_DATABASE: SELECT ANY TABLE DBSAFE <- DBA <- IMP_FULL_DATABASE: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE DBSAFE <- DBA <- OLAP_DBA: DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE DEV01 <- DBA: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, READ ANY TABLE, SELECT ANY DICTIONARY, SELECT ANY TABLE, UPDATE ANY TABLE DEV01 <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: SELECT ANY TABLE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE: DELETE ANY TABLE, SELECT ANY TABLE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: SELECT ANY TABLE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE DEV01 <- DBA <- EXP_FULL_DATABASE: SELECT ANY TABLE DEV01 <- DBA <- IMP_FULL_DATABASE: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE DEV01 <- DBA <- OLAP_DBA: DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE MAL: SELECT ANY TABLE MONITOR <- DBA: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, READ ANY TABLE, SELECT ANY DICTIONARY, SELECT ANY TABLE, UPDATE ANY TABLE MONITOR <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: SELECT ANY TABLE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE: DELETE ANY TABLE, SELECT ANY TABLE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: SELECT ANY TABLE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE MONITOR <- DBA <- EXP_FULL_DATABASE: SELECT ANY TABLE MONITOR <- DBA <- IMP_FULL_DATABASE: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE MONITOR <- DBA <- OLAP_DBA: DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE OMCTEST <- ORA_DSCS_DATA_DISCOVERY: READ ANY TABLE OMCTEST <- ORA_DSCS_MASKING: ALTER ANY TABLE, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY TRIGGER, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ユーザの幅広いデータアクセス権限 (SELECT ANY TABLE, READ ANY TABLE, INSERT ANY TABLE, DELETE ANY TABLE, ALTER ANY TABLE, UPDATE ANY TABLE, CREATE ANY TRIGGER, ALTER ANY TRIGGER, CREATE ANY INDEX, CREATE ANY PROCEDURE, SELECT ANY DICTIONARY)は、任意のスキーマに対する広範なアクセスができます。多くの管理タスクはデータ自身へのアクセスは必要としないので、これらの権限は管理者へ付与されることは稀です。機密情報を保持しているテーブルに対する直接のオブジェクト権限を持つユーザーも確認する必要があります。これらの権限を最小限にするために、ユーザスキーマに格納する機密情報へのアクセスする権限を制限するためにDatabase Vaultのレルムを検討することも有効な手段です。 また、Privilege Analysis機能は、ユーザーまたはロールに必要な幅広いデータアクセス権限の使用を制限するのに役立ちます。場合によっては、すべてのオブジェクトに適用されるシステム権限付与の代わりに、より限定されたオブジェクト権限付与を代用することも可能です。権限の受取人が他のユーザーに権限を付与する機能を必要とする場合にのみ、システム権限をwith adminオプションで付与するべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.3.1, 4.3.2 </td><td></td></tr> </table> <h3> アクセス制御が免除される権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.EXEMPT </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 3 out of 16 users have been directly or indirectly granted access control exemption privileges via 9 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of EXEMPT ACCESS POLICY, EXEMPT REDACTION POLICY: DBSAFE <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY DBSAFE <- DBA <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY DEV01 <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY DEV01 <- DBA <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY MONITOR <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY MONITOR <- DBA <- EXP_FULL_DATABASE: EXEMPT REDACTION POLICY </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> アクセス制御免除権限を持つユーザ(EXEMPT ACCESS POLICY, EXEMPT REDACTION POLICY)は、Virtual Private DatabaseやData Redactionで構成された行と列のアクセス制御ポリシーをそれぞれにバイパスすることができます。多くの管理タスクはデータ自身へのアクセスは必要としないので、これらの権限は管理者へ付与されることは稀です。これらの権限を持つユーザーは十分に監査する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.3.4 </td><td></td></tr> </table> <h3> 認証情報格納表へのアクセス </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.PASSWD </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No users granted read on dictionary tables containing password verifiers No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 認証情報を含むディクショナリテーブルに対するREAD、SELECT、およびUPDATE権限を持つユーザーは、ユーザーパスワード認証情報にアクセスして変更できます。この認証情報はユーザのパスワードを発見するオフライン攻撃に使用されます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.5.1, 4.5.2, 4.5.3, 4.5.4, 4.5.6 </td><td></td></tr> </table> <h3> 制限されたオブジェクトへの書込みアクセス </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.OBJ </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 3 out of 16 users have been directly or indirectly granted object privileges on Oracle Database restricted objects via 144 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of DELETE, INSERT, UPDATE on SYS, DVSYS, AUDSYS or LBACSYS objects: DBSAFE <- DBA: INSERT on SYS.XSDB$SCHEMA_ACL, UPDATE on SYS.XSDB$SCHEMA_ACL DBSAFE <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: DELETE on SYS.EXPIMP_TTS_CT$, DELETE on SYS.RADM_FPTM$, INSERT on SYS.EXPIMP_TTS_CT$, INSERT on SYS.RADM_FPTM$, UPDATE on SYS.EXPIMP_TTS_CT$ DBSAFE <- DBA <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID DBSAFE <- DBA <- GATHER_SYSTEM_STATISTICS: DELETE on SYS.AUX_STATS$, DELETE on SYS.WRI$_OPTSTAT_AUX_HISTORY, INSERT on SYS.AUX_STATS$, INSERT on SYS.WRI$_OPTSTAT_AUX_HISTORY, UPDATE on SYS.AUX_STATS$, UPDATE on SYS.WRI$_OPTSTAT_AUX_HISTORY DBSAFE <- DBA <- IMP_FULL_DATABASE: DELETE on SYS.EXPIMP_TTS_CT$, DELETE on SYS.RADM_FPTM$, INSERT on SYS.EXPIMP_TTS_CT$, INSERT on SYS.RADM_FPTM$, UPDATE on SYS.EXPIMP_TTS_CT$ DBSAFE <- DBA <- OPTIMIZER_PROCESSING_RATE: DELETE on SYS.OPT_CALIBRATION_STATS$, INSERT on SYS.OPT_CALIBRATION_STATS$, UPDATE on SYS.OPT_CALIBRATION_STATS$ DEV01 <- DBA: INSERT on SYS.XSDB$SCHEMA_ACL, UPDATE on SYS.XSDB$SCHEMA_ACL DEV01 <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: DELETE on SYS.EXPIMP_TTS_CT$, DELETE on SYS.RADM_FPTM$, INSERT on SYS.EXPIMP_TTS_CT$, INSERT on SYS.RADM_FPTM$, UPDATE on SYS.EXPIMP_TTS_CT$ DEV01 <- DBA <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID DEV01 <- DBA <- GATHER_SYSTEM_STATISTICS: DELETE on SYS.AUX_STATS$, DELETE on SYS.WRI$_OPTSTAT_AUX_HISTORY, INSERT on SYS.AUX_STATS$, INSERT on SYS.WRI$_OPTSTAT_AUX_HISTORY, UPDATE on SYS.AUX_STATS$, UPDATE on SYS.WRI$_OPTSTAT_AUX_HISTORY DEV01 <- DBA <- IMP_FULL_DATABASE: DELETE on SYS.EXPIMP_TTS_CT$, DELETE on SYS.RADM_FPTM$, INSERT on SYS.EXPIMP_TTS_CT$, INSERT on SYS.RADM_FPTM$, UPDATE on SYS.EXPIMP_TTS_CT$ DEV01 <- DBA <- OPTIMIZER_PROCESSING_RATE: DELETE on SYS.OPT_CALIBRATION_STATS$, INSERT on SYS.OPT_CALIBRATION_STATS$, UPDATE on SYS.OPT_CALIBRATION_STATS$ MONITOR <- DBA: INSERT on SYS.XSDB$SCHEMA_ACL, UPDATE on SYS.XSDB$SCHEMA_ACL MONITOR <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: DELETE on SYS.EXPIMP_TTS_CT$, DELETE on SYS.RADM_FPTM$, INSERT on SYS.EXPIMP_TTS_CT$, INSERT on SYS.RADM_FPTM$, UPDATE on SYS.EXPIMP_TTS_CT$ MONITOR <- DBA <- EXP_FULL_DATABASE: DELETE on SYS.INCEXP, DELETE on SYS.INCFIL, DELETE on SYS.INCVID, INSERT on SYS.INCEXP, INSERT on SYS.INCFIL, INSERT on SYS.INCVID, UPDATE on SYS.INCEXP, UPDATE on SYS.INCFIL, UPDATE on SYS.INCVID MONITOR <- DBA <- GATHER_SYSTEM_STATISTICS: DELETE on SYS.AUX_STATS$, DELETE on SYS.WRI$_OPTSTAT_AUX_HISTORY, INSERT on SYS.AUX_STATS$, INSERT on SYS.WRI$_OPTSTAT_AUX_HISTORY, UPDATE on SYS.AUX_STATS$, UPDATE on SYS.WRI$_OPTSTAT_AUX_HISTORY MONITOR <- DBA <- IMP_FULL_DATABASE: DELETE on SYS.EXPIMP_TTS_CT$, DELETE on SYS.RADM_FPTM$, INSERT on SYS.EXPIMP_TTS_CT$, INSERT on SYS.RADM_FPTM$, UPDATE on SYS.EXPIMP_TTS_CT$ MONITOR <- DBA <- OPTIMIZER_PROCESSING_RATE: DELETE on SYS.OPT_CALIBRATION_STATS$, INSERT on SYS.OPT_CALIBRATION_STATS$, UPDATE on SYS.OPT_CALIBRATION_STATS$ </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> これらの権限を持つユーザは、SYS, DVSYS, AUDSYS, or LBACSYSスキーマのオブジェクトを変更することができます。システムオブジェクトを操作することは、セキュリティ保護を迂回することやデータベースの通常の運用を阻害することになりえます。SYS、DVSYS、AUDSYSおよびLBACSYSスキーマのオブジェクトに対して、PUBLICにはオブジェクトへのアクセスを許可しないでください。Privilege Analysis Captureを実行するときは、Oracleが作成したスキーマ内のオブジェクトにアクセスするために付与されている権限に注意してください。権限付与の妥当性を確認してください。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75929r3 </td><td></td></tr> </table> <h3> 監査オブジェクトへのアクセス </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.AUDOBJ </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 4 out of 16 users have been directly or indirectly granted object privileges on audit objects via 23 grants. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of SELECT, DELETE, INSERT, UPDATE on AUDIT objects: DBSAFE <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DBSAFE <- DBA <- EM_EXPRESS_ALL <- EM_EXPRESS_BASIC <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DBSAFE <- DBA <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DBSAFE <- DBA <- IMP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DBSAFE <- DBA <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DEV01 <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DEV01 <- DBA <- EM_EXPRESS_ALL <- EM_EXPRESS_BASIC <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DEV01 <- DBA <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DEV01 <- DBA <- IMP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL DEV01 <- DBA <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL MONITOR <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL MONITOR <- DBA <- EM_EXPRESS_ALL <- EM_EXPRESS_BASIC <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL MONITOR <- DBA <- EXP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL MONITOR <- DBA <- IMP_FULL_DATABASE <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL MONITOR <- DBA <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL OMCTEST <- ORA_DSCS_ASSESSMENT: SELECT on AUDSYS.AUD$UNIFIED OMCTEST <- ORA_DSCS_MASKING <- SELECT_CATALOG_ROLE: SELECT on SYS.AUDTAB$TBS$FOR_EXPORT_TBL </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> これらの権限を持つユーザーは、監査情報を含むオブジェクトに直接アクセスして変更することができます。これらのオブジェクトにアクセスすると、悪意のあるユーザーが他のユーザーの権限設定を推測したり、監査レコードを置き換えたり削除したりして監査情報を操作する可能性があります。 Privilege Analysisを使用して、これらの権限に対する使用済および未使用のアクセスを識別します。DBAやSELECT_CATALOG_ROLEなどの多数の権限を持つデフォルトのロールを付与する代わりに、ユーザーまたはロールがタスクを実行するために必要なシステムおよびオブジェクト権限のみを含むカスタムロールを作成してください。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-76143r2, SV-76145r1, SV-76147r1, SV-76159r1 </td><td></td></tr> </table> <h3> ユーザのなりすまし権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.USER </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No users granted user impersonation privilege No grants to PUBLIC. No users granted EXECUTE on restricted packages that can be executed with the identity of some other user No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> BECOME USER権限とPL/SQLパッケージ(DBMS_AQADM_SYS、DBMS_AQADM_SYSCALLS、DBMS_IJOB、DBMS_PRVTAQIM、DBMS_REPCAT_SQL_UTL、DBMS_SCHEDULER、DBMS_STREAMS_ADM_UTL、DBMS_STREAMS_RPC、DBMS_SYS_SQL、INITJVMAUX、LTADM、WWV_DBMS_SQL、WWV_EXECUTE_IMMEDIATE)は、別のユーザの識別情報を使ってSQLコードや外部ジョブを実行することを許可します。このアクセス権限は厳しく制限し、正当に必要なユーザにのみ付与すべきです。Privilege Analysisを使用して、これらの権限に対する使用済および未使用のアクセスを識別します。上記のパッケージに対するBECOME USER権限とEXECUTE権限を持つユーザーは、十分に監査する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.1.10, 4.2.1, 4.2.3 - 4.2.13, 4.3.5 </td><td></td></tr> </table> <h3> データの持ち出し </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.EXFIL </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No users granted EXECUTE on restricted packages that can be used for data exfiltration. No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> PL/SQLパッケージ(DBMS_BACKUP_RESTORE、UTL_DBWS、UTL_ORAMTS)は、ネットワークやファイルシステムを使ってデータベースからデータを送信することができます。この機能が正当に必要なユーザにのみ付与すべきです。Privilege Analysisを使用して、これらの権限が使用されるかを識別します。使用されない場合、これらの権限の取消を検討してください。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.1.19, 4.1.20, 4.2.2 </td><td></td></tr> </table> <h3> PUBLICに付与されたシステム権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.SYSPUB </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> PUBLICに与えられるシステム権限はすべてのユーザが利用可能です。これが一般的に必要なケースはほとんどありません。もしあるとしても、PUBLICからのシステム権限が、管理者でもない一般ユーザによって必要とされることはないでしょう。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75925r1 </td><td></td></tr> </table> <h3> PUBLICに付与されたロール </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.ROLEPUB </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> PUBLIC has not been granted any role. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> PUBLICに与えられるROLEはすべてのユーザが利用可能です。多くのロールは、すべてのユーザに適切ではない権限を含んでいます。Privilege Analysisを使用して、これらの権限が使用されるかを識別します。使用されない場合、可能であれば、Oracleサポートおよび/またはアプリケーション・プロバイダに連絡して、該当権限を取り消します。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75933r1 </td><td></td></tr> </table> <h3> PUBLICに付与されたカラム権限 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.COLPUB </td> <td colspan="2"> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No grants to PUBLIC. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> PUBLICに与えられる権限はすべてのユーザが利用可能です。これは誰でもアクセスできるデータのみだけにカラム権限を含めるべきです。 </td><td></td></tr> </table> <h3> 管理者SYS*権限を持つユーザ </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.ADMIN </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev3" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Low Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 1 user granted administrative SYS* privileges. Found 4 administrative SYS* privileges not granted to any user. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> SYSDBA (1): DEV01 SYSOPER (0): (none) SYSBACKUP (0): (none) SYSDG (0): (none) SYSKM (0): (none) </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 管理者SYS*権限は、データベースがオープンされていない時に発生するかもしれないものも含めて、ユーザがメンテナンス操作を実行することを可能にします。SYSDBA権限はSYSとしての操作することを許可し、実質的にすべての操作が可能となります。Oracle Database 12.1以降では、特定の管理者タスクをSYSDBAより小さい権限で実施できるように、小さな管理者権限での操作が紹介されています。権限分掌を実現させるために、これらの管理者権限は少なくともひとつの名前付きユーザアカウントに付与されるべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-76081r3 </td><td></td></tr> </table> <h3> DBAロールを持つユーザー </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.DBA </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 3 out of 16 users have been directly or indirectly granted highly sensitive DBA role via 3 grants. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of DBA role: DBSAFE: DBA DEV01: DBA MONITOR: DBA </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> DBAロールは非常に強力で多くのセキュリティコントロールをバイパスすることができます。信用できる少数の管理者に対して付与するべきです。 ベストプラクティスとして、ユーザーが自分のタスクを実行するために必要な最小限の権限セット(最小権限の原則)を持つDBAのようなカスタムロールを作成し、DBAロールを付与しないことを推奨します。Privilege Analysis機能は、使用済/未使用の権限およびロールを識別するタスクを支援します。 DBAが実行する操作の種類に基づいて必要最小限の権限でさまざまなロールを持つことも、職務分離を実現するのに役立ちます。 その上にそれぞれの信頼できるユーザには、説明責任を持たせるために個々のアカウントを持つようにする必要があります。DBAロールを持つユーザーを監査して、不正なアクティビティを検出することをお勧めします。本当に必要がない限りは、DBAロールまたは、DBAのような強力なカスタムロールをWITH ADMINオプションで付与することを避けます。 Oracleは、DBAロールにロールおよび権限を追加または削除することがありますのでご了承ください。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.4.4 </td><td></td></tr> </table> <h3> 強力な権限を持つユーザー </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.BIGROLES </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 4 out of 16 users have been directly or indirectly granted powerful roles via 61 grants. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grants of AQ_ADMINISTRATOR_ROLE, EM_EXPRESS_ALL, EXP_FULL_DATABASE, IMP_FULL_DATABASE, SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, DELETE_CATALOG_ROLE, OEM_MONITOR, DBA roles: DBSAFE: DBA DBSAFE <- DBA: EM_EXPRESS_ALL, EXECUTE_CATALOG_ROLE, EXP_FULL_DATABASE, IMP_FULL_DATABASE, SELECT_CATALOG_ROLE DBSAFE <- DBA <- DATAPUMP_EXP_FULL_DATABASE: EXP_FULL_DATABASE DBSAFE <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE: EXP_FULL_DATABASE, IMP_FULL_DATABASE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DBSAFE <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DBSAFE <- DBA <- EM_EXPRESS_ALL <- EM_EXPRESS_BASIC: SELECT_CATALOG_ROLE DBSAFE <- DBA <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DBSAFE <- DBA <- IMP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DEV01: DBA DEV01 <- DBA: EM_EXPRESS_ALL, EXECUTE_CATALOG_ROLE, EXP_FULL_DATABASE, IMP_FULL_DATABASE, SELECT_CATALOG_ROLE DEV01 <- DBA <- DATAPUMP_EXP_FULL_DATABASE: EXP_FULL_DATABASE DEV01 <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE: EXP_FULL_DATABASE, IMP_FULL_DATABASE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DEV01 <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DEV01 <- DBA <- EM_EXPRESS_ALL <- EM_EXPRESS_BASIC: SELECT_CATALOG_ROLE DEV01 <- DBA <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE DEV01 <- DBA <- IMP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE MONITOR: DBA MONITOR <- DBA: EM_EXPRESS_ALL, EXECUTE_CATALOG_ROLE, EXP_FULL_DATABASE, IMP_FULL_DATABASE, SELECT_CATALOG_ROLE MONITOR <- DBA <- DATAPUMP_EXP_FULL_DATABASE: EXP_FULL_DATABASE MONITOR <- DBA <- DATAPUMP_EXP_FULL_DATABASE <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE: EXP_FULL_DATABASE, IMP_FULL_DATABASE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE MONITOR <- DBA <- DATAPUMP_IMP_FULL_DATABASE <- IMP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE MONITOR <- DBA <- EM_EXPRESS_ALL <- EM_EXPRESS_BASIC: SELECT_CATALOG_ROLE MONITOR <- DBA <- EXP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE MONITOR <- DBA <- IMP_FULL_DATABASE: EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE OMCTEST <- ORA_DSCS_MASKING: SELECT_CATALOG_ROLE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> DBAおよび他の同様に強力なロール (AQ_ADMINISTRATOR_ROLE, EM_EXPRESS_ALL, EXP_FULL_DATABASE, IMP_FULL_DATABASE, SELECT_CATALOG_ROLE, DELETE_CATALOG_ROLE, OEM_MONITOR, DBA)は、セキュリティ保護をバイパスすることができる権限を含んでいます。それらは、信用できる少数の管理者に対してのみ付与するべきです。これらのロールを持つユーザーを監査して、許可されていない活動を検出することをお勧めします。Privilege Analysisを使用して、これらの権限が使用されるかを識別します。使用されない場合、これらの権限の取消を検討してください。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 4.4.1, 4.4.2, 4.4.3<br>Oracle Database 12c STIG v1 r10: Rule SV-75927r3 </td><td></td></tr> </table> <h3> Javaパーミッション </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> PRIV.JAVA </td> <td colspan="2"> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 4 users or roles with Java permission. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Grantee: DBJAVASCRIPT GRANT, Name: oracle.DbmsJavaScriptUser, Type Schema: SYS, Type Name: java.lang.RuntimePermission Grantee: EJBCLIENT GRANT, Name: *, Type Schema: SYS, Type Name: java.net.SocketPermission, Action: connect,resolve GRANT, Name: createClassLoader, Type Schema: SYS, Type Name: java.lang.RuntimePermission GRANT, Name: getClassLoader, Type Schema: SYS, Type Name: java.lang.RuntimePermission Grantee: JMXSERVER GRANT, Name: *, Type Schema: SYS, Type Name: java.net.SocketPermission, Action: accept,connect,listen,resolve GRANT, Name: control, Type Schema: SYS, Type Name: java.util.logging.LoggingPermission GRANT, Name: monitor, Type Schema: SYS, Type Name: java.lang.management.ManagementPermission GRANT, Name: setContextClassLoader, Type Schema: SYS, Type Name: java.lang.RuntimePermission GRANT, Name: createMBeanServer, Type Schema: SYS, Type Name: javax.management.MBeanServerPermission GRANT, Name: control, Type Schema: SYS, Type Name: java.lang.management.ManagementPermission GRANT, Name: javax.net.ssl.*, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: read,write GRANT, Name: https.proxyHost, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: read,write GRANT, Name: javax.net.debug, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: read,write GRANT, Name: java.rmi.server.randomIDs, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: read,write GRANT, Name: com.sun.jmx.*, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: read,write GRANT, Name: com.sun.management.*, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: read,write GRANT, Name: *, Type Schema: SYS, Type Name: javax.management.MBeanPermission, Action: * GRANT, Name: javavm/lib/management/*, Type Schema: SYS, Type Name: java.io.FilePermission, Action: read GRANT, Name: javavm/lib/management/jmxremote.access, Type Schema: SYS, Type Name: java.io.FilePermission, Action: read GRANT, Name: javavm/lib/management/management.properties, Type Schema: SYS, Type Name: java.io.FilePermission, Action: read GRANT, Name: createAccessControlContext, Type Schema: SYS, Type Name: java.security.SecurityPermission GRANT, Name: accessClassInPackage.sun.management.*, Type Schema: SYS, Type Name: java.lang.RuntimePermission Grantee: PUBLIC GRANT, Name: DUMMY, Type Schema: SYS, Type Name: oracle.aurora.security.JServerPermission GRANT, Name: *, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: read GRANT, Name: user.language, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: write GRANT, Name: exitVM, Type Schema: SYS, Type Name: java.lang.RuntimePermission GRANT, Name: createSecurityManager, Type Schema: SYS, Type Name: java.lang.RuntimePermission GRANT, Name: modifyThread, Type Schema: SYS, Type Name: java.lang.RuntimePermission GRANT, Name: modifyThreadGroup, Type Schema: SYS, Type Name: java.lang.RuntimePermission GRANT, Name: getenv.TNS_ADMIN, Type Schema: SYS, Type Name: java.lang.RuntimePermission GRANT, Name: preferences, Type Schema: SYS, Type Name: java.lang.RuntimePermission GRANT, Name: LoadClassInPackage.*, Type Schema: SYS, Type Name: oracle.aurora.security.JServerPermission GRANT, Name: oracle.net.tns_admin, Type Schema: SYS, Type Name: java.util.PropertyPermission, Action: write GRANT, Name: getenv.ORACLE_HOME, Type Schema: SYS, Type Name: java.lang.RuntimePermission RESTRICT, Name: LoadClassInPackage.oracle.jdbc.*, Type Schema: SYS, Type Name: oracle.aurora.security.JServerPermission RESTRICT, Name: LoadClassInPackage.oracle.aurora.*, Type Schema: SYS, Type Name: oracle.aurora.security.JServerPermission RESTRICT, Name: LoadClassInPackage.java.*, Type Schema: SYS, Type Name: oracle.aurora.security.JServerPermission RESTRICT, Name: loadLibrary.*, Type Schema: SYS, Type Name: java.lang.RuntimePermission RESTRICT, Name: 0:java.lang.RuntimePermission#loadLibrary.*, Type Schema: SYS, Type Name: oracle.aurora.rdbms.security.PolicyTablePermission RESTRICT, Name: LoadClassInPackage.oracle.ord.*, Type Schema: SYS, Type Name: oracle.aurora.security.JServerPermission </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> Javaパーミッションはデータベースユーザがデータベース内でJavaクラスを実行する権限を付与します。データベースユーザが実行するJavaコードは、Javaのセキュリティパーミッションとデータベースのアクセス権限の両方を持たなければなりません。これらのリソースはデータベースのリソースに含まれており、例えば、PL/SQLパッケージやOSシステム、ファイルやソケット、Oracle JVMクラスなどです。これらのパーミッションがそれぞれのユーザで最小限に制限されているか確認が必要です。Privilege Analysisを使用して、これらの権限が使用されるかを識別します。使用されない場合、これらの権限の取消を検討してください。 </td><td></td></tr> </table> <h2><a name="権限付与のコントロール">権限付与のコントロール</a></h2> <h3> Database Vault </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUTH.DV </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> GDPR </span> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Database Vault is not enabled. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> Database Vaultは、管理ユーザー、アプリケーションおよびユーティリティによって使用されるアカウントなど、高い権限を持つデータベースアカウントの操作を制御する変更可能なポリシーを提供します。(内部からの攻撃だけでなく外部からも)攻撃は、特権アカウントの認証情報を利用して機密情報にアクセスします。Database Vaultレルムは、強力なシステム権限を持つユーザアカウントからであっても、機密情報への権限のないアクセスを防ぎます。Database Vaultコマンド・ルールは、想定外または悪意のあるSQLコマンドの実行を制限します。Database Vaultを使用すると、権限分掌を強制して、単一のなんでもできる強力なユーザーを排除できます。また、IPアドレス、プログラム名、時刻、ユーザー名などのシステム要素を使用して、機密データへのアクセスをさらに制限する信頼できるパスを提供します。 Database Vaultの操作制御を使用して、一般的なユーザーが自律型環境、通常のクラウド環境またはオンプレミス環境でプラガブル・データベース(PDB)のローカル・データにアクセスすることを制限できます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> EU GDPR 2016/679: Article 6, 25, 29, 32, 34, 89; Recital 28, 29, 78, 156<br>Oracle Database 12c STIG v1 r10: Rule SV-76065r1 </td><td></td></tr> </table> <h3> Privilege Analysis </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUTH.PRIV </td> <td colspan="2"> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No Privilege Analysis policies found. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users who can start the privilege analysis capture process: OMCTEST </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> Privilege Analysisは、実際のデータベースのワークロード中に使用されたユーザ権限を記録します。この情報はすでに使用されていない権限を明確にし、削除することに使用できます。或いは、ユーザーまたはロールによって使用される権限のみを使用してロールを作成します。これは、最小権限モデルの実装に役立ち、ユーザーに付与された未使用または使用頻度の低い権限の使用に伴うリスクを最小限に抑えることができます。 </td><td></td></tr> </table> <h2><a name="ファイングレインアクセス制御">ファイングレインアクセス制御</a></h2> <h3> Data Redaction </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> ACCESS.REDACT </td> <td colspan="2"> <span class="reftag"> GDPR </span> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No data is being dynamically redacted. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users not impacted by Data Redaction Policies: (none) Users who can create or manage Data Redaction Policies: (none) </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> Data Redactionは、クエリー結果の中にある機密データを自動的にマスクします。クエリーの結果が返される直前にデータはマスクされるので、クエリ自身に含まれる条件には影響を与えません。 EXEMPT REDACTION POLICY権限を持つユーザのアクセスは、リダクションポリシーの影響を受けません。DBMS_REDACTパッケージの実行権限を持つユーザがリダクションポリシーの作成や修正を実行できます。同様に、Oracle Data Masking and Subsettingは、テストや開発環境向けに本番データをコピーし、永久的に機密データのマスクを行うことが可能です。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> EU GDPR 2016/679: Article 6, 25, 32, 34, 89; Recital 28, 29, 78, 156 </td><td></td></tr> </table> <h3> 仮想プライベートデータベース(VPD) </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> ACCESS.VPD </td> <td colspan="2"> <span class="reftag"> GDPR </span> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No VPD policies found that automatically limit access to certain rows and/or columns based upon the user or the database environment. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users not impacted by VPD Policies: (none) Users who can create or manage VPD Policies: (none) </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 仮想プライベートデータベース(VPD)は、SQL文がテーブルの行と列を参照できるかどうかをきめ細かく制御することができます。VPDを使用したアクセス制御は、それぞれのセッションがアクセスできるデータに従って制限されます。EXEMPT ACCESS POLICY権限を持つユーザーによるアクセスは、VPDポリシーによって影響を受けることはありません。DBMS_RLS権限を持つユーザは、VPDポリシーを作成および変更することができます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> EU GDPR 2016/679: Article 29, 32 </td><td></td></tr> </table> <h3> Real Application Security </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> ACCESS.RAS </td> <td colspan="2"> <span class="reftag"> GDPR </span> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No RAS policies found. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users not impacted by RAS Policies: (none) Users who can create or manage RAS policies: DBSAFE, DBSFWUSER, DEV01, MONITOR </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> VPDのようにOracle 12cリリース1で導入されたReal Application Security (RAS)は、SQL文がテーブルの行と列を参照できるかどうかをきめ細かく制御することができます。RASデータアクセスポリシーは、アクセス制御リストに基づいた宣言構文を使用しています。 EXEMPT ACCESS POLICY権限を持つユーザーによるアクセスは、 RASアクセスポリシーによって影響を受けることはありません。 ADMIN_SEC_POLICYとAPPLY_SEC_POLICY権限を持つユーザーは、RASの作成および変更することができます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> EU GDPR 2016/679: Article 6, 25, 32, 34, 89; Recital 28, 29, 64, 78, 156 </td><td></td></tr> </table> <h3> Label Security </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> ACCESS.OLS </td> <td colspan="2"> <span class="reftag"> GDPR </span> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Label Security is not enabled. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> Oracle Label Securityは、行レベルのデータ分類を使用して、許可されたデータにのみアクセスできるようにユーザーを制限するアクセス制御を実施します。機密データへのアクセスは、要求しているユーザーのラベルやセキュリティクリアランスとのデータラベルを比較することによって制御されています。ユーザーのラベルやセキュリティクリアランスが標準的なデータベースの権限とロールの拡張として考えることができます。 EXEMPT ACCESS POLICY権限を持つユーザーによるアクセスは、 Label Securityポリシーの影響を受けません。各ポリシーには、対応するロールがあり、このロールを持つユーザーは、ポリシーを管理することができます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> EU GDPR 2016/679: Article 18, 29, 32; Recital 67 </td><td></td></tr> </table> <h3> Transparent Sensitive Data Protection (TSDP) </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> ACCESS.TSDP </td> <td colspan="2"> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No data tagged with sensitive types found. Found 0 TSDP policy. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Policies: (none) Users with EXECUTE on SYS.DBMS_TSDP_MANAGE: (none) Users with EXECUTE on SYS.DBMS_TSDP_PROTECT: (none) </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> Oracle Database 12cリリース1 Enterprise Edition で導入された透過的な機密データの保護(TSDP)は、データタイプ(例えば、クレジットカード番号)を機密データを含む各列と関連付けることができます。TSDPを利用することでその特定のデータタイプに対して Data Redaction や Virtual Private Database などのさまざまなセキュリティ機能をすべてのインスタンス上で適用し、均一で一貫した保護を実現します。機密としてマークされた列は、監査ログやトレースで自動的にリダクションされ記録されます。DBMS_TSDP_MANAGEとDBMS_TSDP_PROTECT権限をもつユーザは、機密データのタイプと、それらに適用される保護のアクションを管理することができます。 </td><td></td></tr> </table> <h2><a name="監査">監査</a></h2> <h3> 監査レコード </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.RECORDS </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> GDPR </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Examined 3 audit trails. Found records in 1 audit trail. No errors found in audit initialization parameters. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Traditional Audit Trail: No records found FGA Audit Trail: No records found Unified Audit Trail: In use, 19485520 records found (Feb 21 2020 - Mar 26 2020) AUDIT_FILE_DEST=/u01/app/oracle/admin/ora001_iad2fs/adump AUDIT_SYSLOG_LEVEL is not set. AUDIT_TRAIL=XML, EXTENDED </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 監査は、強い権限を持ったユーザーのアクティビティを含む、システム上のアクティビティを監視するための必要不可欠な要素です。Oracle Database 12cで導入された統合監査は、監査ログを単一の統合監査証跡に集中されて、監査ポリシーの管理を簡素化し、今後推奨される監査モードです。AUDIT_TRAILの値をOS、XMLまたはXML,EXTENDEDに設定することにより、監査証跡を設定します。AUDIT_FILE_DESTは、その監査証跡が書き込まれるOSディレクトリを制御します。このディレクトリへの不正アクセスを防止する必要があります。データベースから別のシステムに監査データを送信することが、監査レコードのローカル改ざんのあらゆる可能性を防ぐために推奨されます。 AUDIT_SYSLOG_LEVELパラメータは、リモートsyslogサーバに監査レコードの省略された値を送信するように設定できます。よりよい解決策は、Oracle Audit Vault and Database Firewallに様々なデータベースの監査レコードを送信して一元管理することです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.2<br>EU GDPR 2016/679: Article 30, 33, 34<br>Oracle Database 12c STIG v1 r10: Rule SV-75899r1, SV-76111r1, SV-76117r1, SV-76121r1, SV-76123r1, SV-76125r1, SV-76127r1, SV-76129r1, SV-76455r3 </td><td></td></tr> </table> <h3> 統合監査(Unified Audit)ポリシー </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.UNIFIED </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> GDPR </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 10 unified audit policies out of which 3 are enabled. 51 objects or statements being audited. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Enabled Policies: ALL_ACTIONS: Audits 1 privileges/objects/statements as follows: ALL ORA_LOGON_FAILURES: Audits 1 privileges/objects/statements as follows: LOGON ORA_SECURECONFIG: Audits 49 privileges/objects/statements as follows: ADMINISTER KEY MANAGEMENT, ALTER ANY PROCEDURE, ALTER ANY SQL TRANSLATION PROFILE, ALTER ANY TABLE, ALTER DATABASE, ALTER DATABASE DICTIONARY, ALTER DATABASE LINK, ALTER PLUGGABLE DATABASE, ALTER PROFILE, ALTER ROLE, ALTER SYSTEM, ALTER USER, AUDIT SYSTEM, BECOME USER, CREATE ANY JOB, CREATE ANY LIBRARY, CREATE ANY PROCEDURE, CREATE ANY SQL TRANSLATION PROFILE, CREATE ANY TABLE, CREATE DATABASE LINK, CREATE DIRECTORY, CREATE EXTERNAL JOB, CREATE PLUGGABLE DATABASE, CREATE PROFILE, CREATE PUBLIC SYNONYM, CREATE ROLE, CREATE SQL TRANSLATION PROFILE, CREATE USER, DROP ANY PROCEDURE, DROP ANY SQL TRANSLATION PROFILE, DROP ANY TABLE, DROP DATABASE LINK, DROP DIRECTORY, DROP PLUGGABLE DATABASE, DROP PROFILE, DROP PUBLIC SYNONYM, DROP ROLE, DROP USER, EXECUTE, EXECUTE, EXEMPT ACCESS POLICY, EXEMPT REDACTION POLICY, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE, LOGMINING, PURGE DBA_RECYCLEBIN, SET ROLE, TRANSLATE ANY SQL, EXECUTE ON REMOTE_SCHEDULER_AGENT.ADD_AGENT_CERTIFICATE, EXECUTE ON SYS.DBMS_RLS Disabled Policies: ORA_ACCOUNT_MGMT: Audits 9 privileges/objects/statements ORA_CIS_RECOMMENDATIONS: Audits 35 privileges/objects/statements ORA_DATABASE_PARAMETER: Audits 3 privileges/objects/statements ORA_DV_AUDPOL: Audits 2157 privileges/objects/statements ORA_DV_AUDPOL2: Audits 19 privileges/objects/statements ORA_RAS_POLICY_MGMT: Audits 35 privileges/objects/statements ORA_RAS_SESSION_MGMT: Audits 14 privileges/objects/statements </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> Oracle Database 12c で導入されたUnified Audit(統合監査)は、単一の統合された監査証跡で監査アクティビティをキャプチャします。また、条件構築や除外追加などの機能を含む効果的な監査ポリシーを指定するために新しい監査の構文が採用されています。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> EU GDPR 2016/679: Article 30, 33, 34<br>Oracle Database 12c STIG v1 r10: Rule SV-76361r1 </td><td></td></tr> </table> <h3> ユーザー・ログオン/ログオフ監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.CONN </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Database connections are fully audited. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Traditional audit - disabled. Unified audit - auditing enabled: LOGOFF, LOGON </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ユーザのデータベースへの接続成功は、電子情報のフォレンジックを手助けするためにも監査されるべきです。接続試行の失敗は、データベースにアクセスする攻撃者の試みに早期警告を提供することができます。LOGOFF時間の監査は、セッションがアクティブであった時間を理解するのに役立ち、フォレンジックに役立つ情報です。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 5.1.22, 5.2.27<br>Oracle Database 12c STIG v1 r10: Rule SV-76043r1, SV-76141r1, SV-76165r1 </td><td></td></tr> </table> <h3> 管理者(SYS*)ユーザ監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.ADMIN </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Actions of the SYS user are audited. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Traditional Audit: AUDIT_SYS_OPERATIONS is set to TRUE. Unified Audit policies enabled for administrators: (none) </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> SYSユーザーによって実行される管理操作を監査することは重要です。 従来の監査設定はSYSユーザには適用されないので、AUDIT_SYS_OPERATIONSパラメータをTRUEにして別々の監査証跡にSYSアクションを記録するように設定しなければなりません。Oracle 12cからのUnified Auditポリシーは、他のユーザを監視するために設定したポリシーはSYSユーザにも同様に適用されます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.1<br>Oracle Database 12c STIG v1 r10: SV-75983r1, Rule SV-76009r1, SV-76085r2 </td><td></td></tr> </table> <h3> データベース管理監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.DBMGMT </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Actions related to database management are fully audited. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Traditional audit - disabled. Unified audit - auditing enabled: ADMINISTER KEY MANAGEMENT, ALTER DATABASE, ALTER DATABASE LINK, ALTER FUNCTION, ALTER PACKAGE, ALTER PLUGGABLE DATABASE, ALTER PROCEDURE, ALTER PUBLIC DATABASE LINK, ALTER SYSTEM, ALTER TRIGGER, AUDIT ANY, CREATE ANY DIRECTORY, CREATE ANY LIBRARY, CREATE DATABASE LINK, CREATE EXTERNAL JOB, CREATE FUNCTION, CREATE LIBRARY, CREATE PACKAGE, CREATE PACKAGE BODY, CREATE PLUGGABLE DATABASE, CREATE PROCEDURE, CREATE PUBLIC DATABASE LINK, CREATE PUBLIC SYNONYM, CREATE SPFILE, CREATE TRIGGER, DROP ANY DIRECTORY, DROP ANY PROCEDURE, DROP DATABASE LINK, DROP FUNCTION, DROP PACKAGE, DROP PLUGGABLE DATABASE, DROP PROCEDURE, DROP PUBLIC DATABASE LINK, DROP PUBLIC SYNONYM, DROP TRIGGER, EXECUTE ON SYS.DBMS_RLS, SYSTEM AUDIT </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> データベース管理に影響を与えるアクションは、監査されるべきです。各アクションまたはここに記載されている権限は、少なくとも現在有効となっている監査ポリシーに含まれているべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 5.1.9, 5.1.10, 5.1.11, 5.1.17, 5.1.19 - 5.1.21, 5.2.12 - 5.2.14, 5.2.20 - 5.2.26<br>Oracle Database 12c STIG v1 r10: Rule SV-83467r1 </td><td></td></tr> </table> <h3> アカウント管理監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.ACCTMGMT </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Actions related to account management are fully audited. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Traditional audit - disabled. Unified audit - auditing enabled: ALTER PROFILE, ALTER USER, CREATE PROFILE, CREATE USER, DROP PROFILE, DROP USER </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 新しいユーザーアカウントまたは既存のアカウントの変更は、それらのアカウントの権限にアクセスを得るために使用することができるので、監査されるべきです。各アクションまたはここに記載されている権限は、少なくとも現在有効となっている監査ポリシーに含まれているべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 5.1.1, 5.1.2, 5.1.3, 5.1.6, 5.1.7, 5.1.8, 5.2.1, 5.2.2, 5.2.3, 5.2.9, 5.2.10, 5.2.11<br>Oracle Database 12c STIG v1 r10: Rule SV-76055r2, SV-76059r2, SV-76061r4, SV-76063r2, SV-76141r1, SV-76287r2, SV-76289r2, SV-76291r2, SV-76293r2 </td><td></td></tr> </table> <h3> 権限監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.PRIV </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Auditing enabled for 30 privileges. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Unified Audit (30): ADMINISTER KEY MANAGEMENT, ALTER ANY PROCEDURE, ALTER ANY SQL TRANSLATION PROFILE, ALTER ANY TABLE, ALTER DATABASE, ALTER SYSTEM, AUDIT SYSTEM, BECOME USER, CREATE ANY JOB, CREATE ANY LIBRARY, CREATE ANY PROCEDURE, CREATE ANY SQL TRANSLATION PROFILE, CREATE ANY TABLE, CREATE EXTERNAL JOB, CREATE PUBLIC SYNONYM, CREATE SQL TRANSLATION PROFILE, CREATE USER, DROP ANY PROCEDURE, DROP ANY SQL TRANSLATION PROFILE, DROP ANY TABLE, DROP PUBLIC SYNONYM, DROP USER, EXEMPT ACCESS POLICY, EXEMPT REDACTION POLICY, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE, LOGMINING, PURGE DBA_RECYCLEBIN, TRANSLATE ANY SQL </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> この結果は、権限を対象に有効化された監査ポリシーを表わしています。GRANT ANY OBJECT PRIVILEGE、GRANT ANY PRIVILEGE、DROP ANY PROCEDUREなどの権限を監査することをお勧めします。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 5.1.15, 5.1.16, 5.1.17 </td><td></td></tr> </table> <h3> ロール監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.ROLE </td> <td colspan="2"> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No Audit Policy enabled on roles. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ロールを監査すると、Oracle Databaseはロールに直接付与されているすべてのシステム権限を監査します。これらのロールを付与されたユーザーは、ロールに付与されたシステム権限について監査されます。 </td><td></td></tr> </table> <h3> 強力な権限使用の監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.PRIVUSE </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Usages of powerful system privileges are fully audited. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Traditional audit - disabled. Unified audit - auditing enabled: ALTER ANY SQL TRANSLATION PROFILE, BECOME USER, CREATE ANY JOB, CREATE ANY PROCEDURE, CREATE ANY SQL TRANSLATION PROFILE, CREATE ANY TRIGGER, EXEMPT ACCESS POLICY, EXEMPT REDACTION POLICY, LOGMINING, SELECT ANY DICTIONARY, TRANSLATE ANY SQL </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 強力なシステム権限の使用は、監査されるべきです。。各アクションまたはここに記載されている権限は、少なくとも現在有効となっている監査ポリシーに含まれているべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 5.1.14, 5.2.18 </td><td></td></tr> </table> <h3> 権限管理監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.PRIVMGMT </td> <td colspan="2"> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Privilege management actions are fully audited. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Traditional audit - disabled. Unified audit - auditing enabled: ALTER ROLE, CREATE ROLE, DROP ROLE, GRANT, GRANT ANY OBJECT PRIVILEGE, GRANT ANY PRIVILEGE, GRANT ANY ROLE, REVOKE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ユーザーまたはロールに追加の権限を付与することは、潜在的にほとんどのセキュリティ保護に影響を与えるため監査されるべきです。各アクション、またはここに記載されている権限は、少なくとも一つの有効化されている監査ポリシーに含まれるべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 5.1.4, 5.1.5, 5.1.15, 5.1.16, 5.2.4 - 5.2.8 </td><td></td></tr> </table> <h3> ステートメント監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.STMT </td> <td colspan="2"> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Auditing enabled for 19 statements. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Unified Audit (19): ALL, ALTER DATABASE DICTIONARY, ALTER DATABASE LINK, ALTER PLUGGABLE DATABASE, ALTER PROFILE, ALTER ROLE, ALTER USER, CREATE DATABASE LINK, CREATE DIRECTORY, CREATE PLUGGABLE DATABASE, CREATE PROFILE, CREATE ROLE, DROP DATABASE LINK, DROP DIRECTORY, DROP PLUGGABLE DATABASE, DROP PROFILE, DROP ROLE, LOGON, SET ROLE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> この結果は、SQL文を対象に有効化された監査ポリシーを表わしています。GRANT DIRECTORYやLOCK TABLEなどのSQL文を監査することをお勧めします。 </td><td></td></tr> </table> <h3> オブジェクト監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.OBJ </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Auditing enabled for 21 objects. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Traditional Audit: Schema DVSYS (18): AUDIT_TRAIL$, CODE$, COMMAND_RULE$, FACTOR$, FACTOR_LINK$, FACTOR_TYPE$, IDENTITY$, IDENTITY_MAP$, MAC_POLICY$, MAC_POLICY_FACTOR$, POLICY_LABEL$, REALM$, REALM_AUTH$, REALM_OBJECT$, ROLE$, RULE$, RULE_SET$, RULE_SET_RULE$ Schema LBACSYS (1): OLS$PROPS Unified Audit: Schema REMOTE_SCHEDULER_AGENT (1): ADD_AGENT_CERTIFICATE Schema SYS (1): DBMS_RLS </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> この結果は、オブジェクトへのアクセスを対象に有効化された監査ポリシーを表わしています。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-76141r1 </td><td></td></tr> </table> <h3> ファイングレイン監査 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> AUDIT.FGA </td> <td colspan="2"> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No fine grained audit policies found. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Users with EXECUTE on SYS.DBMS_FGA: OMCTEST </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ファイングレイン監査ポリシーは、機密列を含む表やセッション情報などの情報に基づいた特定のアクテビティに限定してログを記録します。これは正常なアクセスのログを不必要に記録することなく、予期しないデータへのアクセスのみを監視するのに効果的で便利な方法です。 </td><td></td></tr> </table> <h2><a name="暗号化">暗号化</a></h2> <h3> 透過的データ暗号化 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CRYPT.TDE </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> GDPR </span> </td> </tr><tr> <td class="sev2" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Advisory </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 2 encrypted tablespaces. Found 4 unencrypted tablespaces. No encrypted columns found. Examined 1 initialization parameter. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Unencrypted tablespaces: SYSAUX, SYSTEM, TEMP, UNDOTBS1 Encrypted tablespaces: SOE (AES128), USERS (AES128) ENCRYPT_NEW_TABLESPACES=CLOUD_ONLY. Recommended value is ALWAYS in the Oracle Cloud or in an on-premise database. </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 個人情報や機密情報の暗号化は、どの業種にも共通した必須のコンプライアンス要件です。Transparent Data Encryptionは、アプリケーションからは透過的に、格納されたデータを自動的に暗号化・復号します。これは、データベースをバイパスすることや直接データファイルを読むことによる攻撃から機密情報を保護します。暗号鍵は、一般的にはデータベースサーバー上のOracle Keystore(Wallet)に格納しますが、データベースサーバーとは別のOracle Key Vaultに格納することでよりセキュアに管理できます。ENCRYPT_NEW_TABLESPACES初期化パラメータを利用すると新しく作成した表領域をすべてTDE暗号化表領域として作成します。表領域作成時にオプションを指定することなくすべてのデータを保護できるため、このパラメータをALWAYSに設定することが推奨されます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> EU GDPR 2016/679: Article 6, 32, 34; Recital 83<br>Oracle Database 12c STIG v1 r10: Rule SV-76157r2, SV-76245r2, SV-76251r1, SV-76261r2, SV-76263r3 </td><td></td></tr> </table> <h3> 暗号鍵管理 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CRYPT.WALLET </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> GDPR </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 1 wallet. No wallets are stored in the data file directory. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Encryption wallet location: Wallet type: FILE Status: OPEN Keystore type: AUTOLOGIN Wallet order: SINGLE Data file directory: +DATA/dbs </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> Oracle Keystore(Wallet)は、暗号鍵やパスワードを格納するために使用される暗号化されたファイルです。Oracle Keystoreファイルと暗号鍵の両方を含んだバックアップを誤って作成しないためにも、そのOracle Keystoreは、データベースのデータファイルと同じ場所に配置すべきではありません。暗号鍵とデータを最大限分離する方法は、Oracle Keystoreの代わりにOracle Key Vault内に暗号鍵を保管することです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> EU GDPR 2016/679: Article 6, 32, 34; Recital 83<br>Oracle Database 12c STIG v1 r10: Rule SV-76015r1, SV-76223r2, SV-76233r2 </td><td></td></tr> </table> <h2><a name="データベース構成">データベース構成</a></h2> <h3> セキュリティ関連の初期化パラメータ </h3> <table cellpadding="4" border="1" rules="cols" summary="Data table for セキュリティ関連の初期化パラメータ"> <thead><tr> <th align="center" scope="col"> Name </th> <th align="center" scope="col"> Value </th> </tr> </thead> <tr> <td align="left"> ADG_ACCOUNT_INFO_TRACKING </td> <td align="left"> LOCAL </td> </tr> <tr> <td align="left"> AUDIT_FILE_DEST </td> <td align="left"> /u01/app/oracle/admin/ora001_iad2fs/adump </td> </tr> <tr> <td align="left"> AUDIT_SYSLOG_LEVEL </td> <td align="left"> </td> </tr> <tr> <td align="left"> AUDIT_SYS_OPERATIONS </td> <td align="left"> TRUE </td> </tr> <tr> <td align="left"> AUDIT_TRAIL </td> <td align="left"> XML, EXTENDED </td> </tr> <tr> <td align="left"> COMPATIBLE </td> <td align="left"> 18.0.0.0 </td> </tr> <tr> <td align="left"> CURSOR_BIND_CAPTURE_DESTINATION </td> <td align="left"> memory+disk </td> </tr> <tr> <td align="left"> DBFIPS_140 </td> <td align="left"> TRUE </td> </tr> <tr> <td align="left"> DISPATCHERS </td> <td align="left"> (PROTOCOL=TCP) (SERVICE=ora001XDB) </td> </tr> <tr> <td align="left"> ENCRYPT_NEW_TABLESPACES </td> <td align="left"> CLOUD_ONLY </td> </tr> <tr> <td align="left"> GLOBAL_NAMES </td> <td align="left"> TRUE </td> </tr> <tr> <td align="left"> LDAP_DIRECTORY_ACCESS </td> <td align="left"> NONE </td> </tr> <tr> <td align="left"> LDAP_DIRECTORY_SYSAUTH </td> <td align="left"> no </td> </tr> <tr> <td align="left"> O7_DICTIONARY_ACCESSIBILITY </td> <td align="left"> FALSE </td> </tr> <tr> <td align="left"> OS_AUTHENT_PREFIX </td> <td align="left"> ops$ </td> </tr> <tr> <td align="left"> OS_ROLES </td> <td align="left"> FALSE </td> </tr> <tr> <td align="left"> OUTBOUND_DBLINK_PROTOCOLS </td> <td align="left"> ALL </td> </tr> <tr> <td align="left"> PDB_LOCKDOWN </td> <td align="left"> </td> </tr> <tr> <td align="left"> PDB_OS_CREDENTIAL </td> <td align="left"> </td> </tr> <tr> <td align="left"> REMOTE_DEPENDENCIES_MODE </td> <td align="left"> TIMESTAMP </td> </tr> <tr> <td align="left"> REMOTE_LISTENER </td> <td align="left"> </td> </tr> <tr> <td align="left"> REMOTE_LOGIN_PASSWORDFILE </td> <td align="left"> EXCLUSIVE </td> </tr> <tr> <td align="left"> REMOTE_OS_AUTHENT </td> <td align="left"> FALSE </td> </tr> <tr> <td align="left"> REMOTE_OS_ROLES </td> <td align="left"> FALSE </td> </tr> <tr> <td align="left"> RESOURCE_LIMIT </td> <td align="left"> TRUE </td> </tr> <tr> <td align="left"> SEC_CASE_SENSITIVE_LOGON </td> <td align="left"> TRUE </td> </tr> <tr> <td align="left"> SEC_MAX_FAILED_LOGIN_ATTEMPTS </td> <td align="left"> 3 </td> </tr> <tr> <td align="left"> SEC_PROTOCOL_ERROR_FURTHER_ACTION </td> <td align="left"> (DROP,3) </td> </tr> <tr> <td align="left"> SEC_PROTOCOL_ERROR_TRACE_ACTION </td> <td align="left"> TRACE </td> </tr> <tr> <td align="left"> SEC_RETURN_SERVER_RELEASE_BANNER </td> <td align="left"> FALSE </td> </tr> <tr> <td align="left"> SQL92_SECURITY </td> <td align="left"> TRUE </td> </tr> <tr> <td align="left"> UNIFIED_AUDIT_SGA_QUEUE_SIZE </td> <td align="left"> 1048576 </td> </tr> <tr> <td align="left"> UNIFIED_AUDIT_SYSTEMLOG </td> <td align="left"> </td> </tr> </table> <h3> ディクショナリオブジェクトへのアクセス </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.SYSOBJ </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Access to dictionary objects is properly limited. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> O7_DICTIONARY_ACCESSIBILITY=FALSE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> O7_DICTIONARY_ACCESSIBILITYをFALSEに設定すると、 SYSが所有する表はANY TABLEシステム権限からはアクセスできません。 SYSが所有する表は、データベースの全体的な状態を制御し、 ANY TABLE権限を持つユーザーによる操作の対象とすべきではないため、このパラメータは常にFALSEに設定する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.5<br>Oracle Database 12c STIG v1 r10: Rule SV-76079r2 </td><td></td></tr> </table> <h3> 表データへの推定 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.INFER </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Data inference attacks are properly blocked. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> SQL92_SECURITY=TRUE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> SQL92_SECURITYはTRUEに設定されている時、UPDATEやDELETE文をユーザが実行する場合、ユーザがその列にSELECTする権限も持っていなければなりません。データの参照権限を持っていないユーザが列の値を推測する攻撃から防ぐために、このパラメータをTRUEに設定する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.17<br>Oracle Database 12c STIG v1 r10: Rule SV-75919r1 </td><td></td></tr> </table> <h3> パスワードファイルへのアクセス </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.PWDFILE </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> The password file is configured correctly. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> REMOTE_LOGIN_PASSWORDFILEをEXCLUSIVEに設定すると、パスワードファイルに各管理ユーザーの個別のエントリを含めることができ、それらを個別に監査してその動作を追跡することができます。また、ALTER USERコマンドを使用してパスワードを更新することもできます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75921r2 </td><td></td></tr> </table> <h3> ネットワーク通信 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.NETCOM </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Examined 4 initialization parameters. No issues found. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> REMOTE_LISTENER='' SEC_PROTOCOL_ERROR_FURTHER_ACTION=(DROP,3) SEC_PROTOCOL_ERROR_TRACE_ACTION=TRACE SEC_RETURN_SERVER_RELEASE_BANNER=FALSE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> REMOTE_LISTENERパラメータはほかのシステムで動作しているネットワークリスナーを利用することを許可します。このパラメータは通常ローカルリスナーの利用を強制するために値を設定しないようにする必要があります。SEC_PROTOCOL_ERRORパラメータは、クライアントからの不正なネットワークパケットを受信したとき、データベース・サーバの応答を制御します。これらの不正な形式のパケットは、悪意のあるクライアントによって試みられた攻撃を示す可能性があるため、パラメータは、インシデントをログに記録し、接続を終了するように設定する必要があります。 SEC_RETURN_SERVER_RELEASE_BANNERパラメータは、サーバーのバージョンや脆弱性を判断するために使用することができ、認証されていないクライアントに返される情報を制限するために、 FALSEに設定する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.7, 2.2.14, 2.2.15, 2.2.16<br>Oracle Database 12c STIG v1 r10: Rule SV-76305r4 </td><td></td></tr> </table> <h3> OS認可の外部委譲 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.EXTAUTH </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Examined 3 initialization parameters. No issues found. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> REMOTE_OS_AUTHENT=FALSE REMOTE_OS_ROLES=FALSE OS_ROLES=FALSE </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> OS_ROLESパラメータはユーザーに付与されたロールが、データベースでのGRANT文またはオペレーティングシステム環境のどちらで制御されているかどうかを判断します。REMOTE_OS_AUTHENTとREMOTE_OS_ROLESパラメータは、クライアントのオペレーティングシステムがデータベースユーザーとロールをセットすることを許可します。データベース・ユーザーの権限を、データベース自身によって管理するために、すべてのパラメータをFALSEに設定する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.6, 2.2.9, 2.2.10<br>Oracle Database 12c STIG v1 r10: Rule SV-75915r1, SV-75917r1 </td><td></td></tr> </table> <h3> トレースファイル </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.TRACE </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Examined 0 initialization parameter. No issues found. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> _TRACE_FILES_PUBLIC隠しパラメータはデータベースによって生成されるトレースファイルをすべてのOSユーザーからアクセスできるようにするかどうかを決定します。これらのファイルには重要な情報が含まれている可能性があるためアクセスを制限するためにこのパラメータをFALSEに設定する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.18<br>Oracle Database 12c STIG v1 r10: Rule: SV-75955r1 </td><td></td></tr> </table> <h3> インスタンス名チェック </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.INSTNM </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Instance name does not contain database version number. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Instance Name = ora001 Database Version = 18.6.0.0.0 </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> インスタンス名にOracleのバージョン番号を含むことはいけません。認証されていないユーザーによってサービス名が発見される可能性があります。サービス名にバージョン番号または他のデータベース製品情報が含まれている場合、悪意のあるユーザーはその情報を使用して標的型攻撃を行う可能性があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75903r1 </td><td></td></tr> </table> <h3> トリガー </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.TRIG </td> <td colspan="2"> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No logon triggers found. No disabled triggers found. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> トリガーは、テーブルにデータを挿入したり、データベースに接続したり特定のイベントが起こった際に実行されるコードです。無効化されたOracle提供のトリガーは、データベースの監視や保護する目的で定義されているものが無効になっているかもしれないので、潜在的なリスクの可能性があります。 </td><td></td></tr> </table> <h3> 無効化された制約 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.CONST </td> <td colspan="2"> </td> </tr><tr> <td class="sev3" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Low Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 1 disabled constraint. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Disabled constraints: STS_CHUNKS on GSMADMIN_INTERNAL.SHARD_TS </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> 制約は、データベースに格納されたデータ間の関係性を保証し、強制するために使用されます。無効化された制約は、強制されたデータの関係性が確実になっていない潜在的なリスクの可能性があります。 </td><td></td></tr> </table> <h3> ディレクトリ・オブジェクト </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.DIR </td> <td colspan="2"> </td> </tr><tr> <td class="sev4" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Medium Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 14 directory objects. Found 1 directory object allowing access to restricted Oracle directory paths. No directory objects allow both write and execute access. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Directory Name: DATA_PUMP_DIR Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/rdbms/log/8A2F52B0B1514A87 E0530701000A18EE/ Users or roles with access: EXP_FULL_DATABASE(READ), EXP_FULL_DATABASE(WRITE), IMP_FULL_DATABASE(READ), IMP_FULL_DATABASE(WRITE) Directory Name: HOME Path = /home/oracle/ Users or roles with access: OMCTEST(READ) Directory Name: JAVA$JOX$CUJS$DIRECTORY$ Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/javavm/admin/ Directory Name: OPATCH_INST_DIR Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/OPatch/ Directory Name: OPATCH_LOG_DIR Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/rdbms/log/ Directory Name: OPATCH_SCRIPT_DIR Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/QOpatch/ Directory Name: ORACLE_BASE Path = /u01/app/oracle/ Directory Name: ORACLE_HOME Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/ Directory Name: ORACLE_OCM_CONFIG_DIR Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/ccr/state/ Directory Name: ORACLE_OCM_CONFIG_DIR2 Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/ccr/state/ Directory Name: SDO_DIR_ADMIN Path = /u01/app/oracle/product/18.0.0/dbhome_1/md/admin/ Directory Name: SDO_DIR_WORK Path = Directory Name: XMLDIR Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/rdbms/xml/ Directory Name: XSDDIR Path = /u01/app/oracle/product/18.0.0.0/dbhome_1/rdbms/xml/schema/ Access to $ORACLE_HOME: ORACLE_HOME </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ディレクトリ・オブジェクトは、データベース内のPL/SQLコードからサーバーのファイルシステムへのアクセスを許可します。データベースの動作を変更し、アクセス制御をバイパスするリスクがあるため、データベースカーネル自身が使用するファイルへのアクセスは許可すべきではありません。 </td><td></td></tr> </table> <h3> データベースリンク </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.LINKS </td> <td colspan="2"> <span class="reftag"> STIG </span> <span class="reftag"> CIS </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 1 database link. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> GLOBAL_NAMES=TRUE Users with CREATE DATABASE LINK privilege: DBSAFE, DEV01, MONITOR Users with CREATE PUBLIC DATABASE LINK privilege: DBSAFE, DEV01, MONITOR Private links: SYS: SYS_HUB </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> データベース・リンクは、ユーザーが他のデータベース内のテーブルにアクセスするSQL文を実行することを可能にします。これは、リモート・データベースのデータの参照と格納の両方を可能にします。データベースリンク名とアクセスするデータベース名を一致させるためにGLOBAL_NAMESパラメータをTRUEに設定することをお勧めします </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> CIS Oracle Database 12c Benchmark v2.0.0: Recommendation 2.2.3<br>Oracle Database 12c STIG v1 r10: Rule SV-75941r1, SV-75997r1, SV_76019r1 </td><td></td></tr> </table> <h3> ネットワークアクセス制御 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.NETACL </td> <td colspan="2"> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 1 network ACL. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> NETWORK_ACL_867E3EE625CE03A6E053050011AC7A49 (Host: *, Ports: Min - Max) Principal: GGSYS, Action: deny, Privilege: resolve Principal: GSMADMIN_INTERNAL, Action: deny, Privilege: resolve </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ネットワークACLは、データベース・ユーザーがUTL_TCPやUTL_HTTPなどのネットワーク・パッケージを使用してアクセスできる外部サーバを制御します。具体的には、もし誰かがUTL_TCP、UTL_HTTP、UTL_SMTPおよびUTL_MAILのユーティリティ・パッケージを使用して接続する時、データベース・ユーザーは外部ネットワークのホストコンピュータに接続する権限が必要です。UTL_INADDRパッケージを使用して、ホスト名とIPアドレスを変換するには、resolve権限が必要です。これらの権限が、各ユーザーに必要最小限に制限されていることを確認します。 </td><td></td></tr> </table> <h3> XML Databaseアクセス制御 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.XMLACL </td> <td colspan="2"> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 9 XML Database ACLs. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Protected:Readable by PUBLIC and all privileges to OWNER Principal: dav:owner, Action: grant, Privileges: all Principal: XDBADMIN, Action: grant, Privileges: all Principal: PUBLIC, Action: grant, Privileges: read-properties, read- contents, read-acl, resolve Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Public:All privileges to PUBLIC Principal: PUBLIC, Action: grant, Privileges: all Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Private:All privileges to OWNER only and not accessible to others Principal: dav:owner, Action: grant, Privileges: all Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Read-Only:Readable by all and writeable by none Principal: PUBLIC, Action: grant, Privileges: read-properties, read- contents, read-acl, resolve Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Protected:Readable by PUBLIC and all privileges to OWNER Principal: dav:owner, Action: grant, Privileges: all Principal: XDBADMIN, Action: grant, Privileges: all Principal: PUBLIC, Action: grant, Privileges: read-properties, read- contents, read-acl, resolve Principal: OLAP_XS_ADMIN, Action: grant, Privileges: all Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Protected:Readable by PUBLIC and all privileges to OWNER Principal: dav:owner, Action: grant, Privileges: all Principal: XDBADMIN, Action: grant, Privileges: all Principal: PUBLIC, Action: grant, Privileges: read-properties, read- contents, read-acl, resolve Principal: OLAP_XS_ADMIN, Action: grant, Privileges: all Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Protected:Readable by PUBLIC and all privileges to OWNER Principal: dav:owner, Action: grant, Privileges: all Principal: XDBADMIN, Action: grant, Privileges: all Principal: PUBLIC, Action: grant, Privileges: read-properties, read- contents, read-acl, resolve Principal: OLAP_XS_ADMIN, Action: grant, Privileges: all Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Protected:Readable by PUBLIC and all privileges to OWNER Principal: dav:owner, Action: grant, Privileges: all Principal: XDBADMIN, Action: grant, Privileges: all Principal: PUBLIC, Action: grant, Privileges: read-properties, read- contents, read-acl, resolve Principal: OLAP_XS_ADMIN, Action: grant, Privileges: all Namespace: {http://xmlns.oracle.com/xdb/acl.xsd} Description: Protected:Readable by PUBLIC and all privileges to OWNER Principal: dav:owner, Action: grant, Privileges: all Principal: XDBADMIN, Action: grant, Privileges: all Principal: PUBLIC, Action: grant, Privileges: read-properties, read- contents, read-acl, resolve Principal: OLAP_XS_ADMIN, Action: grant, Privileges: all </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> XML ACLは、 XML DBの機能を使用した、データベース・リソースへのアクセスを制御します。 Oracle XML DBリポジトリ階層内のすべてのリソースは、関連するACLを持っています。ACLメカニズムは、データベース・ユーザーまたはロールのプリンシパルへのリソースに対する権限ベースのアクセス制御を指定します。リソースがアクセスされるたびに、セキュリティチェックが行われ、ACLは要求しているユーザがリソースにアクセスするための十分な権限を持っているか判断します。これらの権限は、各ユーザーの必要最小限に制限されていることを確認します。 </td><td></td></tr> </table> <h3> データベースのバックアップ </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> CONF.BKUP </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev5" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> High Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> No Backup Records found for the last 90 days. </td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> システム障害時にデータが失われるのを防ぐために、データベースは定期的にバックアップする必要があります。Oracle Recovery Manager(RMAN)を使用すると、データベースでバックアップとリカバリのタスクを実行できます。暗号化されていないバックアップデータは、保管のためにテープまたはディスクでオフサイトストレージに転送しないでください。分散環境でのテープデータ保護にOracle Secure Backup(OSB)を使用することもできます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-76179r1, SV-76183r1, SV-76185r1, SV-76187r1, SV-76189r1, SV-76191r1 </td><td></td></tr> </table> <h2><a name="ネットワーク構成">ネットワーク構成</a></h2> <h3> ネットワーク暗号化 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> NET.CRYPT </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Native encryption is fully enabled. Integrity check using checksums is fully enabled. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> SQLNET.ENCRYPTION_SERVER = REQUIRED SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED LISTENER.ORA not available. SSL_CERT_REVOCATION is not set (default value = NONE). </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ネットワークの暗号化は、データベース・サーバとそのクライアントとの間の通信の機密性と完全性を保護します。クライアントからの接続が確実に暗号化されるように、ネイティブ暗号化またはTLSを設定する必要があります。ネイティブ暗号化の場合は、ENCRYPTION_SERVERとCRYPTO_CHECKSUM_SERVERの両方をREQUIREDに設定する必要があります。配置と互換性を容易にするために、Oracle Databaseのサーバーとクライアントは、暗号化された接続をそのまま使用するように設定されています。つまり、接続の片側(サーバー側またはクライアント側)のみを構成することで、接続ペアに対して望まれる暗号化および整合性設定を有効にできます。したがって、たとえば、Oracleデータベース・インスタンスに接続するOracleクライアントが多数ある場合は、サーバー側で適切なsqlnet.oraを変更することによって、これらすべての接続に必要な暗号化および整合性設定を構成できます。各クライアントに対して個別に設定変更を実施する必要はありません。ただし、この場合、平文データがネットワークを経由するリスクがあります。セキュリティサービスを有効にするかどうかは、クライアントとサーバーの構成パラメータの組み合わせに基づいていることに注意してください。TLSを使用する場合は、すべてのネットワークポートにTCPSを指定し、SSL_CERT_REVOCATIONをREQUIREDに設定する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75937r2, SV-76035r5, SV-76165r1, SV-76193r2, SV-76195r2, SV-76203r4, SV-76205r4, SV-76231r3, SV-76233r2, SV-76239r1, SV-76241r1, SV-76305r4 </td><td></td></tr> </table> <h3> クライアント・ノード </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> NET.CLIENTS </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev4" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Medium Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Valid node check is not enabled, can accept connections from any client. Neither TCP.INVITED_NODES nor TCP.EXCLUDED_NODES is set. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> TCP.VALIDNODE_CHECKING is not set (default value = NO). Recommended value is YES. TCP.INVITED_NODES is not set. TCP.EXCLUDED_NODES is not set. </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> TCP.VALIDNODE_CHECKINGは、クライアント・ノードがデータベースサーバに接続できるかを制御するために利用します。接続を許可するクライアント・ノード(IPアドレス/ホスト名/サブネット)のホワイトリスト(TCP.INVITED_NODESにより指定)または、接続を許可しないノードのブラックリスト(TCP.EXCLUDED_NODESにより指定)を指定することができます。両方のリストを設定するとエラーになります。この場合、招待ノードリストのみが使用されます。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75985r1, SV-76005r2, SV-76305r4 </td><td></td></tr> </table> <h3> SQLNET Banners </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> NET.BANNER </td> <td colspan="2"> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Connect banners are not fully configured. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> SEC_USER_AUDIT_ACTION_BANNER is not set. Should be set to a proper value. SEC_USER_UNAUTHORIZED_ACCESS_BANNER is not set. Should be set to a proper value. </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> These banner messages are used to warn connecting users that unauthorized access is not permitted and that their activities may be audited. </td><td></td></tr> </table> <h2><a name="オペレーティングシステム">オペレーティングシステム</a></h2> <h3> OS認証 </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> OS.AUTH </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev1" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Evaluate </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> 2 OS users can connect to the database via OS authentication. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> SYSDBA [dba group]: oracle SYSOPER [dbaoper group]: grid, oracle SYSBACKUP [dba group]: oracle SYSKM [dba group]: oracle SYSDG [dba group]: oracle SYSRAC [dba group]: oracle </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> OS認証により指定されたユーザグループ内のOSユーザーがそれ以上の認証なしで管理者権限でデータベースに接続することができます。ここではそれぞれの各管理者権限を行使することができるOSのグループ名とユーザを表示しています。データベースへの許可されていない、悪意のある、または意図しないアクセスを防ぐために、管理者権限を持つOSユーザーを確認する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75977r1, SV-76027r1 </td><td></td></tr> </table> <h3> Process Monitorプロセス </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> OS.PMON </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev0" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Pass </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 3 PMON processes. The owner of the PMON process matches the ORACLE_HOME owner. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> PMON process: ora_pmon_ora001, Owner: oracle ORACLE_HOME owner: oracle Other PMON processes found: Owner: grid, Command: asm_pmon_+ASM1 Owner: grid, Command: apx_pmon_+APX1 </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> PMONプロセスは、ユーザー・プロセスを監視し、それらが終了したときにリソースを解放します。このプロセスは、 ORACLE_HOMEの所有者のユーザーIDで実行する必要があります。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-76069r1 </td><td></td></tr> </table> <h3> エージェント・プロセス </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> OS.AGENT </td> <td colspan="2"> </td> </tr><tr> <td class="sev3" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Low Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Some Agent process owners overlap with Listener or PMON process owners. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Owner: root Command: /u01/app/18.0.0.0/grid/bin/orarootagent.bin Owner: grid Command: /u01/app/18.0.0.0/grid/bin/oraagent.bin Owner: root Command: /u01/app/18.0.0.0/grid/bin/cssdagent Owner: root Command: /u01/app/18.0.0.0/grid/bin/orarootagent.bin Owner: grid Command: 6 /u01/app/18.0.0.0/grid/bin/oraagent.bin Owner: grid Command: /u01/app/18.0.0.0/grid/jdk/bin/java -Xms128M -Xmx384M -classpath / u01/app/18.0.0.0/grid/jdk/jre/lib/rt.jar:/u01/app/18.0.0.0/grid/jdk/jre /lib/i18n.jar:/u01/app/18.0.0.0/grid/jlib/jagent.jar:/u01/app/18.0.0.0/ grid/jlib/srvm.jar: -Dora.jagent.conf=conf/orajagent.conf oracle.jagent.core.OraJavaAgentDriver Owner: root Command: java -Xms128m -Xmx256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC -XX:ParallelGCThreads=4 -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:/opt/oracle/dcs/log/gc-dcs- agent-%t-%p.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -Doracle.security.jps.config=/opt/oracle/dcs/agent/jps-config.xml -jar /opt/oracle/dcs/bin/dcs-agent-19.4.3.0.0-SNAPSHOT.jar server /opt/oracle/dcs/conf/dcs-agent.json Owner: oracle Command: /u01/app/18.0.0.0/grid/bin/oraagent.bin Owner: opc Command: /home/opc/cloud_agent/191029.0800/core/1.46.0/perl/bin/perl /home/opc/cloud_agent/191029.0800/core/1.46.0/bin/emwd.pl agent /home/opc/cloud_agent/agent_inst/sysman/log/emagent.nohup Owner: opc Command: /home/opc/cloud_agent/191029.0800/core/1.46.0/jdk/jre/bin/java -Xmx149M -XX:MaxPermSize=128M -server -Djava.security.egd=file:///dev/./urandom -Dsun.lang.ClassLoader.allowArraySyntax=true -XX:-UseLargePages -XX:+UseLinuxPosixThreadCPUClocks -XX:+UseG1GC -XX:+UseCompressedOops -Djdk.http.auth.tunneling.disabledSchemes="" -Djava.util.logging.config.file=null -Dwatchdog.pid=98782 -cp /home/opc /cloud_agent/191029.0800/core/1.46.0/jdbc/lib/ojdbc7.jar:/home/opc/clou d_agent/191029.0800/core/1.46.0/ucp/lib/ucp.jar:/home/opc/cloud_agent/1 91029.0800/core/1.46.0/oracle_common/modules/jsch-0.1.51.jar:/home/opc/ cloud_agent/191029.0800/core/1.46.0/oracle_common/modules/com.oracle.ht tp_client.http_client_12.1.3.jar:/home/opc/cloud_agent/191029.0800/core /1.46.0/oracle_common/modules/oracle.xdk_12.1.3/xmlparserv2.jar:/home/o pc/cloud_agent/191029.0800/core/1.46.0/oracle_common/modules/oracle.dms _12.1.3/dms.jar:/home/opc/cloud_agent/191029.0800/core/1.46.0/oracle_co mmon/modules/oracle.odl_12.1.3/ojdl.jar:/home/opc/cloud_agent/191029.08 00/core/1.46.0/oracle_common/modules/oracle.odl_12.1.3/ojdl2.jar:/home/ opc/cloud_agent/191029.0800/core/1.46.0/lib/optic.jar:/home/opc/cloud_a gent/191029.0800/core/1.46.0/sysman/jlib/log4j-core.jar:/home/opc/cloud _agent/191029.0800/core/1.46.0/jlib/gcagent_core.jar:/home/opc/cloud_ag ent/191029.0800/core/1.46.0/sysman/jlib/emagentSDK-intg.jar:/home/opc/c loud_agent/191029.0800/core/1.46.0/sysman/jlib/emagentSDK.jar oracle.sysman.gcagent.tmmain.TMMain </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> エージェント・プロセスは、データベースの監視および管理するためにOracle Enterprise Managerで使用されています。これらのプロセスは、データベースおよびリスナープロセスとは別のユーザーIDで実行する必要があります。 </td><td></td></tr> </table> <h3> リスナー・プロセス </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> OS.LISTEN </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev3" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Low Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Found 2 Listener processes. Some Listener process are owned byAgent or PMON process owners. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> Owner: grid Command: /u01/app/18.0.0.0/grid/bin/tnslsnr ASMNET1LSNR_ASM -no_crs_notify -inherit Owner: grid Command: /u01/app/18.0.0.0/grid/bin/tnslsnr LISTENER -no_crs_notify -inheritSecurity for Listener not set to Local OS Authentication. </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> リスナー・プロセスは、データベースへの接続要求を受け入れ、適切なデータベース・サーバー・プロセスに接続します。これらのプロセスは、データベースおよびエージェントプロセスとは別のユーザーIDで実行する必要があります。これらのプロセスは、ローカルOS認証を通じてのみ管理されるべきです。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-75931r1 </td><td></td></tr> </table> <h3> ORACLE_HOMEのファイル・パーミッション </h3> <table class="finding" cellpadding="4" border="0" role="presentation"> <tr class="ruleid"><td></td> <td> OS.FILES </td> <td colspan="2"> <span class="reftag"> STIG </span> </td> </tr><tr> <td class="sev4" colspan="4"></td> </tr> <tr><td></td> <td class="finding_head">Status</td> <td class="finding_cell"> Medium Risk </td><td></td></tr> <tr><td></td><td class="finding_head">Summary</td> <td class="finding_cell"> Examined 639 files. Found 2 errors. </td><td></td></tr> <tr><td></td> <td class="finding_head">Details</td> <td class="finding_cell"><pre> ORACLE_HOME: /u01/app/oracle/product/18.0.0.0/dbhome_1 ORACLE_HOME owner: oracle Directories: 4 (0 permission errors) Executables in $ORACLE_HOME/bin: 267 (0 permission errors) Configuration files in $TNS_ADMIN: 1 (0 permission errors) Data files in $ORACLE_HOME/dbs: 3 (1 permission errors) Libraries in $ORACLE_HOME/lib: 364 (1 permission errors) Files with permission errors: dbs/init.ora (rw-r--r-- should be rw-r-----) lib/libedtn18_backup.a (rw-rw-r-- should be rw-r--r--) </pre></td><td></td></tr> <tr><td></td> <td class="finding_head">Remarks</td> <td class="finding_cell"> ORACLE_HOMEディレクトリとそのサブディレクトリには、実行可能プログラム、ライブラリ、データファイル、および構成ファイルを含むデータベースの正しい動作に重要であるファイルが含まれています。オペレーティングシステムファイルのアクセス権は、ORACLE_HOMEの所有者以外のユーザーがこれらのファイルを変更することを許可してはいけません。同様に、他のユーザーが直接Oracleデータファイルの内容を読み取ることも許可すべきではありません。 </td><td></td></tr> <tr><td></td> <td class="finding_head">References</td> <td class="finding_cell"> Oracle Database 12c STIG v1 r10: Rule SV-76001r1, SV-76277r1, SV-76359r1, SV-76365r1 </td><td></td></tr> </table> <hr> <p class="footnote"> This report provides information and recommendations that may be helpful in securing your Oracle database system. These recommendations reflect best practices for database security and should be part of any strategy for Data Protection by Design and by Default. These practices may help in addressing Articles 25 and 32 of the EU General Data Protection Regulation as well as other data privacy regulations. Technical controls alone are not sufficient for compliance. Passing all findings does not guarantee compliance. </p> <p class="footnote"> Oracle Database Vault, Oracle Advanced Security, Oracle Label Security, Oracle Data Masking and Subsetting Pack are database licensed options. Oracle Key Vault and Oracle Audit Vault and Database Firewall require separate licensing as well. </p> <p class="footnote"> The report provides a view on the current status. The results shown are provided for informational purposes only and should not be used as a substitute for a thorough analysis or interpreted to contain any legal or regulatory advice or guidance. </p> <p class="footnote"> You are solely responsible for your system, and the data and information gathered during the production of this report. You are also solely responsible for the execution of software to produce this report, and for the effect and results of the execution of any mitigating actions identified herein. </p> <p class="footnote"> Oracle provides this analysis on an "as is" basis without warranty of any kind and Oracle hereby disclaims all warranties and conditions whether express, implied or statutory. </p> </body></html>