Showing posts with label oval. Show all posts
Showing posts with label oval. Show all posts

Monday, October 31, 2011

Examples of ovaldi checks: sysctl variables

After I described how to compile ovaldi on CentOS and a simple test to verify it is working, in this post I'm going to describe how to use ovaldi to check cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 values of sysctl variables. More precisely, I'm going to check that IPv4 forwarding is turned off. The general idea behind this example is to give you a starting example on which you can build more complicated checks. Note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is even more general idea. Namely, you can create your own security benchmarks that can check if certain security criteria are met, and if not, you can be alarmed by automatic monitoring process that is based on ovaldi.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 text that follows I'm referencing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following file. That is a simple and complete file that will check cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of net.ipv4.ip_foward sysctl variable. After you've downloaded this file, and assuming that you have your environment properly configured (see posts I referenced at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you can run ovaldi to do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 check:
ovaldi -m -o sysctl-test.xml -a /opt/oval/share/ovaldi/xml
ovaldi will create cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 usual output files after running this command: ovaldi.log, results.xml, results.html and system-characteristics.xml. Each one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m you can open in a brower. You should open cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m and check cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir content. system-characteristics.xml is interesting because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re you can find what information was collected about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system. Those values can be checked for in oval definitions XML file. Note that ovaldi collects only referenced data, not everything it could possibly collect.

Let us now dissect a bit oval definitions file, sysctl-test.xml. The basic structure of this file is:

    ...
    ...
    ...
    ...
Basically, what oval definition does is to define a series of test, each one describing what expected state of certain object is. Test cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves can be combined in many different ways using AND and OR operators and nesting.

In our simple example object whose state we are interested in is ip_forwarding variable. So, if you look into XML file, inside element, you'll find that we define object of interest:

   version="1"
   comment="forwarding is disabled"
   check="at least one"
   xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#unix">
 
 
xmlns attribute is important. I had some problems with undefined element until I got that one correctly. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 objects, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir state and tests are defined in XML documents in /opt/oval/share/ovaldi/xml directories. But, when using those be certain to correctly define namespace where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are defined, or ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise ovaldi will complain that you are using unknown test, objects and/or states.

This particular test reference object that has to be checked and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state in which this object has to be. Object itself is defined in element as follows:

         xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#unix">
    net.ipv4.ip_forward
As you can see, within name element you specify which sysctl variable you wish to check. The second part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 test is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state in which object has to be. We want our object to have value 0, meaning forwarding is disabled. That check is performed using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following within states element:

      xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#unix">
    0
Obviously, you just place desired value within value element.

So, we saw that test consists of an object that has to be in particular state. The test itself is referenced in definition element (which is placed within definitions element). For that purpose you are using criterion element:

   
As you can probably guess, multiple criterions can be specified and in this case cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y will be bound with AND operator. You can nest criteria and criterion elements to get very complex tests.

Tuesday, October 25, 2011

Installing and testing ovaldi on Windows 7...

When you are dealing with a single computer with a particular operating system, it is relatively easy to keep it safe. But, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of machines grows and becomes more heterogeneous, keeping cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m safe becomes very donating task. You may have automated updates and such, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have to be checked from time to time in order to see if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y function correctly. Still, if those computers are used (and by definition cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are, more or less frequently), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are like living organisms, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y change. No matter if you are tweaking particular installation because user requested some new functionality or he requested removal of something that annoys him, or you are trying to diagnose why something worked and now it doesn't work, you will change something. After you are finished, you might think that changes you've made won't influence anything and leave for some later time to reverse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, and eventually you'll forget about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. But, any unintended change might bring system into a risk. So, it is important to perform regular checks in order to spot changes. Since such checks are time consuming and error prone, it is a good practice to use some tool that will do it for you. That tool could be OVAL.

But even if you are not an system administrator, but e.g. auditor, you can also benefit from OVAL since checks that you have to perform could be in some way prescribed and automated. In that way you can check larger sample of systems and achieve better accuracy and confidence in obtained results than by manual checks.

OVAL is basically a language that describes checks to be made, more concretely, it's an application of XML. Those checks could be conditional (i.e. depend on a system under audit, or if a particular component is installed or not), and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can be grouped with operators like AND, OR and NOT. There are many existing checks defined, for example, here are latest additions and updates, while here are complete databases for download. The tests are provided by some vendors (like RedHat) and also by community. Finally, you can add your own checks customized to your particular environment.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves, those checks are worthless without a proper tool that will execute cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. And here we have open source reference implementation, Ovaldi. Some security vendors have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own versions, which of course cost money. Ovaldi, on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, is free, but you are forced to use command line. Ovaldi interprets (in a way) given database and produces reports, in XML and HTML formats. HTML is great for viewing results, while XML for parsing and automating scans.

I was testing ovaldi on Linux before with mixed success, but now I decided to try it on Windows 7. The reason that I believe that its use on workstations and servers on a periodic basis will make those computers more secure, and, by extension, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole system more secure. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 text that follows I'm going to describe a process of installing, manually running cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tool and analyzing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results. Automated testings I'll leave for some future post.

Download and install Ovaldi

Download page for Ovaldi is here. Note that this will take you to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latest version at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time this post was written, i.e. 5.10.1. So, before downloading check if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a newer version, and if is, use that one. Don't forget to change all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 references from version 5.10.1 to your version in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 text that follows.

Anyway, you'll find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re EXE versions for Windows, so select one that suits your environment. In my case that was 32-bit version, but if you have 64-bit version of Windows, download that one instead.

The file you've downloaded isn't regular installation file, so to install it you have to follow a bit different procedure. After download finishes, left click on file you downloaded and select option Run as administrator. Winzip dialog will appear which will ask you where to unzip (i.e. install) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files. Enter C:\Program Files\OVAL, or anything you wish but don't forget to change reference to that directory in later text to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one you've entered. Click Unzip button, and that's it. Ovaldi is installed.

Environment setup

To be able to run ovaldi without typing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole path to it, add it to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PATH environment variable. To do that, click on Windows menu (left bottom corner) and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n do left click on Computer item. Select Properties item and in window that appears select Advanced System Settings (option on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 left). New window appears and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re you'll notice Environment Variables... button on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right bottom. Click on it and new window appears. In this window cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is System variables pane. Find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re variable PATH and click on Edit. At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 line add cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following text:
;C:\Program Files\OVAL\ovaldi-5.10.1\
Be carefull not to erase existing values! Close all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 windows by clicking on OK, and close final window (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one opened with Properties on Computer) by clicking on X in upper right corner. Now, open command prompt and enter ovaldi followed by return. If you get help message cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n everything is OK and you can proceed to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next step. Ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise, review previous steps.

Download file definitions

Now you have interpreter and you need definitions that will be run by interpreter. Go to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following page. There you'll see section Downloads by Version and Namespace. You need to select class to download based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 version of oval interpreter you have. The following classes are available:
  • compliance - checks that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 installation is compliant with good security practices.
  • inventory - checks that produce results of what is installed.
  • miscellaneous
  • patch
  • vulnerability - test that verify if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a vulnerability present on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 machine.
When you click on one of those classes you are presented with a new page that gives you a list of available definitions grouped by different criteria. For example, by clicking on vulnerability class (probably cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 largest one) you can select download by platform, family or all. There are pros and cons of each one. If you select by family (or all) you don't have to think which platform you have, you get everything and oval interpreter will not be confused that, e.g. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are Windows XP specific checks and you are running on Windows 7. But, this commodity goes at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 expense of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 execution time.

For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 purpose of initial testing of oval, I went to download by platform/vulnerabilities, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re I downloaded file microsoft.windows.7.xml which I renamed into microsoft.windows.7.vulnerabilities.xml. I also downloaded equivalent files from compliance and inventory classes naming cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m microsoft.windows.compliance.xml and microsoft.windows.inventory.xml, respectively. All those files I placed into working directory that, from now on, I'll reference by WORK_DIR identifier. So, whenever you see that string, replace it with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full directory path of your working directory.

Running Ovaldi and viewing results

Ok, lets do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first scan to see what we are going to get. To start scan, open terminal windows, go to your working directory, and run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following command (this is a single line!):
ovaldi -m -a "c:\program files\oval\ovaldi-5.10.1\xml" -o microsoft.windows.7.vulnerability.xml -r 20111025-result.xml -x 20111025-result.html -d 20111025-system-characteristics.xml
This command will check vulnerabilities that are present on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system it runs on. Of course, only vulnerabilities defined in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database (microsoft.windows.7.vulnerability.xml) will checked. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tool reports that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are no vulnerabilities, it only means cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are no known vulnerabilities! The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r options are:
  • Option -m. Don't check md5 sum of oval definitions file (in this case that is microsoft.windows.7.vulnerability.xml).
  • Option -a specifies where all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 auxiliary files necessary for interpreter are. For example, default style sheet file is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, also, XML definitions and tests are also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re. The default value of this option assumes that you are running ovaldi in its base directory (i.e. where it is installed) so it has to be specified in order for everything to work.
  • Option -o specifies oval definition file to use. 
  • Option -r specifies XML result file. The default value is results.xml and in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case of multiple runs, default file name will be overwritten. So, using this option prevents that from happening.
  • Option -x specifies HTML result file. This file is generated from XML result file by applying style sheet (XSL) file. Default file is used if none is specified on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command line.
  • Option -d specifies in which file will be saved system characteristics, i.e. installed options, existing files, etc. used during interpreter run of oval definition file.
After this command finishes you'll have three new files in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 directory in which you run it (provided no errors occured). All of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files can be viewed by Web browser (e.g. Mozilla Firefox) but only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file specified as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 argument to -x option is specifically meant to be viewed in such way. XML files are primarily used for automated processing.

When you open results file (20111025-results.html if you used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command given above) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you'll see four section named OVAL Results Generator Information, System Information, OVAL System Characteristics Generator Information and OVAL Definition Results.

The largest one will be OVAL Definition Results, which is a table with 5 columns. This first column is ID of a test performed, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second is result of a test, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r it is positive (true) or negative (false). Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a class of a test, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r inventory (i.e. something is installed or not), vulnerability checked, reference ID that links you to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 description of that particular item on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet, and finally title that gives a short description of item.


Thursday, January 4, 2007

OVAL definitions for Fedora

Note: This post has been transferred from my old home page on January 4th, 2020 and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 date of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 publication is only approximate.
... or to be honest, a start of OVAL definitions for F9F14 and CentOS, i.e. work in (very long) progress. I'm just learning how to use this technology, and if it's of any use at all! :)
In short, OVAL is a XML based specification language for vulnerability assessment. It is already used by different vendors and it will probably see wider adoption as NIST is pushing OVAL as a part of automated solution for vulnerability assessment and management. For example, RedHat publishes vulnerability advisories in OVAL format.
I have to stress that I didn't yet fully learned cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea behind OVAL as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technology used so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a high probability of errors in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following text. If you spot an error please mail me cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correction!

