Skip to content
Jjk422 edited this page Jul 28, 2016 · 15 revisions

# SecGen schemas

SecGen currently has 5 schemas:

  1. base_metadata_schema.xsd
  2. network_metadata_schema.xsd
  3. scenario_schema.xsd
  4. service_metadata_schema.xsd
  5. vulnerability_metadata_schema.xsd

Where are the schemas found?

All schemas can be found under the directory SecGen/lib/schemas/.

What do the schemas actually do?

Each schema ensures all secgen_metadata.xml files and scenario files have a valid structure with valid values.

The base schema The base_metadata_schema.xsd schema controls the base tag. The options for the base tag are

Tag Attributes values {Required values}

name any author any module_licence MIT , Apache v2 , GPLv3 description any type server , desktop , cli platform any distro any url any {Optional values} reference any software_name any software_licence any {} conflict module_path = any name = any author = any module_licence = any description = any type = any platform = any distro = any url = any vagrantbase = any reference = any software_licence = any { } requires module_path = any name = any author = any module_licence = any description = any type = any platform = any distro = any url = any vagrantbase = any reference = any software_licence = any

In other words

Bases Minimal secgen_metadata.xml <?xml version="1.0"?>

<base xmlns="http://www.github/cliffe/SecGen/base" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.github/cliffe/SecGen/base"> <name>“String”</name> <author>“String”</author> <module_licence>MIT // Apache v2 // GPLv3</module_licence> <description>“String”</description> <type>server // desktop // cli</type> <platform>“String”</platform> <distro>“String”</distro> <url>“String”</url> </base>

Maximum secgen_metadata.xml <?xml version="1.0"?>

<base xmlns="http://www.github/cliffe/SecGen/base" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.github/cliffe/SecGen/base"> <name>“String”</name> <author>“String”</author> <module_licence>MIT // Apache v2 // GPLv3</module_licence> <description>“String”</description> <type>server // desktop // cli</type> <platform>“String”</platform> <distro>“String”</distro> <url>“String”</url> <reference>“String”</reference> <software_name>“String”</software_name> <software_licence>“String”</software_licence>

<conflict> <module_path>"String"</module_path> <name>"String"</name> <author>"String"</author> <module_licence>"String"</module_licence> <description>"String"</description> <type>"String"</type> <platform>"String"</platform> <distro>"String"</distro> <url>"String"</url> <vagrantbase>"String"</vagrantbase> <reference>"String"</reference> <software_licence>"String"</software_licence> </conflict>

<requires> <module_path>"String"</module_path> <name>"String"</name> <author>"String"</author> <module_licence>"String"</module_licence> <description>"String"</description> <type>"String"</type> <platform>"String"</platform> <distro>"String"</distro> <url>"String"</url> <vagrantbase>"String"</vagrantbase> <reference>"String"</reference> <software_licence>"String"</software_licence> </requires> </base>

Minimal network secgen_metadata.xml module <?xml version="1.0"?> <network xmlns="http://www.github/cliffe/SecGen/network" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.github/cliffe/SecGen/network"> <name></name> <author></author> <module_license>MIT // Apache v2 // GPLv3</module_license> <description></description> <type>public_network // private_network</type> <range>***.***.***.*** where * is 0-9</range> </network>

Maximum network secgen_metadata.xml module <?xml version="1.0"?> <network xmlns="http://www.github/cliffe/SecGen/network" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.github/cliffe/SecGen/network"> <name></name> <author></author> <module_license>MIT // Apache v2 // GPLv3</module_license> <description></description> <type>public_network // private_network</type> <range>***.***.***.*** where * is 0-9</range> <conflict> <name></name> <author></author> <module_license></module_licence> <description></description> <type></type> <range></range> </conflict> </network>

Services secgen_metadata.xml <?xml version="1.0"?> <service xmlns="http://www.github/cliffe/SecGen/service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.github/cliffe/SecGen/service"> <name>””</name> <author>””</author> <module_license>MIT // Apache v2</module_license> <description>””</description> <type>””</type> <platform>linux // unix // windows</platform>

