Skip to content

Commit 9026ab1

Browse files
authored
Merge pull request #29 from fn20200323/publicReportExposed
Report roles verification for public ones
2 parents 1f08165 + ae90023 commit 9026ab1

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,9 @@ Monitor users with role `admin` (not locked out) that are not logged for longer
140140
After deactivation of Groups there can be still some users.
141141
Group offer membership but also can provide some roles that after deactivation should be considered as no longer needed.
142142

143+
### Report with public role can expose data to unauthenticated clients
144+
For table that store reports definition there is also posibility to assign roles. It is possible that by default it is added `public` role. It means that even not authorized clients can access such report and sometimes with exposed data that shouldn't be accessible.
145+
143146
### Scheduled Job with RunAs set as Locked Out user
144147
Detecting no longer active user with flag Locked Out set to true that is set as a RunAs for Scheduled Job
145148

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<unload unload_date="2021-10-28 19:04:18">
3+
<scan_script_only_check action="INSERT_OR_UPDATE">
4+
<active>true</active>
5+
<attributes display_value="Public reports to be verified ">906611642f2330100b40bea62799b6b7</attributes>
6+
<category>security</category>
7+
<description>It is worthy to check all reports that are with role public - as they can expose data to unauthenticated users via:
8+
https : / / &lt;instance&gt;.service-now.com/sys_report_display.do?sysparm_report_id=&lt;sysID&gt;</description>
9+
<documentation_url/>
10+
<name>Public reports to be verified </name>
11+
<priority>2</priority>
12+
<resolution_details/>
13+
<script><![CDATA[(function(finding) {
14+
15+
var grSysReport = new GlideRecord('sys_report');
16+
grSysReport.addEncodedQuery("roles=public");
17+
grSysReport.query();
18+
while (grSysReport.next()) {
19+
finding.setCurrentSource(grSysReport);
20+
finding.increment();
21+
}
22+
23+
})(finding);]]></script>
24+
<short_description>Candidates of publicly available reports (without needs to authorize) that shoul</short_description>
25+
<sys_class_name>scan_script_only_check</sys_class_name>
26+
<sys_created_by>admin</sys_created_by>
27+
<sys_created_on>2021-10-28 18:46:02</sys_created_on>
28+
<sys_id>1e7511642f2330100b40bea62799b6f1</sys_id>
29+
<sys_mod_count>1</sys_mod_count>
30+
<sys_name>Public reports to be verified </sys_name>
31+
<sys_package display_value="Global" source="global">global</sys_package>
32+
<sys_policy/>
33+
<sys_scope display_value="Global">global</sys_scope>
34+
<sys_update_name>scan_script_only_check_1e7511642f2330100b40bea62799b6f1</sys_update_name>
35+
<sys_updated_by>admin</sys_updated_by>
36+
<sys_updated_on>2021-10-28 18:50:32</sys_updated_on>
37+
</scan_script_only_check>
38+
</unload>

0 commit comments

Comments
 (0)