What is OVAL and how to use it

As I already said, OVAL is a language that describes checks to be performed on a system in order to determine if any vulnerability is present on it, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r to a software bug or to a configuration setting. This is performed via tool in a package called ovaldi, which is available in Fedora's RPM repository. So, you should install it as usual using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 yum command. After installation process finishes, you'll have command line tool called, surprisingly, ovaldi! :) The next thing you need in order to use this tool are definitions of vulnerabilities. Unfortunately, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are no vulnerability descriptions for Fedora in OVAL form. I'll try to make few, for Fedora and CentOS. In case I missed some repository, please notify me via e-mail message! While we are at CentOS, it's possible that RedHat's OVAL definitions could be used with a little bit of hacking, but I didn't try it so it could prove false!
Anyway, in order to try ovaldi tool you need OVAL definitions. You can use RedHat's but all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results will be false which is expected as you are not running RedHat on your computer. So, in order for you to try oval, download this definition file I prepared. It is very simple OVAL definition and only checks which version of Fedora is installed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 computer, 8 or 9.

Running ovaldi

To run ovaldi it has to have schema definitions. Now, this is interesting as those are placed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 /usr/share/ovaldi directory but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tool looks for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current directory.
Even more interesting is that I can't seem to identify option that would allow me to change schema path. To get around this problem, copy all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 content from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 /usr/share/ovaldi directory into current directory. Be carefull to create separate working directory for this or ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise you'll have a mess on your disk!
There are two ways to define where schema files will be searched. The first one is using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 option -a. The default value for this option is /usr/share/ovaldi but for some reason this value is not used, i.e. ovaldi tool can not find schema files. The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, and not so good(!), approach is to encode path in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XML file itself. This approach will be described later.
Now, run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ovaldi tool as follows:

