I'm experiencing what Marci has described as well. I would agree with the goal 
of creating an OVAL for CentOs as well. On a similar note when I run the scan 
inside a Docker container "running" CentOs I get a complete scan. I'm all in 
with goal of creating an OVAL for CentOs and Docker containers. 

Rodney Cobb 
roc...@gitmachines.com
@facetherathe
202-602-7077

> On Aug 15, 2014, at 1:48 PM, Marcin Pohl <marcinp...@gmail.com> wrote:
> 
> I have a similar problem on AWS' AMI.  OpenSCAP used to run fine, and few 
> weeks ago it just stopped working, all checks show up as 'not applicable.'  
> Is there a way to force it to just recognize it as RHEL/CentOS 6?
> 
> Thanks,
> Marcin
> 
> 
>> On Fri, Aug 15, 2014 at 1:46 PM, James Ford <james.t.f...@gmail.com> wrote:
>> Shawn, thanks for the detailed explanation. Rather than faking the system 
>> into thinking it's running RHEL6, would it be possible to update the oval 
>> definitions to include CentOS as an applicable platform?
>>  
>> 
>> 
>>> On Fri, Aug 15, 2014 at 1:10 PM, Shawn Wells <sh...@redhat.com> wrote:
>>> On 8/14/14, 5:25 PM, Jeremiah Jahn wrote:
>>> > I'm using it for SL6. The problem is in openscap-cpe-oval.xml. The
>>> > test for release is searching on RedHat only.
>>> >
>>> > I've changed mine to the following: notice the (redhat|sl) on the
>>> > second line. You should be able to change it to whatever the
>>> > centos-release rpm says. I can't remember right now if SSG is where I
>>> > got the original xml file, or if it's the one from open-scap. It's
>>> > very possible that you'll have to make sure that you'll have to alter
>>> > the ssg-rhel6-cpe-dictionary.xml to point to your altered cpe-oval
>>> > file. I've attached them just incase, but it took some tweaking.
>>> >
>>> > <rpminfo_state id="oval:org.open-scap.cpe.rhel:ste:6" version="1"
>>> > xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#linux";>
>>> >                   <name operation="pattern 
>>> > match">^(redhat|sl)-release</name>
>>> >                   <version operation="pattern match">^6[^\d]</version>
>>> >             </rpminfo_state>
>>> 
>>> 
>>> To illustrate how CPE works, as part of Greg's question....
>>> 
>>> Step 1: In your OVAL check, you define which platforms the check is
>>> written for. This is done by the <affected> stanzas, such as:
>>> 
>>> >       <affected family="unix">
>>> >         <platform>Red Hat Enterprise Linux 6</platform>
>>> >       </affected>
>>> 
>>> 
>>> Step 2: When an SCAP interpreter parses each OVAL rule, it will parse
>>> the <affected> tag above. For each <platform> listed, it will find the
>>> associated <cpi-item> to find what <check> needs to be ran. This will
>>> tell the SCAP interpreter if the OVAL rule is applicable for the system
>>> being scanned.
>>> 
>>> For example, from SSG's CPE dictionary:
>>> 
>>> >       <cpe-item name="cpe:/o:redhat:enterprise_linux:6">
>>> >             <title xml:lang="en-us">Red Hat Enterprise Linux 6</title>
>>> >             <!-- the check references an OVAL file that contains an 
>>> > inventory definition -->
>>> >             <check 
>>> > system="http://oval.mitre.org/XMLSchema/oval-definitions-5"; 
>>> > href="filename">installed_OS_is_rhel6</check>
>>> >       </cpe-item>
>>> 
>>> In this case, if the <platform> tag matches the cpe-item/title, then the
>>> cpe-item/check will be ran. In the case of "Red Hat Enterprise Linux 6"
>>> the OVAL check "installed_OS_is_rhel6" will be ran.
>>> 
>>> The installed_OS_is_rhel6 OVAL check queries the system to see if the
>>> redhat-release-{server workstation}-6 RPM is installed, for example:
>>> 
>>> https://github.com/OpenSCAP/scap-security-guide/blob/master/RHEL/6/input/checks/installed_OS_is_rhel6.xml#L46#L55
>>> >   <linux:rpminfo_test check="all" check_existence="at_least_one_exists" 
>>> > comment="redhat-release-server is version 6" id="test_rhel_server" 
>>> > version="1">
>>> >     <linux:object object_ref="obj_rhel_server" />
>>> >     <linux:state state_ref="state_rhel_server" />
>>> >   </linux:rpminfo_test>
>>> >   <linux:rpminfo_state id="state_rhel_server" version="1">
>>> >     <linux:version operation="pattern match">^6\.\d+$</linux:version>
>>> >   </linux:rpminfo_state>
>>> >   <linux:rpminfo_object id="obj_rhel_server" version="1">
>>> >     <linux:name>redhat-release-server</linux:name>
>>> >   </linux:rpminfo_object>
>>> 
>>> 
>>> If the the check passes, the SCAP interpreter knows the particular OVAL
>>> rule is applicable to the system, executes the probes, and you get a
>>> pass/fail result. If the installed_OS_is_rhel6 check fails, the OVAL
>>> rule will be marked as "Not Applicable."
>>> 
>>> 
>>> For users running derivative operating systems (CentOS, Scientific...)
>>> you can edit your CPE dictionary's regex like Jeremiah outlined. This
>>> will "fake" the system into thinking it's running RHEL6 and allow the
>>> check to be ran.
>>> --
>>> SCAP Security Guide mailing list
>>> scap-security-guide@lists.fedorahosted.org
>>> https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide
>>> https://github.com/OpenSCAP/scap-security-guide/
>> 
>> 
>> 
>> -- 
>> Sincerely,
>> 
>> James
>> 
>> --
>> SCAP Security Guide mailing list
>> scap-security-guide@lists.fedorahosted.org
>> https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide
>> https://github.com/OpenSCAP/scap-security-guide/
> 
> -- 
> SCAP Security Guide mailing list
> scap-security-guide@lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide
> https://github.com/OpenSCAP/scap-security-guide/
-- 
SCAP Security Guide mailing list
scap-security-guide@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide
https://github.com/OpenSCAP/scap-security-guide/

Reply via email to