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
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