{
    "version": "1.37.6",
    "controls": [
        {
            "status": "passed",
            "code_desc": "Linux Update should be uptodate",
            "run_time": 0.62424,
            "start_time": "2017-09-22 14:12:44 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"/etc/ssl/certs/dod-root-certs.pem\"]] should not be nil",
            "run_time": 0.000165,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "x509_certificate /etc/ssl/certs/dod-root-certs.pem should not be nil",
            "run_time": 0.000148,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "x509_certificate /etc/ssl/certs/dod-root-certs.pem subject.C should cmp == \"US\"",
            "run_time": 0.000452,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "x509_certificate /etc/ssl/certs/dod-root-certs.pem subject.O should cmp == \"U.S. Government\"",
            "run_time": 0.00032,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "DoD should be in \"DoD\" and \"ECA\"",
            "run_time": 0.000231,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/man/man8/nginx.8.gz should not exist",
            "run_time": 0.090759,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"/etc/ssl/certs/DOD.crl\"]] should not be nil",
            "run_time": 0.000139,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/ssl/certs/DOD.crl should be file",
            "run_time": 0.000135,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "0.28995194145833336 should cmp < 7",
            "run_time": 0.000189,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"10\"]] should not be nil",
            "run_time": 8.3e-5,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[\"10\"] should cmp <= 10",
            "run_time": 0.000261,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"10\"]] should not be nil",
            "run_time": 0.000141,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[\"10\"] should cmp <= 10",
            "run_time": 0.00017,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"5\", \"5\"]] should cmp == [[\"5\", \"5\"]]",
            "run_time": 0.000153,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"auto\"]] should cmp == [[\"auto\"]]",
            "run_time": 0.000151,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"on\"]] should cmp == [[\"on\"]]",
            "run_time": 0.000246,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"off\"]] should cmp == [[\"off\"]]",
            "run_time": 0.00015,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"off\"]] should cmp == [[\"off\"]]",
            "run_time": 0.000148,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"1k\"]] should not be nil",
            "run_time": 8.4e-5,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "1 should cmp <= 100",
            "run_time": 0.000185,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"1k\"]] should not be nil",
            "run_time": 0.000112,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "1 should cmp <= 100",
            "run_time": 0.000189,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"2\", \"1k\"]] should cmp == [[\"2\", \"1k\"]]",
            "run_time": 0.000146,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"1k\"]] should not be nil",
            "run_time": 7.9e-5,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "1 should cmp <= 1",
            "run_time": 0.000143,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000179,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000186,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 9.0e-5,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 8.9e-5,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.00013,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000124,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000106,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000173,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000171,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000154,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000193,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000193,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000311,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000103,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000179,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000138,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000254,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000158,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000151,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.0001,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 9.6e-5,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000155,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000305,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000175,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000115,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000101,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[] should be empty",
            "run_time": 0.000177,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[\"x\"] should not cmp == [\"\"]",
            "run_time": 0.000269,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "skipped",
            "code_desc": "Operating System Detection",
            "skip_message": "Skipped control due to only_if condition.",
            "resource": "Operating System Detection",
            "run_time": 1.1e-5,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package maven-compiler-plugin.noarch should not be installed",
            "run_time": 0.204002,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package maven-compiler-plugin-javadoc.noarch should not be installed",
            "run_time": 0.19625,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package ocaml-compiler-libs.x86_64 should not be installed",
            "run_time": 0.192731,
            "start_time": "2017-09-22 14:12:45 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package orc-compiler.x86_64 should not be installed",
            "run_time": 0.182606,
            "start_time": "2017-09-22 14:12:46 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package plexus-compiler.noarch should not be installed",
            "run_time": 0.180376,
            "start_time": "2017-09-22 14:12:46 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package plexus-compiler-extras.noarch should not be installed",
            "run_time": 0.193203,
            "start_time": "2017-09-22 14:12:46 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package plexus-compiler-javadoc.noarch should not be installed",
            "run_time": 0.202912,
            "start_time": "2017-09-22 14:12:46 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package plexus-compiler-pom.noarch should not be installed",
            "run_time": 0.18345,
            "start_time": "2017-09-22 14:12:46 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-c-compiler.x86_64 should not be installed",
            "run_time": 0.19152,
            "start_time": "2017-09-22 14:12:47 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-compiler.i686 should not be installed",
            "run_time": 0.183954,
            "start_time": "2017-09-22 14:12:47 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-compiler.x86_64 should not be installed",
            "run_time": 0.190892,
            "start_time": "2017-09-22 14:12:47 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package cal10n.noarch should not be installed",
            "run_time": 0.21971,
            "start_time": "2017-09-22 14:12:47 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package checkpolicy.x86_64 should not be installed",
            "run_time": 0.285565,
            "start_time": "2017-09-22 14:12:47 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package compat-gcc-44.x86_64 should not be installed",
            "run_time": 0.208997,
            "start_time": "2017-09-22 14:12:48 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package compat-gcc-44-c++.x86_64 should not be installed",
            "run_time": 0.197169,
            "start_time": "2017-09-22 14:12:48 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package compat-gcc-44-gfortran.x86_64 should not be installed",
            "run_time": 0.184967,
            "start_time": "2017-09-22 14:12:48 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package ecj.x86_64 should not be installed",
            "run_time": 0.190152,
            "start_time": "2017-09-22 14:12:48 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package gcc.x86_64 should not be installed",
            "run_time": 0.186674,
            "start_time": "2017-09-22 14:12:48 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package golang-docs.noarch should not be installed",
            "run_time": 0.192955,
            "start_time": "2017-09-22 14:12:49 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package golang-misc.noarch should not be installed",
            "run_time": 0.186996,
            "start_time": "2017-09-22 14:12:49 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package golang-tests.noarch should not be installed",
            "run_time": 0.19237,
            "start_time": "2017-09-22 14:12:49 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package ocaml.x86_64 should not be installed",
            "run_time": 0.219236,
            "start_time": "2017-09-22 14:12:49 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package samba-pidl.noarch should not be installed",
            "run_time": 0.177088,
            "start_time": "2017-09-22 14:12:49 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package teckit.i686 should not be installed",
            "run_time": 0.248101,
            "start_time": "2017-09-22 14:12:50 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package teckit.x86_64 should not be installed",
            "run_time": 0.249544,
            "start_time": "2017-09-22 14:12:50 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package teckit-devel.i686 should not be installed",
            "run_time": 0.219294,
            "start_time": "2017-09-22 14:12:50 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package teckit-devel.x86_64 should not be installed",
            "run_time": 0.207249,
            "start_time": "2017-09-22 14:12:50 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package xalan-j2-xsltc.noarch should not be installed",
            "run_time": 0.203836,
            "start_time": "2017-09-22 14:12:50 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package antlr-tool.noarch should not be installed",
            "run_time": 0.189615,
            "start_time": "2017-09-22 14:12:51 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package automoc.x86_64 should not be installed",
            "run_time": 0.187856,
            "start_time": "2017-09-22 14:12:51 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package bcel.noarch should not be installed",
            "run_time": 0.177579,
            "start_time": "2017-09-22 14:12:51 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package boost-build.noarch should not be installed",
            "run_time": 0.206171,
            "start_time": "2017-09-22 14:12:51 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package boost-python.i686 should not be installed",
            "run_time": 0.201613,
            "start_time": "2017-09-22 14:12:51 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package boost-python.x86_64 should not be installed",
            "run_time": 0.174389,
            "start_time": "2017-09-22 14:12:52 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package clang.x86_64 should not be installed",
            "run_time": 0.188197,
            "start_time": "2017-09-22 14:12:52 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package clang-devel.x86_64 should not be installed",
            "run_time": 0.219018,
            "start_time": "2017-09-22 14:12:52 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package cmake.x86_64 should not be installed",
            "run_time": 0.233543,
            "start_time": "2017-09-22 14:12:52 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package codemodel.noarch should not be installed",
            "run_time": 0.19259,
            "start_time": "2017-09-22 14:12:52 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package cpp.x86_64 should not be installed",
            "run_time": 0.191169,
            "start_time": "2017-09-22 14:12:53 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package gcc-c++.x86_64 should not be installed",
            "run_time": 0.187088,
            "start_time": "2017-09-22 14:12:53 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package gcc-gfortran.x86_64 should not be installed",
            "run_time": 0.177965,
            "start_time": "2017-09-22 14:12:53 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package gcc-gnat.x86_64 should not be installed",
            "run_time": 0.177524,
            "start_time": "2017-09-22 14:12:53 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package gcc-go.x86_64 should not be installed",
            "run_time": 0.200122,
            "start_time": "2017-09-22 14:12:53 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package golang-bin.x86_64 should not be installed",
            "run_time": 0.224601,
            "start_time": "2017-09-22 14:12:54 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package golang-src.noarch should not be installed",
            "run_time": 0.198211,
            "start_time": "2017-09-22 14:12:54 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package javacc.noarch should not be installed",
            "run_time": 0.196832,
            "start_time": "2017-09-22 14:12:54 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package libffi.i686 should not be installed",
            "run_time": 0.187802,
            "start_time": "2017-09-22 14:12:54 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package libffi.x86_64 should not be installed",
            "run_time": 0.179939,
            "start_time": "2017-09-22 14:12:54 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package libsemanage.i686 should not be installed",
            "run_time": 0.201244,
            "start_time": "2017-09-22 14:12:55 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package libsemanage.x86_64 should not be installed",
            "run_time": 0.218479,
            "start_time": "2017-09-22 14:12:55 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package libsepol.i686 should not be installed",
            "run_time": 0.18915,
            "start_time": "2017-09-22 14:12:55 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package libsepol.x86_64 should not be installed",
            "run_time": 0.189282,
            "start_time": "2017-09-22 14:12:55 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package llvm.x86_64 should not be installed",
            "run_time": 0.191381,
            "start_time": "2017-09-22 14:12:55 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package llvm-doc.noarch should not be installed",
            "run_time": 0.191281,
            "start_time": "2017-09-22 14:12:56 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package llvm-libs.x86_64 should not be installed",
            "run_time": 0.254814,
            "start_time": "2017-09-22 14:12:56 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package llvm-static.x86_64 should not be installed",
            "run_time": 0.214648,
            "start_time": "2017-09-22 14:12:56 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package ncurses.x86_64 should not be installed",
            "run_time": 0.198159,
            "start_time": "2017-09-22 14:12:56 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package netsniff-ng.x86_64 should not be installed",
            "run_time": 0.181901,
            "start_time": "2017-09-22 14:12:56 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package orc.i686 should not be installed",
            "run_time": 0.196094,
            "start_time": "2017-09-22 14:12:57 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package orc.x86_64 should not be installed",
            "run_time": 0.175049,
            "start_time": "2017-09-22 14:12:57 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package perl-ExtUtils-CBuilder.noarch should not be installed",
            "run_time": 0.174425,
            "start_time": "2017-09-22 14:12:57 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package perl-Filter.x86_64 should not be installed",
            "run_time": 0.254994,
            "start_time": "2017-09-22 14:12:57 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package perl-Package-Stash-XS.x86_64 should not be installed",
            "run_time": 0.23653,
            "start_time": "2017-09-22 14:12:57 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package perl-Parse-Yapp.noarch should not be installed",
            "run_time": 0.1849,
            "start_time": "2017-09-22 14:12:58 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package pkgconfig.i686 should not be installed",
            "run_time": 0.188058,
            "start_time": "2017-09-22 14:12:58 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package pkgconfig.x86_64 should not be installed",
            "run_time": 0.178005,
            "start_time": "2017-09-22 14:12:58 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-devel.i686 should not be installed",
            "run_time": 0.189291,
            "start_time": "2017-09-22 14:12:58 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-devel.x86_64 should not be installed",
            "run_time": 0.188582,
            "start_time": "2017-09-22 14:12:58 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-lite.i686 should not be installed",
            "run_time": 0.191269,
            "start_time": "2017-09-22 14:12:59 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-lite.x86_64 should not be installed",
            "run_time": 0.178058,
            "start_time": "2017-09-22 14:12:59 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-lite-devel.i686 should not be installed",
            "run_time": 0.197542,
            "start_time": "2017-09-22 14:12:59 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-lite-devel.x86_64 should not be installed",
            "run_time": 0.183488,
            "start_time": "2017-09-22 14:12:59 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-lite-static.i686 should not be installed",
            "run_time": 0.190882,
            "start_time": "2017-09-22 14:12:59 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package protobuf-lite-static.x86_64 should not be installed",
            "run_time": 0.194238,
            "start_time": "2017-09-22 14:13:00 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package qt3-devel.i686 should not be installed",
            "run_time": 0.177709,
            "start_time": "2017-09-22 14:13:00 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package qt3-devel.x86_64 should not be installed",
            "run_time": 0.175524,
            "start_time": "2017-09-22 14:13:00 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package relaxngcc.noarch should not be installed",
            "run_time": 0.190007,
            "start_time": "2017-09-22 14:13:00 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package vala.i686 should not be installed",
            "run_time": 0.18638,
            "start_time": "2017-09-22 14:13:00 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package vala.x86_64 should not be installed",
            "run_time": 0.180397,
            "start_time": "2017-09-22 14:13:00 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package vala-devel.i686 should not be installed",
            "run_time": 0.190114,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package vala-devel.x86_64 should not be installed",
            "run_time": 0.18049,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package ws-jaxme.noarch should not be installed",
            "run_time": 0.180142,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "skipped",
            "code_desc": "Operating System Detection",
            "skip_message": "Skipped control due to only_if condition.",
            "resource": "Operating System Detection",
            "run_time": 8.0e-6,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "localhost:80 should match /[0-9]+(?:\\.[0-9]+){3}|[a-zA-Z]:[0-9]+/",
            "run_time": 0.001089,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "false should equal false",
            "run_time": 0.00013,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "Nginx Environment version should cmp >= \"1.12.0\"",
            "run_time": 0.000228,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "root should match /root|nginx/",
            "run_time": 0.000114,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/nginx.conf owner should match /root|nginx/",
            "run_time": 0.000108,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/nginx.conf group should match /root|nginx/",
            "run_time": 0.000101,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/nginx.conf mode should cmp <= 432",
            "run_time": 0.000163,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/mime.types owner should match /root|nginx/",
            "run_time": 0.000145,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/mime.types group should match /root|nginx/",
            "run_time": 9.6e-5,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/mime.types mode should cmp <= 432",
            "run_time": 0.000144,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf owner should match /root|nginx/",
            "run_time": 0.000101,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf group should match /root|nginx/",
            "run_time": 0.000264,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf mode should cmp <= 432",
            "run_time": 0.000167,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf owner should match /root|nginx/",
            "run_time": 9.9e-5,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf group should match /root|nginx/",
            "run_time": 9.4e-5,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf mode should cmp <= 432",
            "run_time": 0.000203,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[\"systemd\", \"systemd-journal\", \"systemd-udevd\", \"dbus-daemon\", \"systemd-logind\", \"nginx\", \"agetty\", \"ps\"] should be in \"nginx\", \"systemd\", \"systemd-journal\", \"systemd-udevd\", \"systemd-logind\", \"dbus-daemon\", \"agetty\", \"bash\", and \"ps\"",
            "run_time": 0.000212,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "skipped",
            "code_desc": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
            "skip_message": "Skipped: .htpasswd file not found",
            "resource": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
            "run_time": 7.0e-6,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "skipped",
            "code_desc": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
            "skip_message": "Skipped: Access control file .htaccess not found",
            "resource": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
            "run_time": 5.0e-6,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "skipped",
            "code_desc": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
            "skip_message": "Skipped: Access control file .htpasswd not found",
            "resource": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
            "run_time": 5.0e-6,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/nginx.conf owner should match /root|nginx/",
            "run_time": 0.000118,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/nginx.conf group should match /root|nginx/",
            "run_time": 9.6e-5,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/nginx.conf mode should cmp <= 432",
            "run_time": 0.000154,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/mime.types owner should match /root|nginx/",
            "run_time": 9.7e-5,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/mime.types group should match /root|nginx/",
            "run_time": 0.000124,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/mime.types mode should cmp <= 432",
            "run_time": 0.000139,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf owner should match /root|nginx/",
            "run_time": 9.4e-5,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf group should match /root|nginx/",
            "run_time": 0.000127,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf mode should cmp <= 432",
            "run_time": 0.000149,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf owner should match /root|nginx/",
            "run_time": 0.000105,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf group should match /root|nginx/",
            "run_time": 9.3e-5,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf mode should cmp <= 432",
            "run_time": 0.000252,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html/app1 owner should match /root|nginx/",
            "run_time": 0.074648,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html/app1 group should match /root|nginx/",
            "run_time": 0.000159,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html/app1 sticky should equal true",
            "run_time": 0.000135,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html/app2 owner should match /root|nginx/",
            "run_time": 0.06638,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html/app2 group should match /root|nginx/",
            "run_time": 0.000192,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html/app2 sticky should equal true",
            "run_time": 0.000184,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[\"nginx\"] should be in \"root\" and \"nginx\"",
            "run_time": 0.000329,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/sbin/nginx should be owned by \"root\"",
            "run_time": 0.000183,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/sbin/nginx group should cmp == \"root\"",
            "run_time": 0.000244,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/sbin/nginx mode should cmp <= 550",
            "run_time": 0.000304,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/ should be owned by \"root\"",
            "run_time": 0.000164,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/ group should cmp == \"root\"",
            "run_time": 0.000228,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/ mode should cmp <= 770",
            "run_time": 0.000425,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d should be owned by \"root\"",
            "run_time": 0.000265,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d group should cmp == \"root\"",
            "run_time": 0.00048,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/conf.d mode should cmp <= 770",
            "run_time": 0.000323,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/modules should be owned by \"root\"",
            "run_time": 0.000293,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/modules group should cmp == \"root\"",
            "run_time": 0.000516,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /etc/nginx/modules mode should cmp <= 770",
            "run_time": 0.0009,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html should be owned by \"nginx\"",
            "run_time": 0.001347,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html group should cmp == \"nginx\"",
            "run_time": 0.000755,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /usr/share/nginx/html mode should cmp <= 664",
            "run_time": 0.000311,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /var/log/nginx should be owned by \"root\"",
            "run_time": 0.000359,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /var/log/nginx group should cmp == \"root\"",
            "run_time": 0.000336,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /var/log/nginx mode should cmp <= 750",
            "run_time": 0.000632,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "Port 25 should not be listening",
            "run_time": 0.14362,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "System Package audit should be installed",
            "run_time": 0.376298,
            "start_time": "2017-09-22 14:13:01 -0400"
        },
        {
            "status": "passed",
            "code_desc": "Nginx Environment modules should be in \"http_addition\", \"http_auth_request\", \"http_dav\", \"http_flv\", \"http_gunzip\", \"http_gzip_static\", \"http_mp4\", \"http_random_index\", \"http_realip\", \"http_secure_link\", \"http_slice\", \"http_ssl\", \"http_stub_status\", \"http_sub\", \"http_v2\", \"mail_ssl\", \"stream_realip\", \"stream_ssl\", and \"stream_ssl_preread\"",
            "run_time": 0.000416,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "Nginx Environment modules should not be in",
            "run_time": 0.000158,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "Nginx Environment modules should not include \"ngx_http_dav\"",
            "run_time": 0.001536,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "Nginx Environment modules should not include \"ngx_http_status\"",
            "run_time": 0.000163,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "Nginx Environment modules should not include \"ngx_http_proxy\"",
            "run_time": 0.000175,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /var/run/nginx.pid should exist",
            "run_time": 0.048514,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /var/run/nginx.pid owner should match /nginx|root/",
            "run_time": 0.069752,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /var/run/nginx.pid group should match /nginx|root/",
            "run_time": 0.000179,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "File /var/run/nginx.pid mode should cmp <= 432",
            "run_time": 0.000341,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/var/run/nginx.pid should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000146,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/var/run/nginx.pid should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "localhost:80 should match /[0-9]+(?:\\.[0-9]+){3}|[a-zA-Z]:[0-9]+/",
            "run_time": 0.000138,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "localhost should not cmp == \"0.0.0.0\"",
            "run_time": 0.000232,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "localhost should not cmp == \"[::ffff:0.0.0.0]\"",
            "run_time": 0.000202,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "Nginx Environment modules should not include \"ngx_autoindex\"",
            "run_time": 0.000277,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[{\"_\"=>[\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"], \"return\"=>[[\"444\"]]}] should not be nil",
            "run_time": 0.000153,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "{\"_\"=>[\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"], \"return\"=>[[\"444\"]]} should not be nil",
            "run_time": 0.000104,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "{\"_\"=>[\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"], \"return\"=>[[\"444\"]]} [\"_\"] should cmp == [\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"]",
            "run_time": 0.000257,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "{\"_\"=>[\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"], \"return\"=>[[\"444\"]]} [\"return\"] should cmp == [[\"444\"]]",
            "run_time": 0.000259,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"on\"]] should cmp == [[\"on\"]]",
            "run_time": 0.000164,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH'\"]] should not be nil",
            "run_time": 9.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!aNULL\"",
            "run_time": 0.000122,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!eNULL\"",
            "run_time": 9.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!EXPORT\"",
            "run_time": 0.0001,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!DES\"",
            "run_time": 0.0001,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!MD5\"",
            "run_time": 8.9e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!PSK\"",
            "run_time": 0.000133,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!RC4\"",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"@STRENGTH\"",
            "run_time": 8.9e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "skipped",
            "code_desc": "Operating System Detection",
            "skip_message": "Skipped control due to only_if condition.",
            "resource": "Operating System Detection",
            "run_time": 1.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[\"auditd\", \"brandbot\", \"dbus\", \"dracut-shutdown\", \"emergency\", \"getty@tty1\", \"kmod-static-nodes\", \"network\", \"nginx\", \"rc-local\", \"rescue\", \"rhel-autorelabel-mark\", \"rhel-autorelabel\", \"rhel-configure\", \"rhel-dmesg\", \"rhel-import-state\", \"rhel-loadmodules\", \"rhel-readonly\", \"systemd-ask-password-console\", \"systemd-ask-password-wall\", \"systemd-binfmt\", \"systemd-firstboot\", \"systemd-fsck-root\", \"systemd-hwdb-update\", \"systemd-initctl\", \"systemd-journal-catalog-update\", \"systemd-journal-flush\", \"systemd-journald\", \"systemd-logind\", \"systemd-modules-load\", \"systemd-random-seed\", \"systemd-readahead-collect\", \"systemd-readahead-done\", \"systemd-readahead-replay\", \"systemd-reboot\", \"systemd-shutdownd\", \"systemd-sysctl\", \"systemd-tmpfiles-clean\", \"systemd-tmpfiles-setup-dev\", \"systemd-tmpfiles-setup\", \"systemd-udev-trigger\", \"systemd-udevd\", \"systemd-update-done\", \"systemd-update-utmp-runlevel\", \"systemd-update-utmp\", \"systemd-user-sessions\", \"systemd-vconsole-setup\"] should be in \"brandbot\", \"dbus\", \"dracut-shutdown\", \"emergency\", \"getty@tty1\", \"kmod-static-nodes\", \"network\", \"nginx\", \"rc-local\", \"rescue\", \"rhel-autorelabel-mark\", \"rhel-autorelabel\", \"rhel-configure\", \"rhel-dmesg\", \"rhel-import-state\", \"rhel-loadmodules\", \"rhel-readonly\", \"serial-getty@ttyS0\", \"systemd-ask-password-console\", \"systemd-ask-password-wall\", \"systemd-binfmt\", \"systemd-firstboot\", \"systemd-fsck-root\", \"systemd-hwdb-update\", \"systemd-initctl\", \"systemd-journal-catalog-update\", \"systemd-journal-flush\", \"systemd-journald\", \"systemd-logind\", \"systemd-modules-load\", \"systemd-random-seed\", \"systemd-readahead-collect\", \"systemd-readahead-done\", \"systemd-readahead-replay\", \"systemd-reboot\", \"systemd-shutdownd\", \"systemd-sysctl\", \"systemd-tmpfiles-clean\", \"systemd-tmpfiles-setup-dev\", \"systemd-tmpfiles-setup\", \"systemd-udev-trigger\", \"systemd-udevd\", \"systemd-update-done\", \"systemd-update-utmp-runlevel\", \"systemd-update-utmp\", \"systemd-user-sessions\", \"systemd-vconsole-setup\", and \"auditd\"",
            "run_time": 0.000561,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[\"auditd\", \"brandbot\", \"dbus\", \"dracut-shutdown\", \"emergency\", \"getty@tty1\", \"kmod-static-nodes\", \"network\", \"nginx\", \"rc-local\", \"rescue\", \"rhel-autorelabel-mark\", \"rhel-autorelabel\", \"rhel-configure\", \"rhel-dmesg\", \"rhel-import-state\", \"rhel-loadmodules\", \"rhel-readonly\", \"systemd-ask-password-console\", \"systemd-ask-password-wall\", \"systemd-binfmt\", \"systemd-firstboot\", \"systemd-fsck-root\", \"systemd-hwdb-update\", \"systemd-initctl\", \"systemd-journal-catalog-update\", \"systemd-journal-flush\", \"systemd-journald\", \"systemd-logind\", \"systemd-modules-load\", \"systemd-random-seed\", \"systemd-readahead-collect\", \"systemd-readahead-done\", \"systemd-readahead-replay\", \"systemd-reboot\", \"systemd-shutdownd\", \"systemd-sysctl\", \"systemd-tmpfiles-clean\", \"systemd-tmpfiles-setup-dev\", \"systemd-tmpfiles-setup\", \"systemd-udev-trigger\", \"systemd-udevd\", \"systemd-update-done\", \"systemd-update-utmp-runlevel\", \"systemd-update-utmp\", \"systemd-user-sessions\", \"systemd-vconsole-setup\"] should not be in \"mysql\", \"postgres\", and \"named\"",
            "run_time": 0.000201,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/sbin/auditd should not cmp == \"/\"",
            "run_time": 0.000169,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/sbin/auditd should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000116,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/sbin/auditd should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/libexec/initscripts/brandbot should not cmp == \"/\"",
            "run_time": 0.000155,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/libexec/initscripts/brandbot should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000201,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/libexec/initscripts/brandbot should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000158,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/dbus-daemon should not cmp == \"/\"",
            "run_time": 0.000276,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/dbus-daemon should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000115,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/dbus-daemon should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.9e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/dracut/dracut-initramfs-restore should not cmp == \"/\"",
            "run_time": 0.000181,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/dracut/dracut-initramfs-restore should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000105,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/dracut/dracut-initramfs-restore should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.5e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/sh should not cmp == \"/\"",
            "run_time": 0.000142,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/sh should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/sh should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.3e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/sbin/agetty should not cmp == \"/\"",
            "run_time": 0.000188,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/sbin/agetty should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.6e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/sbin/agetty should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.7e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/kmod should not cmp == \"/\"",
            "run_time": 0.000163,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/kmod should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.3e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/kmod should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000132,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/etc/rc.d/init.d/network should not cmp == \"/\"",
            "run_time": 0.000185,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/etc/rc.d/init.d/network should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/etc/rc.d/init.d/network should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000114,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/sbin/nginx should not cmp == \"/\"",
            "run_time": 0.000193,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/sbin/nginx should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.2e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/sbin/nginx should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.1e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/etc/rc.d/rc.local should not cmp == \"/\"",
            "run_time": 0.000141,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/etc/rc.d/rc.local should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/etc/rc.d/rc.local should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000216,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/sh should not cmp == \"/\"",
            "run_time": 0.000288,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/sh should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.0001,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/sh should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.1e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/touch should not cmp == \"/\"",
            "run_time": 0.00017,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/touch should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 9.5e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/bin/touch should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-autorelabel should not cmp == \"/\"",
            "run_time": 0.000143,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-autorelabel should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 9.7e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-autorelabel should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-configure should not cmp == \"/\"",
            "run_time": 0.000237,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-configure should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000163,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-configure should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000127,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/rhel-dmesg should not cmp == \"/\"",
            "run_time": 0.000228,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/rhel-dmesg should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000113,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/rhel-dmesg should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.2e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-import-state should not cmp == \"/\"",
            "run_time": 0.000181,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-import-state should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-import-state should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000108,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-loadmodules should not cmp == \"/\"",
            "run_time": 0.000145,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-loadmodules should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 9.1e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-loadmodules should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-readonly should not cmp == \"/\"",
            "run_time": 0.000142,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-readonly should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/lib/systemd/rhel-readonly should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000105,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not cmp == \"/\"",
            "run_time": 0.000165,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.1e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not cmp == \"/\"",
            "run_time": 0.000153,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.3e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-binfmt should not cmp == \"/\"",
            "run_time": 0.00015,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-binfmt should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000132,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-binfmt should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-firstboot should not cmp == \"/\"",
            "run_time": 0.000169,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-firstboot should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.6e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-firstboot should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-fsck should not cmp == \"/\"",
            "run_time": 0.000173,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-fsck should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.00016,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-fsck should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-hwdb should not cmp == \"/\"",
            "run_time": 0.000186,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-hwdb should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 9.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-hwdb should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-initctl should not cmp == \"/\"",
            "run_time": 0.000168,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-initctl should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.6e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-initctl should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000216,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/journalctl should not cmp == \"/\"",
            "run_time": 0.000384,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/journalctl should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000143,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/journalctl should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/journalctl should not cmp == \"/\"",
            "run_time": 0.000174,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/journalctl should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 9.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/journalctl should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.5e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-journald should not cmp == \"/\"",
            "run_time": 0.000152,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-journald should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.3e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-journald should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-logind should not cmp == \"/\"",
            "run_time": 0.000166,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-logind should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000132,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-logind should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.7e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-modules-load should not cmp == \"/\"",
            "run_time": 0.000159,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-modules-load should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.9e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-modules-load should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000139,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-random-seed should not cmp == \"/\"",
            "run_time": 0.000151,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-random-seed should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.6e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-random-seed should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-readahead should not cmp == \"/\"",
            "run_time": 0.00016,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-readahead should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-readahead should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 7.9e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-notify should not cmp == \"/\"",
            "run_time": 0.000141,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-notify should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000102,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-notify should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.2e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-readahead should not cmp == \"/\"",
            "run_time": 0.000143,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-readahead should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-readahead should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.1e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemctl should not cmp == \"/\"",
            "run_time": 0.000138,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemctl should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.5e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemctl should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.2e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-shutdownd should not cmp == \"/\"",
            "run_time": 0.00014,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-shutdownd should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 9.7e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-shutdownd should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-sysctl should not cmp == \"/\"",
            "run_time": 0.00014,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-sysctl should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 8.5e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-sysctl should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 8.4e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not cmp == \"/\"",
            "run_time": 0.000141,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000241,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000192,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not cmp == \"/\"",
            "run_time": 0.000385,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000148,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.00013,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not cmp == \"/\"",
            "run_time": 0.000223,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000123,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000122,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/udevadm should not cmp == \"/\"",
            "run_time": 0.0002,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/udevadm should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000101,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/bin/udevadm should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000114,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-udevd should not cmp == \"/\"",
            "run_time": 0.0002,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-udevd should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.00012,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-udevd should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.00012,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-done should not cmp == \"/\"",
            "run_time": 0.000196,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-done should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000104,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-done should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000102,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not cmp == \"/\"",
            "run_time": 0.000167,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000104,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 9.9e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not cmp == \"/\"",
            "run_time": 0.000166,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000103,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000107,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-user-sessions should not cmp == \"/\"",
            "run_time": 0.000169,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-user-sessions should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000113,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-user-sessions should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000101,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-vconsole-setup should not cmp == \"/\"",
            "run_time": 0.000218,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-vconsole-setup should not match \"/usr/share/nginx/html/app1\"",
            "run_time": 0.000123,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "/usr/lib/systemd/systemd-vconsole-setup should not match \"/usr/share/nginx/html/app2\"",
            "run_time": 0.000102,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"off\"]] should cmp == [[\"off\"]]",
            "run_time": 0.000186,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "should equal nil",
            "run_time": 8.8e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "should equal nil",
            "run_time": 8.0e-5,
            "start_time": "2017-09-22 14:13:02 -0400"
        },
        {
            "status": "passed",
            "code_desc": "[[\"TLSv1\", \"TLSv1.1\", \"TLSv1.2\"]] should cmp == [[\"TLSv1\", \"TLSv1.1\", \"TLSv1.2\"]]",
            "run_time": 0.000171,
            "start_time": "2017-09-22 14:13:02 -0400"
        }
    ],
    "other_checks": [],
    "profiles": [
        {
            "name": "nginx-baseline",
            "title": "DevSec Nginx Baseline",
            "maintainer": "DevSec Hardening Framework Team",
            "copyright": "DevSec Hardening Framework Team",
            "copyright_email": "hello@dev-sec.io",
            "license": "Apache 2 license",
            "summary": "Test-suite for best-practice nginx hardening",
            "version": "2.0.2",
            "supports": [{ "os-family": "unix" }],
            "controls": [
                {
                    "title": "The Web site software used with the web server must have all\n  applicable security patches applied and documented.",
                    "desc": "The IAVM process does not address all patches that have been identified\n  for the host operating system or, in this case, the web server software\n  environment. Many vendors have subscription services available to notify\n  users of known security threats. The site needs to be aware of these fixes\n  and make determinations based on local policy and what software features are\n  installed, if these patches need to be applied.\n\n  In some cases, patches also apply to middleware and database systems.\n  Maintaining the security of web servers requires frequent reviews of security\n  notices. Many security notices mandate the installation of a software patch to\n  overcome security vulnerabilities.\n\n  SAs and ISSOs should regularly check the vendor support web site for patches\n  and information related to the web server software. All applicable security\n  patches will be applied to the operating system and to the web server\n  software. Security patches are deemed applicable if the product is installed,\n  even if it is not used or is disabled.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA230",
                        "gid": "V-13613",
                        "rid": "SV-32969r2_rule",
                        "stig_id": "WA230 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "Query the web administrator to determine if the site has a\n  detailed process as part of its configuration management plan to stay\n  compliant with all security-related patches.\n\n  Proposed Questions: How does the SA stay current with web server vendor\n  patches? How is the SA notified when a new security patch is issued by the\n  vendor? (Exclude the IAVM.) What is the process followed for applying patches\n  to the web server?\n\n  If the site is not in compliance with all applicable security patches, this is\n  a finding.",
                        "fix": "Establish a detailed process as part of the configuration\n  management plan to stay compliant with all web server security-related\n  patches."
                    },
                    "code": "control \"V-13613\" do\n\n  title \"The Web site software used with the web server must have all\n  applicable security patches applied and documented.\"\n\n  desc \"The IAVM process does not address all patches that have been identified\n  for the host operating system or, in this case, the web server software\n  environment. Many vendors have subscription services available to notify\n  users of known security threats. The site needs to be aware of these fixes\n  and make determinations based on local policy and what software features are\n  installed, if these patches need to be applied.\n\n  In some cases, patches also apply to middleware and database systems.\n  Maintaining the security of web servers requires frequent reviews of security\n  notices. Many security notices mandate the installation of a software patch to\n  overcome security vulnerabilities.\n\n  SAs and ISSOs should regularly check the vendor support web site for patches\n  and information related to the web server software. All applicable security\n  patches will be applied to the operating system and to the web server\n  software. Security patches are deemed applicable if the product is installed,\n  even if it is not used or is disabled.  \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA230\"\n  tag \"gid\": \"V-13613\"\n  tag \"rid\": \"SV-32969r2_rule\"\n  tag \"stig_id\": \"WA230 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"Query the web administrator to determine if the site has a\n  detailed process as part of its configuration management plan to stay\n  compliant with all security-related patches.\n\n  Proposed Questions: How does the SA stay current with web server vendor\n  patches? How is the SA notified when a new security patch is issued by the\n  vendor? (Exclude the IAVM.) What is the process followed for applying patches\n  to the web server?\n\n  If the site is not in compliance with all applicable security patches, this is\n  a finding.\"\n\n  tag \"fix\": \"Establish a detailed process as part of the configuration\n  management plan to stay compliant with all web server security-related\n  patches.\"\n\n  begin\n    describe linux_update do\n      it { should be_uptodate }\n    end\n\n    linux_update.updates.each do |update|\n      describe package(update['name']) do\n        its('version') { should eq update['version'] }\n      end\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13613.rb",
                        "line": 29
                    },
                    "id": "V-13613",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "Linux Update should be uptodate",
                            "run_time": 0.62424,
                            "start_time": "2017-09-22 14:12:44 -0400"
                        }
                    ]
                },
                {
                    "title": "A private web server’s list of CAs in a trust hierarchy must lead to\n  an authorizedDoD PKI Root CA.",
                    "desc": "A PKI certificate is a digital identifier that establishes the identity\n  of an individual or a platform. A server that has a certificate provides\n  users with third-party confirmation of authenticity. Most web browsers\n  perform server authentication automatically and the user is notified only if\n  the authentication fails. The authentication process between the server and\n  the client is performed using the SSL/TLS protocol. Digital certificates are\n  authenticated, issued, and managed by a trusted Certificate Authority (CA).\n\n  The use of a trusted certificate validation hierarchy is crucial to the\n  ability to control access to a site’s server and to prevent unauthorized\n  access. Only DoD-approved PKIs will be utilized.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG355",
                        "gid": "V-13620",
                        "rid": "SV-32936r1_rule",
                        "stig_id": "WG355 A22",
                        "nist": ["IA-5", "SC-12", "Rev_4"],
                        "check": "Enter the following command:\n\n  find / -name ssl.conf  note the path of the file.\n\n  grep ssl_client_certificate in conf files in context http,server\n\n  Review the results to determine the path of the ssl_client_certificate.\n\n  more /path/of/ca-bundle.crt\n\n  Examine the contents of this file to determine if the trusted CAs are DoD\n  approved. If the trusted CA that is used to authenticate users to the web site\n  does not lead to an approved DoD CA, this is a finding.\n\n  NOTE: There are non DoD roots that must be on the server in order for it to\n  function. Some applications, such as anti-virus programs, require root CAs to\n  function. DoD approved certificate can include the External Certificate\n  Authorities (ECA), if approved by the DAA. The PKE InstallRoot 3.06 System\n  Administrator Guide (SAG), dated 8 Jul 2008, contains a complete list of DoD,\n  ECA, and IECA CAs.",
                        "fix": "Configure the web server’s trust store to trust only DoD-\n  approved PKIs (e.g., DoD PKI, DoD ECA, and DoD-approved external partners)."
                    },
                    "code": "control \"V-13620\" do\n\n  title \"A private web server’s list of CAs in a trust hierarchy must lead to\n  an authorizedDoD PKI Root CA.\"\n\n  desc \"A PKI certificate is a digital identifier that establishes the identity\n  of an individual or a platform. A server that has a certificate provides\n  users with third-party confirmation of authenticity. Most web browsers\n  perform server authentication automatically and the user is notified only if\n  the authentication fails. The authentication process between the server and\n  the client is performed using the SSL/TLS protocol. Digital certificates are\n  authenticated, issued, and managed by a trusted Certificate Authority (CA).\n\n  The use of a trusted certificate validation hierarchy is crucial to the\n  ability to control access to a site’s server and to prevent unauthorized\n  access. Only DoD-approved PKIs will be utilized. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG355\"\n  tag \"gid\": \"V-13620\"\n  tag \"rid\": \"SV-32936r1_rule\"\n  tag \"stig_id\": \"WG355 A22\"\n  tag \"nist\": [\"IA-5\", \"SC-12\", \"Rev_4\"]\n\n  tag \"check\": \"Enter the following command:\n\n  find / -name ssl.conf  note the path of the file.\n\n  grep \"\"ssl_client_certificate\"\" in conf files in context http,server\n\n  Review the results to determine the path of the ssl_client_certificate.\n\n  more /path/of/ca-bundle.crt\n\n  Examine the contents of this file to determine if the trusted CAs are DoD\n  approved. If the trusted CA that is used to authenticate users to the web site\n  does not lead to an approved DoD CA, this is a finding.\n\n  NOTE: There are non DoD roots that must be on the server in order for it to\n  function. Some applications, such as anti-virus programs, require root CAs to\n  function. DoD approved certificate can include the External Certificate\n  Authorities (ECA), if approved by the DAA. The PKE InstallRoot 3.06 System\n  Administrator Guide (SAG), dated 8 Jul 2008, contains a complete list of DoD,\n  ECA, and IECA CAs.\"\n\n  tag \"fix\": \"Configure the web server’s trust store to trust only DoD-\n  approved PKIs (e.g., DoD PKI, DoD ECA, and DoD-approved external partners).\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['ssl_client_certificate'] do\n        it { should_not be_nil}\n      end\n      http.params['ssl_client_certificate'].each do |cert|\n        describe x509_certificate(cert.join) do\n          it { should_not be_nil}\n          its('subject.C') { should cmp 'US'}\n          its('subject.O') { should cmp 'U.S. Government'}\n        end\n        describe x509_certificate(cert.join).subject.CN[0..2] do\n          it { should be_in DOD_APPROVED_PKIS}\n        end\n      end unless http.params['ssl_client_certificate'].nil?\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      server.params['ssl_client_certificate'].each do |cert|\n        describe x509_certificate(cert.join) do\n          it { should_not be_nil}\n          its('subject.C') { should cmp 'US'}\n          its('subject.O') { should cmp 'U.S. Government'}\n        end\n        describe x509_certificate(cert.join).subject.CN[0..2] do\n          it { should be_in DOD_APPROVED_PKIS}\n        end\n      end unless server.params['ssl_client_certificate'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13620.rb",
                        "line": 42
                    },
                    "id": "V-13620",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"/etc/ssl/certs/dod-root-certs.pem\"]] should not be nil",
                            "run_time": 0.000165,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "x509_certificate /etc/ssl/certs/dod-root-certs.pem should not be nil",
                            "run_time": 0.000148,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "x509_certificate /etc/ssl/certs/dod-root-certs.pem subject.C should cmp == \"US\"",
                            "run_time": 0.000452,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "x509_certificate /etc/ssl/certs/dod-root-certs.pem subject.O should cmp == \"U.S. Government\"",
                            "run_time": 0.00032,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "DoD should be in \"DoD\" and \"ECA\"",
                            "run_time": 0.000231,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "All web server documentation, sample code, example applications, and\n  tutorials must be removed from a production web server.",
                    "desc": "Web server documentation, sample code, example applications, and\n  tutorials may be an exploitable threat to a web server. A production web\n  server may only contain components that are operationally necessary (e.g.,\n  compiled code, scripts, web-content, etc.). Delete all directories that\n  contain samples and any scripts used to execute the samples. If there is a\n  requirement to maintain these directories at the site on non-production\n  servers for training purposes, have permissions set to only allow access to\n  authorized users (i.e., web administrators and systems administrators).\n  Sample applications or scripts have not been evaluated and approved for use\n  and may introduce vulnerabilities to the system.",
                    "impact": 0.7,
                    "refs": [],
                    "tags": {
                        "severity": "high",
                        "gtitle": "WG385",
                        "gid": "V-13621",
                        "rid": "SV-32933r1_rule",
                        "stig_id": "WG385 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "Query the SA to determine if all directories that contain\n  samples and any scripts used to execute the samples have been removed from\n  the server. Each web server has its own list of sample files. This may\n  change with the software versions, but the following are some examples of\n  what to look for (This should not be the definitive list of sample files,\n  but only an example of the common samples that are provided with the\n  associated web server. This list will be updated as additional information\n  is discovered.):\n\n  ls -Ll /usr/share/man/man8/nginx.8.gz\n\n  If there is a requirement to maintain these directories at the site for\n  training or other such purposes, have permissions or set the permissions to\n  only allow access to authorized users. If any sample files are found on the\n  web server, this is a finding."
                    },
                    "code": "control \"V-13621\" do\n\n  title \"All web server documentation, sample code, example applications, and\n  tutorials must be removed from a production web server.\"\n\n  desc \"Web server documentation, sample code, example applications, and\n  tutorials may be an exploitable threat to a web server. A production web\n  server may only contain components that are operationally necessary (e.g.,\n  compiled code, scripts, web-content, etc.). Delete all directories that\n  contain samples and any scripts used to execute the samples. If there is a\n  requirement to maintain these directories at the site on non-production\n  servers for training purposes, have permissions set to only allow access to\n  authorized users (i.e., web administrators and systems administrators).\n  Sample applications or scripts have not been evaluated and approved for use\n  and may introduce vulnerabilities to the system.\"\n\n  impact 0.7\n  tag \"severity\": \"high\"\n  tag \"gtitle\": \"WG385\"\n  tag \"gid\": \"V-13621\"\n  tag \"rid\": \"SV-32933r1_rule\"\n  tag \"stig_id\": \"WG385 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"Query the SA to determine if all directories that contain\n  samples and any scripts used to execute the samples have been removed from\n  the server. Each web server has its own list of sample files. This may\n  change with the software versions, but the following are some examples of\n  what to look for (This should not be the definitive list of sample files,\n  but only an example of the common samples that are provided with the\n  associated web server. This list will be updated as additional information\n  is discovered.):\n\n  ls -Ll /usr/share/man/man8/nginx.8.gz\n\n  If there is a requirement to maintain these directories at the site for\n  training or other such purposes, have permissions or set the permissions to\n  only allow access to authorized users. If any sample files are found on the\n  web server, this is a finding.\"\n\n  begin\n    NGINX_DISALLOWED_FILE_LIST.each do |file|\n      describe file(file) do\n        it { should_not exist }\n      end\n    end\n\n    NGINX_EXCEPTION_FILES.each do |file|\n      describe file(file) do\n        it { should exist }\n        it { should be_owned_by NGINX_OWNER }\n        it { should be_grouped_into NGINX_GROUP }\n        its('mode') { should cmp '640' }\n      end\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13621.rb",
                        "line": 57
                    },
                    "id": "V-13621",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/man/man8/nginx.8.gz should not exist",
                            "run_time": 0.090759,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The private web server must use an approved DoD certificate\n  validation process.",
                    "desc": "Without the use of a certificate validation process, the site is\n  vulnerable to accepting certificates that have expired or have been revoked.\n  This would allow unauthorized individuals access to the web server.  This also\n  defeats the purpose of the multi-factor authentication provided by the PKI\n  process.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG145",
                        "gid": "V-13672",
                        "rid": "SV-32954r2_rule",
                        "stig_id": "WG145 A22",
                        "nist": ["IA-5", "SC-12", "Rev_4"],
                        "check": "The reviewer should query the ISSO, the SA, the web\n  administrator, or developers as necessary to determine if the web server is\n  configured to utilize an approved DoD certificate validation process.\n\n  The web administrator should be questioned to determine if a validation\n  process is being utilized on the web server.\n\n  To validate this, the reviewer can ask the web administrator to describe the\n  validation process being used. They should be able to identify either the use\n  of certificate revocation lists (CRLs) or Online Certificate Status Protocol\n  (OCSP).\n\n  If the production web server is accessible, the SA or the web administrator\n  should be able to demonstrate the validation of good certificates and the\n  rejection of bad certificates.\n\n  If CRLs are being used, the SA should be able to identify how often the CRL is\n  updated and the location from which the CRL is downloaded.\n\n  If the web administrator cannot identify the type of validation process being\n  used, this is a finding.",
                        "fix": "Configure DoD Private Web Servers to conduct certificate\n  revocation checking utilizing certificate revocation lists (CRLs) or Online\n  Certificate Status Protocol (OCSP)."
                    },
                    "code": "control \"V-13672\" do\n\n  title \"The private web server must use an approved DoD certificate\n  validation process.\"\n\n  desc  \"Without the use of a certificate validation process, the site is\n  vulnerable to accepting certificates that have expired or have been revoked.\n  This would allow unauthorized individuals access to the web server.  This also\n  defeats the purpose of the multi-factor authentication provided by the PKI\n  process. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG145\"\n  tag \"gid\": \"V-13672\"\n  tag \"rid\": \"SV-32954r2_rule\"\n  tag \"stig_id\": \"WG145 A22\"\n  tag \"nist\": [\"IA-5\", \"SC-12\", \"Rev_4\"]\n\n  tag \"check\": \"The reviewer should query the ISSO, the SA, the web\n  administrator, or developers as necessary to determine if the web server is\n  configured to utilize an approved DoD certificate validation process.\n\n  The web administrator should be questioned to determine if a validation\n  process is being utilized on the web server.\n\n  To validate this, the reviewer can ask the web administrator to describe the\n  validation process being used. They should be able to identify either the use\n  of certificate revocation lists (CRLs) or Online Certificate Status Protocol\n  (OCSP).\n\n  If the production web server is accessible, the SA or the web administrator\n  should be able to demonstrate the validation of good certificates and the\n  rejection of bad certificates.\n\n  If CRLs are being used, the SA should be able to identify how often the CRL is\n  updated and the location from which the CRL is downloaded.\n\n  If the web administrator cannot identify the type of validation process being\n  used, this is a finding.\"\n\n  tag \"fix\": \"Configure DoD Private Web Servers to conduct certificate\n  revocation checking utilizing certificate revocation lists (CRLs) or Online\n  Certificate Status Protocol (OCSP).\"\n\n  begin\n    require 'time'\n\n    #@todo complete ocsp verification test\n    # oscp_status = command(\"openssl s_client -connect #{OCSP_SERVER} -tls1  -tlsextdebug  -status 2>&1 < /dev/null\").stdout\n    #\n    # describe oscp_status do\n    #   it { should match %r(OCSP Response Status: successful)}\n    # end\n\n    def days_since_crl_update(cert)\n      ((Time.new - Time.at(file(cert).mtime.to_f)) / 86400)\n    end\n\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['ssl_crl'] do\n        it { should_not be_nil}\n      end\n      http.params['ssl_crl'].each do |cert|\n        describe file(cert.join) do\n          it { should be_file }\n        end\n        describe days_since_crl_update(cert.join) do\n          it { should cmp < CRL_UDPATE_FREQUENCY }\n        end\n      end unless http.params['ssl_crl'].nil?\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      server.params['ssl_crl'].each do |cert|\n        describe file(cert.join) do\n          it { should be_file }\n        end\n        describe days_since_crl_update(cert.join) do\n          it { should cmp < CRL_UDPATE_FREQUENCY }\n        end\n      end unless server.params['ssl_crl'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13672.rb",
                        "line": 43
                    },
                    "id": "V-13672",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"/etc/ssl/certs/DOD.crl\"]] should not be nil",
                            "run_time": 0.000139,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/ssl/certs/DOD.crl should be file",
                            "run_time": 0.000135,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "0.28995194145833336 should cmp < 7",
                            "run_time": 0.000189,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The client body and header timeout directives must be properly set.",
                    "desc": "The timeout requirements are set to mitigate the effects of several\n  types of denial of service attacks. Although there is some latitude\n  concerning the settings themselves, the requirements attempt to provide\n  reasonable limits for the protection of the web server. If necessary, these\n  limits can be adjusted to accommodate the operational requirement of a given\n  system.\n\n  client_body_timeout defines a timeout for reading client request body. The\n  timeout is set only for a period between two successive read operations, not\n  for the transmission of the whole request body. If a client does not transmit\n  anything within this time, the 408 (Request Time-out) error is returned to the\n  client.\n\n  client_header_timeout defines a timeout for reading client request header. If\n  a client does not transmit the entire header within this time, the 408\n  (Request Time-out) error is returned to the client.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA000-WWA020",
                        "gid": "V-13724",
                        "rid": "SV-32977r1_rule",
                        "stig_id": "WA000-WWA020 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To view the timeout values enter the following commands:\n\n  grep client_body_timeout on the nginx.conf file and any separate included\n  configuration files\n\n  grep client_header_timeout on the nginx.conf file and any separate\n  included configuration files\n\n  If the values of each are not set to 10 seconds (10s) or less, this is a\n  finding.",
                        "fix": "Edit the configuration file and set the value of 10 seconds or\n  less:\n\n  client_body_timeout   10s;\n\n  client_header_timeout 10s;"
                    },
                    "code": "control \"V-13724\" do\n  title \"The client body and header timeout directives must be properly set.\"\n\n  desc \"The timeout requirements are set to mitigate the effects of several\n  types of denial of service attacks. Although there is some latitude\n  concerning the settings themselves, the requirements attempt to provide\n  reasonable limits for the protection of the web server. If necessary, these\n  limits can be adjusted to accommodate the operational requirement of a given\n  system.\n\n  client_body_timeout defines a timeout for reading client request body. The\n  timeout is set only for a period between two successive read operations, not\n  for the transmission of the whole request body. If a client does not transmit\n  anything within this time, the 408 (Request Time-out) error is returned to the\n  client.\n\n  client_header_timeout defines a timeout for reading client request header. If\n  a client does not transmit the entire header within this time, the 408\n  (Request Time-out) error is returned to the client. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA000-WWA020\"\n  tag \"gid\": \"V-13724\"\n  tag \"rid\": \"SV-32977r1_rule\"\n  tag \"stig_id\": \"WA000-WWA020 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To view the timeout values enter the following commands:\n\n  grep \"\"client_body_timeout\"\" on the nginx.conf file and any separate included\n  configuration files\n\n  grep \"\"client_header_timeout\"\" on the nginx.conf file and any separate\n  included configuration files\n\n  If the values of each are not set to 10 seconds (10s) or less, this is a\n  finding.\"\n\n\n  tag \"fix\": \"Edit the configuration file and set the value of 10 seconds or\n  less:\n\n  client_body_timeout   10s;\n\n  client_header_timeout 10s;\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['client_header_timeout'] do\n        it { should_not be_nil}\n      end\n      describe http.params['client_header_timeout'].flatten do\n        it { should cmp <= 10 }\n      end unless http.params['client_header_timeout'].nil?\n\n      describe http.params['client_body_timeout'] do\n        it { should_not be_nil}\n      end\n      describe http.params['client_body_timeout'].flatten do\n        it { should cmp <= 10 }\n      end unless http.params['client_body_timeout'].nil?\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['client_header_timeout'].flatten do\n        it { should cmp <= 10 }\n      end unless server.params['client_header_timeout'].nil?\n      describe server.params['client_body_timeout'].flatten do\n        it { should cmp <= 10 }\n      end unless server.params['client_body_timeout'].nil?\n    end\n\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13724.rb",
                        "line": 36
                    },
                    "id": "V-13724",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"10\"]] should not be nil",
                            "run_time": 8.3e-5,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[\"10\"] should cmp <= 10",
                            "run_time": 0.000261,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[[\"10\"]] should not be nil",
                            "run_time": 0.000141,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[\"10\"] should cmp <= 10",
                            "run_time": 0.00017,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The KeepAliveTimeout directive must be defined.",
                    "desc": "The number of seconds Apache will wait for a subsequent request before\n  closing the connection. Once a request has been received, the timeout value\n  specified by the Timeout directive applies. Setting KeepAliveTimeout to a\n  high value may cause performance problems in heavily loaded servers. The\n  higher the timeout, the more server processes will be kept occupied waiting\n  on connections with idle clients. These requirements are set to mitigate the\n  effects of several types of denial of service attacks.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA000-WWA024",
                        "gid": "V-13726",
                        "rid": "SV-32877r1_rule",
                        "stig_id": "WA000-WWA024 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To view the keepalive_timeout directive value enter the\n  following command:\n\n  grep keepalive_timeout on the nginx.conf file and any separate included\n  configuration files\n\n  If the value of keepalive_timeout is not set to 5 (seconds) or less, this\n  is a finding:\n\n  keepalive_timeout   5 5;\n\n  The first parameter sets a timeout during which a keep-alive client connection\n  will stay open on the server side. The zero value disables keep-alive client\n  connections. The second parameter sets a value in the “Keep-Alive:\n  timeout=time” response header field. The “Keep-Alive: timeout=time” header\n  field is recognized by Mozilla and Konqueror. ",
                        "fix": "Edit the configuration file and set the value of\n  keepalive_timeout to the value of 5 or less:\n\n  keepalive_timeout   5 5;"
                    },
                    "code": "control \"V-13726\" do\n  title \"The KeepAliveTimeout directive must be defined.\"\n\n  desc \"The number of seconds Apache will wait for a subsequent request before\n  closing the connection. Once a request has been received, the timeout value\n  specified by the Timeout directive applies. Setting KeepAliveTimeout to a\n  high value may cause performance problems in heavily loaded servers. The\n  higher the timeout, the more server processes will be kept occupied waiting\n  on connections with idle clients. These requirements are set to mitigate the\n  effects of several types of denial of service attacks. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA000-WWA024\"\n  tag \"gid\": \"V-13726\"\n  tag \"rid\": \"SV-32877r1_rule\"\n  tag \"stig_id\": \"WA000-WWA024 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To view the keepalive_timeout directive value enter the\n  following command:\n\n  grep \"\"keepalive_timeout\"\" on the nginx.conf file and any separate included\n  configuration files\n\n  If the value of \"\"keepalive_timeout\"\" is not set to 5 (seconds) or less, this\n  is a finding:\n\n  keepalive_timeout   5 5;\n\n  The first parameter sets a timeout during which a keep-alive client connection\n  will stay open on the server side. The zero value disables keep-alive client\n  connections. The second parameter sets a value in the “Keep-Alive:\n  timeout=time” response header field. The “Keep-Alive: timeout=time” header\n  field is recognized by Mozilla and Konqueror. \"\n\n  tag \"fix\": \"Edit the configuration file and set the value of\n  \"\"keepalive_timeout\"\" to the value of 5 or less:\n\n  keepalive_timeout   5 5;\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['keepalive_timeout'] do\n        it { should cmp [['5', '5']] }\n      end\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['keepalive_timeout'] do\n        it { should cmp [['5', '5']] }\n      end unless server.params['keepalive_timeout'].nil?\n    end\n\n    nginx_conf_handle.locations.entries.each do |location|\n      describe location.params['keepalive_timeout'] do\n        it { should cmp [['5', '5']] }\n      end unless location.params['keepalive_timeout'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13726.rb",
                        "line": 35
                    },
                    "id": "V-13726",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"5\", \"5\"]] should cmp == [[\"5\", \"5\"]]",
                            "run_time": 0.000153,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The worker_processes StartServers directive must be set properly.",
                    "desc": "These requirements are set to mitigate the effects of several types of\n  denial of service attacks. Although there is some latitude concerning the\n  settings themselves, the requirements attempt to provide reasonable limits\n  for the protection of the web server. If necessary, these limits can be\n  adjusted to accommodate the operational requirement of a given system.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA000-WWA026",
                        "gid": "V-13727",
                        "rid": "SV-36645r2_rule",
                        "stig_id": "WA000-WWA026 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To view the worker_processes directive value enter the\n  following command:\n\n  grep worker_processes on the nginx.conf file and any separate included\n  configuration files\n\n  If the value of worker_processes is not set to auto or explicitly set,\n  this is a finding:\n\n  worker_processes   auto;\n\n  worker_processes defines the number of worker processes. The optimal value\n  depends on many factors including (but not limited to) the number of CPU\n  cores, the number of hard disk drives that store data, and load pattern. When\n  one is in doubt, setting it to the number of available CPU cores would be a\n  good start (the value “auto” will try to autodetect it).",
                        "fix": "Edit the configuration file and set the value of\n  worker_processes to the value of auto or a value of 1 or higher:\n\n  worker_processes auto;"
                    },
                    "code": "control \"V-13727\" do\n  title \"The worker_processes StartServers directive must be set properly.\"\n\n  desc \"These requirements are set to mitigate the effects of several types of\n  denial of service attacks. Although there is some latitude concerning the\n  settings themselves, the requirements attempt to provide reasonable limits\n  for the protection of the web server. If necessary, these limits can be\n  adjusted to accommodate the operational requirement of a given system.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA000-WWA026\"\n  tag \"gid\": \"V-13727\"\n  tag \"rid\": \"SV-36645r2_rule\"\n  tag \"stig_id\": \"WA000-WWA026 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To view the worker_processes directive value enter the\n  following command:\n\n  grep \"\"worker_processes\"\" on the nginx.conf file and any separate included\n  configuration files\n\n  If the value of \"\"worker_processes\"\" is not set to auto or explicitly set,\n  this is a finding:\n\n  worker_processes   auto;\n\n  worker_processes defines the number of worker processes. The optimal value\n  depends on many factors including (but not limited to) the number of CPU\n  cores, the number of hard disk drives that store data, and load pattern. When\n  one is in doubt, setting it to the number of available CPU cores would be a\n  good start (the value “auto” will try to autodetect it).\"\n\n  tag \"fix\": \"Edit the configuration file and set the value of\n  \"\"worker_processes\"\" to the value of auto or a value of 1 or higher:\n\n  worker_processes auto;\"\n\n  begin\n    describe nginx_conf(NGINX_CONF_FILE).params['worker_processes'] do\n      it { should cmp [['auto']] }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13727.rb",
                        "line": 36
                    },
                    "id": "V-13727",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"auto\"]] should cmp == [[\"auto\"]]",
                            "run_time": 0.000151,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The disable_symlinks setting must be on.",
                    "desc": "The disable_symlinks directive determines how symbolic links should be\n  treated when opening files.A symbolic link allows a file or a directory to\n  be referenced using a symbolic name raising a potential hazard if symbolic\n  linkage is made to a sensitive area. When web scripts are executed and\n  symbolic links are allowed, the web user could be allowed to access\n  locations on the web server that are outside the scope of the web document\n  root or home directory.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA000-WWA052",
                        "gid": "V-13732",
                        "rid": "SV-40129r1_rule",
                        "stig_id": "WA000-WWA052 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To view the disable_symlinks directive value enter the\n  following command:\n\n  grep disable_symlinks on the nginx.conf file and any separate included\n  configuration files\n\n  If the value of disable_symlinks is not set to on, this is a finding:\n\n  disable_symlinks   on;\n\n  If any component of the pathname is a symbolic link, access to a file is\n  denied.  ",
                        "fix": "Edit the configuration file and set the value of\n  disable_symlinks to on:\n\n  disable_symlinks   on;"
                    },
                    "code": "control \"V-13732\" do\n  title \"The \"\"disable_symlinks\"\" setting must be on.\"\n  desc \"The disable_symlinks directive determines how symbolic links should be\n  treated when opening files.A symbolic link allows a file or a directory to\n  be referenced using a symbolic name raising a potential hazard if symbolic\n  linkage is made to a sensitive area. When web scripts are executed and\n  symbolic links are allowed, the web user could be allowed to access\n  locations on the web server that are outside the scope of the web document\n  root or home directory.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA000-WWA052\"\n  tag \"gid\": \"V-13732\"\n  tag \"rid\": \"SV-40129r1_rule\"\n  tag \"stig_id\": \"WA000-WWA052 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To view the disable_symlinks directive value enter the\n  following command:\n\n  grep \"\"disable_symlinks\"\" on the nginx.conf file and any separate included\n  configuration files\n\n  If the value of \"\"disable_symlinks\"\" is not set to on, this is a finding:\n\n  disable_symlinks   on;\n\n  If any component of the pathname is a symbolic link, access to a file is\n  denied.  \"\n\n  tag \"fix\": \"Edit the configuration file and set the value of\n  \"\"disable_symlinks\"\" to on:\n\n  disable_symlinks   on;\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['disable_symlinks'] do\n        it { should cmp [['on']] }\n      end\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['disable_symlinks'] do\n        it { should cmp [['on']] }\n      end unless server.params['disable_symlinks'].nil?\n    end\n\n    nginx_conf_handle.locations.entries.each do |location|\n      describe location.params['disable_symlinks'] do\n        it { should cmp [['on']] }\n      end unless location.params['disable_symlinks'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13732.rb",
                        "line": 35
                    },
                    "id": "V-13732",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"on\"]] should cmp == [[\"on\"]]",
                            "run_time": 0.000246,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "Directory indexing must be disabled on directories not containing index files.",
                    "desc": "autoindex and random_index directives can be applied to further\n  restrict access to file and directories.If a URL which maps to a directory\n  is requested, and there is no DirectoryIndex (e.g., index.html) in that\n  directory, then enabling these directives will return a formatted listing of\n  the directory which is not acceptable.\n\n  autoindex enables or disables the directory listing output. The\n  ngx_http_random_index_module module processes requests ending with the slash\n  character (‘/’) and picks a random file in a directory to serve as an index\n  file. The module is processed before the ngx_http_index_module module.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA000-WWA058",
                        "gid": "V-13735",
                        "rid": "SV-32755r1_rule",
                        "stig_id": "WA000-WWA058 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To view the autoindex and random_index values enter the\n  following commands:\n\n  grep autoindex on the nginx.conf file and any separate included\n  configuration files\n\n  grep random_index on the nginx.conf file and any separate included\n  configuration files\n\n  If the values of each are not set to off, this is a finding:\n\n  autoindex off;\n\n  random_index off;",
                        "fix": "Edit the configuration file and set the values to off:\n\n  autoindex off;\n\n  random_index off;"
                    },
                    "code": "control \"V-13735\" do\n  title \"Directory indexing must be disabled on directories not containing index files.\"\n\n  desc\"autoindex and random_index directives can be applied to further\n  restrict access to file and directories.If a URL which maps to a directory\n  is requested, and there is no DirectoryIndex (e.g., index.html) in that\n  directory, then enabling these directives will return a formatted listing of\n  the directory which is not acceptable.\n\n  autoindex enables or disables the directory listing output. The\n  ngx_http_random_index_module module processes requests ending with the slash\n  character (‘/’) and picks a random file in a directory to serve as an index\n  file. The module is processed before the ngx_http_index_module module.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA000-WWA058\"\n  tag \"gid\": \"V-13735\"\n  tag \"rid\": \"SV-32755r1_rule\"\n  tag \"stig_id\": \"WA000-WWA058 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To view the autoindex and random_index values enter the\n  following commands:\n\n  grep \"\"autoindex\"\" on the nginx.conf file and any separate included\n  configuration files\n\n  grep \"\"random_index\"\" on the nginx.conf file and any separate included\n  configuration files\n\n  If the values of each are not set to off, this is a finding:\n\n  autoindex off;\n\n  random_index off;\"\n\n  tag \"fix\": \"Edit the configuration file and set the values to off:\n\n  autoindex off;\n\n  random_index off;\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['autoindex'] do\n        it { should cmp [['off']] }\n      end\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['autoindex'] do\n        it { should cmp [['off']] }\n      end unless server.params['autoindex'].nil?\n    end\n\n    nginx_conf_handle.locations.entries.each do |location|\n      describe location.params['autoindex'] do\n        it { should cmp [['off']] }\n      end unless location.params['autoindex'].nil?\n      describe location.params['random_index'] do\n        it { should cmp [['off']] }\n      end\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13735.rb",
                        "line": 35
                    },
                    "id": "V-13735",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"off\"]] should cmp == [[\"off\"]]",
                            "run_time": 0.00015,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[[\"off\"]] should cmp == [[\"off\"]]",
                            "run_time": 0.000148,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The HTTP request message body size must be limited.",
                    "desc": "Buffer overflow attacks are carried out by a malicious attacker sending\n  amounts of data that the web server cannot store in a given size buffer. The\n  eventual overflow of this buffer can overwrite system memory. Subsequently\n  an attacker may be able to elevate privileges and take control of the\n  server. The NGINX directive client_body_buffer_size and\n  client_max_body_size limits the size of the client request body buffer\n  and body content respectively, thereby limiting the chances for a buffer\n  overflow.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA000-WWA060",
                        "gid": "V-13736",
                        "rid": "SV-32756r1_rule",
                        "stig_id": "WA000-WWA060 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To view the client_body_buffer_size value enter the following\n  command:\n\n  grep client_body_buffer_size on the nginx.conf file and any separate\n  included configuration files\n\n  grep client_max_body_size on the nginx.conf file and any separate included\n  configuration files\n\n  If the values of each are not set to 100k or less, this is a finding. ",
                        "fix": "Edit the configuration file to set the client_body_buffer_size\n  and client_max_body_size to 100k or less."
                    },
                    "code": "control \"V-13736\" do\n  title \"The HTTP request message body size must be limited.\"\n\n  desc\"Buffer overflow attacks are carried out by a malicious attacker sending\n  amounts of data that the web server cannot store in a given size buffer. The\n  eventual overflow of this buffer can overwrite system memory. Subsequently\n  an attacker may be able to elevate privileges and take control of the\n  server. The NGINX directive \"\"client_body_buffer_size\"\" and\n  \"\"client_max_body_size\"\" limits the size of the client request body buffer\n  and body content respectively, thereby limiting the chances for a buffer\n  overflow. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA000-WWA060\"\n  tag \"gid\": \"V-13736\"\n  tag \"rid\": \"SV-32756r1_rule\"\n  tag \"stig_id\": \"WA000-WWA060 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To view the client_body_buffer_size value enter the following\n  command:\n\n  grep \"\"client_body_buffer_size\"\" on the nginx.conf file and any separate\n  included configuration files\n\n  grep \"\"client_max_body_size\"\" on the nginx.conf file and any separate included\n  configuration files\n\n  If the values of each are not set to 100k or less, this is a finding. \"\n\n\n  tag \"fix\": \"Edit the configuration file to set the client_body_buffer_size\n  and client_max_body_size to 100k or less.\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['client_body_buffer_size'] do\n        it { should_not be_nil}\n      end\n      describe http.params['client_body_buffer_size'].join.to_i do\n        it { should cmp <= '100k'.to_i }\n      end unless http.params['client_body_buffer_size'].nil?\n\n      describe http.params['client_max_body_size'] do\n        it { should_not be_nil}\n      end\n      describe http.params['client_max_body_size'].join.to_i do\n        it { should cmp <= '100k'.to_i }\n      end unless http.params['client_max_body_size'].nil?\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['client_body_buffer_size'].join.to_i do\n        it { should cmp <= '100k'.to_i }\n      end unless server.params['client_body_buffer_size'].nil?\n\n      describe server.params['client_max_body_size'].join.to_i do\n        it { should cmp <= '100k'.to_i }\n      end unless server.params['client_max_body_size'].nil?\n    end\n\n    nginx_conf_handle.locations.entries.each do |location|\n      describe location.params['client_body_buffer_size'].join.to_i do\n        it { should cmp <= '100k'.to_i }\n      end unless location.params['client_body_buffer_size'].nil?\n\n      describe location.params['client_max_body_size'].join.to_i do\n        it { should cmp <= '100k'.to_i }\n      end unless location.params['client_max_body_size'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13736.rb",
                        "line": 36
                    },
                    "id": "V-13736",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"1k\"]] should not be nil",
                            "run_time": 8.4e-5,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "1 should cmp <= 100",
                            "run_time": 0.000185,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[[\"1k\"]] should not be nil",
                            "run_time": 0.000112,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "1 should cmp <= 100",
                            "run_time": 0.000189,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The HTTP request header fields must be limited. ",
                    "desc": "Buffer overflow attacks are carried out by a malicious attacker sending\n  amounts of data that the web server cannot store in a given size buffer. The\n  eventual overflow of this buffer can overwrite system memory. Subsequently\n  an attacker may be able to elevate privileges and take control of the\n  server. The NGINX directive large_client_header_buffers limits the\n  maximum number and size of buffers used for reading large client request\n  header thereby limiting the chances for a buffer overflow.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA000-WWA062",
                        "gid": "V-13737",
                        "rid": "SV-32757r1_rule",
                        "stig_id": "WA000-WWA062 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To view the large_client_header_buffers value enter the\n  following command:\n\n  grep large_client_header_buffers on the nginx.conf file and any separate\n  included configuration files\n\n  If the value of large_client_header_buffers is not set to 2 buffers at 1k,\n  this is a finding. ",
                        "fix": "Edit the configuration file to set the\n  large_client_header_buffers to 2 buffers and 1k."
                    },
                    "code": "control \"V-13737\" do\n  title \"The HTTP request header fields must be limited. \"\n\n  desc \"Buffer overflow attacks are carried out by a malicious attacker sending\n  amounts of data that the web server cannot store in a given size buffer. The\n  eventual overflow of this buffer can overwrite system memory. Subsequently\n  an attacker may be able to elevate privileges and take control of the\n  server. The NGINX directive \"\"large_client_header_buffers\"\" limits the\n  maximum number and size of buffers used for reading large client request\n  header thereby limiting the chances for a buffer overflow. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA000-WWA062\"\n  tag \"gid\": \"V-13737\"\n  tag \"rid\": \"SV-32757r1_rule\"\n  tag \"stig_id\": \"WA000-WWA062 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To view the large_client_header_buffers value enter the\n  following command:\n\n  grep \"\"large_client_header_buffers\"\" on the nginx.conf file and any separate\n  included configuration files\n\n  If the value of large_client_header_buffers is not set to 2 buffers at 1k,\n  this is a finding. \"\n\n  tag \"fix\": \"Edit the configuration file to set the\n  large_client_header_buffers to 2 buffers and 1k.\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['large_client_header_buffers'] do\n        it { should cmp [['2','1k']] }\n      end\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['large_client_header_buffers'] do\n        it { should cmp [['2','1k']] }\n      end unless server.params['large_client_header_buffers'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13737.rb",
                        "line": 35
                    },
                    "id": "V-13737",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"2\", \"1k\"]] should cmp == [[\"2\", \"1k\"]]",
                            "run_time": 0.000146,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The HTTP request header field size must be limited.",
                    "desc": "Buffer overflow attacks are carried out by a malicious attacker\n  sending amounts of data that the web server cannot store in a given size\n  buffer. The eventual overflow of this buffer can overwrite system memory.\n  Subsequently an attacker may be able to elevate privileges and take control\n  of the server. The NGINX directive client_header_buffer_size limits the\n  buffer size for reading client request header thereby limiting the chances\n  for a buffer overflow.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA000-WWA064",
                        "gid": "V-13738",
                        "rid": "SV-32766r2_rule",
                        "stig_id": "WA000-WWA064 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To view the client_header_buffer_size value enter the\n  following command:\n\n  grep client_header_buffer_size on the nginx.conf file and any separate\n  included configuration files\n\n  If the value of client_header_buffer_size is not set to 1k or less, this is a\n  finding. ",
                        "fix": "Edit the configuration file to set the client_header_buffer_size\n  to 1k or less."
                    },
                    "code": "control \"V-13738\" do\n  title \"The HTTP request header field size must be limited.\"\n\n  desc \"Buffer overflow attacks are carried out by a malicious attacker\n  sending amounts of data that the web server cannot store in a given size\n  buffer. The eventual overflow of this buffer can overwrite system memory.\n  Subsequently an attacker may be able to elevate privileges and take control\n  of the server. The NGINX directive \"\"client_header_buffer_size\"\" limits the\n  buffer size for reading client request header thereby limiting the chances\n  for a buffer overflow. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA000-WWA064\"\n  tag \"gid\": \"V-13738\"\n  tag \"rid\": \"SV-32766r2_rule\"\n  tag \"stig_id\": \"WA000-WWA064 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To view the client_header_buffer_size value enter the\n  following command:\n\n  grep \"\"client_header_buffer_size\"\" on the nginx.conf file and any separate\n  included configuration files\n\n  If the value of client_header_buffer_size is not set to 1k or less, this is a\n  finding. \"\n\n  tag \"fix\": \"Edit the configuration file to set the client_header_buffer_size\n  to 1k or less.\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['client_header_buffer_size'] do\n        it { should_not be_nil}\n      end\n      describe http.params['client_header_buffer_size'].join.to_i do\n        it { should cmp <= '1k'.to_i }\n      end unless http.params['client_header_buffer_size'].nil?\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['client_header_buffer_size'].join.to_i do\n        it { should cmp <= '1k'.to_i }\n      end unless server.params['client_header_buffer_size'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-13738.rb",
                        "line": 35
                    },
                    "id": "V-13738",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"1k\"]] should not be nil",
                            "run_time": 7.9e-5,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "1 should cmp <= 1",
                            "run_time": 0.000143,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "Backup interactive scripts on the production web server are prohibited.",
                    "desc": "Copies of backup files will not execute on the server, but they can\n  be read by the anonymous user if special precautions are not taken. Such\n  backup copies contain the same sensitive information as the actual script\n  being executed and, as such, are useful to malicious users. Techniques and\n  systems exist today that search web servers for such files and are able to\n  exploit the information contained in them.",
                    "impact": 0.3,
                    "refs": [],
                    "tags": {
                        "severity": "low",
                        "gtitle": "WG420",
                        "gid": "V-2230",
                        "rid": "SV-6930r1_rule",
                        "stig_id": "WG420 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "Search for backup copies of CGI scripts on the web server or\n  ask the SA or the Web Administrator if they keep backup copies of CGI\n  scripts on the web server.\n\n  Common backup file extensions are: *.bak, *.old, *.temp, *.tmp, *.backup, .?*\n\n  Commands to help find: find /nginx -name '.?*' -not -name .ht* -or -name '*~'\n  -or -name '*\n\n   find/usr/local/nginx/html/-name'.?*'-not-name.ht*-or-name'*~'-or-name'*.bak\n   *'-or-name'*.old*'\n\n  If files with these extensions are found in either the document directory or\n  the home directory of the web server, this is a finding.\n\n  If files with these extensions are stored in a repository (not in the document\n  root) as backups for the web server, this is a finding.\n\n  If files with these extensions have no relationship with web activity, such as\n  a backup batch file for operating system utility, and they are not accessible\n  by the web application, this is not a finding.  ",
                        "fix": "Ensure that CGI backup scripts are not left on the production\n  web server."
                    },
                    "code": "control \"V-2230\" do\n\n  title \"Backup interactive scripts on the production web server are prohibited.\"\n\n  desc  \"Copies of backup files will not execute on the server, but they can\n  be read by the anonymous user if special precautions are not taken. Such\n  backup copies contain the same sensitive information as the actual script\n  being executed and, as such, are useful to malicious users. Techniques and\n  systems exist today that search web servers for such files and are able to\n  exploit the information contained in them.\"\n\n  impact 0.3\n  tag \"severity\": \"low\"\n  tag \"gtitle\": \"WG420\"\n  tag \"gid\": \"V-2230\"\n  tag \"rid\": \"SV-6930r1_rule\"\n  tag \"stig_id\": \"WG420 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"Search for backup copies of CGI scripts on the web server or\n  ask the SA or the Web Administrator if they keep backup copies of CGI\n  scripts on the web server.\n\n  Common backup file extensions are: *.bak, *.old, *.temp, *.tmp, *.backup, .?*\n\n  Commands to help find: find /nginx -name '.?*' -not -name .ht* -or -name '*~'\n  -or -name '*\n\n   find/usr/local/nginx/html/-name'.?*'-not-name.ht*-or-name'*~'-or-name'*.bak\n   *'-or-name'*.old*'\n\n  If files with these extensions are found in either the document directory or\n  the home directory of the web server, this is a finding.\n\n  If files with these extensions are stored in a repository (not in the document\n  root) as backups for the web server, this is a finding.\n\n  If files with these extensions have no relationship with web activity, such as\n  a backup batch file for operating system utility, and they are not accessible\n  by the web application, this is not a finding.  \"\n\n  tag \"fix\": \"Ensure that CGI backup scripts are not left on the production\n  web server.\"\n\n  begin\n    dirs = ['/home',NGINX_BACKUP_REPOSITORY]\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      dirs.push(http.params['root']) unless http.params['root'].nil?\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      dirs.push(server.params['root']) unless server.params['root'].nil?\n    end\n\n    nginx_conf_handle.locations.entries.each do |location|\n      dirs.push(location.params['root']) unless location.params['root'].nil?\n    end\n\n    dirs.flatten!.uniq!\n\n    dirs.each do |dir|\n      describe command(\"find #{dir} -name *.bak\").stdout.chomp.split do\n        it {should be_empty}\n      end\n      describe command(\"find #{dir} -name *.old\").stdout.chomp.split do\n        it {should be_empty}\n      end\n      describe command(\"find #{dir} -name *.temp\").stdout.chomp.split do\n        it {should be_empty}\n      end\n      describe command(\"find #{dir} -name *.tmp\").stdout.chomp.split do\n        it {should be_empty}\n      end\n      describe command(\"find #{dir} -name *.backup\").stdout.chomp.split do\n        it {should be_empty}\n      end\n      describe command(\"find #{dir} -name .?*\").stdout.chomp.split do\n        it {should be_empty}\n      end\n      describe command(\"find #{dir} -name *~\").stdout.chomp.split do\n        it {should be_empty}\n      end\n    end\n\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2230.rb",
                        "line": 41
                    },
                    "id": "V-2230",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000179,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000186,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 9.0e-5,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 8.9e-5,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.00013,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000124,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000106,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000173,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000171,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000154,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000193,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000193,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000311,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000103,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000179,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000138,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000254,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000158,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000151,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.0001,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 9.6e-5,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000155,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000305,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000175,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000115,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000101,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[] should be empty",
                            "run_time": 0.000177,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "The web server password(s) must be entrusted to the SA or Web\n  Manager.",
                    "desc": "Normally, a service account is established for the web server. This is\n  because a privileged account is not desirable and the server is designed to\n  run for long uninterrupted periods of time. The SA or Web Manager will need\n  password access to the web server to restart the service in the event of an\n  emergency as the web server is not to restart automatically after an\n  unscheduled interruption.If the password is not entrusted to an SA or web\n  manager the ability to ensure the availability of the web server is\n  compromised.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG050",
                        "gid": "V-2232",
                        "rid": "SV-32788r1_rule",
                        "stig_id": "WG050 A22",
                        "nist": ["AC-2", "Rev_4"],
                        "check": "The reviewer should make a note of the name of the account\n  being used for the web service. This information may be needed later in the\n  SRR. There may also be other server services running related to the web server\n  in support of a particular web application, these passwords must be entrusted\n  to the SA or Web Manager as well. Query the SA or Web Manager to determine if\n  they have the web service password(s).\n\n  If the web services password(s) are not entrusted to the SA or Web Manager,\n  this is a finding.\n\n  NOTE: For installations that run as a service, or without a password, the SA\n  or Web Manager having an Admin account on the system would meet the intent of\n  this check. ",
                        "fix": "Ensure the SA or Web Manager are entrusted with the web\n  service(s) password."
                    },
                    "code": "control \"V-2232\" do\n\n  title \"The web server password(s) must be entrusted to the SA or Web\n  Manager.\"\n\n  desc \"Normally, a service account is established for the web server. This is\n  because a privileged account is not desirable and the server is designed to\n  run for long uninterrupted periods of time. The SA or Web Manager will need\n  password access to the web server to restart the service in the event of an\n  emergency as the web server is not to restart automatically after an\n  unscheduled interruption.If the password is not entrusted to an SA or web\n  manager the ability to ensure the availability of the web server is\n  compromised.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG050\"\n  tag \"gid\": \"V-2232\"\n  tag \"rid\": \"SV-32788r1_rule\"\n  tag \"stig_id\": \"WG050 A22\"\n  tag \"nist\": [\"AC-2\", \"Rev_4\"]\n\n  tag \"check\": \"The reviewer should make a note of the name of the account\n  being used for the web service. This information may be needed later in the\n  SRR. There may also be other server services running related to the web server\n  in support of a particular web application, these passwords must be entrusted\n  to the SA or Web Manager as well. Query the SA or Web Manager to determine if\n  they have the web service password(s).\n\n  If the web services password(s) are not entrusted to the SA or Web Manager,\n  this is a finding.\n\n  NOTE: For installations that run as a service, or without a password, the SA\n  or Web Manager having an Admin account on the system would meet the intent of\n  this check. \"\n\n  tag \"fix\": \"Ensure the SA or Web Manager are entrusted with the web\n  service(s) password.\"\n\n\n  begin\n    describe passwd.users(NGINX_OWNER).passwords do\n      it { should_not cmp ['']}\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2232.rb",
                        "line": 35
                    },
                    "id": "V-2232",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[\"x\"] should not cmp == [\"\"]",
                            "run_time": 0.000269,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "Public web server resources must not be shared with private assets.",
                    "desc": "It is important to segregate public web server resources from private\n  resources located behind the DoD DMZ in order to protect private assets.\n  When folders, drives or other resources are directly shared between the\n  public web server and private servers the intent of data and resource\n  segregation can be compromised.\n\n  In addition to the requirements of the DoD Internet-NIPRNet DMZ STIG that\n  isolates inbound traffic from the external network to the internal network,\n  resources such as printers, files, and folders/directories will not be shared\n  between public web servers and assets located within the internal network.",
                    "impact": 0.0,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG040",
                        "gid": "V-2234",
                        "rid": "SV-32957r1_rule",
                        "stig_id": "WG040 A22",
                        "nist": ["SC-7", "Rev_4"],
                        "check": "Determine whether the public web server has a two-way trusted\n  relationship with any private asset located within the network. Private web\n  server resources (e.g., drives, folders, printers, etc.) will not be\n  directly mapped to or shared with public web servers.\n\n  If sharing is selected for any web folder, this is a finding.\n\n  The following checks indicate inappropriate sharing of private resources with\n  the public web server:\n\n  If private resources (e.g., drives, partitions, folders/directories, printers,\n  etc.) are shared with the public web server, then this is a finding. ",
                        "fix": "Configure the public web server to not have a trusted\n  relationship with any system resource that is also not accessible to the\n  public. Web content is not to be shared via Microsoft shares or NFS mounts."
                    },
                    "code": "control \"V-2234\" do\n\n  title \"Public web server resources must not be shared with private assets.\"\n\n  desc \"It is important to segregate public web server resources from private\n  resources located behind the DoD DMZ in order to protect private assets.\n  When folders, drives or other resources are directly shared between the\n  public web server and private servers the intent of data and resource\n  segregation can be compromised.\n\n  In addition to the requirements of the DoD Internet-NIPRNet DMZ STIG that\n  isolates inbound traffic from the external network to the internal network,\n  resources such as printers, files, and folders/directories will not be shared\n  between public web servers and assets located within the internal network.\n  \"\n\n  impact 0.0\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG040\"\n  tag \"gid\": \"V-2234\"\n  tag \"rid\": \"SV-32957r1_rule\"\n  tag \"stig_id\": \"WG040 A22\"\n  tag \"nist\": [\"SC-7\", \"Rev_4\"]\n\n  tag \"check\": \"Determine whether the public web server has a two-way trusted\n  relationship with any private asset located within the network. Private web\n  server resources (e.g., drives, folders, printers, etc.) will not be\n  directly mapped to or shared with public web servers.\n\n  If sharing is selected for any web folder, this is a finding.\n\n  The following checks indicate inappropriate sharing of private resources with\n  the public web server:\n\n  If private resources (e.g., drives, partitions, folders/directories, printers,\n  etc.) are shared with the public web server, then this is a finding. \"\n\n  tag \"fix\": \"Configure the public web server to not have a trusted\n  relationship with any system resource that is also not accessible to the\n  public. Web content is not to be shared via Microsoft shares or NFS mounts.\"\n\n  only_if {\n    false\n  }\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2234.rb",
                        "line": 29
                    },
                    "id": "V-2234",
                    "results": [
                        {
                            "status": "skipped",
                            "code_desc": "Operating System Detection",
                            "skip_message": "Skipped control due to only_if condition.",
                            "resource": "Operating System Detection",
                            "run_time": 1.1e-5,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        }
                    ]
                },
                {
                    "title": "Installation of a compiler on production web server is prohibited.",
                    "desc": "The presence of a compiler on a production server facilitates the\n  malicious user’s task of creating custom versions of programs and installing\n  Trojan Horses or viruses. For example, the attacker’s code can be uploaded\n  and compiled on the server under attack.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG080",
                        "gid": "V-2236",
                        "rid": "SV-32956r3_rule",
                        "stig_id": "WG080 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "Query the SA and the Web Manager to determine if a compiler is\n  present on the server.If a compiler is present, this is a finding.\n\n  NOTE:  If the web server is part of an application suite and a compiler is\n  needed for installation, patching, and upgrading of the suite or if the\n  compiler is embedded and can't be removed without breaking the suite, document\n  the installation of the compiler with the ISSO/ISSM and verify that the\n  compiler is restricted to administrative users only.  If documented and\n  restricted to administrative users, this is not a finding. ",
                        "fix": "Remove any compiler found on the production web server, but if\n  the compiler program is needed to patch or upgrade an application suite in a\n  production environment or the compiler is embedded and will break the suite\n  if removed, document the compiler installation with the ISSO/ISSM and ensure\n  that the compiler is restricted to only administrative users."
                    },
                    "code": "control \"V-2236\" do\n\n  title \"Installation of a compiler on production web server is prohibited.\"\n\n  desc \"The presence of a compiler on a production server facilitates the\n  malicious user’s task of creating custom versions of programs and installing\n  Trojan Horses or viruses. For example, the attacker’s code can be uploaded\n  and compiled on the server under attack.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG080\"\n  tag \"gid\": \"V-2236\"\n  tag \"rid\": \"SV-32956r3_rule\"\n  tag \"stig_id\": \"WG080 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"Query the SA and the Web Manager to determine if a compiler is\n  present on the server.If a compiler is present, this is a finding.\n\n  NOTE:  If the web server is part of an application suite and a compiler is\n  needed for installation, patching, and upgrading of the suite or if the\n  compiler is embedded and can't be removed without breaking the suite, document\n  the installation of the compiler with the ISSO/ISSM and verify that the\n  compiler is restricted to administrative users only.  If documented and\n  restricted to administrative users, this is not a finding. \"\n\n  tag \"fix\": \"Remove any compiler found on the production web server, but if\n  the compiler program is needed to patch or upgrade an application suite in a\n  production environment or the compiler is embedded and will break the suite\n  if removed, document the compiler installation with the ISSO/ISSM and ensure\n  that the compiler is restricted to only administrative users.\"\n\n  begin\n    yum_compiler_list = command('yum search all compiler').stdout.scan(/^(\\S+)\\s:\\s/).flatten\n\n    yum_compiler_list.each do |compiler|\n      describe package(compiler) do\n        it { should_not be_installed }\n      end\n    end\n\n    DISALLOWED_COMPILER_LIST.each do |compiler|\n      describe package(compiler) do\n        it { should_not be_installed }\n      end\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2236.rb",
                        "line": 35
                    },
                    "id": "V-2236",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "System Package maven-compiler-plugin.noarch should not be installed",
                            "run_time": 0.204002,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package maven-compiler-plugin-javadoc.noarch should not be installed",
                            "run_time": 0.19625,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package ocaml-compiler-libs.x86_64 should not be installed",
                            "run_time": 0.192731,
                            "start_time": "2017-09-22 14:12:45 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package orc-compiler.x86_64 should not be installed",
                            "run_time": 0.182606,
                            "start_time": "2017-09-22 14:12:46 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package plexus-compiler.noarch should not be installed",
                            "run_time": 0.180376,
                            "start_time": "2017-09-22 14:12:46 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package plexus-compiler-extras.noarch should not be installed",
                            "run_time": 0.193203,
                            "start_time": "2017-09-22 14:12:46 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package plexus-compiler-javadoc.noarch should not be installed",
                            "run_time": 0.202912,
                            "start_time": "2017-09-22 14:12:46 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package plexus-compiler-pom.noarch should not be installed",
                            "run_time": 0.18345,
                            "start_time": "2017-09-22 14:12:46 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-c-compiler.x86_64 should not be installed",
                            "run_time": 0.19152,
                            "start_time": "2017-09-22 14:12:47 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-compiler.i686 should not be installed",
                            "run_time": 0.183954,
                            "start_time": "2017-09-22 14:12:47 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-compiler.x86_64 should not be installed",
                            "run_time": 0.190892,
                            "start_time": "2017-09-22 14:12:47 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package cal10n.noarch should not be installed",
                            "run_time": 0.21971,
                            "start_time": "2017-09-22 14:12:47 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package checkpolicy.x86_64 should not be installed",
                            "run_time": 0.285565,
                            "start_time": "2017-09-22 14:12:47 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package compat-gcc-44.x86_64 should not be installed",
                            "run_time": 0.208997,
                            "start_time": "2017-09-22 14:12:48 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package compat-gcc-44-c++.x86_64 should not be installed",
                            "run_time": 0.197169,
                            "start_time": "2017-09-22 14:12:48 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package compat-gcc-44-gfortran.x86_64 should not be installed",
                            "run_time": 0.184967,
                            "start_time": "2017-09-22 14:12:48 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package ecj.x86_64 should not be installed",
                            "run_time": 0.190152,
                            "start_time": "2017-09-22 14:12:48 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package gcc.x86_64 should not be installed",
                            "run_time": 0.186674,
                            "start_time": "2017-09-22 14:12:48 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package golang-docs.noarch should not be installed",
                            "run_time": 0.192955,
                            "start_time": "2017-09-22 14:12:49 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package golang-misc.noarch should not be installed",
                            "run_time": 0.186996,
                            "start_time": "2017-09-22 14:12:49 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package golang-tests.noarch should not be installed",
                            "run_time": 0.19237,
                            "start_time": "2017-09-22 14:12:49 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package ocaml.x86_64 should not be installed",
                            "run_time": 0.219236,
                            "start_time": "2017-09-22 14:12:49 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package samba-pidl.noarch should not be installed",
                            "run_time": 0.177088,
                            "start_time": "2017-09-22 14:12:49 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package teckit.i686 should not be installed",
                            "run_time": 0.248101,
                            "start_time": "2017-09-22 14:12:50 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package teckit.x86_64 should not be installed",
                            "run_time": 0.249544,
                            "start_time": "2017-09-22 14:12:50 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package teckit-devel.i686 should not be installed",
                            "run_time": 0.219294,
                            "start_time": "2017-09-22 14:12:50 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package teckit-devel.x86_64 should not be installed",
                            "run_time": 0.207249,
                            "start_time": "2017-09-22 14:12:50 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package xalan-j2-xsltc.noarch should not be installed",
                            "run_time": 0.203836,
                            "start_time": "2017-09-22 14:12:50 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package antlr-tool.noarch should not be installed",
                            "run_time": 0.189615,
                            "start_time": "2017-09-22 14:12:51 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package automoc.x86_64 should not be installed",
                            "run_time": 0.187856,
                            "start_time": "2017-09-22 14:12:51 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package bcel.noarch should not be installed",
                            "run_time": 0.177579,
                            "start_time": "2017-09-22 14:12:51 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package boost-build.noarch should not be installed",
                            "run_time": 0.206171,
                            "start_time": "2017-09-22 14:12:51 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package boost-python.i686 should not be installed",
                            "run_time": 0.201613,
                            "start_time": "2017-09-22 14:12:51 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package boost-python.x86_64 should not be installed",
                            "run_time": 0.174389,
                            "start_time": "2017-09-22 14:12:52 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package clang.x86_64 should not be installed",
                            "run_time": 0.188197,
                            "start_time": "2017-09-22 14:12:52 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package clang-devel.x86_64 should not be installed",
                            "run_time": 0.219018,
                            "start_time": "2017-09-22 14:12:52 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package cmake.x86_64 should not be installed",
                            "run_time": 0.233543,
                            "start_time": "2017-09-22 14:12:52 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package codemodel.noarch should not be installed",
                            "run_time": 0.19259,
                            "start_time": "2017-09-22 14:12:52 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package cpp.x86_64 should not be installed",
                            "run_time": 0.191169,
                            "start_time": "2017-09-22 14:12:53 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package gcc-c++.x86_64 should not be installed",
                            "run_time": 0.187088,
                            "start_time": "2017-09-22 14:12:53 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package gcc-gfortran.x86_64 should not be installed",
                            "run_time": 0.177965,
                            "start_time": "2017-09-22 14:12:53 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package gcc-gnat.x86_64 should not be installed",
                            "run_time": 0.177524,
                            "start_time": "2017-09-22 14:12:53 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package gcc-go.x86_64 should not be installed",
                            "run_time": 0.200122,
                            "start_time": "2017-09-22 14:12:53 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package golang-bin.x86_64 should not be installed",
                            "run_time": 0.224601,
                            "start_time": "2017-09-22 14:12:54 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package golang-src.noarch should not be installed",
                            "run_time": 0.198211,
                            "start_time": "2017-09-22 14:12:54 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package javacc.noarch should not be installed",
                            "run_time": 0.196832,
                            "start_time": "2017-09-22 14:12:54 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package libffi.i686 should not be installed",
                            "run_time": 0.187802,
                            "start_time": "2017-09-22 14:12:54 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package libffi.x86_64 should not be installed",
                            "run_time": 0.179939,
                            "start_time": "2017-09-22 14:12:54 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package libsemanage.i686 should not be installed",
                            "run_time": 0.201244,
                            "start_time": "2017-09-22 14:12:55 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package libsemanage.x86_64 should not be installed",
                            "run_time": 0.218479,
                            "start_time": "2017-09-22 14:12:55 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package libsepol.i686 should not be installed",
                            "run_time": 0.18915,
                            "start_time": "2017-09-22 14:12:55 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package libsepol.x86_64 should not be installed",
                            "run_time": 0.189282,
                            "start_time": "2017-09-22 14:12:55 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package llvm.x86_64 should not be installed",
                            "run_time": 0.191381,
                            "start_time": "2017-09-22 14:12:55 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package llvm-doc.noarch should not be installed",
                            "run_time": 0.191281,
                            "start_time": "2017-09-22 14:12:56 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package llvm-libs.x86_64 should not be installed",
                            "run_time": 0.254814,
                            "start_time": "2017-09-22 14:12:56 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package llvm-static.x86_64 should not be installed",
                            "run_time": 0.214648,
                            "start_time": "2017-09-22 14:12:56 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package ncurses.x86_64 should not be installed",
                            "run_time": 0.198159,
                            "start_time": "2017-09-22 14:12:56 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package netsniff-ng.x86_64 should not be installed",
                            "run_time": 0.181901,
                            "start_time": "2017-09-22 14:12:56 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package orc.i686 should not be installed",
                            "run_time": 0.196094,
                            "start_time": "2017-09-22 14:12:57 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package orc.x86_64 should not be installed",
                            "run_time": 0.175049,
                            "start_time": "2017-09-22 14:12:57 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package perl-ExtUtils-CBuilder.noarch should not be installed",
                            "run_time": 0.174425,
                            "start_time": "2017-09-22 14:12:57 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package perl-Filter.x86_64 should not be installed",
                            "run_time": 0.254994,
                            "start_time": "2017-09-22 14:12:57 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package perl-Package-Stash-XS.x86_64 should not be installed",
                            "run_time": 0.23653,
                            "start_time": "2017-09-22 14:12:57 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package perl-Parse-Yapp.noarch should not be installed",
                            "run_time": 0.1849,
                            "start_time": "2017-09-22 14:12:58 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package pkgconfig.i686 should not be installed",
                            "run_time": 0.188058,
                            "start_time": "2017-09-22 14:12:58 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package pkgconfig.x86_64 should not be installed",
                            "run_time": 0.178005,
                            "start_time": "2017-09-22 14:12:58 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-devel.i686 should not be installed",
                            "run_time": 0.189291,
                            "start_time": "2017-09-22 14:12:58 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-devel.x86_64 should not be installed",
                            "run_time": 0.188582,
                            "start_time": "2017-09-22 14:12:58 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-lite.i686 should not be installed",
                            "run_time": 0.191269,
                            "start_time": "2017-09-22 14:12:59 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-lite.x86_64 should not be installed",
                            "run_time": 0.178058,
                            "start_time": "2017-09-22 14:12:59 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-lite-devel.i686 should not be installed",
                            "run_time": 0.197542,
                            "start_time": "2017-09-22 14:12:59 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-lite-devel.x86_64 should not be installed",
                            "run_time": 0.183488,
                            "start_time": "2017-09-22 14:12:59 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-lite-static.i686 should not be installed",
                            "run_time": 0.190882,
                            "start_time": "2017-09-22 14:12:59 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package protobuf-lite-static.x86_64 should not be installed",
                            "run_time": 0.194238,
                            "start_time": "2017-09-22 14:13:00 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package qt3-devel.i686 should not be installed",
                            "run_time": 0.177709,
                            "start_time": "2017-09-22 14:13:00 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package qt3-devel.x86_64 should not be installed",
                            "run_time": 0.175524,
                            "start_time": "2017-09-22 14:13:00 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package relaxngcc.noarch should not be installed",
                            "run_time": 0.190007,
                            "start_time": "2017-09-22 14:13:00 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package vala.i686 should not be installed",
                            "run_time": 0.18638,
                            "start_time": "2017-09-22 14:13:00 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package vala.x86_64 should not be installed",
                            "run_time": 0.180397,
                            "start_time": "2017-09-22 14:13:00 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package vala-devel.i686 should not be installed",
                            "run_time": 0.190114,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package vala-devel.x86_64 should not be installed",
                            "run_time": 0.18049,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "System Package ws-jaxme.noarch should not be installed",
                            "run_time": 0.180142,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "A public web server, if hosted on the NIPRNet, must be isolated in an\n  accredited DoD DMZ Extension.",
                    "desc": "To minimize exposure of private assets to unnecessary risk by\n  attackers, public web servers must be isolated from internal systems.Public\n  web servers are by nature more vulnerable to attack from publically based\n  sources, such as the public Internet. Once compromised, a public web server\n  might be used as a base for further attack on private resources, unless\n  additional layers of protection are implemented. Public web servers must be\n  located in a DoD DMZ Extension, if hosted on the NIPRNet, with carefully\n  controlled access. Failure to isolate resources in this way increase risk\n  that private assets are exposed to attacks from public sources.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA060",
                        "gid": "V-2242",
                        "rid": "SV-32932r2_rule",
                        "stig_id": "WA060 A22",
                        "nist": ["SC-7", "Rev_4"],
                        "check": "Interview the SA or web administrator to see where the public\n  web server is logically located in the data center. Review the site’s\n  network diagram to see how the web server is connected to the LAN. Visually\n  check the web server hardware connections to see if it conforms to the\n  site’s network diagram. An improperly located public web server is a\n  potential threat to the entire network.If the web server is not isolated in\n  an accredited DoD DMZ Extension, this is a finding.",
                        "fix": "Logically relocate the public web server to be isolated from\n  internal systems. In addition, ensure the public web server does not have\n  trusted connections with assets outside the confines of the demilitarized\n  zone (DMZ) other than application and/or database servers that are a part of\n  the same system as the web server."
                    },
                    "code": "control \"V-2242\" do\n\n  title \"A public web server, if hosted on the NIPRNet, must be isolated in an\n  accredited DoD DMZ Extension.\"\n\n  desc \"To minimize exposure of private assets to unnecessary risk by\n  attackers, public web servers must be isolated from internal systems.Public\n  web servers are by nature more vulnerable to attack from publically based\n  sources, such as the public Internet. Once compromised, a public web server\n  might be used as a base for further attack on private resources, unless\n  additional layers of protection are implemented. Public web servers must be\n  located in a DoD DMZ Extension, if hosted on the NIPRNet, with carefully\n  controlled access. Failure to isolate resources in this way increase risk\n  that private assets are exposed to attacks from public sources.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA060\"\n  tag \"gid\": \"V-2242\"\n  tag \"rid\": \"SV-32932r2_rule\"\n  tag \"stig_id\": \"WA060 A22\"\n  tag \"nist\": [\"SC-7\", \"Rev_4\"]\n\n  tag \"check\": \"Interview the SA or web administrator to see where the public\n  web server is logically located in the data center. Review the site’s\n  network diagram to see how the web server is connected to the LAN. Visually\n  check the web server hardware connections to see if it conforms to the\n  site’s network diagram. An improperly located public web server is a\n  potential threat to the entire network.If the web server is not isolated in\n  an accredited DoD DMZ Extension, this is a finding.\"\n\n  tag \"fix\": \"Logically relocate the public web server to be isolated from\n  internal systems. In addition, ensure the public web server does not have\n  trusted connections with assets outside the confines of the demilitarized\n  zone (DMZ) other than application and/or database servers that are a part of\n  the same system as the web server.\"\n\n  only_if {\n    false\n  }\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2242.rb",
                        "line": 29
                    },
                    "id": "V-2242",
                    "results": [
                        {
                            "status": "skipped",
                            "code_desc": "Operating System Detection",
                            "skip_message": "Skipped control due to only_if condition.",
                            "resource": "Operating System Detection",
                            "run_time": 8.0e-6,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "A private web server must be located on a separate controlled access\n  subnet.",
                    "desc": "Private web servers, which host sites that serve controlled access\n  data, must be protected from outside threats in addition to insider threats.\n  Insider threat may be accidental or intentional but, in either case, can\n  cause a disruption in service of the web server. To protect the private web\n  server from these threats, it must be located on a separate controlled\n  access subnet and must not be a part of the public DMZ that houses the\n  public web servers. It also cannot be located inside the enclave as part of\n  the local general population LAN.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA070",
                        "gid": "V-2243",
                        "rid": "SV-32935r1_rule",
                        "stig_id": "WA070 A22",
                        "nist": ["SC-7", "Rev_4"],
                        "check": "Verify the site’s network diagram and visually check the web\n  server, to ensure that the private web server is located on a separate\n  controlled access subnet and is not a part of the public DMZ that houses the\n  public web servers. In addition, the private web server needs to be isolated\n  via a controlled access mechanism from the local general population LAN.",
                        "fix": "Isolate the private web server from the public DMZ and separate\n  it from the internal general population LAN."
                    },
                    "code": "control \"V-2243\" do\n\n  title \"A private web server must be located on a separate controlled access\n  subnet.\"\n\n  desc \"Private web servers, which host sites that serve controlled access\n  data, must be protected from outside threats in addition to insider threats.\n  Insider threat may be accidental or intentional but, in either case, can\n  cause a disruption in service of the web server. To protect the private web\n  server from these threats, it must be located on a separate controlled\n  access subnet and must not be a part of the public DMZ that houses the\n  public web servers. It also cannot be located inside the enclave as part of\n  the local general population LAN.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA070\"\n  tag \"gid\": \"V-2243\"\n  tag \"rid\": \"SV-32935r1_rule\"\n  tag \"stig_id\": \"WA070 A22\"\n  tag \"nist\": [\"SC-7\", \"Rev_4\"]\n\n  tag \"check\": \"Verify the site’s network diagram and visually check the web\n  server, to ensure that the private web server is located on a separate\n  controlled access subnet and is not a part of the public DMZ that houses the\n  public web servers. In addition, the private web server needs to be isolated\n  via a controlled access mechanism from the local general population LAN.\"\n\n  tag \"fix\": \"Isolate the private web server from the public DMZ and separate\n  it from the internal general population LAN.\"\n\n  require \"ipaddr\"\n\n  # collect and test each listen IPs from nginx_conf\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.servers.entries.each do |server|\n      server.params['listen'].each do |listen|\n        describe listen.join do\n          it { should match %r([0-9]+(?:\\.[0-9]+){3}|[a-zA-Z]:[0-9]+) }\n        end\n        server_ip = listen.join.split(':').first\n        server_ip = server_ip.eql?('localhost') ? '127.0.0.1' : server_ip\n\n        describe IPAddr.new(DMZ_SUBNET) === IPAddr.new(server_ip) do\n          it { should be false}\n        end unless (IPAddr.new(server_ip) rescue nil).nil?\n\n      end unless server.params['listen'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2243.rb",
                        "line": 42
                    },
                    "id": "V-2243",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "localhost:80 should match /[0-9]+(?:\\.[0-9]+){3}|[a-zA-Z]:[0-9]+/",
                            "run_time": 0.001089,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "false should equal false",
                            "run_time": 0.00013,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "Web server software must be a vendor-supported version.",
                    "desc": "Many vulnerabilities are associated with older versions of\n  web server   software. As hot fixes and patches are issued, these solutions\n  are included   in the next version of the server software. Maintaining the web\n  server at a   current version makes the efforts of a malicious user to exploit\n  the web   service more difficult.",
                    "impact": 0.7,
                    "refs": [],
                    "tags": {
                        "severity": "high",
                        "gtitle": "WG190",
                        "gid": "V-2246",
                        "rid": "SV-36441r2_rule",
                        "stig_id": "WG190 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "To determine the version of the nginx software that is running\n  on the system. Use the command:\n\n  nginx -v\n\n  If the version of nginx is not at the following version or higher, this is a\n  finding.\n\n  nginx version: nginx/1.12.0\n\n  Note: In some situations, the nginx software that is being used is supported\n  by another vendor, such as nginx.com.  The versions of the software in these\n  cases may not match the above mentioned version numbers. If the site can\n  provide vendor documentation showing the version of the web server is\n  supported, this would not be a finding. ",
                        "fix": "Install the current version of the web server software and\n  maintain appropriate service packs and patches."
                    },
                    "code": "control \"V-2246\" do\n  title \"Web server software must be a vendor-supported version.\"\n  desc \"Many vulnerabilities are associated with older versions of\n  web server   software. As hot fixes and patches are issued, these solutions\n  are included   in the next version of the server software. Maintaining the web\n  server at a   current version makes the efforts of a malicious user to exploit\n  the web   service more difficult.\"\n  impact 0.7\n  tag \"severity\": \"high\"\n  tag \"gtitle\": \"WG190\"\n  tag \"gid\": \"V-2246\"\n  tag \"rid\": \"SV-36441r2_rule\"\n  tag \"stig_id\": \"WG190 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"To determine the version of the nginx software that is running\n  on the system. Use the command:\n\n  nginx -v\n\n  If the version of nginx is not at the following version or higher, this is a\n  finding.\n\n  nginx version: nginx/1.12.0\n\n  Note: In some situations, the nginx software that is being used is supported\n  by another vendor, such as nginx.com.  The versions of the software in these\n  cases may not match the above mentioned version numbers. If the site can\n  provide vendor documentation showing the version of the web server is\n  supported, this would not be a finding. \"\n\n  tag \"fix\": \"Install the current version of the web server software and\n  maintain appropriate service packs and patches.\"\n\n  begin\n    describe nginx do\n      its('version'){ should cmp >= NGINX_MIN_VER }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2246.rb",
                        "line": 43
                    },
                    "id": "V-2246",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "Nginx Environment version should cmp >= \"1.12.0\"",
                            "run_time": 0.000228,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "Administrators must be the only users allowed access to the directory\n  tree, the shell, or other operating system functions and utilities.",
                    "desc": "As a rule, accounts on a web server are to be kept to a minimum. Only\n  administrators, web managers, developers, auditors, and web authors require\n  accounts on the machine hosting the web server. This is in addition to the\n  anonymous web user account. The resources to which these accounts have\n  access must also be closely monitored and controlled. Only the SA needs\n  access to all the system’s capabilities, while the web administrator and\n  associated staff require access and control of the web content and web\n  server configuration files. The anonymous web user account must not have\n  access to system resources as that account could then control the server.",
                    "impact": 0.7,
                    "refs": [],
                    "tags": {
                        "severity": "high",
                        "gtitle": "WG200",
                        "gid": "V-2247",
                        "rid": "SV-36456r2_rule",
                        "stig_id": "WG200 A22",
                        "nist": ["AC-6", "Rev_4"],
                        "check": "Obtain a list of the user accounts for the system, noting the\n  priviledges for each account.\n\n  Verify with the system administrator or the ISSO that all privileged accounts\n  are mission essential and documented.\n\n  Verify with the system administrator or the ISSO that all non-administrator\n  access to shell scripts and operating system functions are mission essential\n  and documented.\n\n  If undocumented privileged accounts are found, this is a finding.\n\n  If undocumented access to shell scripts or operating system functions is\n  found, this is a finding.",
                        "fix": "Ensure non-administrators are not allowed access to the\n  directory tree, the shell, or other operating system functions and\n  utilities."
                    },
                    "code": "control \"V-2247\" do\n\n  title \"Administrators must be the only users allowed access to the directory\n  tree, the shell, or other operating system functions and utilities.\"\n\n  desc \"As a rule, accounts on a web server are to be kept to a minimum. Only\n  administrators, web managers, developers, auditors, and web authors require\n  accounts on the machine hosting the web server. This is in addition to the\n  anonymous web user account. The resources to which these accounts have\n  access must also be closely monitored and controlled. Only the SA needs\n  access to all the system’s capabilities, while the web administrator and\n  associated staff require access and control of the web content and web\n  server configuration files. The anonymous web user account must not have\n  access to system resources as that account could then control the server.\"\n\n  impact 0.7\n  tag \"severity\": \"high\"\n  tag \"gtitle\": \"WG200\"\n  tag \"gid\": \"V-2247\"\n  tag \"rid\": \"SV-36456r2_rule\"\n  tag \"stig_id\": \"WG200 A22\"\n  tag \"nist\": [\"AC-6\", \"Rev_4\"]\n\n  tag \"check\": \"Obtain a list of the user accounts for the system, noting the\n  priviledges for each account.\n\n  Verify with the system administrator or the ISSO that all privileged accounts\n  are mission essential and documented.\n\n  Verify with the system administrator or the ISSO that all non-administrator\n  access to shell scripts and operating system functions are mission essential\n  and documented.\n\n  If undocumented privileged accounts are found, this is a finding.\n\n  If undocumented access to shell scripts or operating system functions is\n  found, this is a finding.\"\n\n  tag \"fix\": \"Ensure non-administrators are not allowed access to the\n  directory tree, the shell, or other operating system functions and\n  utilities.\"\n\n\n\n  begin\n    users.shells(/bash/).usernames.each do |account|\n      describe account do\n        it { should match %r(#{SYS_ADMIN}|#{NGINX_OWNER}) }\n      end\n    end\n\n    if users.shells(/bash/).usernames.empty?\n      describe do\n        skip \"Skipped: no users found with shell acccess.\"\n      end\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2247.rb",
                        "line": 41
                    },
                    "id": "V-2247",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "root should match /root|nginx/",
                            "run_time": 0.000114,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "Web administration tools must be restricted to the web manager and\n  the web manager’s designees.",
                    "desc": "All automated information systems are at risk of data loss due to\n  disaster or compromise. Failure to provide adequate protection to the\n  administration tools creates risk of potential theft or damage that may\n  ultimately compromise the mission.Adequate protection ensures that server\n  administration operates with less risk of losses or operations outages.The\n  key web service administrative and configuration tools must be accessible\n  only by the authorized web server administrators. All users granted this\n  authority must be documented and approved by the ISSO. Access to the IIS\n  Manager will be limited to authorized users and administrators.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG220",
                        "gid": "V-2248",
                        "rid": "SV-32948r2_rule",
                        "stig_id": "WG220 A22",
                        "nist": ["AC-3", "AC-6", "Rev_4"],
                        "check": "Determine which tool or control file is used to control the\n  configuration of the web server.\n\n  If the control of the web server is done via control files, verify who has\n  update access to them. If tools are being used to configure the web server,\n  determine who has access to execute the tools.\n\n  If accounts other than the SA, the web manager, or the web manager designees\n  have access to the web administration tool or control files, this is a\n  finding. ",
                        "fix": "Determine which tool or control file is used to control the\n  configuration of the web server.\n\n  If the control of the web server is done via control files, verify who has\n  update access to them. If tools are being used to configure the web server,\n  determine who has access to execute the tools.\n\n  If accounts other than the SA, the web manager, or the web manager designees\n  have access to the web administration tool or control files, this is a\n  finding. "
                    },
                    "code": "control \"V-2248\" do\n\n  title \"Web administration tools must be restricted to the web manager and\n  the web manager’s designees.\"\n\n  desc\"All automated information systems are at risk of data loss due to\n  disaster or compromise. Failure to provide adequate protection to the\n  administration tools creates risk of potential theft or damage that may\n  ultimately compromise the mission.Adequate protection ensures that server\n  administration operates with less risk of losses or operations outages.The\n  key web service administrative and configuration tools must be accessible\n  only by the authorized web server administrators. All users granted this\n  authority must be documented and approved by the ISSO. Access to the IIS\n  Manager will be limited to authorized users and administrators.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG220\"\n  tag \"gid\": \"V-2248\"\n  tag \"rid\": \"SV-32948r2_rule\"\n  tag \"stig_id\": \"WG220 A22\"\n  tag \"nist\": [\"AC-3\", \"AC-6\", \"Rev_4\"]\n\n  tag \"check\": \"Determine which tool or control file is used to control the\n  configuration of the web server.\n\n  If the control of the web server is done via control files, verify who has\n  update access to them. If tools are being used to configure the web server,\n  determine who has access to execute the tools.\n\n  If accounts other than the SA, the web manager, or the web manager designees\n  have access to the web administration tool or control files, this is a\n  finding. \"\n\n  tag \"fix\": \"Determine which tool or control file is used to control the\n  configuration of the web server.\n\n  If the control of the web server is done via control files, verify who has\n  update access to them. If tools are being used to configure the web server,\n  determine who has access to execute the tools.\n\n  If accounts other than the SA, the web manager, or the web manager designees\n  have access to the web administration tool or control files, this is a\n  finding. \"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n    nginx_conf_handle.params\n\n    nginx_conf_handle.contents.keys.each do |file|\n      describe file(file) do\n        its('owner') { should match %r(#{SYS_ADMIN}|#{NGINX_OWNER}) }\n        its('group') { should match %r(#{SYS_ADMIN_GROUP}|#{NGINX_GROUP}) }\n        its('mode')  { should cmp <= 0660 }\n      end\n    end\n\n    if nginx_conf_handle.contents.keys.empty?\n      describe do\n        skip \"Skipped: no conf files included.\"\n      end\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2248.rb",
                        "line": 59
                    },
                    "id": "V-2248",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/nginx.conf owner should match /root|nginx/",
                            "run_time": 0.000108,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/nginx.conf group should match /root|nginx/",
                            "run_time": 0.000101,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/nginx.conf mode should cmp <= 432",
                            "run_time": 0.000163,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/mime.types owner should match /root|nginx/",
                            "run_time": 0.000145,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/mime.types group should match /root|nginx/",
                            "run_time": 9.6e-5,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/mime.types mode should cmp <= 432",
                            "run_time": 0.000144,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf owner should match /root|nginx/",
                            "run_time": 0.000101,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf group should match /root|nginx/",
                            "run_time": 0.000264,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf mode should cmp <= 432",
                            "run_time": 0.000167,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf owner should match /root|nginx/",
                            "run_time": 9.9e-5,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf group should match /root|nginx/",
                            "run_time": 9.4e-5,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf mode should cmp <= 432",
                            "run_time": 0.000203,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "All utility programs, not necessary for operations, must be removed\n  or disabled. ",
                    "desc": "Just as running unneeded services and protocols is a danger to the\n  web server at the lower levels of the OSI model, running unneeded utilities\n  and programs is also a danger at the application layer of the OSI model.\n  Office suites, development tools, and graphical editors are examples of such\n  programs that are troublesome. Individual productivity tools have no\n  legitimate place or use on an enterprise, production web server and they are\n  also prone to their own security risks.",
                    "impact": 0.3,
                    "refs": [],
                    "tags": {
                        "severity": "low",
                        "gtitle": "WG130",
                        "gid": "V-2251",
                        "rid": "SV-32955r2_rule",
                        "stig_id": "WG130 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "If the site requires the use of a particular piece of\n  software, the ISSO will need to maintain documentation identifying this\n  software as necessary for operations. The software must be operated at the\n  vendor’s current patch level and must be a supported vendor release. If\n  programs or utilities that meet the above criteria are installed on the Web\n  Server, and appropriate documentation and signatures are in evidence, this is\n  not a finding.\n\n  Determine whether the web server is configured with unnecessary software.\n\n  Determine whether processes other than those that support the web server are\n  loaded and/or run on the web server.\n\n  Examples of software that should not be on the web server are all web\n  development tools, office suites (unless the web server is a private web\n  development server), compilers, and other utilities that are not part of the\n  web server suite or the basic operating system.\n\n  Check the directory structure of the server and ensure that additional,\n  unintended, or unneeded applications are not loaded on the system.\n\n  If, after review of the application on the system, there is no justification\n  for the identified software, this is a finding.  ",
                        "fix": "Remove any unnecessary applications."
                    },
                    "code": "control \"V-2251\" do\n\n  title \"All utility programs, not necessary for operations, must be removed\n  or disabled. \"\n\n  desc  \"Just as running unneeded services and protocols is a danger to the\n  web server at the lower levels of the OSI model, running unneeded utilities\n  and programs is also a danger at the application layer of the OSI model.\n  Office suites, development tools, and graphical editors are examples of such\n  programs that are troublesome. Individual productivity tools have no\n  legitimate place or use on an enterprise, production web server and they are\n  also prone to their own security risks.\"\n\n  impact 0.3\n  tag \"severity\": \"low\"\n  tag \"gtitle\": \"WG130\"\n  tag \"gid\": \"V-2251\"\n  tag \"rid\": \"SV-32955r2_rule\"\n  tag \"stig_id\": \"WG130 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"If the site requires the use of a particular piece of\n  software, the ISSO will need to maintain documentation identifying this\n  software as necessary for operations. The software must be operated at the\n  vendor’s current patch level and must be a supported vendor release. If\n  programs or utilities that meet the above criteria are installed on the Web\n  Server, and appropriate documentation and signatures are in evidence, this is\n  not a finding.\n\n  Determine whether the web server is configured with unnecessary software.\n\n  Determine whether processes other than those that support the web server are\n  loaded and/or run on the web server.\n\n  Examples of software that should not be on the web server are all web\n  development tools, office suites (unless the web server is a private web\n  development server), compilers, and other utilities that are not part of the\n  web server suite or the basic operating system.\n\n  Check the directory structure of the server and ensure that additional,\n  unintended, or unneeded applications are not loaded on the system.\n\n  If, after review of the application on the system, there is no justification\n  for the identified software, this is a finding.  \"\n\n  tag \"fix\": \"Remove any unnecessary applications.\"\n\n\n  begin\n    ps_list = command('ps -A').stdout.scan(/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\\s(.+)/).flatten.uniq\n\n    describe ps_list do\n      it { should be_in AUTHORIZED_PROCESS_LIST}\n    end\n\n    if ps_list.empty?\n      describe do\n        skip \"Skipped: no processes parsed.\"\n      end\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2251.rb",
                        "line": 44
                    },
                    "id": "V-2251",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[\"systemd\", \"systemd-journal\", \"systemd-udevd\", \"dbus-daemon\", \"systemd-logind\", \"nginx\", \"agetty\", \"ps\"] should be in \"nginx\", \"systemd\", \"systemd-journal\", \"systemd-udevd\", \"systemd-logind\", \"dbus-daemon\", \"agetty\", \"bash\", and \"ps\"",
                            "run_time": 0.000212,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "The web server’s htpasswd files (if present) must reflect proper\n  ownership and permissions",
                    "desc": "In addition to OS restrictions, access rights to files and directories\n  can be set on a web site using the web server software.That is, in addition\n  to allowing or denying all access rights, a rule can be specified that\n  allows or denies partial access rights.For example, users can be given read-\n  only access rights to files, to view the information but not change the\n  files.\n\n  This check verifies that the htpasswd file is only accessible by system\n  administrators or web managers, with the account running the web service\n  having group permissions of read and execute.  htpasswd is a utility used to\n  provide for password access to web sites.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG270",
                        "gid": "V-2255",
                        "rid": "SV-36478r2_rule",
                        "stig_id": "WG270 A22",
                        "nist": ["AC-3", "Rev_4"],
                        "check": "To locate the htpasswd file enter the following command:\n\n  Find / -name htpasswd Permissions should be r-x r - x - - - (550)\n\n  If permissions on htpasswd are greater than 550, this is a finding.\n\n  Owner should be the SA or Web Manager account, if another account has access\n  to this file, this is a finding. ",
                        "fix": "The SA or Web Manager account\n  should own the htpasswd file and permissions should be set to 550."
                    },
                    "code": "control \"V-2255\" do\n\n  title \"The web server’s htpasswd files (if present) must reflect proper\n  ownership and permissions\"\n\n  desc \"In addition to OS restrictions, access rights to files and directories\n  can be set on a web site using the web server software.That is, in addition\n  to allowing or denying all access rights, a rule can be specified that\n  allows or denies partial access rights.For example, users can be given read-\n  only access rights to files, to view the information but not change the\n  files.\n\n  This check verifies that the htpasswd file is only accessible by system\n  administrators or web managers, with the account running the web service\n  having group permissions of read and execute.  htpasswd is a utility used to\n  provide for password access to web sites.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG270\"\n  tag \"gid\": \"V-2255\"\n  tag \"rid\": \"SV-36478r2_rule\"\n  tag \"stig_id\": \"WG270 A22\"\n  tag \"nist\": [\"AC-3\", \"Rev_4\"]\n  tag \"check\": \"To locate the htpasswd file enter the following command:\n\n  Find / -name htpasswd Permissions should be r-x r - x - - - (550)\n\n  If permissions on htpasswd are greater than 550, this is a finding.\n\n  Owner should be the SA or Web Manager account, if another account has access\n  to this file, this is a finding. \"\n\n  tag \"fix\": \"The SA or Web Manager account\n  should own the htpasswd file and permissions should be set to 550.\"\n\n  begin\n    htpasswd = command('find / -name .htpasswd').stdout.chomp\n    htpasswd.split.each do |htpwd|\n      describe file(htpwd) do\n        its('mode') { should cmp <= 0550 }\n      end\n      describe file(htpwd) do\n        its('owner') { should match %r(#{SYS_ADMIN}|#{NGINX_OWNER}) }\n        its('group') { should match %r(#{SYS_ADMIN_GROUP}|#{NGINX_GROUP}) }\n      end\n    end\n\n    if htpasswd.empty?\n      describe do\n        skip \"Skipped: .htpasswd file not found\"\n      end\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2255.rb",
                        "line": 53
                    },
                    "id": "V-2255",
                    "results": [
                        {
                            "status": "skipped",
                            "code_desc": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
                            "skip_message": "Skipped: .htpasswd file not found",
                            "resource": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
                            "run_time": 7.0e-6,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "The access control files are owned by a privileged web server account.",
                    "desc": "This check verifies that the key web server system configuration files\n are owned by the SA or Web Manager controlled account. These same files\n which control the configuration of the web server, and thus its behavior,\n must also be accessible by the account which runs the web service. If these\n files are altered by a malicious user, the web server would no longer be\n under the control of its managers and owners; properties in the web server\n configuration could be altered to compromise the entire server platform.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG280",
                        "gid": "V-2256",
                        "rid": "SV-6880r1_rule",
                        "stig_id": "WG280",
                        "nist": ["AC-3", "Rev_4"],
                        "check": "This check verifies that the SA or Web Manager controlled\n  account owns the key web server files. These same files, which control the\n  configuration of the web server, and thus its behavior, must also be\n  accessible by the account that runs the web service process.\n\n  If it exists, the following file need to be owned by a privileged account.\n\n  .htaccess .htpasswd nginx.conf and its included configuration files\n\n  Use the command find / -name nginx.conf to find the file.  grep include on\n  the nginx.conf file to identify included configuration files. Change to the\n  directories that contain the nginx.conf and included configuration files. Use\n  the command ls -l on these files to determine ownership of the file\n\n  -The Web Manager or the SA should own all the system files and directories.\n  -The configurable directories can be owned by the WebManager or equivalent\n  -user.\n\n  Permissions on these files should be 660 or more restrictive.\n\n  If root or an authorized user does not own the web system files and the\n  permission are not correct, this is a finding.",
                        "fix": "The site needs to ensure that the owner should be the non-\n  privileged web server account or equivalent which runs the web service;\n  however, the group permissions represent those of the user accessing the web\n  site that must execute the directives in .htacces."
                    },
                    "code": "control \"V-2256\" do\n  title \"The access control files are owned by a privileged web server account.\"\n\n  desc \" This check verifies that the key web server system configuration files\n  are owned by the SA or Web Manager controlled account. These same files\n  which control the configuration of the web server, and thus its behavior,\n  must also be accessible by the account which runs the web service. If these\n  files are altered by a malicious user, the web server would no longer be\n  under the control of its managers and owners; properties in the web server\n  configuration could be altered to compromise the entire server platform.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG280\"\n  tag \"gid\": \"V-2256\"\n  tag \"rid\": \"SV-6880r1_rule\"\n  tag \"stig_id\": \"WG280\"\n  tag \"nist\": [\"AC-3\", \"Rev_4\"]\n\n  tag \"check\": \"This check verifies that the SA or Web Manager controlled\n  account owns the key web server files. These same files, which control the\n  configuration of the web server, and thus its behavior, must also be\n  accessible by the account that runs the web service process.\n\n  If it exists, the following file need to be owned by a privileged account.\n\n  .htaccess .htpasswd nginx.conf and its included configuration files\n\n  Use the command find / -name nginx.conf to find the file.  grep \"\"include\"\" on\n  the nginx.conf file to identify included configuration files. Change to the\n  directories that contain the nginx.conf and included configuration files. Use\n  the command ls -l on these files to determine ownership of the file\n\n  -The Web Manager or the SA should own all the system files and directories.\n  -The configurable directories can be owned by the WebManager or equivalent\n  -user.\n\n  Permissions on these files should be 660 or more restrictive.\n\n  If root or an authorized user does not own the web system files and the\n  permission are not correct, this is a finding.\"\n\n  tag \"fix\": \"The site needs to ensure that the owner should be the non-\n  privileged web server account or equivalent which runs the web service;\n  however, the group permissions represent those of the user accessing the web\n  site that must execute the directives in .htacces.\"\n\n  begin\n    access_control_files = [ '.htaccess',\n                            '.htpasswd']\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n    nginx_conf_handle.params\n\n    access_control_files.each do |file|\n      file_path = command(\"find / -name #{file}\").stdout.chomp\n\n      if file_path.empty?\n        describe do\n          skip \"Skipped: Access control file #{file} not found\"\n        end\n      end\n\n      file_path.split.each do |file|\n        describe file(file) do\n          its('owner') { should match %r(#{SYS_ADMIN}|#{NGINX_OWNER}) }\n          its('group') { should match %r(#{SYS_ADMIN_GROUP}|#{NGINX_GROUP}) }\n          its('mode')  { should cmp <= 0660 }\n        end\n      end\n    end\n\n    nginx_conf_handle.contents.keys.each do |file|\n      describe file(file) do\n        its('owner') { should match %r(#{SYS_ADMIN}|#{NGINX_OWNER}) }\n        its('group') { should match %r(#{SYS_ADMIN_GROUP}|#{NGINX_GROUP}) }\n        its('mode')  { should cmp <= 0660 }\n      end\n    end\n\n    if nginx_conf_handle.contents.keys.empty?\n      describe do\n        skip \"Skipped: no conf files included.\"\n      end\n    end\n\n    webserver_roots = []\n\n    nginx_conf_handle.http.entries.each do |http|\n      webserver_roots.push(http.params['root']) unless http.params['root'].nil?\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      webserver_roots.push(server.params['root']) unless server.params['root'].nil?\n    end\n\n    nginx_conf_handle.locations.entries.each do |location|\n      webserver_roots.push(location.params['root']) unless location.params['root'].nil?\n    end\n\n    webserver_roots.flatten!.uniq!\n\n    webserver_roots.each do |directory|\n      describe file(directory) do\n        its('owner') { should match %r(#{SYS_ADMIN}|#{NGINX_OWNER}) }\n        its('group') { should match %r(#{SYS_ADMIN_GROUP}|#{NGINX_GROUP}) }\n        its('sticky'){ should be true }\n      end\n    end\n\n    if webserver_roots.empty?\n      describe do\n        skip \"Skipped: no web root directories found.\"\n      end\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2256.rb",
                        "line": 60
                    },
                    "id": "V-2256",
                    "results": [
                        {
                            "status": "skipped",
                            "code_desc": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
                            "skip_message": "Skipped: Access control file .htaccess not found",
                            "resource": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
                            "run_time": 5.0e-6,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "skipped",
                            "code_desc": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
                            "skip_message": "Skipped: Access control file .htpasswd not found",
                            "resource": "{\"file_path\"=>\"/usr/local/lib/ruby/gems/2.4.0/gems/inspec-1.37.6/lib/inspec/rule.rb\", \"line_number\"=>223}",
                            "run_time": 5.0e-6,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/nginx.conf owner should match /root|nginx/",
                            "run_time": 0.000118,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/nginx.conf group should match /root|nginx/",
                            "run_time": 9.6e-5,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/nginx.conf mode should cmp <= 432",
                            "run_time": 0.000154,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/mime.types owner should match /root|nginx/",
                            "run_time": 9.7e-5,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/mime.types group should match /root|nginx/",
                            "run_time": 0.000124,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/mime.types mode should cmp <= 432",
                            "run_time": 0.000139,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf owner should match /root|nginx/",
                            "run_time": 9.4e-5,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf group should match /root|nginx/",
                            "run_time": 0.000127,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d/90.hardening.conf mode should cmp <= 432",
                            "run_time": 0.000149,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf owner should match /root|nginx/",
                            "run_time": 0.000105,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf group should match /root|nginx/",
                            "run_time": 9.3e-5,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/sites-enabled/vserver1.conf mode should cmp <= 432",
                            "run_time": 0.000252,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html/app1 owner should match /root|nginx/",
                            "run_time": 0.074648,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html/app1 group should match /root|nginx/",
                            "run_time": 0.000159,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html/app1 sticky should equal true",
                            "run_time": 0.000135,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html/app2 owner should match /root|nginx/",
                            "run_time": 0.06638,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html/app2 group should match /root|nginx/",
                            "run_time": 0.000192,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html/app2 sticky should equal true",
                            "run_time": 0.000184,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "Administrative users and groups that have access rights to the web\n  server must be documented.",
                    "desc": "There are typically several individuals and groups that are involved in\n  running a production web server.These accounts must be restricted to only\n  those necessary to maintain web services, review the server’s operation, and\n  the operating system.By minimizing the amount of user and group accounts on\n  a web server the total attack surface of the server is\n  minimized.Additionally, if the required accounts aren’t documented no known\n  standard is created.Without a known standard the ability to identify\n  required accounts is diminished, increasing the opportunity for error when\n  such a standard is needed (i.e. COOP, IR, etc.).",
                    "impact": 0.3,
                    "refs": [],
                    "tags": {
                        "severity": "low",
                        "gtitle": "WA120",
                        "gid": "V-2257",
                        "rid": "SV-32951r1_rule",
                        "stig_id": "WA120 A22",
                        "nist": ["AC-2", "Rev_4"],
                        "check": "Proposed Questions: How many user accounts are associated with\n  the Web server operation and maintenance?\n\n  Where are these accounts documented?\n\n  Use the command line utility more /etc/passwd to identify the accounts on the\n  web server.\n\n  Query the SA or Web Manager regarding the use of each account and each group.\n\n  If the documentation does not match the users and groups found on the server,\n  this is a finding. ",
                        "fix": "Document the administrative users and groups which have access\n  rights to the web server in the web site SOP or in an equivalent document."
                    },
                    "code": "control \"V-2257\" do\n\n  title \"Administrative users and groups that have access rights to the web\n  server must be documented.\"\n\n  desc\"There are typically several individuals and groups that are involved in\n  running a production web server.These accounts must be restricted to only\n  those necessary to maintain web services, review the server’s operation, and\n  the operating system.By minimizing the amount of user and group accounts on\n  a web server the total attack surface of the server is\n  minimized.Additionally, if the required accounts aren’t documented no known\n  standard is created.Without a known standard the ability to identify\n  required accounts is diminished, increasing the opportunity for error when\n  such a standard is needed (i.e. COOP, IR, etc.).\"\n\n  impact 0.3\n  tag \"severity\": \"low\"\n  tag \"gtitle\": \"WA120\"\n  tag \"gid\": \"V-2257\"\n  tag \"rid\": \"SV-32951r1_rule\"\n  tag \"stig_id\": \"WA120 A22\"\n  tag \"nist\": [\"AC-2\", \"Rev_4\"]\n\n  tag \"check\": \"Proposed Questions: How many user accounts are associated with\n  the Web server operation and maintenance?\n\n  Where are these accounts documented?\n\n  Use the command line utility more /etc/passwd to identify the accounts on the\n  web server.\n\n  Query the SA or Web Manager regarding the use of each account and each group.\n\n  If the documentation does not match the users and groups found on the server,\n  this is a finding. \"\n\n  tag \"fix\": \"Document the administrative users and groups which have access\n  rights to the web server in the web site SOP or in an equivalent document.\"\n\n  begin\n    DOCUMENTED_ADMINS = [SYS_ADMIN, NGINX_OWNER]\n\n    describe nginx_conf(NGINX_CONF_FILE).params['user'].flatten do\n      it{ should be_in DOCUMENTED_ADMINS}\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2257.rb",
                        "line": 48
                    },
                    "id": "V-2257",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[\"nginx\"] should be in \"root\" and \"nginx\"",
                            "run_time": 0.000329,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "Web server system files must conform to minimum file permission\n  requirements.",
                    "desc": "This check verifies that the key web server system configuration files\n  are owned by the SA or the web administrator controlled account. These same\n  files that control the configuration of the web server, and thus its\n  behavior, must also be accessible by the account that runs the web service.\n  If these files are altered by a malicious user, the web server would no\n  longer be under the control of its managers and owners; properties in the\n  web server configuration could be altered to compromise the entire server\n  platform.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG300",
                        "gid": "V-2259",
                        "rid": "SV-32938r1_rule",
                        "stig_id": "WG300 A22",
                        "nist": ["AC-3", "AC-6", "Rev_4"],
                        "check": "Nginx directory and file permissions and ownership should be\n  set per the following table.. The installation directories may vary from one\n  installation to the next.If used, the WebAmins group should contain only\n  accounts of persons authorized to manage the web server configuration,\n  otherwise the root group should own all Nginx files and directories.\n\n  If the files and directories are not set to the following permissions or more\n  restrictive, this is a finding.\n\n  grep for the root directive on the nginx.conf file and any separate\n  included configuration files to find the Nginx root directory\n\n  /usr/sbin/nginx       root WebAdmin  550/550\n  /etc/nginx/           root WebAdmin 770/660\n  /etc/nginx/conf.d     root WebAdmin 770/660\n  /etc/nginx/modules    root WebAdmin 770/660\n  /usr/share/nginx/html root WebAdmin  775/664\n  /var/log/nginx        root WebAdmin  750/640\n\n  NOTE:  The permissions are noted as directories / files",
                        "fix": "Use the chmod command to set permissions on the web server\n  system directories and files as follows.\n\n  /usr/sbin/nginx       root WebAdmin  550/550\n  /etc/nginx/           root WebAdmin 770/660\n  /etc/nginx/conf.d     root WebAdmin 770/660\n  /etc/nginx/modules    root WebAdmin 770/660\n  /usr/share/nginx/html root WebAdmin  775/664\n  /var/log/nginx        root WebAdmin  750/640\n  "
                    },
                    "code": "control \"V-2259\" do\n\n  title \"Web server system files must conform to minimum file permission\n  requirements.\"\n\n  desc \"This check verifies that the key web server system configuration files\n  are owned by the SA or the web administrator controlled account. These same\n  files that control the configuration of the web server, and thus its\n  behavior, must also be accessible by the account that runs the web service.\n  If these files are altered by a malicious user, the web server would no\n  longer be under the control of its managers and owners; properties in the\n  web server configuration could be altered to compromise the entire server\n  platform.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG300\"\n  tag \"gid\": \"V-2259\"\n  tag \"rid\": \"SV-32938r1_rule\"\n  tag \"stig_id\": \"WG300 A22\"\n  tag \"nist\": [\"AC-3\", \"AC-6\", \"Rev_4\"]\n\n  tag \"check\": \"Nginx directory and file permissions and ownership should be\n  set per the following table.. The installation directories may vary from one\n  installation to the next.If used, the WebAmins group should contain only\n  accounts of persons authorized to manage the web server configuration,\n  otherwise the root group should own all Nginx files and directories.\n\n  If the files and directories are not set to the following permissions or more\n  restrictive, this is a finding.\n\n  grep for the \"\"root\"\" directive on the nginx.conf file and any separate\n  included configuration files to find the Nginx root directory\n\n  /usr/sbin/nginx       root WebAdmin  550/550\n  /etc/nginx/           root WebAdmin 770/660\n  /etc/nginx/conf.d     root WebAdmin 770/660\n  /etc/nginx/modules    root WebAdmin 770/660\n  /usr/share/nginx/html root WebAdmin  775/664\n  /var/log/nginx        root WebAdmin  750/640\n\n  NOTE:  The permissions are noted as directories / files\"\n\n  tag \"fix\": \"Use the chmod command to set permissions on the web server\n  system directories and files as follows.\n\n  /usr/sbin/nginx       root WebAdmin  550/550\n  /etc/nginx/           root WebAdmin 770/660\n  /etc/nginx/conf.d     root WebAdmin 770/660\n  /etc/nginx/modules    root WebAdmin 770/660\n  /usr/share/nginx/html root WebAdmin  775/664\n  /var/log/nginx        root WebAdmin  750/640\n  \"\n\n  begin\n    describe.one do\n      describe file('/usr/sbin/nginx') do\n        it { should be_owned_by SYS_ADMIN }\n        its('group') { should cmp SYS_ADMIN_GROUP }\n        its('mode') { should cmp <= 550 }\n      end\n      describe file('/usr/sbin/nginx') do\n        it { should be_owned_by NGINX_OWNER }\n        its('group') { should cmp NGINX_GROUP }\n        its('mode') { should cmp <= 550 }\n      end\n    end\n    describe.one do\n      describe file('/etc/nginx/') do\n        it { should be_owned_by SYS_ADMIN }\n        its('group') { should cmp SYS_ADMIN_GROUP }\n        its('mode') { should cmp <= 770 }\n      end\n      describe file('/etc/nginx/') do\n        it { should be_owned_by NGINX_OWNER }\n        its('group') { should cmp NGINX_GROUP }\n        its('mode') { should cmp <= 660 }\n      end\n    end\n    describe.one do\n      describe file('/etc/nginx/conf.d') do\n        it { should be_owned_by SYS_ADMIN }\n        its('group') { should cmp SYS_ADMIN_GROUP }\n        its('mode') { should cmp <= 770 }\n      end\n      describe file('/etc/nginx/conf.d') do\n        it { should be_owned_by NGINX_OWNER }\n        its('group') { should cmp NGINX_GROUP }\n        its('mode') { should cmp <= 660 }\n      end\n    end\n    describe.one do\n      describe file('/etc/nginx/modules') do\n        it { should be_owned_by SYS_ADMIN }\n        its('group') { should cmp SYS_ADMIN_GROUP }\n        its('mode') { should cmp <= 770 }\n      end\n      describe file('/etc/nginx/modules') do\n        it { should be_owned_by NGINX_OWNER }\n        its('group') { should cmp NGINX_GROUP }\n        its('mode') { should cmp <= 660 }\n      end\n    end\n    describe.one do\n      describe file('/usr/share/nginx/html') do\n        it { should be_owned_by SYS_ADMIN }\n        its('group') { should cmp SYS_ADMIN_GROUP }\n        its('mode') { should cmp <= 775 }\n      end\n      describe file('/usr/share/nginx/html') do\n        it { should be_owned_by NGINX_OWNER }\n        its('group') { should cmp NGINX_GROUP }\n        its('mode') { should cmp <= 664 }\n      end\n    end\n    describe.one do\n      describe file('/var/log/nginx') do\n        it { should be_owned_by SYS_ADMIN }\n        its('group') { should cmp SYS_ADMIN_GROUP }\n        its('mode') { should cmp <= 750 }\n      end\n      describe file('/var/log/nginx') do\n        it { should be_owned_by NGINX_OWNER }\n        its('group') { should cmp NGINX_GROUP }\n        its('mode') { should cmp <= 640 }\n      end\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2259.rb",
                        "line": 59
                    },
                    "id": "V-2259",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "File /usr/sbin/nginx should be owned by \"root\"",
                            "run_time": 0.000183,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/sbin/nginx group should cmp == \"root\"",
                            "run_time": 0.000244,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/sbin/nginx mode should cmp <= 550",
                            "run_time": 0.000304,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/ should be owned by \"root\"",
                            "run_time": 0.000164,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/ group should cmp == \"root\"",
                            "run_time": 0.000228,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/ mode should cmp <= 770",
                            "run_time": 0.000425,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d should be owned by \"root\"",
                            "run_time": 0.000265,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d group should cmp == \"root\"",
                            "run_time": 0.00048,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/conf.d mode should cmp <= 770",
                            "run_time": 0.000323,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/modules should be owned by \"root\"",
                            "run_time": 0.000293,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/modules group should cmp == \"root\"",
                            "run_time": 0.000516,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /etc/nginx/modules mode should cmp <= 770",
                            "run_time": 0.0009,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html should be owned by \"nginx\"",
                            "run_time": 0.001347,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html group should cmp == \"nginx\"",
                            "run_time": 0.000755,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /usr/share/nginx/html mode should cmp <= 664",
                            "run_time": 0.000311,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /var/log/nginx should be owned by \"root\"",
                            "run_time": 0.000359,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /var/log/nginx group should cmp == \"root\"",
                            "run_time": 0.000336,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /var/log/nginx mode should cmp <= 750",
                            "run_time": 0.000632,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "A public web server must limit email to outbound only.",
                    "desc": "Incoming E-mail has been known to provide hackers with access to\n servers. Disabling the incoming mail service prevents this type of attacks.\n Additionally, Email represents the main use of the Internet. It is\n specialized application that requires the dedication of server resources. To\n combine this type of transaction processing function with the file serving\n role of the web server creates an inherent conflict. Supporting mail\n services on a web server opens the server to the risk of abuse as an email\n relay. falseWeb AdministratorECSC-1",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG330",
                        "gid": "V-2261",
                        "rid": "SV-32937r1_rule",
                        "stig_id": "WG330 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "check": "\"To determine if email applications are excepting incoming\n  connections (on standard ports)enter the following command:\n\n  telnet localhost 25\n\n  review the command results, If an e-mail program is installed and that program\n  has been configured to accept inbound email, this is a finding.\" ",
                        "fix": "Configure the email application to not allow incoming connections."
                    },
                    "code": "control \"V-2261\" do\n  title \"A public web server must limit email to outbound only.\"\n\n  desc\" Incoming E-mail has been known to provide hackers with access to\n  servers. Disabling the incoming mail service prevents this type of attacks.\n  Additionally, Email represents the main use of the Internet. It is\n  specialized application that requires the dedication of server resources. To\n  combine this type of transaction processing function with the file serving\n  role of the web server creates an inherent conflict. Supporting mail\n  services on a web server opens the server to the risk of abuse as an email\n  relay. falseWeb AdministratorECSC-1 \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG330\"\n  tag \"gid\": \"V-2261\"\n  tag \"rid\": \"SV-32937r1_rule\"\n  tag \"stig_id\": \"WG330 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"check\": \"\\\"To determine if email applications are excepting incoming\n  connections (on standard ports)enter the following command:\n\n  telnet localhost 25\n\n  review the command results, If an e-mail program is installed and that program\n  has been configured to accept inbound email, this is a finding.\\\" \"\n\n  tag \"fix\": \"Configure the email application to not allow incoming connections.\"\n\n\n  begin\n    describe port(25) do\n      it { should_not be_listening }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\n\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2261.rb",
                        "line": 29
                    },
                    "id": "V-2261",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "Port 25 should not be listening",
                            "run_time": 0.14362,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "Monitoring software must include CGI or equivalent programs in its\n  scope.",
                    "desc": "By their very nature, CGI type files permit the anonymous web user to\n  interact with data and perhaps store data on the web server. In many cases,\n  CGI scripts exercise system-level control over the server’s resources. These\n  files make appealing targets for the malicious user. If these files can be\n  modified or exploited, the web server can be compromised. These files must\n  be monitored by a security tool that reports unauthorized changes to these\n  files.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG440",
                        "gid": "V-2271",
                        "rid": "SV-32927r2_rule",
                        "stig_id": "WG440 A22",
                        "nist": ["AU-6", "AC-3", "Rev_4"],
                        "check": "CGI or equivalent files must be monitored by a security tool\n  that reports unauthorized changes. It is the purpose of such software to\n  monitor key files for unauthorized changes to them. The reviewer should\n  query the ISSO, the SA, and the web administrator and verify the information\n  provided by asking to see the template file or configuration file of the\n  software being used to accomplish this security task. Example file\n  extensions for files considered to provide active content are, but not\n  limited to, .cgi, .asp, .aspx, .class, .vb, .php, .pl, and .c.\n\n  If the site does not have a process in place to monitor changes to CGI program\n  files, this is a finding.",
                        "fix": "Use a monitoring tool to monitor changes to the CGI or\n  equivalent directory. This can be done with something as simple as a script or\n  batch file that would identify a change in the file."
                    },
                    "code": "control \"V-2271\" do\n  title \"Monitoring software must include CGI or equivalent programs in its\n  scope.\"\n  desc \"By their very nature, CGI type files permit the anonymous web user to\n  interact with data and perhaps store data on the web server. In many cases,\n  CGI scripts exercise system-level control over the server’s resources. These\n  files make appealing targets for the malicious user. If these files can be\n  modified or exploited, the web server can be compromised. These files must\n  be monitored by a security tool that reports unauthorized changes to these\n  files.\"\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG440\"\n  tag \"gid\": \"V-2271\"\n  tag \"rid\": \"SV-32927r2_rule\"\n  tag \"stig_id\": \"WG440 A22\"\n  tag \"nist\": [\"AU-6\", \"AC-3\", \"Rev_4\"]\n\n  tag \"check\": \"CGI or equivalent files must be monitored by a security tool\n  that reports unauthorized changes. It is the purpose of such software to\n  monitor key files for unauthorized changes to them. The reviewer should\n  query the ISSO, the SA, and the web administrator and verify the information\n  provided by asking to see the template file or configuration file of the\n  software being used to accomplish this security task. Example file\n  extensions for files considered to provide active content are, but not\n  limited to, .cgi, .asp, .aspx, .class, .vb, .php, .pl, and .c.\n\n  If the site does not have a process in place to monitor changes to CGI program\n  files, this is a finding.\"\n\n  tag \"fix\": \"Use a monitoring tool to monitor changes to the CGI or\n  equivalent directory. This can be done with something as simple as a script or\n  batch file that would identify a change in the file.\"\n\n  begin\n    describe package(MONITORINGSOFTWARE) do\n      it{ should be_installed }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-2271.rb",
                        "line": 35
                    },
                    "id": "V-2271",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "System Package audit should be installed",
                            "run_time": 0.376298,
                            "start_time": "2017-09-22 14:13:01 -0400"
                        }
                    ]
                },
                {
                    "title": "Active software modules must be minimized.",
                    "desc": "Modules are the source of nginx httpd servers core and dynamic\n  capabilities. Thus not every module available is needed for operation. Most\n  installations only need a small subset of the modules available. By\n  minimizing the enabled modules to only those that are required, we reduce\n  the number of doors and have therefore reduced the attack surface of the web\n  site. Likewise having fewer modules means less software that could have\n  vulnerabilities.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA00500",
                        "gid": "V-26285",
                        "rid": "SV-33215r1_rule",
                        "stig_id": "WA00500 A22",
                        "nist": ["CM-2", "Rev_4"],
                        "check": "Enter the following command:\n\n  nginx -V\n\n  This will provide a list of the loaded modules. Validate that all displayed\n  modules are required for operations. If any module is not required for\n  operation, this is a finding.\n\n  Note:  The following modules are needed for basic web function and do not need\n  to be reviewed:\n\n  ngx_http_* modules, except for modules excluded in the following rules below",
                        "fix": "Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules."
                    },
                    "code": "control \"V-26285\" do\n  title \"Active software modules must be minimized.\"\n\n  desc \"Modules are the source of nginx httpd servers core and dynamic\n  capabilities. Thus not every module available is needed for operation. Most\n  installations only need a small subset of the modules available. By\n  minimizing the enabled modules to only those that are required, we reduce\n  the number of doors and have therefore reduced the attack surface of the web\n  site. Likewise having fewer modules means less software that could have\n  vulnerabilities.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA00500\"\n  tag \"gid\": \"V-26285\"\n  tag \"rid\": \"SV-33215r1_rule\"\n  tag \"stig_id\": \"WA00500 A22\"\n  tag \"nist\": [\"CM-2\", \"Rev_4\"]\n\n  tag \"check\": \"Enter the following command:\n\n  nginx -V\n\n  This will provide a list of the loaded modules. Validate that all displayed\n  modules are required for operations. If any module is not required for\n  operation, this is a finding.\n\n  Note:  The following modules are needed for basic web function and do not need\n  to be reviewed:\n\n  ngx_http_* modules, except for modules excluded in the following rules below\"\n\n  tag \"fix\": \"Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules.\"\n\n  begin\n    describe nginx do\n      its('modules') { should be_in NGINX_AUTHORIZED_MODULES }\n    end\n    describe nginx do\n      its('modules') { should_not be_in NGINX_UNAUTHORIZED_MODULES }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-26285.rb",
                        "line": 67
                    },
                    "id": "V-26285",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "Nginx Environment modules should be in \"http_addition\", \"http_auth_request\", \"http_dav\", \"http_flv\", \"http_gunzip\", \"http_gzip_static\", \"http_mp4\", \"http_random_index\", \"http_realip\", \"http_secure_link\", \"http_slice\", \"http_ssl\", \"http_stub_status\", \"http_sub\", \"http_v2\", \"mail_ssl\", \"stream_realip\", \"stream_ssl\", and \"stream_ssl_preread\"",
                            "run_time": 0.000416,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "Nginx Environment modules should not be in",
                            "run_time": 0.000158,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "Web Distributed Authoring and Versioning (WebDAV) must be disabled.",
                    "desc": "Ngx_http_dav_module supports WebDAV ('Web-based Distributed Authoring\n  and Versioning') functionality for nginx. WebDAV is an extension to the HTTP\n  protocol which allows clients to create, move, and delete files and\n  resources on the web server. WebDAV is not widely used, and has serious\n  security concerns as it may allow clients to modify unauthorized files on\n  the web server. Therefore, the WebDav module ngx_http_dav_module should be\n  disabled.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA00505",
                        "gid": "V-26287",
                        "rid": "SV-33216r1_rule",
                        "stig_id": "WA00505 A22",
                        "nist": ["AC-3", "Rev_4"],
                        "check": "Enter the following command:\n\n  nginx -V\n\n  This will provide a list of all loaded modules.  If the following module is\n  found, this is a finding.\n\n  ngx_http_dav_module",
                        "fix": "Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules."
                    },
                    "code": "control \"V-26287\" do\n  title \"Web Distributed Authoring and Versioning (WebDAV) must be disabled.\"\n\n  desc \"Ngx_http_dav_module supports WebDAV ('Web-based Distributed Authoring\n  and Versioning') functionality for nginx. WebDAV is an extension to the HTTP\n  protocol which allows clients to create, move, and delete files and\n  resources on the web server. WebDAV is not widely used, and has serious\n  security concerns as it may allow clients to modify unauthorized files on\n  the web server. Therefore, the WebDav module ngx_http_dav_module should be\n  disabled.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA00505\"\n  tag \"gid\": \"V-26287\"\n  tag \"rid\": \"SV-33216r1_rule\"\n  tag \"stig_id\": \"WA00505 A22\"\n  tag \"nist\": [\"AC-3\", \"Rev_4\"]\n\n  tag \"check\": \"Enter the following command:\n\n  nginx -V\n\n  This will provide a list of all loaded modules.  If the following module is\n  found, this is a finding.\n\n  ngx_http_dav_module\"\n\n  tag \"fix\": \"Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules.\"\n\n  begin\n    describe nginx do\n      its('modules') { should_not include 'ngx_http_dav' }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-26287.rb",
                        "line": 35
                    },
                    "id": "V-26287",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "Nginx Environment modules should not include \"ngx_http_dav\"",
                            "run_time": 0.001536,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "Web server status module must be disabled.",
                    "desc": "The ngx_http_status_module provides configuration information on\n  thecurrent server and performance statistics. While having server\n  configuration and status information available as a web page may be\n  convenient, it is recommended that these modules not be enabled.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA00510",
                        "gid": "V-26294",
                        "rid": "SV-33218r1_rule",
                        "stig_id": "WA00510 A22",
                        "nist": ["AC-3", "Rev_4"],
                        "check": "Enter the following command:\n\n  nginx -V\n\n  This will provide a list of all loaded modules.  If the following module is\n  found, this is a finding.\n\n  ngx_http_status_module",
                        "fix": "Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules."
                    },
                    "code": "control \"V-26294\" do\n  title \"Web server status module must be disabled.\"\n\n  desc \"The ngx_http_status_module provides configuration information on\n  thecurrent server and performance statistics. While having server\n  configuration and status information available as a web page may be\n  convenient, it is recommended that these modules not be enabled.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA00510\"\n  tag \"gid\": \"V-26294\"\n  tag \"rid\": \"SV-33218r1_rule\"\n  tag \"stig_id\": \"WA00510 A22\"\n  tag \"nist\": [\"AC-3\", \"Rev_4\"]\n\n  tag \"check\": \"Enter the following command:\n\n  nginx -V\n\n  This will provide a list of all loaded modules.  If the following module is\n  found, this is a finding.\n\n  ngx_http_status_module\"\n\n  tag \"fix\": \"Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules.\"\n\n  begin\n    describe nginx do\n      its('modules') { should_not include 'ngx_http_status' }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-26294.rb",
                        "line": 35
                    },
                    "id": "V-26294",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "Nginx Environment modules should not include \"ngx_http_status\"",
                            "run_time": 0.000163,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "The web server must not be configured as a proxy server.",
                    "desc": "The ngx_http_proxy_module allow the server to act as a proxy (either\n  forward or reverse proxy) of http and other protocols with additional proxy\n  modules loaded. If the nginx installation is not intended to proxy requests\n  to or from another network then the proxy module should not be loaded. Proxy\n  servers can act as an important security control when properly configured,\n  however a secure proxy server is not within the scope of this STIG. A web\n  server should be primarily a web server or a proxy server but not both, for\n  the same reasons that other multi-use servers are not recommended. Scanning\n  for web servers that will also proxy requests is a very common attack, as\n  proxy servers are useful for anonymizing attacks on other servers, or\n  possibly proxying requests into an otherwise protected network.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA00520",
                        "gid": "V-26299",
                        "rid": "SV-33220r1_rule",
                        "stig_id": "WA00520 A22",
                        "nist": ["AC-3", "Rev_4"],
                        "check": "Enter the following command:\n\n  nginx -V\n\n  This will provide a list of all loaded modules.  If the following module is\n  found, this is a finding.\n\n  ngx_http_proxy_module",
                        "fix": "Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules."
                    },
                    "code": "control \"V-26299\" do\n  title \"The web server must not be configured as a proxy server.\"\n\n  desc \"The ngx_http_proxy_module allow the server to act as a proxy (either\n  forward or reverse proxy) of http and other protocols with additional proxy\n  modules loaded. If the nginx installation is not intended to proxy requests\n  to or from another network then the proxy module should not be loaded. Proxy\n  servers can act as an important security control when properly configured,\n  however a secure proxy server is not within the scope of this STIG. A web\n  server should be primarily a web server or a proxy server but not both, for\n  the same reasons that other multi-use servers are not recommended. Scanning\n  for web servers that will also proxy requests is a very common attack, as\n  proxy servers are useful for anonymizing attacks on other servers, or\n  possibly proxying requests into an otherwise protected network.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA00520\"\n  tag \"gid\": \"V-26299\"\n  tag \"rid\": \"SV-33220r1_rule\"\n  tag \"stig_id\": \"WA00520 A22\"\n  tag \"nist\": [\"AC-3\", \"Rev_4\"]\n\n  tag \"check\": \"Enter the following command:\n\n  nginx -V\n\n  This will provide a list of all loaded modules.  If the following module is\n  found, this is a finding.\n\n  ngx_http_proxy_module\"\n\n  tag \"fix\": \"Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules.\"\n\n  begin\n    describe nginx do\n      its('modules') { should_not include 'ngx_http_proxy' }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-26299.rb",
                        "line": 35
                    },
                    "id": "V-26299",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "Nginx Environment modules should not include \"ngx_http_proxy\"",
                            "run_time": 0.000175,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "The process ID (PID) file must be properly secured.",
                    "desc": "The pid directive sets the file path to the process ID file to which\n  the server records the process id of the server, which is useful for sending\n  a signal to the server process or for checking on the health of the process.\n  If the PID file is placed in a writable directory, other accounts could\n  create a denial of service attack and prevent the server from starting by\n  creating a PID file with the same name.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA00530",
                        "gid": "V-26305",
                        "rid": "SV-33222r1_rule",
                        "stig_id": "WA00530 A22",
                        "nist": ["AC-3", "Rev_4"],
                        "check": "To find the pid file:\n\n  grep pid+N52 The pid directive will indicate the location of the pid file\n  (typical default: /usr/sbin/nginx.pid)\n\n  Verify the permissions and ownership on the folder containing the PID file. If\n  any user accounts other than root, auditor, or the account used to run the web\n  server have permission to, or ownership of, this folder, this is a finding. If\n  the PID file is located in the  web server Root this is a finding.",
                        "fix": "Modify the location, permissions, and/or ownership for the PID\n  file folder. "
                    },
                    "code": "control \"V-26305\" do\n  title \"The process ID (PID) file must be properly secured.\"\n\n  desc \"The pid directive sets the file path to the process ID file to which\n  the server records the process id of the server, which is useful for sending\n  a signal to the server process or for checking on the health of the process.\n  If the PID file is placed in a writable directory, other accounts could\n  create a denial of service attack and prevent the server from starting by\n  creating a PID file with the same name.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA00530\"\n  tag \"gid\": \"V-26305\"\n  tag \"rid\": \"SV-33222r1_rule\"\n  tag \"stig_id\": \"WA00530 A22\"\n  tag \"nist\": [\"AC-3\", \"Rev_4\"]\n\n  tag \"check\": \"To find the pid file:\n\n  grep \"\"pid\"\"+N52 The pid directive will indicate the location of the pid file\n  (typical default: /usr/sbin/nginx.pid)\n\n  Verify the permissions and ownership on the folder containing the PID file. If\n  any user accounts other than root, auditor, or the account used to run the web\n  server have permission to, or ownership of, this folder, this is a finding. If\n  the PID file is located in the  web server Root this is a finding.\"\n\n  tag \"fix\": \"Modify the location, permissions, and/or ownership for the PID\n  file folder. \"\n\n  begin\n    webserver_roots = []\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      webserver_roots.push(http.params['root']) unless http.params['root'].nil?\n    end\n    nginx_conf_handle.servers.entries.each do |server|\n      webserver_roots.push(server.params['root']) unless server.params['root'].nil?\n    end\n    nginx_conf_handle.locations.entries.each do |location|\n      webserver_roots.push(location.params['root']) unless location.params['root'].nil?\n    end\n\n    webserver_roots.flatten!.uniq!\n\n    describe file(nginx_conf_handle.params['pid'].join) do\n      it { should exist }\n      its ('owner') { should match %r(#{NGINX_OWNER}|#{SYS_ADMIN}) }\n      its ('group') { should match %r(#{NGINX_GROUP}|#{SYS_ADMIN_GROUP}) }\n      its ('mode')  { should cmp <= 0660 }\n    end unless nginx_conf_handle.params['pid'].nil?\n\n    webserver_roots.each do |root|\n      describe nginx_conf_handle.params['pid'].join do\n        it { should_not match root }\n      end unless nginx_conf_handle.params['pid'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-26305.rb",
                        "line": 59
                    },
                    "id": "V-26305",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "File /var/run/nginx.pid should exist",
                            "run_time": 0.048514,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /var/run/nginx.pid owner should match /nginx|root/",
                            "run_time": 0.069752,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /var/run/nginx.pid group should match /nginx|root/",
                            "run_time": 0.000179,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "File /var/run/nginx.pid mode should cmp <= 432",
                            "run_time": 0.000341,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/var/run/nginx.pid should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000146,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/var/run/nginx.pid should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "The web server must be configured to listen on a specific IP address\n  and port.",
                    "desc": "The nginx listen directive specifies the IP addresses and port numbers\n  the nginx web server will listen for requests. Rather than be unrestricted\n  to listen on all IP addresses available to the system, the specific IP\n  address or addresses intended must be explicitly specified. Specifically a\n  Listen directive with no IP address specified, or with an IP address of\n  zero’s should not be used. Having multiple interfaces on web servers is\n  fairly common, and without explicit Listen directives, the web server is\n  likely to be listening on an inappropriate IP address / interface that were\n  not intended for the web server. Single homed system with a single IP\n  addressed are also required to have an explicit IP address in the Listen\n  directive, in case additional interfaces are added to the system at a later\n  date.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA00555",
                        "gid": "V-26326",
                        "rid": "SV-33228r1_rule",
                        "stig_id": "WA00555 A22",
                        "nist": ["CM-7", "Rev_4"],
                        "check": "Enter the following command:\n\n  grep Listenon the nginx.conf file and any separate included\n  configuration files.\n\n  Review the results for the followingdirective: listen\n\n  For any enabled Listen directives ensure they specify both an IP address and\n  port number.\n\n  If the Listen directive is found with only an IP address, or only a port\n  number specified, this is finding. If the IP address is all zeros (i.e.\n  0.0.0.0:80 or [::ffff:0.0.0.0]:80, this is a finding. If the Listen\n  directive does not exist, this is a finding.",
                        "fix": "Edit the nginx.conf file and set the listen directive to\n  listen on a specific IP address and port. "
                    },
                    "code": "control \"V-26326\" do\n\n  title \"The web server must be configured to listen on a specific IP address\n  and port.\"\n\n  desc \"The nginx listen directive specifies the IP addresses and port numbers\n  the nginx web server will listen for requests. Rather than be unrestricted\n  to listen on all IP addresses available to the system, the specific IP\n  address or addresses intended must be explicitly specified. Specifically a\n  Listen directive with no IP address specified, or with an IP address of\n  zero’s should not be used. Having multiple interfaces on web servers is\n  fairly common, and without explicit Listen directives, the web server is\n  likely to be listening on an inappropriate IP address / interface that were\n  not intended for the web server. Single homed system with a single IP\n  addressed are also required to have an explicit IP address in the Listen\n  directive, in case additional interfaces are added to the system at a later\n  date.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA00555\"\n  tag \"gid\": \"V-26326\"\n  tag \"rid\": \"SV-33228r1_rule\"\n  tag \"stig_id\": \"WA00555 A22\"\n  tag \"nist\": [\"CM-7\", \"Rev_4\"]\n\n  tag \"check\": \"Enter the following command:\n\n  grep \"\"Listen\"\"on the nginx.conf file and any separate included\n  configuration files.\n\n  Review the results for the followingdirective: listen\n\n  For any enabled Listen directives ensure they specify both an IP address and\n  port number.\n\n  If the Listen directive is found with only an IP address, or only a port\n  number specified, this is finding. If the IP address is all zeros (i.e.\n  0.0.0.0:80 or [::ffff:0.0.0.0]:80, this is a finding. If the Listen\n  directive does not exist, this is a finding.\"\n\n  tag \"fix\": \"Edit the nginx.conf file and set the \"\"listen\"\" directive to\n  listen on a specific IP address and port. \"\n\n  begin\n    nginx_conf(NGINX_CONF_FILE).servers.entries.each do |server|\n      server.params['listen'].each do |listen|\n        describe listen.join do\n          it { should match %r([0-9]+(?:\\.[0-9]+){3}|[a-zA-Z]:[0-9]+) }\n        end\n        describe listen.join.split(':').first do\n          it { should_not cmp '0.0.0.0' }\n          it { should_not cmp '[::ffff:0.0.0.0]' }\n        end\n      end unless server.params['listen'].nil?\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-26326.rb",
                        "line": 35
                    },
                    "id": "V-26326",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "localhost:80 should match /[0-9]+(?:\\.[0-9]+){3}|[a-zA-Z]:[0-9]+/",
                            "run_time": 0.000138,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "localhost should not cmp == \"0.0.0.0\"",
                            "run_time": 0.000232,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "localhost should not cmp == \"[::ffff:0.0.0.0]\"",
                            "run_time": 0.000202,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "Automatic directory indexing must be disabled.",
                    "desc": "The ngx_http_autoindex_module module processes requests ending with the\n  slash character (‘/’) and produces a directory listing. Usually a request is\n  passed to the ngx_http_autoindex_module module when the\n  ngx_http_index_module module cannot find an index file. To an attacker, this\n  can reveal files and subdirectory names giving clues as to the type or\n  configuration of the nginx server, or information not intended to be\n  presented.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA00515",
                        "gid": "V-26368",
                        "rid": "SV-33219r1_rule",
                        "stig_id": "WA00515 A22",
                        "nist": ["CM-2", "Rev_4"],
                        "check": "Enter the following command:\n\n  nginx -V\n\n  This will provide a list of all loaded modules.If the following module is\n  found, this is a finding.\n\n  ngx_autoindex_module",
                        "fix": "Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules."
                    },
                    "code": "control \"V-26368\" do\n  title \"Automatic directory indexing must be disabled.\"\n\n  desc \"The ngx_http_autoindex_module module processes requests ending with the\n  slash character (‘/’) and produces a directory listing. Usually a request is\n  passed to the ngx_http_autoindex_module module when the\n  ngx_http_index_module module cannot find an index file. To an attacker, this\n  can reveal files and subdirectory names giving clues as to the type or\n  configuration of the nginx server, or information not intended to be\n  presented.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA00515\"\n  tag \"gid\": \"V-26368\"\n  tag \"rid\": \"SV-33219r1_rule\"\n  tag \"stig_id\": \"WA00515 A22\"\n  tag \"nist\": [\"CM-2\", \"Rev_4\"]\n\n  tag \"check\": \"Enter the following command:\n\n  nginx -V\n\n  This will provide a list of all loaded modules.If the following module is\n  found, this is a finding.\n\n  ngx_autoindex_module\"\n\n  tag \"fix\": \"Disable any modules that are not needed.\n\n  Use the configure script (available in the nginx download package) to exclude\n  modules using the --without {module_name} option to reject unneeded modules.\"\n\n  begin\n    describe nginx do\n      its('modules') { should_not include 'ngx_autoindex' }\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-26368.rb",
                        "line": 35
                    },
                    "id": "V-26368",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "Nginx Environment modules should not include \"ngx_autoindex\"",
                            "run_time": 0.000277,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "HTTP request methods must be limited.",
                    "desc": "The HTTP 1.1 protocol supports several request methods which are\n  rarely used and potentially high risk.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WA00565 ",
                        "gid": "V-26396",
                        "rid": "SV-33236r1_rule",
                        "stig_id": "WA00565 A22",
                        "nist": ["SC-3", "Rev_4"],
                        "check": "Review the nginx.conf file and any separate included\n  configuration files.\n\n  For every location (except root), ensure the following entry exists:\n\n  ## Only GET, Post, PUT are allowed##\n       if ($request_method !~ ^(GET|PUT|POST)$ ) {\n           return 444;\n       }\n  ## In this case, it does not accept other HTTP methods such as HEAD,\n  DELETE, SEARCH, TRACE ##\n\n  If the entry is not found for every location, this is a finding.",
                        "fix": "Review the nginx.conf file and any separate included\n  configuration files.\n\n  For every location (except root), edit to add the following entry:\n\n  ## Only GET, Post, PUT are allowed##\n       if ($request_method !~ ^(GET|PUT|POST)$ ) {\n           return 444;\n       }\n  ## In this case, it does not accept other HTTP methods such as HEAD, DELETE,\n  SEARCH, TRACE ##\n"
                    },
                    "code": "control \"V-26396\" do\n  title \"HTTP request methods must be limited.\"\n\n  desc \"The HTTP 1.1 protocol supports several request methods which are\n  rarely used and potentially high risk. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WA00565 \"\n  tag \"gid\": \"V-26396\"\n  tag \"rid\": \"SV-33236r1_rule\"\n  tag \"stig_id\": \"WA00565 A22\"\n  tag \"nist\": [\"SC-3\", \"Rev_4\"]\n\n  tag \"check\": \"Review the nginx.conf file and any separate included\n  configuration files.\n\n  For every location (except root), ensure the following entry exists:\n\n  ## Only GET, Post, PUT are allowed##\n       if ($request_method !~ ^(GET|PUT|POST)$ ) {\n           return 444;\n       }\n  ## In this case, it does not accept other HTTP methods such as HEAD,\n  DELETE, SEARCH, TRACE ##\n\n  If the entry is not found for every location, this is a finding.\"\n\n  tag \"fix\": \"Review the nginx.conf file and any separate included\n  configuration files.\n\n  For every location (except root), edit to add the following entry:\n\n  ## Only GET, Post, PUT are allowed##\n       if ($request_method !~ ^(GET|PUT|POST)$ ) {\n           return 444;\n       }\n  ## In this case, it does not accept other HTTP methods such as HEAD, DELETE,\n  SEARCH, TRACE ##\n\"\n\n  begin\n    nginx_conf(NGINX_CONF_FILE).locations.entries.each do |location|\n      unless location.params[\"_\"].eql?([\"/\"])\n        describe location.params['if'] do\n          it { should_not be_nil}\n        end\n        location.params['if'].each do |ifcondition|\n          describe ifcondition do\n            it { should_not be_nil}\n            its(['_']) { should cmp [\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"]}\n            its(['return']) { should cmp [[\"444\"]]}\n          end\n        end unless location.params['if'].nil?\n      end\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-26396.rb",
                        "line": 35
                    },
                    "id": "V-26396",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[{\"_\"=>[\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"], \"return\"=>[[\"444\"]]}] should not be nil",
                            "run_time": 0.000153,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "{\"_\"=>[\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"], \"return\"=>[[\"444\"]]} should not be nil",
                            "run_time": 0.000104,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "{\"_\"=>[\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"], \"return\"=>[[\"444\"]]} [\"_\"] should cmp == [\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"]",
                            "run_time": 0.000257,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "{\"_\"=>[\"($request_method\", \"!~\", \"^(GET|PUT|POST)$\", \")\"], \"return\"=>[[\"444\"]]} [\"return\"] should cmp == [[\"444\"]]",
                            "run_time": 0.000259,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "The web server must remove all export ciphers from the cipher suite.",
                    "desc": "During the initial setup of a Transport Layer Security (TLS) connection\n  to the web server, the client sends a list of supported cipher suites in\n  order of preference.The web server will reply with the cipher suite it will\n  use for communication from the client list.If an attacker can intercept the\n  submission of cipher suites to the web server and place, as the preferred\n  cipher suite, a weak export suite, the encryption used for the session\n  becomes easy for the attacker to break, often within minutes to hours.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG345",
                        "gid": "V-60707",
                        "rid": "SV-75159r1_rule",
                        "stig_id": "WG345 A22",
                        "nist": ["SC-8", "Rev_4"],
                        "check": "Review the nginx.conf file and any separate included\n  configuration files.\n\n  Ensure the following entry exists:\n\n  server {      # enables server-side protection from BEAST attacks\n  ssl_prefer_server_ciphers on;\n\n       # Disabled insecure ciphers suite. For example, MD5, DES, RC4, PSK\n  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-\n  AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-\n  AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256\n  :DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-\n  CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-\n  SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-\n  CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@STRENGTH;\n\n   # -!MEDIUM：exclude encryption cipher suites using 128 bit encryption. LOW：\n   # -!exclude encryption cipher suites using 64 or 56 bit encryption algorithms\n   # -!EXPORT： exclude export encryption algorithms including 40 and 56 bits\n   # -!algorithms. aNULL：  exclude the cipher suites offering no authentication.\n   # -!This is currently the anonymous DH algorithms and anonymous ECDH\n   # -!algorithms.\n          # These cipher suites are vulnerable to a man in the middle attack\n          # and so their use is normally discouraged.\n   # -!eNULL：exclude the NULL ciphers that is those offering no encryption.\n          # Because these offer no encryption at all and are a security risk\n          # they are disabled unless explicitly included.\n   # @STRENGTH：sort the current cipher list in order of encryption algorithm key\n   # @length.\n\n\n\n  If the entry is not found, this is a finding.",
                        "fix": "Review the nginx.conf file and any separate included\n  configuration files.\n\n  Edit to ensure the following entry exists:\n\n  server {\n       # enables server-side protection from BEAST attacks\n       ssl_prefer_server_ciphers on;\n\n     # Disabled insecure ciphers suite. For example, MD5, DES, RC4, PSK\n  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-\n  AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-\n  AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256\n  :DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-\n  CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-\n  SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-\n  CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@STRENGTH;\n\n   # -!MEDIUM：exclude encryption cipher suites using 128 bit encryption.\n   # -!LOW：   exclude encryption cipher suites using 64 or 56 bit encryption algorithms\n   # -!EXPORT： exclude export encryption algorithms including 40 and 56 bits algorithms.\n   # -!aNULL：  exclude the cipher suites offering no authentication. This is currently the anonymous DH algorithms and anonymous ECDH algorithms.\n          # These cipher suites are vulnerable to a man in the middle attack and so their use is normally discouraged.\n   # -!eNULL：exclude the NULL ciphers that is those offering no encryption.\n          # Because these offer no encryption at all and are a security risk they are disabled unless explicitly included.\n   # @STRENGTH：sort the current cipher list in order of encryption algorithm key length.\n  }\n  "
                    },
                    "code": "control \"V-60707\" do\n  title \"The web server must remove all export ciphers from the cipher suite.\"\n\n  desc \"During the initial setup of a Transport Layer Security (TLS) connection\n  to the web server, the client sends a list of supported cipher suites in\n  order of preference.The web server will reply with the cipher suite it will\n  use for communication from the client list.If an attacker can intercept the\n  submission of cipher suites to the web server and place, as the preferred\n  cipher suite, a weak export suite, the encryption used for the session\n  becomes easy for the attacker to break, often within minutes to hours.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG345\"\n  tag \"gid\": \"V-60707\"\n  tag \"rid\": \"SV-75159r1_rule\"\n  tag \"stig_id\": \"WG345 A22\"\n  tag \"nist\": [\"SC-8\", \"Rev_4\"]\n\n  tag \"check\": \"Review the nginx.conf file and any separate included\n  configuration files.\n\n  Ensure the following entry exists:\n\n  server {      # enables server-side protection from BEAST attacks\n  ssl_prefer_server_ciphers on;\n\n       # Disabled insecure ciphers suite. For example, MD5, DES, RC4, PSK\n  ssl_ciphers \"\"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-\n  AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-\n  AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256\n  :DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-\n  CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-\n  SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-\n  CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@STRENGTH\"\";\n\n   # -!MEDIUM：exclude encryption cipher suites using 128 bit encryption. LOW：\n   # -!exclude encryption cipher suites using 64 or 56 bit encryption algorithms\n   # -!EXPORT： exclude export encryption algorithms including 40 and 56 bits\n   # -!algorithms. aNULL：  exclude the cipher suites offering no authentication.\n   # -!This is currently the anonymous DH algorithms and anonymous ECDH\n   # -!algorithms.\n          # These cipher suites are vulnerable to a \"\"man in the middle\"\" attack\n          # and so their use is normally discouraged.\n   # -!eNULL：exclude the \"\"NULL\"\" ciphers that is those offering no encryption.\n          # Because these offer no encryption at all and are a security risk\n          # they are disabled unless explicitly included.\n   # @STRENGTH：sort the current cipher list in order of encryption algorithm key\n   # @length.\n\n\n\n  If the entry is not found, this is a finding.\"\n\n  tag \"fix\": \"Review the nginx.conf file and any separate included\n  configuration files.\n\n  Edit to ensure the following entry exists:\n\n  server {\n       # enables server-side protection from BEAST attacks\n       ssl_prefer_server_ciphers on;\n\n     # Disabled insecure ciphers suite. For example, MD5, DES, RC4, PSK\n  ssl_ciphers \"\"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-\n  AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-\n  AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256\n  :DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-\n  CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-\n  SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-\n  CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@STRENGTH\"\";\n\n   # -!MEDIUM：exclude encryption cipher suites using 128 bit encryption.\n   # -!LOW：   exclude encryption cipher suites using 64 or 56 bit encryption algorithms\n   # -!EXPORT： exclude export encryption algorithms including 40 and 56 bits algorithms.\n   # -!aNULL：  exclude the cipher suites offering no authentication. This is currently the anonymous DH algorithms and anonymous ECDH algorithms.\n          # These cipher suites are vulnerable to a \"\"man in the middle\"\" attack and so their use is normally discouraged.\n   # -!eNULL：exclude the \"\"NULL\"\" ciphers that is those offering no encryption.\n          # Because these offer no encryption at all and are a security risk they are disabled unless explicitly included.\n   # @STRENGTH：sort the current cipher list in order of encryption algorithm key length.\n  }\n  \"\n\n  begin\n    disabled_ssl_ciphers = ['aNULL', 'eNULL', 'EXPORT', 'DES', 'MD5', 'PSK', 'RC4']\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['ssl_prefer_server_ciphers'] do\n        it { should cmp [['on']]}\n      end\n      describe http.params['ssl_ciphers'] do\n        it { should_not be_nil }\n      end\n\n      unless http.params['ssl_ciphers'].nil?\n        disabled_ssl_ciphers.each do |cipher|\n          describe http.params['ssl_ciphers'].join do\n            it { should match \"!#{cipher}\"}\n          end\n        end\n        describe http.params['ssl_ciphers'].join do\n          it { should match '@STRENGTH'}\n        end\n      end\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['ssl_prefer_server_ciphers'] do\n        it { should cmp [['on']]}\n      end unless server.params['ssl_prefer_server_ciphers'].nil?\n\n      unless server.params['ssl_ciphers'].nil?\n        disabled_ssl_ciphers.each do |cipher|\n          describe server.params['ssl_ciphers'].join do\n            it { should match \"!#{cipher}\"}\n          end\n        end\n        describe server.params['ssl_ciphers'].join do\n          it { should match '@STRENGTH'}\n        end\n      end\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-60707.rb",
                        "line": 35
                    },
                    "id": "V-60707",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"on\"]] should cmp == [[\"on\"]]",
                            "run_time": 0.000164,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[[\"'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH'\"]] should not be nil",
                            "run_time": 9.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!aNULL\"",
                            "run_time": 0.000122,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!eNULL\"",
                            "run_time": 9.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!EXPORT\"",
                            "run_time": 0.0001,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!DES\"",
                            "run_time": 0.0001,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!MD5\"",
                            "run_time": 8.9e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!PSK\"",
                            "run_time": 0.000133,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"!RC4\"",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA@STRENGTH' should match \"@STRENGTH\"",
                            "run_time": 8.9e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "Web server content and configuration files must be part of a routine\n  backup program.",
                    "desc": "Backing up web server data and web server application software after\n  upgrades or maintenance ensures that recovery can be accomplished up to the\n  current version. It also provides a means to determine and recover from\n  subsequent unauthorized changes to the software and data.\n\n  A tested and verifiable backup strategy will be implemented for web server\n  software as well as all web server data files. Backup and recovery procedures\n  will be documented and the Web Manager or SA for the specific application will\n  be responsible for the design, test, and implementation of the procedures.\n\n  The site will have a contingency processing plan/disaster recovery plan that\n  includes web servers. The contingency plan will be periodically tested in\n  accordance with DoDI 8500.2 requirements.\n\n  The site will identify an off-site storage facility in accordance with DoDI\n  8500.2 requirements. Off-site backups will be updated on a regular basis and\n  the frequency will be documented in the contingency plan.",
                    "impact": 0.3,
                    "refs": [],
                    "tags": {
                        "severity": "low",
                        "gtitle": "WA140",
                        "gid": "V-6485",
                        "rid": "SV-32964r2_rule",
                        "stig_id": "WA140 A22",
                        "nist": ["CP-9", "Rev_4"],
                        "check": "Interview the Information Systems Security Officer (ISSO), SA,\n  Web Manager, Webmaster or developers as necessary to determine whether or\n  not a tested and verifiable backup strategy has been implemented for web\n  server software as well as all web server data files.\n\n  Proposed Questions: Who maintains the backup and recovery procedures? Do you\n  have a copy of the backup and recovery procedures? Where is the off-site\n  backup location? Is the contingency plan documented? When was the last time\n  the contingency plan was tested? Are the test dates and results documented?\n\n  If there is not a backup and recovery process for the web server, this is a\n  finding. ",
                        "fix": "Document the backup procedures."
                    },
                    "code": "control \"V-6485\" do\n\n  title \"Web server content and configuration files must be part of a routine\n  backup program.\"\n\n  desc\"Backing up web server data and web server application software after\n  upgrades or maintenance ensures that recovery can be accomplished up to the\n  current version. It also provides a means to determine and recover from\n  subsequent unauthorized changes to the software and data.\n\n  A tested and verifiable backup strategy will be implemented for web server\n  software as well as all web server data files. Backup and recovery procedures\n  will be documented and the Web Manager or SA for the specific application will\n  be responsible for the design, test, and implementation of the procedures.\n\n  The site will have a contingency processing plan/disaster recovery plan that\n  includes web servers. The contingency plan will be periodically tested in\n  accordance with DoDI 8500.2 requirements.\n\n  The site will identify an off-site storage facility in accordance with DoDI\n  8500.2 requirements. Off-site backups will be updated on a regular basis and\n  the frequency will be documented in the contingency plan. \"\n\n  impact 0.3\n  tag \"severity\": \"low\"\n  tag \"gtitle\": \"WA140\"\n  tag \"gid\": \"V-6485\"\n  tag \"rid\": \"SV-32964r2_rule\"\n  tag \"stig_id\": \"WA140 A22\"\n  tag \"nist\": [\"CP-9\", \"Rev_4\"]\n\n  tag \"check\": \"Interview the Information Systems Security Officer (ISSO), SA,\n  Web Manager, Webmaster or developers as necessary to determine whether or\n  not a tested and verifiable backup strategy has been implemented for web\n  server software as well as all web server data files.\n\n  Proposed Questions: Who maintains the backup and recovery procedures? Do you\n  have a copy of the backup and recovery procedures? Where is the off-site\n  backup location? Is the contingency plan documented? When was the last time\n  the contingency plan was tested? Are the test dates and results documented?\n\n  If there is not a backup and recovery process for the web server, this is a\n  finding. \"\n\n  tag \"fix\": \"Document the backup procedures.\"\n\n  only_if {\n    false\n  }\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-6485.rb",
                        "line": 29
                    },
                    "id": "V-6485",
                    "results": [
                        {
                            "status": "skipped",
                            "code_desc": "Operating System Detection",
                            "skip_message": "Skipped control due to only_if condition.",
                            "resource": "Operating System Detection",
                            "run_time": 1.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "A web server must be segregated from other services.",
                    "desc": "The web server installation and configuration plan should not support\n  the co-hosting of multiple services such as Domain Name Service (DNS),\n  e-mail, databases, search engines, indexing, or streaming media on the same\n  server that is providing the web publishing service.By separating these\n  services additional defensive layers are established between the web service\n  and the applicable application should either be compromised.\n\n  Disallowed or restricted services in the context of this vulnerability applies\n  to services that are not directly associated with the delivery of web content.\n  An operating system that supports a web server will not provide other services\n  (e.g., domain controller, e-mail server, database server, etc.). Only those\n  services necessary to support the web server and its hosted sites are\n  specifically allowed and may include, but are not limited to, operating\n  system, logging, anti-virus, host intrusion detection, administrative\n  maintenance, or network requirements.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG204",
                        "gid": "V-6577",
                        "rid": "SV-32950r1_rule",
                        "stig_id": "WG204 A22",
                        "nist": ["SC-2", "Rev_4"],
                        "check": "Request a copy of and review the web server’s installation and\n  configuration plan. Ensure that the server is in compliance with this plan.\n  If the server is not in compliance with the plan, this is a finding.\n\n  Query the SA to ascertain if and where the additional services are installed.\n\n  Confirm that the additional service or application is not installed on the\n  same partition as the operating systems root directory or the web document\n  root. If it is, this is a finding.",
                        "fix": "Request a copy of and review the web server’s installation and\n  configuration plan. Ensure that the server is in compliance with this plan.\n  If the server is not in compliance with the plan, this is a finding.\n\n  Query the SA to ascertain if and where the additional services are installed.\n\n  Confirm that the additional service or application is not installed on the\n  same partition as the operating systems root directory or the web document\n  root. If it is, this is a finding."
                    },
                    "code": "control \"V-6577\" do\n\n  title \"A web server must be segregated from other services.\"\n\n  desc\"The web server installation and configuration plan should not support\n  the co-hosting of multiple services such as Domain Name Service (DNS),\n  e-mail, databases, search engines, indexing, or streaming media on the same\n  server that is providing the web publishing service.By separating these\n  services additional defensive layers are established between the web service\n  and the applicable application should either be compromised.\n\n  Disallowed or restricted services in the context of this vulnerability applies\n  to services that are not directly associated with the delivery of web content.\n  An operating system that supports a web server will not provide other services\n  (e.g., domain controller, e-mail server, database server, etc.). Only those\n  services necessary to support the web server and its hosted sites are\n  specifically allowed and may include, but are not limited to, operating\n  system, logging, anti-virus, host intrusion detection, administrative\n  maintenance, or network requirements. \"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG204\"\n  tag \"gid\": \"V-6577\"\n  tag \"rid\": \"SV-32950r1_rule\"\n  tag \"stig_id\": \"WG204 A22\"\n  tag \"nist\": [\"SC-2\", \"Rev_4\"]\n\n  tag \"check\": \"Request a copy of and review the web server’s installation and\n  configuration plan. Ensure that the server is in compliance with this plan.\n  If the server is not in compliance with the plan, this is a finding.\n\n  Query the SA to ascertain if and where the additional services are installed.\n\n  Confirm that the additional service or application is not installed on the\n  same partition as the operating systems root directory or the web document\n  root. If it is, this is a finding.\"\n\n  tag \"fix\": \"Request a copy of and review the web server’s installation and\n  configuration plan. Ensure that the server is in compliance with this plan.\n  If the server is not in compliance with the plan, this is a finding.\n\n  Query the SA to ascertain if and where the additional services are installed.\n\n  Confirm that the additional service or application is not installed on the\n  same partition as the operating systems root directory or the web document\n  root. If it is, this is a finding.\"\n  begin\n    # collect root directores from nginx_conf\n    webserver_roots = []\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      webserver_roots.push(http.params['root']) unless http.params['root'].nil?\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      webserver_roots.push(server.params['root']) unless server.params['root'].nil?\n    end\n\n    nginx_conf_handle.locations.entries.each do |location|\n      webserver_roots.push(location.params['root']) unless location.params['root'].nil?\n    end\n\n    webserver_roots.flatten!.uniq!\n\n    services = command('systemctl -r --type service --all').stdout.scan(/^\\s\\s(.+).service/).flatten\n\n    describe services do\n      it{ should be_in ALLOWED_SERVICES_LIST}\n    end\n\n    describe services do\n      it{ should_not be_in DISALLOWED_SERVICES_LIST}\n    end\n\n    services.each do |service|\n      service_path = service(service).params['ExecStart'].scan(/path=(.+)[\\s][;][\\s]argv/).join\n      describe service_path do\n        it { should_not cmp '/'}\n      end\n      webserver_roots.each do |root|\n        describe service_path do\n          it { should_not match root}\n        end\n      end\n    end\n\n    if services.empty?\n      describe do\n        skip \"Skipped: no services found.\"\n      end\n    end\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-6577.rb",
                        "line": 97
                    },
                    "id": "V-6577",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[\"auditd\", \"brandbot\", \"dbus\", \"dracut-shutdown\", \"emergency\", \"getty@tty1\", \"kmod-static-nodes\", \"network\", \"nginx\", \"rc-local\", \"rescue\", \"rhel-autorelabel-mark\", \"rhel-autorelabel\", \"rhel-configure\", \"rhel-dmesg\", \"rhel-import-state\", \"rhel-loadmodules\", \"rhel-readonly\", \"systemd-ask-password-console\", \"systemd-ask-password-wall\", \"systemd-binfmt\", \"systemd-firstboot\", \"systemd-fsck-root\", \"systemd-hwdb-update\", \"systemd-initctl\", \"systemd-journal-catalog-update\", \"systemd-journal-flush\", \"systemd-journald\", \"systemd-logind\", \"systemd-modules-load\", \"systemd-random-seed\", \"systemd-readahead-collect\", \"systemd-readahead-done\", \"systemd-readahead-replay\", \"systemd-reboot\", \"systemd-shutdownd\", \"systemd-sysctl\", \"systemd-tmpfiles-clean\", \"systemd-tmpfiles-setup-dev\", \"systemd-tmpfiles-setup\", \"systemd-udev-trigger\", \"systemd-udevd\", \"systemd-update-done\", \"systemd-update-utmp-runlevel\", \"systemd-update-utmp\", \"systemd-user-sessions\", \"systemd-vconsole-setup\"] should be in \"brandbot\", \"dbus\", \"dracut-shutdown\", \"emergency\", \"getty@tty1\", \"kmod-static-nodes\", \"network\", \"nginx\", \"rc-local\", \"rescue\", \"rhel-autorelabel-mark\", \"rhel-autorelabel\", \"rhel-configure\", \"rhel-dmesg\", \"rhel-import-state\", \"rhel-loadmodules\", \"rhel-readonly\", \"serial-getty@ttyS0\", \"systemd-ask-password-console\", \"systemd-ask-password-wall\", \"systemd-binfmt\", \"systemd-firstboot\", \"systemd-fsck-root\", \"systemd-hwdb-update\", \"systemd-initctl\", \"systemd-journal-catalog-update\", \"systemd-journal-flush\", \"systemd-journald\", \"systemd-logind\", \"systemd-modules-load\", \"systemd-random-seed\", \"systemd-readahead-collect\", \"systemd-readahead-done\", \"systemd-readahead-replay\", \"systemd-reboot\", \"systemd-shutdownd\", \"systemd-sysctl\", \"systemd-tmpfiles-clean\", \"systemd-tmpfiles-setup-dev\", \"systemd-tmpfiles-setup\", \"systemd-udev-trigger\", \"systemd-udevd\", \"systemd-update-done\", \"systemd-update-utmp-runlevel\", \"systemd-update-utmp\", \"systemd-user-sessions\", \"systemd-vconsole-setup\", and \"auditd\"",
                            "run_time": 0.000561,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "[\"auditd\", \"brandbot\", \"dbus\", \"dracut-shutdown\", \"emergency\", \"getty@tty1\", \"kmod-static-nodes\", \"network\", \"nginx\", \"rc-local\", \"rescue\", \"rhel-autorelabel-mark\", \"rhel-autorelabel\", \"rhel-configure\", \"rhel-dmesg\", \"rhel-import-state\", \"rhel-loadmodules\", \"rhel-readonly\", \"systemd-ask-password-console\", \"systemd-ask-password-wall\", \"systemd-binfmt\", \"systemd-firstboot\", \"systemd-fsck-root\", \"systemd-hwdb-update\", \"systemd-initctl\", \"systemd-journal-catalog-update\", \"systemd-journal-flush\", \"systemd-journald\", \"systemd-logind\", \"systemd-modules-load\", \"systemd-random-seed\", \"systemd-readahead-collect\", \"systemd-readahead-done\", \"systemd-readahead-replay\", \"systemd-reboot\", \"systemd-shutdownd\", \"systemd-sysctl\", \"systemd-tmpfiles-clean\", \"systemd-tmpfiles-setup-dev\", \"systemd-tmpfiles-setup\", \"systemd-udev-trigger\", \"systemd-udevd\", \"systemd-update-done\", \"systemd-update-utmp-runlevel\", \"systemd-update-utmp\", \"systemd-user-sessions\", \"systemd-vconsole-setup\"] should not be in \"mysql\", \"postgres\", and \"named\"",
                            "run_time": 0.000201,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/sbin/auditd should not cmp == \"/\"",
                            "run_time": 0.000169,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/sbin/auditd should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000116,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/sbin/auditd should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/libexec/initscripts/brandbot should not cmp == \"/\"",
                            "run_time": 0.000155,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/libexec/initscripts/brandbot should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000201,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/libexec/initscripts/brandbot should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000158,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/dbus-daemon should not cmp == \"/\"",
                            "run_time": 0.000276,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/dbus-daemon should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000115,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/dbus-daemon should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.9e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/dracut/dracut-initramfs-restore should not cmp == \"/\"",
                            "run_time": 0.000181,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/dracut/dracut-initramfs-restore should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000105,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/dracut/dracut-initramfs-restore should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.5e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/sh should not cmp == \"/\"",
                            "run_time": 0.000142,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/sh should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/sh should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.3e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/sbin/agetty should not cmp == \"/\"",
                            "run_time": 0.000188,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/sbin/agetty should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.6e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/sbin/agetty should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.7e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/kmod should not cmp == \"/\"",
                            "run_time": 0.000163,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/kmod should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.3e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/kmod should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000132,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/etc/rc.d/init.d/network should not cmp == \"/\"",
                            "run_time": 0.000185,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/etc/rc.d/init.d/network should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/etc/rc.d/init.d/network should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000114,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/sbin/nginx should not cmp == \"/\"",
                            "run_time": 0.000193,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/sbin/nginx should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.2e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/sbin/nginx should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.1e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/etc/rc.d/rc.local should not cmp == \"/\"",
                            "run_time": 0.000141,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/etc/rc.d/rc.local should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/etc/rc.d/rc.local should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000216,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/sh should not cmp == \"/\"",
                            "run_time": 0.000288,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/sh should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.0001,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/sh should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.1e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/touch should not cmp == \"/\"",
                            "run_time": 0.00017,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/touch should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 9.5e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/bin/touch should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-autorelabel should not cmp == \"/\"",
                            "run_time": 0.000143,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-autorelabel should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 9.7e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-autorelabel should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-configure should not cmp == \"/\"",
                            "run_time": 0.000237,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-configure should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000163,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-configure should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000127,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/rhel-dmesg should not cmp == \"/\"",
                            "run_time": 0.000228,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/rhel-dmesg should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000113,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/rhel-dmesg should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.2e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-import-state should not cmp == \"/\"",
                            "run_time": 0.000181,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-import-state should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-import-state should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000108,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-loadmodules should not cmp == \"/\"",
                            "run_time": 0.000145,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-loadmodules should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 9.1e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-loadmodules should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-readonly should not cmp == \"/\"",
                            "run_time": 0.000142,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-readonly should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/lib/systemd/rhel-readonly should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000105,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not cmp == \"/\"",
                            "run_time": 0.000165,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.1e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not cmp == \"/\"",
                            "run_time": 0.000153,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.3e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tty-ask-password-agent should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-binfmt should not cmp == \"/\"",
                            "run_time": 0.00015,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-binfmt should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000132,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-binfmt should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-firstboot should not cmp == \"/\"",
                            "run_time": 0.000169,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-firstboot should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.6e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-firstboot should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-fsck should not cmp == \"/\"",
                            "run_time": 0.000173,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-fsck should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.00016,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-fsck should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-hwdb should not cmp == \"/\"",
                            "run_time": 0.000186,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-hwdb should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 9.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-hwdb should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-initctl should not cmp == \"/\"",
                            "run_time": 0.000168,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-initctl should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.6e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-initctl should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000216,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/journalctl should not cmp == \"/\"",
                            "run_time": 0.000384,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/journalctl should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000143,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/journalctl should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/journalctl should not cmp == \"/\"",
                            "run_time": 0.000174,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/journalctl should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 9.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/journalctl should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.5e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-journald should not cmp == \"/\"",
                            "run_time": 0.000152,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-journald should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.3e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-journald should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-logind should not cmp == \"/\"",
                            "run_time": 0.000166,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-logind should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000132,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-logind should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.7e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-modules-load should not cmp == \"/\"",
                            "run_time": 0.000159,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-modules-load should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.9e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-modules-load should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000139,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-random-seed should not cmp == \"/\"",
                            "run_time": 0.000151,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-random-seed should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.6e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-random-seed should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-readahead should not cmp == \"/\"",
                            "run_time": 0.00016,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-readahead should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-readahead should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 7.9e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-notify should not cmp == \"/\"",
                            "run_time": 0.000141,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-notify should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000102,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-notify should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.2e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-readahead should not cmp == \"/\"",
                            "run_time": 0.000143,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-readahead should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-readahead should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.1e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemctl should not cmp == \"/\"",
                            "run_time": 0.000138,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemctl should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.5e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemctl should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.2e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-shutdownd should not cmp == \"/\"",
                            "run_time": 0.00014,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-shutdownd should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 9.7e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-shutdownd should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-sysctl should not cmp == \"/\"",
                            "run_time": 0.00014,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-sysctl should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 8.5e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-sysctl should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 8.4e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not cmp == \"/\"",
                            "run_time": 0.000141,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000241,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000192,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not cmp == \"/\"",
                            "run_time": 0.000385,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000148,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.00013,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not cmp == \"/\"",
                            "run_time": 0.000223,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000123,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/systemd-tmpfiles should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000122,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/udevadm should not cmp == \"/\"",
                            "run_time": 0.0002,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/udevadm should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000101,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/bin/udevadm should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000114,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-udevd should not cmp == \"/\"",
                            "run_time": 0.0002,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-udevd should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.00012,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-udevd should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.00012,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-done should not cmp == \"/\"",
                            "run_time": 0.000196,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-done should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000104,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-done should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000102,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not cmp == \"/\"",
                            "run_time": 0.000167,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000104,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 9.9e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not cmp == \"/\"",
                            "run_time": 0.000166,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000103,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-update-utmp should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000107,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-user-sessions should not cmp == \"/\"",
                            "run_time": 0.000169,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-user-sessions should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000113,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-user-sessions should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000101,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-vconsole-setup should not cmp == \"/\"",
                            "run_time": 0.000218,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-vconsole-setup should not match \"/usr/share/nginx/html/app1\"",
                            "run_time": 0.000123,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "/usr/lib/systemd/systemd-vconsole-setup should not match \"/usr/share/nginx/html/app2\"",
                            "run_time": 0.000102,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "Web server and/or operating system information must be protected.",
                    "desc": "The web server response header of an HTTP response can contain several\n  fields of information including the requested HTML page. The information\n  included in this response can be web server type and version, operating\n  system and version, and ports associated with the web server. This provides\n  the malicious user valuable information without the use of extensive\n  tools.",
                    "impact": 0.3,
                    "refs": [],
                    "tags": {
                        "severity": "low",
                        "gtitle": "WG520",
                        "gid": "V-6724",
                        "rid": "SV-36672r1_rule",
                        "stig_id": "WG520 A22",
                        "nist": ["CM-6", "Rev_4"],
                        "Enter the following command:\n\n  grep server_tokens on the nginx.conf file and any separate included\n  configuration files\n\n  The Directive server_tokens must be set to off (ex. server_tokens off;).\n  This directive disables emitting nginx version on error pages and in the\n  “Server” response header field.\n\n  If the web server or operating system information are sent to the client via\n  the server response header or the directive does not exist, this is a finding.\n\n  Note: The default value is set to on.": null
                    },
                    "code": "control \"V-6724\" do\n  title \"Web server and/or operating system information must be protected.\"\n\n  desc \"The web server response header of an HTTP response can contain several\n  fields of information including the requested HTML page. The information\n  included in this response can be web server type and version, operating\n  system and version, and ports associated with the web server. This provides\n  the malicious user valuable information without the use of extensive\n  tools.\"\n\n  impact 0.3\n  tag \"severity\": \"low\"\n  tag \"gtitle\": \"WG520\"\n  tag \"gid\": \"V-6724\"\n  tag \"rid\": \"SV-36672r1_rule\"\n  tag \"stig_id\": \"WG520 A22\"\n  tag \"nist\": [\"CM-6\", \"Rev_4\"]\n\n  tag \"Enter the following command:\n\n  grep \"\"server_tokens\"\" on the nginx.conf file and any separate included\n  configuration files\n\n  The Directive server_tokens must be set to \"\"off\"\" (ex. server_tokens off;).\n  This directive disables emitting nginx version on error pages and in the\n  “Server” response header field.\n\n  If the web server or operating system information are sent to the client via\n  the server response header or the directive does not exist, this is a finding.\n\n  Note: The default value is set to on.\"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['server_tokens'] do\n        it { should cmp [['off']] }\n      end\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe.one do\n        describe server.params['server_tokens'] do\n          it { should be nil }\n        end\n        describe server.params['server_tokens'] do\n          it { should cmp [['off']] }\n        end\n      end\n    end\n    nginx_conf_handle.locations.entries.each do |location|\n      describe.one do\n        describe location.params['server_tokens'] do\n          it { should be nil }\n        end\n        describe location.params['server_tokens'] do\n          it { should cmp [['off']] }\n        end\n      end\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-6724.rb",
                        "line": 35
                    },
                    "id": "V-6724",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"off\"]] should cmp == [[\"off\"]]",
                            "run_time": 0.000186,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "should equal nil",
                            "run_time": 8.8e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        },
                        {
                            "status": "passed",
                            "code_desc": "should equal nil",
                            "run_time": 8.0e-5,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                },
                {
                    "title": "The web server must restrict SSL protocols.",
                    "desc": "During the initial setup of a Transport Layer Security (TLS) connection to the web server, the client sends a list of supported cipher suites in order of preference.  The web server will reply with the cipher suite it will use for communication from the client list.  If an attacker can intercept the submission of cipher suites to the web server and place, as the preferred cipher suite, a weak export suite, the encryption used for the session becomes easy for the attacker to break, often within minutes to hours.",
                    "impact": 0.5,
                    "refs": [],
                    "tags": {
                        "severity": "medium",
                        "gtitle": "WG345",
                        "gid": "V-60707",
                        "rid": "SV-75159r1_rule",
                        "stig_id": "WG345 A22",
                        "nist": ["SC-8", "Rev_4"],
                        "check": "Review the nginx.conf file and any separate included configuration files.\n\nEnsure the following entry exists:\n\nserver {\n       # SSL protocols TLS v1~TLSv1.2 are allowed. Disabed SSLv3\n       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;\n}\n\nIf the entry is not found, this is a finding.",
                        "fix": "Review the nginx.conf file and any separate included\n  configuration files.\n\n  Edit to ensure the following entry exists:\n\n  server {\n         # SSL protocols TLS v1~TLSv1.2 are allowed. Disabed SSLv3\n         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;\n  }\n  "
                    },
                    "code": "control \"V-new\" do\n\n  title \"The web server must restrict SSL protocols.\"\n\n  desc \"During the initial setup of a Transport Layer Security (TLS) connection to the web server, the client sends a list of supported cipher suites in order of preference.  The web server will reply with the cipher suite it will use for communication from the client list.  If an attacker can intercept the submission of cipher suites to the web server and place, as the preferred cipher suite, a weak export suite, the encryption used for the session becomes easy for the attacker to break, often within minutes to hours.\"\n\n  impact 0.5\n  tag \"severity\": \"medium\"\n  tag \"gtitle\": \"WG345\"\n  tag \"gid\": \"V-60707\"\n  tag \"rid\": \"SV-75159r1_rule\"\n  tag \"stig_id\": \"WG345 A22\"\n  tag \"nist\": [\"SC-8\", \"Rev_4\"]\n\n  tag \"check\": \"Review the nginx.conf file and any separate included configuration files.\n\nEnsure the following entry exists:\n\nserver {\n       # SSL protocols TLS v1~TLSv1.2 are allowed. Disabed SSLv3\n       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;\n}\n\nIf the entry is not found, this is a finding.\"\n\n  tag \"fix\": \"Review the nginx.conf file and any separate included\n  configuration files.\n\n  Edit to ensure the following entry exists:\n\n  server {\n         # SSL protocols TLS v1~TLSv1.2 are allowed. Disabed SSLv3\n         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;\n  }\n  \"\n\n  begin\n    nginx_conf_handle = nginx_conf(NGINX_CONF_FILE)\n\n    nginx_conf_handle.http.entries.each do |http|\n      describe http.params['ssl_protocols'] do\n        it { should cmp [[\"TLSv1\", \"TLSv1.1\", \"TLSv1.2\"]] }\n      end\n    end\n\n    nginx_conf_handle.servers.entries.each do |server|\n      describe server.params['ssl_protocols'] do\n        it { should cmp [[\"TLSv1\", \"TLSv1.1\", \"TLSv1.2\"]] }\n      end unless server.params['ssl_protocols'].nil?\n    end\n\n  rescue Exception => msg\n    describe \"Exception: #{msg}\" do\n      it { should be_nil}\n    end\n  end\n\nend\n",
                    "source_location": {
                        "ref": "/Users/rxman/Documents/MITRE/INSPEC/nginx-baseline/controls/V-new.rb",
                        "line": 35
                    },
                    "id": "V-new",
                    "results": [
                        {
                            "status": "passed",
                            "code_desc": "[[\"TLSv1\", \"TLSv1.1\", \"TLSv1.2\"]] should cmp == [[\"TLSv1\", \"TLSv1.1\", \"TLSv1.2\"]]",
                            "run_time": 0.000171,
                            "start_time": "2017-09-22 14:13:02 -0400"
                        }
                    ]
                }
            ],
            "groups": [
                {
                    "title": null,
                    "controls": ["V-13613"],
                    "id": "controls/V-13613.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13620"],
                    "id": "controls/V-13620.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13621"],
                    "id": "controls/V-13621.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13672"],
                    "id": "controls/V-13672.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13724"],
                    "id": "controls/V-13724.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13726"],
                    "id": "controls/V-13726.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13727"],
                    "id": "controls/V-13727.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13732"],
                    "id": "controls/V-13732.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13735"],
                    "id": "controls/V-13735.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13736"],
                    "id": "controls/V-13736.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13737"],
                    "id": "controls/V-13737.rb"
                },
                {
                    "title": null,
                    "controls": ["V-13738"],
                    "id": "controls/V-13738.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2230"],
                    "id": "controls/V-2230.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2232"],
                    "id": "controls/V-2232.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2234"],
                    "id": "controls/V-2234.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2236"],
                    "id": "controls/V-2236.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2242"],
                    "id": "controls/V-2242.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2243"],
                    "id": "controls/V-2243.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2246"],
                    "id": "controls/V-2246.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2247"],
                    "id": "controls/V-2247.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2248"],
                    "id": "controls/V-2248.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2251"],
                    "id": "controls/V-2251.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2255"],
                    "id": "controls/V-2255.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2256"],
                    "id": "controls/V-2256.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2257"],
                    "id": "controls/V-2257.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2259"],
                    "id": "controls/V-2259.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2261"],
                    "id": "controls/V-2261.rb"
                },
                {
                    "title": null,
                    "controls": ["V-2271"],
                    "id": "controls/V-2271.rb"
                },
                {
                    "title": null,
                    "controls": ["V-26285"],
                    "id": "controls/V-26285.rb"
                },
                {
                    "title": null,
                    "controls": ["V-26287"],
                    "id": "controls/V-26287.rb"
                },
                {
                    "title": null,
                    "controls": ["V-26294"],
                    "id": "controls/V-26294.rb"
                },
                {
                    "title": null,
                    "controls": ["V-26299"],
                    "id": "controls/V-26299.rb"
                },
                {
                    "title": null,
                    "controls": ["V-26305"],
                    "id": "controls/V-26305.rb"
                },
                {
                    "title": null,
                    "controls": ["V-26326"],
                    "id": "controls/V-26326.rb"
                },
                {
                    "title": null,
                    "controls": ["V-26368"],
                    "id": "controls/V-26368.rb"
                },
                {
                    "title": null,
                    "controls": ["V-26396"],
                    "id": "controls/V-26396.rb"
                },
                {
                    "title": null,
                    "controls": ["V-60707"],
                    "id": "controls/V-60707.rb"
                },
                {
                    "title": null,
                    "controls": ["V-6485"],
                    "id": "controls/V-6485.rb"
                },
                {
                    "title": null,
                    "controls": ["V-6577"],
                    "id": "controls/V-6577.rb"
                },
                {
                    "title": null,
                    "controls": ["V-6724"],
                    "id": "controls/V-6724.rb"
                },
                {
                    "title": null,
                    "controls": ["V-new"],
                    "id": "controls/V-new.rb"
                }
            ],
            "attributes": [
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "dod_approved_pkis",
                    "options": {
                        "description": "DoD-approved PKIs (e.g., DoD PKI, DoD ECA, and DoD-approved external partners).",
                        "default": ["DoD", "ECA"]
                    }
                },
                {
                    "name": "nginx_disallowed_file_list",
                    "options": {
                        "description": "File list of  documentation, sample code, example applications, and tutorials.",
                        "default": ["/usr/share/man/man8/nginx.8.gz"]
                    }
                },
                {
                    "name": "nginx_allowed_file_list",
                    "options": {
                        "description": "File list of allowed documentation, sample code, example applications, and tutorials.",
                        "default": []
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "nginx_group",
                    "options": {
                        "description": "Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "ocsp_server",
                    "options": {
                        "description": "domain and port to the OCSP Server ",
                        "default": "login.live.com:443"
                    }
                },
                {
                    "name": "crl_udpate_frequency",
                    "options": {
                        "description": "Frequency at which CRL is updated in days",
                        "default": 7
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_backup_repository",
                    "options": {
                        "description": "Path for the nginx home directory",
                        "default": "/usr/share/nginx/html"
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "The Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "disallowed_compiler_list",
                    "options": {
                        "description": "List of disallowed compilers",
                        "default": []
                    }
                },
                {
                    "name": "dmz_subnet",
                    "options": {
                        "description": "Subnet of the DMZ",
                        "default": "62.0.0.0/24"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_min_ver",
                    "options": {
                        "description": "Minimum Web vendor-supported version.",
                        "default": "1.12.0"
                    }
                },
                {
                    "name": "nginx_path",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/usr/sbin"
                    }
                },
                {
                    "name": "sys_admin",
                    "options": {
                        "description": "The system adminstrator",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "The Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "define path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "The Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin",
                    "options": {
                        "description": "The system adminstrator",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_group",
                    "options": {
                        "description": "The Nginx group",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin_group",
                    "options": {
                        "description": "The system adminstrator group",
                        "default": "root"
                    }
                },
                {
                    "name": "authorized_process_list",
                    "options": {
                        "description": "List of authorized running processes",
                        "default": [
                            "nginx",
                            "systemd",
                            "systemd-journal",
                            "systemd-udevd",
                            "systemd-logind",
                            "dbus-daemon",
                            "agetty",
                            "bash",
                            "ps"
                        ]
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "The Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin",
                    "options": {
                        "description": "The system adminstrator",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_group",
                    "options": {
                        "description": "The Nginx group",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin_group",
                    "options": {
                        "description": "The system adminstrator group",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "define path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "The Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin",
                    "options": {
                        "description": "The system adminstrator",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_group",
                    "options": {
                        "description": "The Nginx group",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin_group",
                    "options": {
                        "description": "The system adminstrator group",
                        "default": "root"
                    }
                },
                {
                    "name": "sys_admin",
                    "options": {
                        "description": "The system adminstrator",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "The Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "define path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "define path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "The Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin",
                    "options": {
                        "description": "The system adminstrator",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_group",
                    "options": {
                        "description": "The Nginx group",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin_group",
                    "options": {
                        "description": "The system adminstrator group",
                        "default": "root"
                    }
                },
                {
                    "name": "monitoring_software",
                    "options": {
                        "description": "Monitoring software for CGI or equivalent programs",
                        "default": "audit"
                    }
                },
                {
                    "name": "nginx_path",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/usr/sbin/nginx"
                    }
                },
                {
                    "name": "nginx_authorized_modules",
                    "options": {
                        "description": "List of  authorized nginx modules.",
                        "default": [
                            "http_addition",
                            "http_auth_request",
                            "http_dav",
                            "http_flv",
                            "http_gunzip",
                            "http_gzip_static",
                            "http_mp4",
                            "http_random_index",
                            "http_realip",
                            "http_secure_link",
                            "http_slice",
                            "http_ssl",
                            "http_stub_status",
                            "http_sub",
                            "http_v2",
                            "mail_ssl",
                            "stream_realip",
                            "stream_ssl",
                            "stream_ssl_preread"
                        ]
                    }
                },
                {
                    "name": "nginx_unauthorized_modules",
                    "options": {
                        "description": "List of  unauthorized nginx modules.",
                        "default": []
                    }
                },
                {
                    "name": "nginx_path",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/usr/sbin/nginx"
                    }
                },
                {
                    "name": "nginx_path",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/usr/sbin/nginx"
                    }
                },
                {
                    "name": "nginx_path",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/usr/sbin/nginx"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_owner",
                    "options": {
                        "description": "The Nginx owner",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin",
                    "options": {
                        "description": "The system adminstrator",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_group",
                    "options": {
                        "description": "The Nginx group",
                        "default": "nginx"
                    }
                },
                {
                    "name": "sys_admin_group",
                    "options": {
                        "description": "The system adminstrator group",
                        "default": "root"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_path",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/usr/sbin/nginx"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "allowed_services_list",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": [
                            "brandbot",
                            "dbus",
                            "dracut-shutdown",
                            "emergency",
                            "getty@tty1",
                            "kmod-static-nodes",
                            "network",
                            "nginx",
                            "rc-local",
                            "rescue",
                            "rhel-autorelabel-mark",
                            "rhel-autorelabel",
                            "rhel-configure",
                            "rhel-dmesg",
                            "rhel-import-state",
                            "rhel-loadmodules",
                            "rhel-readonly",
                            "serial-getty@ttyS0",
                            "systemd-ask-password-console",
                            "systemd-ask-password-wall",
                            "systemd-binfmt",
                            "systemd-firstboot",
                            "systemd-fsck-root",
                            "systemd-hwdb-update",
                            "systemd-initctl",
                            "systemd-journal-catalog-update",
                            "systemd-journal-flush",
                            "systemd-journald",
                            "systemd-logind",
                            "systemd-modules-load",
                            "systemd-random-seed",
                            "systemd-readahead-collect",
                            "systemd-readahead-done",
                            "systemd-readahead-replay",
                            "systemd-reboot",
                            "systemd-shutdownd",
                            "systemd-sysctl",
                            "systemd-tmpfiles-clean",
                            "systemd-tmpfiles-setup-dev",
                            "systemd-tmpfiles-setup",
                            "systemd-udev-trigger",
                            "systemd-udevd",
                            "systemd-update-done",
                            "systemd-update-utmp-runlevel",
                            "systemd-update-utmp",
                            "systemd-user-sessions",
                            "systemd-vconsole-setup",
                            "auditd"
                        ]
                    }
                },
                {
                    "name": "disallowed_services_list",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": ["mysql", "postgres", "named"]
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "define path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "define path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                },
                {
                    "name": "nginx_conf_file",
                    "options": {
                        "description": "Path for the nginx configuration file",
                        "default": "/etc/nginx/nginx.conf"
                    }
                }
            ],
            "sha256": "ed78d89ff9606753d05f605f01da65d5db022276d99ac27a982fefd5e4fc22d5"
        }
    ],
    "platform": { "name": "centos", "release": "7.4.1708" },
    "statistics": { "duration": 17.751795 }
}