<!--optional details--> <reference>””</reference> <software_name>””</software_name> <software_license>””</software_license> <!--Conflicts ensure no duplicate software installations--> <software_name>””</software_name> <conflict> <module_path>””</module_path> <name>””</name> <author>””</author> <module_license>””</module_license> <description>””</description> <type>””</type> <platform>linux // unix // windows</platform> <reference>””</reference> <software_name>””</software_name> <software_license>””</software_licence> </conflict>

<!--Requires ensures all prerequisite modules installed--> <requires> <module_path>””</module_path> <name>””</name> <author>””</author> <module_license>””</module_licence> <description>””</description> <type>””</type> <platform>linux // unix // windows</platform> <reference>””</reference> <software_name>””</software_name> <software_license>””</software_license> </requires> </services>

Vulnerability secgen_metadata.xml <?xml version="1.0"?> <vulnerability xmlns="http://www.github/cliffe/SecGen/vulnerability" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.github/cliffe/SecGen/vulnerability"> <name>””</name> <author>””</author> <module_license>MIT // Apache v2</module_license> <description>””</description> <type>””</type> <privilege>information_leakage // user // root</privilege> ←Todo - need to add information leakage to privilege <access>remote // local</access> <platform>linux // unix // windows</platform>

<!--optional vulnerability details--> <difficulty>low // medium // high</difficulty> <cve>CVE-[0-9]{4}-[0-9]{1,39}</cve> <cvss_base_score>*.* where * is 0-9</cvss_base_score> <cvss_vector>AV:(L|A|N)/AC:(H|M|L)/Au:(M|S|N)/C:(N|P|C)/I:(N|P|C)/A:(N|P|C)</cvss_vector> <reference>””</reference> <software_name>nfsd</software_name> <software_license>GPLv2</software_license>

<!--optional breadcrumb (info that is leaked and required to exploit)--> <breadcrumb>””</breadcrumb>

<!--optional hints--> <msf_module>exploit/[a-zA-Z0-9_\-/]+</msf_module> <hint>””</hint> <solution>””</solution> <conflict> <module_path>””</module_path> <name>””</name> <author>””</author> <module_license>””</module_license> <description>””</description> <type>””</type> <privilege>user // root</privilege> <access>remote // local</access> <platform>linux // unix // windows</platform> <-- need to add windows to schema <difficulty>low // medium // high</difficulty> <cve>CVE-[0-9]{4}-[0-9]{1,39}</cve> <cvss_base_score>*.* where * is 0-9</cvss_base_score> <cvss_vector>AV:(L|A|N)/AC:(H|M|L)/Au:(M|S|N)/C:(N|P|C)/I:(N|P|C)/A:(N|P|C)</cvss_vector> <reference>””</reference> <software_name>””</software_name> <software_license>””</software_license> <breadcrumb>””</breadcrumb> <msf_module>exploit/[a-zA-Z0-9_\-/]+</msf_module> <hint>””</hint> <solution>”"</solution> </conflict> <requires> <module_path>””</module_path> <name>””</name> <author>””</author> <module_license>””</module_license> <description>””</description> <type>””</type> <privilege>user // root</privilege> <access>remote // local</access> <platform>linux // unix // windows</platform> <-- need to add windows to schema <difficulty>low // medium // high</difficulty> <cve>CVE-[0-9]{4}-[0-9]{1,39}</cve> <cvss_base_score>*.* where * is 0-9</cvss_base_score> <cvss_vector>AV:(L|A|N)/AC:(H|M|L)/Au:(M|S|N)/C:(N|P|C)/I:(N|P|C)/A:(N|P|C)</cvss_vector> <reference>””</reference> <software_name>””</software_name> <software_license>””</software_license> <breadcrumb>””</breadcrumb> <msf_module>exploit/[a-zA-Z0-9_\-/]+</msf_module> <hint>””</hint> <solution>”"</solution> </requires> </vulnerability>

Clone this wiki locally