Upgrade to Pro — share decks privately, control downloads, hide ads and more …

STIG Compliance and Remediation with Ansible

STIG Compliance and Remediation with Ansible

Secure your environment with the Ansible STIG Role for RHEL 6.

Learn how to:

Get started with Ansible Core
Install the the STIG Role
Remediate and validate STIG findings
Use Ansible Tower to fully automate STIG compliance

Ansible

May 01, 2015
Tweet

More Decks by Ansible

Other Decks in Technology

Transcript

  1. PRESENTERS DAN SHEPHERD // MINDPOINT GROUP [email protected] o IT security

    Consultant o Helps USG and commercial customers respond to difficult IT security challenges JUSTIN NEMMERS // ANSIBLE GOVERNMENT [email protected] o IT architect and (recovering) sysadmin o 15 years of USG experience o Wrote first STIG Kickstarts w/ DISA for RHEL 3 and 4
  2. ORGANIZATIONS MINDPOINT GROUP o IT security consultancy o Helps customers

    consistently meet stringent security requirements o Well-versed in Ansible ANSIBLE o Simplest way to automate IT o Fastest growing IT automation platform o Simple, agentless, powerful
  3. WEBCAST GOALS Learn about Ansible Get started with Ansible and

    the STIG role Install the STIG role Apply role and remediate findings Fully automate compliance with Ansible Tower
  4. Ansible Enterprise Automation Simple. Agentless. Powerful. Control. Security. Delegation. /Uses

    OpenSSH /No extra code to manage /Ready for cloud-scale /Uses YAML for playbooks /No special coding skills needed /Fast learning curve /App deployment /Orchestration /Configuration management /Role-Based Access Control /Delegation of credentials/keys /Audit trail for automation /Centralized job runs /Job scheduling /Automation dashboard /Push-button job execution /Portal mode for delegation /REST API for integration Ansible Open Source Ansibl e Tower
  5. ANSIBLE IS COMPLETE AUTOMATION Ansible was written to automate complex

    multi-tier deployments, including: o Configuration management o App deployment o Provisioning o Servers & network devices o Cloud management & VMs o Zero-downtime rolling upgrades o Ad-hoc patches & updates
  6. ANSIBLE: THE LANGUAGE OF ENTERPRISE IT o Ansible is the

    first “infrastructure-as-code” that can be read and written across IT… from sys-admins to developers to managers o Ansible is the only automation engine that can automate the entire application lifecycle & continuous delivery pipeline DEV/TES T Q/A OPERATIONS MANAGEMENT INFRASTRUCTURE Ansible Playbook From development… to production.
  7. HISTORY OF BASELINES GOLD DISK o Infrequent, time consuming, and

    error prone o Inconsistent, relies on staff’s capability o No ongoing remediation or validation SEMI-AUTOMATION o Shell scripts, other tooling o Brittle. Changes really, really hurt o No ongoing remediation or compliance validation
  8. ANSIBLE AND SECURITY BASELINES REPEAT o Same process every time

    REMEDIATE o Apply STIG whenever desired VALIDATE o Confirm compliance IDEMPOTENT o Run and re-run over and over
  9. HOW MINDPOINT GROUP o Trusted o Capable RHEL 6.x (and

    variants) o Very common DISA STIG o Significant pain points for USG customers o SCAP for easy validation
  10. STIG ROLE COVERAGE CAT 1 (HIGH): 100% CAT 2 (MEDIUM):

    91% CAT 3 (LOW): 82% We don’t automatically correct every finding, as some are not always safe to run on live systems (i.e. partitioning).
  11. PLAYBOOK EXAMPLE Apply-stig.yml --- - name: Apply STIG to a

    RHEL 6.x System hosts: all sudo: yes vars: rhel6stig_cat1: true rhel6stig_cat2: true rhel6stig_cat3: true rhel6stig_fullauto: true roles: - rhel6stig
  12. CAT 1 ROLE EXAMPLE PLAY cat1.yml --- # CAT I

    Findings - name: V-38653 High The snmpd service must not use a default password replace: backup=yes dest=/etc/snmp/snmpd.conf regexp=(^com2sec. *default\s+)public replace=\1{{ rhel6stig_snmp_community }} ignore_errors: yes when: snmpconf_test.stat.exists notify: restart snmpd tags: [ 'cat1' , 'V-38653' , 'snmp' ] - name: V-38491 High There must be no hosts.equiv file on the system file: state=absent dest=/etc/hosts.equiv tags: [ 'cat1' , 'V-38491' , 'hosts_equiv' ] - name: V-38491 High There must be no .rhosts files on the system file: state=absent dest=~{{ item }}/.rhosts with_items: users.stdout_lines tags: [ 'cat1' , 'V-38491' , 'rhosts' ]
  13. GET THE STIG ROLE $ ansible-galaxy install https://github. com/MindPointGroup/RHEL6-STIG.git,devel $

    ansible-galaxy install -r requirements.yml requirements.yml - src: https://github.com/MindPointGroup/RHEL6-STIG name: rhel6-stig $ git clone https://github.com/MindPointGroup/RHEL6-STIG.git
  14. APPLY STIG ROLE FROM CLI Requires Ansible version >= 1.8

    $ ansible-playbook -i hosts apply-stig.yml
  15. CLI RESULTS Skipping Conditional caused test to be skipped (OK)

    Changed Role made a change on the system OK No action required
  16. OUR COMMUNITY FOLLOW US OR CONTRIBUTE o github.com/ansible/ansible-lockdown SEE SOMETHING

    THAT NEEDS FIXING? o Let us know, and help fix it! NEED HELP? o Paying customer? [email protected] o MindPoint Group Services o groups.google.com/forum/#!forum/ansible- project