Я пытаюсь использовать сценарий SCE в файле ds openscap, и все, что я получаю, - это статус "не проверено"
вот мой файл ds:
<ns0:data-stream-collection xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:ns0="http://scap.nist.gov/schema/scap/source/1.2"
xmlns:ns1="http://www.w3.org/1999/xlink"
xmlns:ns10="http://checklists.nist.gov/xccdf/1.2"
xmlns:ns12="http://www.w3.org/2000/svg"
xmlns:ns14="http://cpe.mitre.org/dictionary/2.0"
xmlns:ns2="urn:oasis:names:tc:entity:xmlns:xml:catalog"
xmlns:oval-def="http://oval.mitre.org/XMLSchema/oval-definitions-5"
xmlns:oval="http://oval.mitre.org/XMLSchema/oval-common-5"
xmlns:ind-def="http://oval.mitre.org/XMLSchema/oval-definitions-5#independent"
xmlns:unix-def="http://oval.mitre.org/XMLSchema/oval-definitions-5#unix"
xmlns:red-def="http://oval.mitre.org/XMLSchema/oval-definitions-5#linux"
xmlns:ns9="http://scap.nist.gov/schema/ocil/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
id="scap_1_collection_1"
schematron-version="1.2">
<ns0:data-stream id="scap_1_datastream_1" scap-version="1.2" timestamp="2018-12-13T04:28:31" use-case="OTHER">
<ns0:checklists>
<ns0:component-ref id="scap_1_cref_1" ns1:href="#scap_1_comp_1">
<ns2:catalog>
<ns2:uri name="scap_1_catalog_1" uri="#scap_1_cref_3"/>
</ns2:catalog>
</ns0:component-ref>
</ns0:checklists>
<ns0:checks>
<ns0:component-ref id="scap_1_cref_3" ns1:href="#scap_1_comp_2"/>
</ns0:checks>
</ns0:data-stream>
<ns0:component id="scap_1_comp_1" timestamp="2017-10-19T23:40:42">
<ns10:Benchmark id="xccdf_1_benchmark_1" resolved="1" style="SCAP_1.2">
<ns10:status date="2018-04-10">draft</ns10:status>
<ns10:title>Guide to the Secure ACME</ns10:title>
<ns10:description>This guide presents a catalog of security rules</ns10:description>
<ns10:version>1.0</ns10:version>
<ns10:Profile id="xccdf_1_profile_1">
<ns10:title>ACME Security Profile 1</ns10:title>
<ns10:description>The profile 1 contains rules to secure ACME</ns10:description>
<ns10:select idref="xccdf_1_rule_1401" selected="false"/>
<ns10:select idref="xccdf_1_rule_1402" selected="true"/>
</ns10:Profile>
<ns10:Group id="xccdf_1_group_1">
<ns10:Rule id="xccdf_1_rule_1401" selected="true" severity="medium">
<ns10:title>1.4.01-s: verify rights and permissions on file /tmp/raymond.txt</ns10:title>
<ns10:description>stat -c %a /tmp/raymond.txt</ns10:description>
<ns10:fix system="urn:xccdf:fix:script:sh">date >> /tmp/raymond.txt; chmod 600 /tmp/raymond.txt; chown root:root /tmp/raymond.txt</ns10:fix>
<ns10:check system="http://oval.mitre.org/XMLSchema/oval-definitions-5">
<ns10:check-content-ref href="scap_1_catalog_1" name="oval:ray:def:1401"/>
</ns10:check>
</ns10:Rule>
<ns10:Rule id="xccdf_1_rule_1402" selected="true" severity="medium">
<ns10:title>selinux</ns10:title>
<ns10:description>Checks if you have SELinux enabled</ns10:description>
<ns10:check system="http://wordpress-www-open-scap-org.b9ad.pro-us-east-1.openshiftapps.com/page/SCE">
<ns10:check-import import-name="stdout" />
<ns10:check-content-ref href="scap_1402.sh" />
</ns10:check>
</ns10:Rule>
</ns10:Group>
</ns10:Benchmark>
</ns0:component>
<ns0:component id="scap_1_comp_2" timestamp="2018-04-03T23:40:40">
<oval_definitions xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5">
<generator>
<oval:product_name>ACME Hardening</oval:product_name>
<oval:schema_version>5.10.1</oval:schema_version>
<oval:timestamp>2018-04-10T08:00:00</oval:timestamp>
</generator>
<definitions>
<definition id="oval:ray:def:1401" version="1" class="compliance">
<metadata>
<title>1.4.01-s: 1.4.01-s: verify rights and permissions on file /tmp/raymond.txt</title>
<description>stat -c %a /tmp/raymond.txt</description>
</metadata>
<criteria operator="AND">
<criterion test_ref="oval:ray:tst:1401" comment="1401"/>
</criteria>
</definition>
</definitions>
<tests>
<unix-def:file_test id="oval:ray:tst:1401" comment="oval:ray:tst:1.4.01" version="1" check="all">
<unix-def:object object_ref="oval:ray:obj:1401"/>
<unix-def:state state_ref="oval:ray:ste:1401"/>
</unix-def:file_test>
</tests>
<objects>
<unix-def:file_object id="oval:ray:obj:1401" version="1">
<unix-def:filepath>/tmp/raymond.txt</unix-def:filepath>
</unix-def:file_object>
</objects>
<states>
<unix-def:file_state id="oval:ray:ste:1401" version="1">
<unix-def:group_id operation="equals" datatype="int">0</unix-def:group_id>
<unix-def:user_id operation="equals" datatype="int">0</unix-def:user_id>
<unix-def:uexec operation="equals" datatype="boolean">false</unix-def:uexec>
<unix-def:gwrite operation="equals" datatype="boolean">false</unix-def:gwrite>
<unix-def:gexec operation="equals" datatype="boolean">false</unix-def:gexec>
<unix-def:owrite operation="equals" datatype="boolean">false</unix-def:owrite>
<unix-def:oexec operation="equals" datatype="boolean">false</unix-def:oexec>
</unix-def:file_state>
</states>
</oval_definitions>
</ns0:component>
Я запускаю следующую команду:
[root]# oscap xccdf eval --profile xccdf_1_profile_1 rm-ds.xml
результат, который я получаю:
Title selinux
Rule xccdf_1_rule_1402
Result notchecked
Я думаю, что с "Rule id =" xccdf_1_rule_1402 "что-то не так, но я не понимаю, в чем проблема
Файл сценария для выполнения (scap_1402.sh) находится в том же каталоге, что и файл xml, и имеет допустимый синтаксис и правильные права. В автономном режиме он работает, но, похоже, никогда не вызывается из oscap
ОС - centos
[root]# uname -a
Linux ip-127.0.0.1.compute.internal 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Установленные пакеты scap:
[root]# yum list installed | grep scap
openscap.x86_64 1.2.14-3.el7_4 @updates
openscap-engine-sce.x86_64 1.2.14-3.el7_4 @updates
openscap-scanner.x86_64 1.2.14-3.el7_4 @updates
scap-security-guide.noarch 0.1.33-6.el7.centos @updates
Кто-нибудь может мне помочь? Кстати, извините за мой английский, это не мой естественный язык
Раймонд
Я обновился, сообщение об ошибке другое (но все еще присутствует)
xml файл:
<ns10:Rule id="xccdf_1_rule_1402" selected="true" severity="medium"> <ns10:title>selinux</ns10:title> <ns10:description>Checks if you have SELinux enabled</ns10:description> <ns10:check system="http://open-scap.org/page/SCE"> <ns10:check-import import-name="stdout" /> <ns10:check-content-ref href="scap_1402.sh" /> </ns10:check> </ns10:Rule>
вывод:
[root] # oscap xccdf eval --profile xccdf_1_profile_1 rm-ds.xml Название selinux Rule xccdf_1_rule_1402 Результат не проверен
Ошибка OpenSCAP: SCE не удалось найти файл сценария scap_1402.sh. Ожидаемое расположение: '/tmp/oscap.3sSrgD/scap_1402.sh'. [sce_engine.c: 387]
Такое же сообщение об ошибке, если я установил абсолютный путь /root/scap_1402.sh
Я думаю, что URL-адрес в системном атрибуте в элементе проверки неверен.
<ns10:check system="http://wordpress-www-open-scap-org.b9ad.pro-us-east-1.openshiftapps.com/page/SCE">
Там должен быть
system="http://open-scap.org/page/SCE"
Видеть https://github.com/OpenSCAP/openscap/blob/maint-1.2/tests/sce/sce_xccdf.xml для примера.
Интересно, почему такой странный URL упоминается в https://www.open-scap.org/features/other-standards/sce/ страница. Думаю, произошла ошибка при пакетной конвертации ссылок на сайте OpenSCAP.