15.01.2014 Views

An Ontology for Digital Forensics in IT Security Incidents - OPUS

An Ontology for Digital Forensics in IT Security Incidents - OPUS

An Ontology for Digital Forensics in IT Security Incidents - OPUS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

62 CHAPTER 7. IMPLEMENTATION<br />

<strong>An</strong>other possibility to achieve the result is to use the query from list<strong>in</strong>g<br />

7.8. A CONSTRUCT query returns a RDF graph.<br />

The rst l<strong>in</strong>e species that the triples <strong>in</strong> the result graph are built us<strong>in</strong>g<br />

the variables ?s, ?p and ?o. The UNION keyword species that one of the<br />

two restriction blocks be<strong>for</strong>e or after the word needs to match.<br />

The rst block denes that ?s and ?o must be of the type pro:Process,<br />

that ?o is the parent process of ?s. L<strong>in</strong>e eight says that <strong>for</strong> this block the<br />

predicate of the result triple is a relation between ?s and ?o.<br />

L<strong>in</strong>e twelve species that ?s is of the type pro:Process. The next two<br />

l<strong>in</strong>es b<strong>in</strong>d ?o to the name of the process <strong>in</strong> ?s and ?p to a relation between<br />

?s and ?o. The lter <strong>in</strong> l<strong>in</strong>e fteen is needed because there is more than one<br />

possible b<strong>in</strong>d<strong>in</strong>g <strong>for</strong> ?p. This is not needed <strong>in</strong> the other block because there<br />

is no other connection between two processes. If the query is issued <strong>in</strong> the<br />

Sesame web front end, the result<strong>in</strong>g triples are shown and the RDF graph<br />

can be downloaded. The downloaded le can then be analysed <strong>in</strong> other tools<br />

like RDF Gravity. <strong>An</strong> example graph that conta<strong>in</strong>s malicious processes that<br />

tried to hide by remov<strong>in</strong>g the connection to their parent process and is be<strong>in</strong>g<br />

visualized with RDF Gravity, is shown <strong>in</strong> the appendix <strong>in</strong> gure C.2. The<br />

processes can be found <strong>in</strong> the upper left corner of the draw<strong>in</strong>g layer.<br />

1 CONSTRUCT { ?s ?p ?o . }<br />

2 WHERE<br />

3 {<br />

4 {<br />

5 ?s rdf : type pro : Process .<br />

6 ?o rdf : type pro : Process .<br />

7 ?s pro : parent ?o .<br />

8 ?s ?p ?o .<br />

9 }<br />

10 UNION<br />

11 {<br />

12 ?s rdf : type pro : Process .<br />

13 ?s pro : Name [ rdf : value ?o ] .<br />

14 ?s ?p [ rdf : value ?o ] .<br />

15 FILTER ( regex ( str (? p), str ( pro : Name )))<br />

16 }<br />

17 }<br />

List<strong>in</strong>g 7.8: Parent Process CONSTRUCT query

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!