leam hall wrote:
> Good questions from Skylar and others. Sorry if I was not forthcoming; my
> goal was to be brief enough to not bog anyone down in detail.
> 
> Aqueduct is used at DoD installations to secure the servers per DISA STIG
> guidelines. You can tell it's a government thing; too many acronyms.
> 
> My own work is STIG compliance for Red Hat and eventually Solaris boxes. I
> use Bourne/Bash shell scripts to do the work. So far there is no central
> collation mandated so each installation is on their own. Of course, the
> ideal would be a locally centralized CMDB plug-in that would feed any
> issues into a ticketing system. That's why the hostname is in the output,
> for collation.
> 
> Each OS version probably has 200-600 scripts to be run. Each script should
> be runnable on a system at any time; it should not change a complaint
> system. It should report if a system is compliant or not.
> 
> How big? Lots. Easily hundreds and eventually thousands of servers.
> 
> The problems? Lots. Lack of higher level language standardization, like
> Python. Lack of standard database (SQLite, MongoDB, etc), lack of a
> standard CMDB (ServiceNow, Remedy), and lack of pretty much any other
> standard.
> 
> At this point I'm biting off a small enough chunk to chew on for a bit. The
> goal is to leave the output open enough so sites can choose their own
> solution until I can maybe form some global FOSS company for integration
> and reporting.  :)

This is a good fit for a plugin. Provide a generic shell
function for processing results with a simple, robust API and
one or two usable plugins. Maybe --

   usage() {
       echo 'Usage $0 <scriptname> <passfail> [ <additional1> ] [ <additional2> 
] ... 
       Exit code: 0 (success)   1 (failed to report)  2 (error in calling arg)'
       logger -t STIGERROR -- "$@"
       exit 2
   }   

   stigreport() {
       [[ $# -gt 1 ]]                     || usagefoo
       [[ ( $1 = pass ) || ($1 = fail) ]] || usagefoo
       logger -t STIGCHECK -- "$@"
   }   

Calling example:

   [ a -eq b ] || stigreport fail script123 "$a must equal $b"

Output (syslog):

   Jul 11 07:47:44 tron STIGCHECK: fail script123 xxx must equal yyy

Site implementors can change stigreport() to insert into a DB,
write to stdout, emit JSON, whatever. If you might want to
change the calling convention someday add an argument for API
version to avoid updating 1,000 scripts.
   
HTH,
-- 
Charles

_______________________________________________
Discuss mailing list
[email protected]
https://lists.lopsa.org/cgi-bin/mailman/listinfo/discuss
This list provided by the League of Professional System Administrators
 http://lopsa.org/

Reply via email to