scap-security-guide v0.1-12 released
by Shawn Wells
On 2-MAY the SSG v0.1-11 update was released, reflecting the inclusion
of DISA FSO feedback on the (then) Draft RHEL6 STIG and several OVAL
improvements. It was a huge milestone, driving us over 1,800 unique code
commits!
We've since had an additional 88 commits, largely around OVAL content
cleanup and the rewrite of combinefixes.py to handle parameters for
OpenSCAP remediation generation (thanks, Jeff!). User feedback also
prompted us to fix the build system when compiling on Fedora 18+ and the
upcoming RHEL release.
SSG v0.1-12 has been released to the EPEL repository to reflect these
recent bugfixes and enhancements. Download instructions available on the
wiki:
https://fedorahosted.org/scap-security-guide/wiki/downloads
CHANGELOG:
> $ git log --oneline --after={2013-05-02} --no-merges
> fe2a0b6 Some corrections to the PAM cracklib guidance as follows:
> corrected pam_cracklib.so line to include all discussed parame
> 532aeb8 Modified the DoD banner check to accept either a newline or
> space between each word, as the RHEL5 version does. This al
> ded2ef4 Created remediation template: create_services_disabled.py -
> Based off OVAL services file
> a96cdc3 Added sysctl remediation scripts - Updated template to reflect
> proper naming of sysctl scripts
> c3355eb Added bash templates directory, added sample sysctl script -
> Makefile based off OVAL, same usage - CVS files point to
> f75ad8d Module is freevxfs, not freevsfs
> cd940ef Fix build of OpenStack and RHEVM3 parts on Fedora 18+
> df19413 Fix build on Fedora 18+ and the upcoming RHEL release
> 2ddbbb7 Subexpression datatype shall equal to the variable datatype
> 4cd7650 Ok, to fix the "error" doing an evaluation for the various
> umask checks, changed the following variables referenced in t
> 5fa190d changed a typo var_acocunts_umask_bashrc =>
> var_accounts_umask_bashrc
> 7d772db Update from deprecated rpmverify_* to rpmverifyfile_* checks
> 2026606 made xccdf-addfixes insert all text and child nodes of a fix
> d6703f4 rewrite of combinefixes.py to handle parameters for OpenSCAP
> remedation generation
> c13fafa incomplete support file for bash remediations * does at least
> warn when undefined variable exists
> f87d817 example remediation script which takes a parameter
> 24f2c2e Removing deprecated recurse="files" behavior
> f078b8f Removing deprecated recurse=files behavior.
> b12d669 Replacing deprecated <ind:environmentvariable_...> tags with
> <ind:environmentvariable58_...> tags
> 5ed6dc2 Created OVAL for ensure_gpgcheck_never_disabled XCCDF rule
> called nonexisting OVAL, created it.
> 0d69487 Renaming oval check no_rsh_trusted_host_files to
> no_rsh_trust_files to match rule ID
> 295184c Adding check for no_netrc_files
> e1aede3 Adding check for pam_lastlog.so
> 9c21556 additional copy editing
> 3fd9f3f copy editing
> 9db6e3d Renaming oval check no_rsh_trusted_host_files to
> no_rsh_trust_files to match rule ID
> 4109078 Adding check for no_netrc_files
> 6f31c05 Adding check for pam_lastlog.so
> 0e15e2d Adding check for disabling GNOME thumbnailers in gconf
> d10f08e modified makefile to remove test attestation from prose guide
> -- revised
> 4f3ea5f corrections for typos in OVAL references
> d50c71b removal of references to nonexistent OVAL for some NFS guidance
> 980f686 refine verify-references to deal only with OVAL compliance
> checks for OVAL
> 6051ea6 removal of comments, reference to nonexistent OVAL
> 8251580 removal or correction of misnamed or obsolete OVAL checks
> 76e93ef removal of packages from check templates
> 69f31e0 Added backslash escapes to the warning texts to fix the RegEx,
> replaced line breaks with newlines, and added some m
> c22ed9c Added backslash escapes to the warning texts to fix the RegEx,
> replaced line breaks with newlines, and added some more f
> c58ac2b Fixing indenting for external variable line.
> 95d5a4b removal of unused OVAL checks
> bcc1495 bugfixes for undisciplined renaming jaunt, missing OVAL references
> 9a378b9 removal of unused OVAL checks
> 3b82cf5 deletion of unused OVAL checks
> 6a89088 removal of commented text, some redundant/unnecessary Rules
> from Profiles
> 9705192 deletion of unused/obsoleted OVAL checks (and commented out XCCDF)
> 36a75ec deletion of unused OVAL checks
> 48e9900 removal of unnecessary guidance from SSL section
> 7682f9c removal of commented/obsolete text from logging section
> a1f2d30 removal of commented text, invalid CCE from root logins guidance
> 0a3577b update to NFS section (still perhaps incomplete)
> 1a3d854 changed Dovecot Rule to Group as it is guidance and not a
> compliance check
> fb4a29b removal of commented/obsolete items for base services
> 9a228d5 updates to the CCE verification script to be more informative
> ff25fc9 cleanup of comments, unnecessary Rules in DNS (bind) service
> 7a16cda Deleting duplicate check for disabling IPv6
> d9d1741 Minor typo, removing slash at end of description
> 330258c added version info for RHEL, URL for project
> f36ecf3 removed some now-obsolete advice from samba
> 8d5ee52 added some clarifying text to the intro
> 6c9f047 removing some unnecessary (for compliance-focus) text from cups
> de705e9 Updated service_tftpd_disabled As reflected from update to
> template file
> 356405f Removed duplicate references to var_samba_private_directory
> Updated OVAL to have unique IDs
> 034b8b3 Removed duplicate references object_etc_skel_files Updated
> OVAL to have unique names
> d609d6b Removed duplicate var_ssh_config_directory references Updated
> OVAL to have unique names
> 8a7a3f3 Removed duplicate state_uid_root Updated OVAL to have unique names
> e421d69 Modified template_OVAL_package_installed and
> template_package_removed These files were causing build errors
> regarding ob
> 1ae4c30 Removed duplicate references to var_accounts_user_umask
> Assigned unique identifiers
> ea10f13 Removed duplicate references to object_lib_modules_files
> Assigned unique identifiers
> 882e341 Removed duplicate object_usr_lib64_files references Assigned
> unique identifiers within OVAL
> 9d89e61 Removed duplicate object_usr_lib64_dir references Assigned
> unique identifiers in OVAL
> 863aa19 Removed duplicate object_usr_lib_files references Assigned
> unique identifiers to OVAL checks
> 714c3c1 Removed duplicate object_usr_lib_dir Updated OVAL to have
> unique names
> dffd29b Removed duplicates of object_lib64_files Updated OVAL to have
> unique names
> bc6fbcd Removed duplicate object_lib64_dir Updated OVAL checks to have
> unique names
> fe089dc Removed duplicate object_lib_files Updated OVAL checks for
> unique names
> 7546f2e Removed duplicate object_lib_dir references Created unique
> names in the OVAL templates
> b376e27 Updated mount_option_* OVAL variable var_removable_partition
> These OVAL files were using duplicate 'var_remove_partition
> 7fae707 Updated template_permissions to place FILEID into strings
> e31dc7b Updated state_gid_0 to reflect per check naming
> 07380c0 Updated state_uid_0 names within OVAL Multiple OVAL checks
> were using "state_uid_0" causing build errors. Updated so eve
> f5b90ce Updated rpm_verify_hashes for OVAL 5.10 compliance The old
> rpmverify_* is now depricated, updated check to rpmverifyfile
> e3b5697 modified transform to only match test attestation
> 02a19e2 transform designed to remove the 'tested by' information
> a330ccf deleting files for imprecise and obsolete OVAL checks, manual
> remediation
> ca71cde simplification of Postfix service configuration
> 14397cd Removing a newline to fix XHTML formatting
> 7d1ab28 deletion of manual audit profile, OVAL for obsolete ldap
> server checks
> d7f3ca4 removed obsolete LDAP guidance, checks
9 years, 7 months
intermittent failure of oval check, how to debug?
by Brian Millett
Ok, how do I go about debugging this:
[root@deckard scap]# ./testcheck.py dir_perms_world_writable_sticky_bits.xml
Evaluating with OVAL tempfile : /tmp/dir_perms_world_writable_sticky_bitshof67c.xml
OpenSCAP Error: Unable to receive a message from probe [oval_probe_ext.c:583]
[root@deckard scap]# ./testcheck.py dir_perms_world_writable_sticky_bits.xml
Evaluating with OVAL tempfile : /tmp/dir_perms_world_writable_sticky_bitsLT_H5A.xml
OpenSCAP Error: Unable to receive a message from probe [oval_probe_ext.c:583]
[root@deckard scap]# ./testcheck.py dir_perms_world_writable_sticky_bits.xml
Evaluating with OVAL tempfile : /tmp/dir_perms_world_writable_sticky_bits6eM3gu.xml
OpenSCAP Error: Unable to receive a message from probe [oval_probe_ext.c:583]
[root@deckard scap]# ./testcheck.py dir_perms_world_writable_sticky_bits.xml
Evaluating with OVAL tempfile : /tmp/dir_perms_world_writable_sticky_bitsIWHsj4.xml
Definition oval:scap-security-guide.testing:def:100: false
The dir_perms_world_writable_sticky_bits test on ONE rhel6 machine is failing, but
sometimes it does not.
When I run an evaluation with the stig-rhel policy, I get
OpenSCAP Error: Unable to receive a message from probe [oval_probe_ext.c:584]
No definition with ID: oval:ssg:def:509 in result model. [oval_agent.c:182]
--
Brian Millett
"We are not through with the Centauri yet."
-- [ G'Kar (to Jha'dur), "Deathwalker"]
9 years, 9 months
Question about RHEL-06-000185
by Trevor Vaughan
All,
I've been running in compliance with this rule for quite some time now and
I'm noticing that the amount of noise that it produces is simply outrageous.
The suggestion is:
At a minimum the audit system should collect file permission changes for
all users and root. Add the following to "/etc/audit/audit.rules":
-a always,exit -F arch=b32 -S chown -F auid>=500 -F auid!=4294967295 \
-k perm_mod
If the system is 64 bit then also add the following:
-a always,exit -F arch=b64 -S chown -F auid>=500 -F auid!=4294967295 \
-k perm_mod
And here is the output of a normal workstation over about a week of
auditing and normal usage:
Syscall Summary Report
==========================
total syscall
==========================
24907 chmod
15870 chown
11169 rename
7409 open
6462 fchmod
5290 fchown
3687 umount2
1443 setsid
1166 fsetxattr
869 removexattr
456 adjtimex
360 fchmodat
337 lchown
211 setuid
69 mkdir
63 setsockopt
33 unlink
22 setxattr
20 clone
19 execve
7 fchownat
7 mount
7 creat
4 close
4 ioctl
3 symlink
2 mknod
1 rmdir
1 lsetxattr
1 clock_settime
1 capset
So, I get why this can be useful. But I'm not so sure that it's useful to
know that Pidgin dropped a new temp file every few minutes or that, each
time I open a file (and write a temp file), that I did this as a normal
user.
I just can't see the practicality of going through those top three calls on
a regular basis.
I'm not necessarily suggesting that this type of thing be dropped but I'd
like to understand how auditors won't fall into just ignoring them
completely.
Thoughts?
Thanks,
Trevor
--
Trevor Vaughan
Vice President, Onyx Point, Inc
(410) 541-6699
tvaughan(a)onyxpoint.com
-- This account not approved for unencrypted proprietary information --
9 years, 11 months
note for the USGCB tickets
by Jeffrey Blank
Shawn (et al),
The ticketing system shows me you'd opened up a bunch of tickets to add
a "New rule" for items which were in the old RHEL 5 USGCB profile.
Okay, great, this helps with ensuring there is continuation of that
profile/baseline with some consistency.
A few notes:
1) I've been able to close some of the tickets as "fixed", providing
explanation as to why. Some of them are being handled through other
mechanisms for RHEL 6.
2) If anybody starts executing on the other tickets, the goal is NOT to
add new rules as the ticket says, but rather to conduct investigation to
see if the Rule is applicable to RHEL 6 in the same way it was
applicable to RHEL 5.
3) In the ticket titles, there is some of the odd CCE language which
talks about disabling/enabling things "as appropriate". That's fine as
an identifier (and the RHEL 6 USGCB did use some of this language).
However, this style of language, which is intended for neither a human
nor a machine, should never appear in the project's XCCDF. (Just in case
anybody gets any ideas.)
Thanks,
Jeff
--
___________________________
Jeffrey Blank
410-854-8675
Technology and Systems Analysis / Network Components
NSA Information Assurance
9 years, 11 months
Suggestion for RHEL-06-000198
by Trevor Vaughan
All,
Currently the remediation text for RHEL-06-000198 reads as:
At a minimum the audit system should collect the execution of privileged
commands for all users and root. To find the relevant setuid programs:
# find / -xdev -type f -perm -4000 -o -perm -2000 2>/dev/null
Then, for each setuid program on the system, add a line of the following
form to "/etc/audit/audit.rules", where [SETUID_PROG_PATH] is the full path
to each setuid program in the list:
-a always,exit -F path=[SETUID_PROG_PATH] -F perm=x -F auid>=500 -F
auid!=4294967295 -k privileged
I would like to suggest that this be changed to
Add the following to audit.rules:
-a always,exit -F arch=b64 -F euid=0 -F uid!=0 -S execve -k suid-root-exec
-a always,exit -F arch=b64 -F egid=0 -F gid!=0 -S execve -k sgid-root-exec
-a always,exit -F arch=b32 -F euid=0 -F uid!=0 -S execve -k suid-root-exec
-a always,exit -F arch=b32 -F egid=0 -F gid!=0 -S execve -k sgid-root-exec
>From my testing, this appears to catch the execution of all suid/sgit
binaries without digging all over the system to figure out what they are.
As an added bonus, you get to find out about binaries that pop onto your
system for a brief period.
Thanks,
Trevor
--
Trevor Vaughan
Vice President, Onyx Point, Inc
(410) 541-6699
tvaughan(a)onyxpoint.com
-- This account not approved for unencrypted proprietary information --
9 years, 11 months
BUMP [PATCH] a check and fix for pam_cracklib.so minclass=X
by Brian Millett
Currently, there is not a check to see for pam_cracklib.so minclass in /etc/pam.d/system-auth.
This is a check and a fix for testing a password algorithm of minclass for
cracklib in /etc/pam.d/system-auth (IE)
pam_cracklib.so minclass=3
Brian Millett (1):
A check and fix for minclass password checking option
.../accounts_password_minclass_login_defs.xml | 43 ++++++++++++++++++++++
.../fixes/bash/password_require_minimun_class.sh | 6 +++
2 files changed, 49 insertions(+)
create mode 100644 RHEL6/input/checks/accounts_password_minclass_login_defs.xml
create mode 100644 RHEL6/input/fixes/bash/password_require_minimun_class.sh
--
1.8.2.1
9 years, 11 months
[PATCH 0/2] checks for faillock.sh accounts passwords
by Brian Millett
Added the checks for faillock unlock_tine and fail_interval as there was only the
check for faillock deny.
small change for the comment dealing with faillock deny default NOT being 5, but 3
Fixed (in my mind) a typo in RHEL6/input/system/accounts/pam.xml where the oval id for
rule deny_password_attempts_fail_interval from accounts_passwords_pam_fail_interval to
accounts_passwords_pam_faillock_fail_interval. This matches the oval id's for
accounts_passwords_pam_faillock_deny and accounts_passwords_pam_faillock_unlock_time
Brian Millett (2):
Added the checks for accounts_passwords_pam_fail_interval and
accounts_passwords_pam_faillock_unlock_time as there was only the
check for accounts_passwords_pam_faillock_deny
Fixed the oval id from accounts_passwords_pam_fail_interval to
accounts_passwords_pam_faillock_fail_interval to be consistant.
.../accounts_passwords_pam_fail_interval.xml | 49 ++++++++++++++++++++++
.../accounts_passwords_pam_faillock_deny.xml | 4 +-
...accounts_passwords_pam_faillock_unlock_time.xml | 49 ++++++++++++++++++++++
RHEL6/input/system/accounts/pam.xml | 2 +-
4 files changed, 101 insertions(+), 3 deletions(-)
create mode 100644 RHEL6/input/checks/accounts_passwords_pam_fail_interval.xml
create mode 100644 RHEL6/input/checks/accounts_passwords_pam_faillock_unlock_time.xml
--
1.8.2.1
9 years, 11 months
iptables
by Peter Vrabec
Hi list,
I have seen "iptables and ip6tables" section of rhel6-guide.html
recently and I have concerns about few recommendation.
example:
"Set Default iptables Policy for Incoming Packets"
----
To set the default policy to DROP (instead of ACCEPT) for the built-in
INPUT chain which processes incoming packets, add or correct the
following line in /etc/sysconfig/iptables:
:INPUT DROP [0:0]
In iptables the default policy is applied only after all the applicable
rules in the table are examined for a match. Setting the default policy
to DROP implements proper design for a firewall, i.e. any packets which
are not explicitly permitted should not be accepted.
---
This ^^^ is doable but it won't have any real effect since the last rule
of a built-in INPUT chain is REJECT. Default DROP policy won't be applied.
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with
icmp-host-prohibited
Please note I'm not a firewall expert, I just want to raise awareness.
Maybe I miss some important fact.
Peter.
9 years, 11 months
[PATCH] Some corrections to the PAM cracklib guidance...
by Maura Dailey
In addition to the changes I made (outlined just below), I noticed that there is no rule for the minlen
parameter for cracklib. Should I add a new rule, modeled on its neighbors?
I'm open to wording corrections. I noticed that the latest draft STIG is also incorrect with regards
to maxrepeat (it shares identical wording).
- Maura Dailey
Maura Dailey (1):
Some corrections to the PAM cracklib guidance as follows: corrected
pam_cracklib.so line to include all discussed parameters and edited
them to contain plausible values (ucredit was set to 0 for some reason),
corrected maxrepeat description to match other rules (it
incorrectly suggested that a brand new line be inserted, and
also gave an incorrect line insertion location as it referred to
lines that do not exist by default), and I added a suggestion to
add cracklib line if one does not exist
RHEL6/input/system/accounts/pam.xml | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
9 years, 11 months