$ ovaldi -o fedora.9.oval.xml -m

Note that in real situations is could be possible that you'll have to run ovaldi as root since it could try to access data not accessible to ordinary users. In this case it is not necessary as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tests are very simple.
The output from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Fedora 9 will be:

----------------------------------------------------
OVAL Definition Interpreter
Version: 5.4 Build: 2
Build date: Jun  7 2008 15:06:57
Copyright (c) 2002-2008 - The MITRE Corporation
----------------------------------------------------

Tue Jul  8 17:00:52 2008

 ** parsing fedora.9.oval.xml file.
    - validating xml schema.
 ** checking schema version
     - Schema version - 5.4
 ** skipping Schematron validation
 ** creating a new OVAL System Charateristics file.
 ** gacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ring data for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OVAL definitions.
      Collecting object:  FINISHED                        
 ** saving data model to system-characteristics.xml.
 ** running cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OVAL Definition analysis.
      Analyzing definition:  FINISHED                        
 ** OVAL definition results.

    OVAL Id                                 Result
    -------------------------------------------------------
    oval:org.fedoraproject.oval:def:1       true           
    oval:org.fedoraproject.oval:def:2       false          
    -------------------------------------------------------

 ** finished evaluating OVAL definitions.

 ** saving OVAL results to results.xml.
 ** running OVAL Results xsl: results_to_html.xsl.

