.. _getting-started: Getting Started =============== Are you new to OVAL? Wondering what it is and how it's used? Read on! What is OVAL? ------------- OVAL is an open, standardized assertion language written in XML that standardizes how to assess and report on the machine state of computer systems. Used by the U.S. Government, the Center for Internet Security, Cisco, and McAfee, among many others, it is the most mature and widely adopted open source standard for security assessment. With the goal of easing interoperability between security tools, it includes content for vulnerability assessment, configuration management, system inventory, and patch management. Security experts, system administrators, and software developers from industry, government, and academia have collaborated to write OVAL, and this consensus is one of its greatest attributes. Anyone can write OVAL, and we always welcome new contributors. OVAL Use Cases -------------- OVAL is primarily used for assessing vulnerabilities in security configurations. OVAL content can also be used in other ways, documented in the `Use Cases `_. OVAL Structure -------------- OVAL can be broken down into a series of components that together represent a check, validation, or idea. This can generally be expressed as a prose sentence: |Prose| ^^^^^^^^^^^^^ .. |Prose| image:: images/oval_component_0.png :width: 500px :height: 170px This is expressed as a definition, which references or includes the other components as seen below. |Definitions| ^^^^^^^^^^^^^ .. |Definitions| image:: images/oval_component_1.png :width: 500px :height: 170px definitions Definitions are specifications of what endpoint information should be checked and what corresponding values are expected to be found, as well as how to interpret the results of that comparison. They comprise one or more tests, which taken together represent an externally meaningful datum, such as a vulnerability state or inventory status. | |Tests| ^^^^^^^ .. |Tests| image:: images/oval_component_2.png :width: 500px :height: 170px tests Tests are the concrete building blocks of definitions. They specify the relationship between an OVAL Object and zero or more OVAL States, matching the information to be collected with the corresponding values expected to be found. | |Objects| ^^^^^^^^^ .. |Objects| image:: images/oval_component_3.png :width: 500px :height: 170px objects Objects define what should be collected from an endpoint. *A concrete OVAL Object may define a set of 0 or more OVAL Behaviors. OVAL Behaviors are actions that can further specify the set of OVAL Items that match an OVAL Object.* | |States| ^^^^^^^^ .. |States| image:: images/oval_component_4.png :width: 500px :height: 170px states States are the expected values from an object that are compared to the information collected from an endpoint. | variables Variables provide a way to group one or more values for consistent reference within other OVAL content. | An Annotated Sample ------------------- Below is a sample OVAL definition file:: 5.11.2 2018-07-31T17:30:20 WinRM Traffic Must be Encrypted Microsoft Windows Server 2016 The Windows Remote Management (WinRM) client must not allow unencrypted traffic. This sample was based on an OVAL definition included in the Windows Server 2016 STIG available at https://iase.disa.mil/ criteria operator="AND"> \ HKEY_LOCAL_MACHINE Software\Policies\Microsoft\Windows\WinRM\Client AllowUnencryptedTraffic reg_dword 0 OVAL Features ------------- * XML- and assertion-based language * implementation-neutral, semantic content authoring * enables enforcement of script-free, read-only policy * supports content reuse * complex first order logic * variables in a variety of functions for string manipulation * supports technology-neutral policy authoring * extensible * supports trust management through digital signatures and verifications * automatically checkable for conformance with standard * brings consistency and transparency to the results produced by security scanning tools * assists in the exchange of machine-readable information between security tools * reduces the need for IT Security Professionals to learn the proprietary languages of each of their tools **Use OVAL to:** * make implementation-neutral assertions about platforms and their machine states (e.g. files, registry keys, etc.) * express policy content without defining implementation method The OVAL Schemas ---------------- OVAL comprises a set of schemas, which correspond to unique Models that establish the logical framework for making assertions about the posture of an endpoint. The Models provide the building blocks for representing the expected and actual states of endpoints and the results of the comparison of those elements. There are two main sets of schemas: Core and Platform Extensions. The Core Schemas form the foundation of the language, while Platform Extensions extend the Core Schemas to support different platforms, such as Windows, Linux, and Cisco IOS. Related Standards ----------------- XCCDF The `eXtensible Configuration Checklist Description Format `_ language describes security checklists. Documents in this format may reference OVAL components or documents, as well as ones from other standards, creating a portable and flexible checklist. | SCE The `Script Check Engine `_ complements OVAL with scripts that check things that OVAL cannot or does not. SCE results files are created as an XML. By using XLST transformations, OVAL and SCE results can be aggregated into a single HTML file or PDF document. | CPE The `Common Platform Enumeration `_ provides a standard naming scheme for IT platforms and systems. OVAL uses it to consistently identify the target platforms of checks and definitions. | Datastreams **Datastream** is a format that consolidates multiple SCAP components into a single file (including OVAL). **ARF**, or the **Asset Reporting Format**, is also called Result Datastream. It consolidates multiple results files into one. | Next Steps ---------- * `Additional Resources `_