SV-270496r1167727_rule
V-270496
SRG-APP-000001-DB-000031
O19C-00-000200
CAT II
10
Implement measures to limit the effects of organization-defined types of DoS attacks.
For each of the three queries in the Check, if there are findings, make the changes required to bring the environment into compliance.
For Listing 1:
Modify the $ORACLE_HOME/network/admin/listener.ora to establish a Rate Limit.
Restart the listener for changes to take effect.
For Listing 2:
Set limits on all profiles for CPU_PER_CALL, IDLE_TIME, and LOGICAL_READS_PER_CALL.
For Listing 3:
Enforce reasonable limits for tablespace consumption sufficient to prevent a DOS attack from impacting multiple applications or multiple services.
Review database management system (DBMS) settings to verify the DBMS implements measures to limit the effects of a DoS event.
Rate Limit:
Check the $ORACLE_HOME/network/admin/listener.ora to verify a Rate Limit has been established. A rate limit is used to prevent DoS attacks on a database or to control a logon storm such as may be caused by an application server or pool restart.
If a rate limit has not been set similar to one of the two examples in Listing 1, this is a finding.
Listing 1
CONNECTION_RATE_LISTENER=10
LISTENER= (
ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)(RATE_LIMIT=yes))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1522)(RATE_LIMIT=yes))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1526))
)
LISTENER=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)(RATE_LIMIT=8))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1522)(RATE_LIMIT=12))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1526))
)
Database Profiles:
If the database profiles, as shown in Listing 2 do not contain resource controls similar to those shown, but appropriate to the target database's infrastructure and utilization, that is a finding.
Listing 2
SELECT cp.con_id, cp.profile, cp.resource_name, cp.limit
FROM sys.cdb_profiles cp
WHERE resource_name IN ('CPU_PER_CALL', 'IDLE_TIME', 'LOGICAL_READS_PER_CALL');
ORDER BY 1,2,3;
Tablespace Quota:
Listing 3
SELECT ctq.con_id, ctq.tablespace_name, ctq.username, ctq.max_bytes, ctq.max_blocks
FROM sys.cdb_ts_quotas ctq
WHERE ((max_bytes = -1) OR (max_blocks = -1))
AND (ctq.con_id, ctq.tablespace_name) IN (SELECT ct.con_id, ct.tablespace_name FROM sys.cdb_tablespaces ct)
ORDER BY 1;
If any rows returned have a MAX_BYTES or MAX_BLOCKS equal to minus one (-1) that is a finding.
V-270496
False
O19C-00-000200
Review database management system (DBMS) settings to verify the DBMS implements measures to limit the effects of a DoS event.
Rate Limit:
Check the $ORACLE_HOME/network/admin/listener.ora to verify a Rate Limit has been established. A rate limit is used to prevent DoS attacks on a database or to control a logon storm such as may be caused by an application server or pool restart.
If a rate limit has not been set similar to one of the two examples in Listing 1, this is a finding.
Listing 1
CONNECTION_RATE_LISTENER=10
LISTENER= (
ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)(RATE_LIMIT=yes))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1522)(RATE_LIMIT=yes))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1526))
)
LISTENER=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)(RATE_LIMIT=8))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1522)(RATE_LIMIT=12))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1526))
)
Database Profiles:
If the database profiles, as shown in Listing 2 do not contain resource controls similar to those shown, but appropriate to the target database's infrastructure and utilization, that is a finding.
Listing 2
SELECT cp.con_id, cp.profile, cp.resource_name, cp.limit
FROM sys.cdb_profiles cp
WHERE resource_name IN ('CPU_PER_CALL', 'IDLE_TIME', 'LOGICAL_READS_PER_CALL');
ORDER BY 1,2,3;
Tablespace Quota:
Listing 3
SELECT ctq.con_id, ctq.tablespace_name, ctq.username, ctq.max_bytes, ctq.max_blocks
FROM sys.cdb_ts_quotas ctq
WHERE ((max_bytes = -1) OR (max_blocks = -1))
AND (ctq.con_id, ctq.tablespace_name) IN (SELECT ct.con_id, ct.tablespace_name FROM sys.cdb_tablespaces ct)
ORDER BY 1;
If any rows returned have a MAX_BYTES or MAX_BLOCKS equal to minus one (-1) that is a finding.
M
5672