----------------------------------------------------

The part that is in bold shows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results of two tests. The one that is true is a test for Fedora 9, while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r one is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 test for Fedora 8. Apart from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output on stdout cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are few files created along cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way, those are:

  • results.html is HTML version of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results. I slightly modified this file in order to remove IP addresses, but ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise it is untouched!
  • results.xml is XML version of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous file.
  • results_to_html.xsl
  • system-characteristics.xml is where you'll find some data that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tests run against. It is usefull for debugging purposes!
  • ovaldi.log is basically what was seen on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stdout.

What's in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OVAL file

The simple OVAL file I provided checks if Fedora 8 or 9 is running on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 computer where ovaldi is started. So, before going furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r open it in some text or XML editor. Few notes to bare in mind while we step through this file:

  • I wrote it based on RedHat's definition so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are some references on RedHat left in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file. I think cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are harmless, and also, I don't (yet) know what to place cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re.
  • As an ID for all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stuff in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file I used org.fedoraproject.oval namespace!

General structure of OVAL definition file

The file has cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following general structure:
First cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is XML PI element that defines it's XML version 1.0 as well as that UTF-8 coding is used.
Top level element is oval_definitions and it has attributes with schemas that I just c/p!
The first element is generator. I didn't changed it, but I suppose it's for metadata about file itself, e.g. who created it, with what tool, etc.
Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following important four parts:

  1. definitions that define checks to be performed.
  2. tests defines basic tests to be performed.
  3. objects are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 elements on which tests are performed. For example, if version of some package is checked, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 package.
  4. states are states that are checked on objects. For example, certain package is an object, version is a state. Probably it could be more complicated than that, but this is enough to get and idea.

Example OVAL definition file

So what we have in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 example file? We are determining cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exact version of Fedora running on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 test computer and this is done by looking what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 version (state) of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 package fedora-release is present. Thus, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 package, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state is eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r version 8 or 9.
In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 example file, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object is specified in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 objects part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 definition file as follows:


  fedora-release


rpminfo_object element is predefined in OVAL library and it's used to query RPM objects, i.e. packages. In our case, we are querying for package with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name fedora-release. The attribute id is used for referencing this definition in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r parts of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file!
The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 equation, states, are defined within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 states element of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OVAL definition file as follows:

  
    9
  

  
    8
  

The state simply matches cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 version variable (identified by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 version attribute) with number 8 (for Fedora 8) or 9 (for Fedora 9). Also, id attributes are used for referencing those states in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r parts of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.
Now, we have two tests. One that checks for Fedora 8 and anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r one for Fedora 9. Those go within tests element.


  
  



  
  


Note that each of those two tests simply says that object referenced by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object element has to be in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state referenced by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state element. So, what we have here are two tests that check if a single object is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one state and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r.
Finally, beacuse both tests have to be executed, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results of each one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m has to be printed, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are two definitions. If we are interested in some logical combination of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two tests we could write cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in a single definition. So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 definition that checks for Fedora 9 is within definitions element and has cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following structure: