Prolog Language Programming

Job ID: 31922355

Budget: $10 – $20 USD

Performing vulnerability assessment for a complex system is an important task. However, given the high complexity, manual analysis is usually tedious and error-prone. Therefore, automated methods are usually preferred.

In this project, we will leverage Prolog to perform automated vulnerability assessment. We consider a network that is composed of 7 hosts, which are denoted as H1, H2, H3, H4, H5, H6, and H7. You will get two reports from two teams respectively.

The networking team offers you a report on the network topology, where each pair of hosts below indicates the possibility to establish network connections between them. The “-” in the pair means that this host is accessible from public networks through networks.

<H1, H4>

<H2, H4>

<H4, H5>

<H3, H5>

<H4, H6>

<H5, H7>

<H6, H7>

<H1, ->

<H2, ->

<H3, ->

The security team scans hosts in the network and finds twotypes of vulnerabilities, namely V1 and V2.

1. If a host has V1 vulnerability and an attacker can establish network connection with this host, then the attacker can exploit this vulnerability and gain completely control of this host. One of the implications for the complete-control is that the attacker can instruct this host to establish other hosts.

2. If a host has V2 vulnerability and an attacker can establish network connections to it from at least two hosts simultaneously, then this host can be compromised by the attacker, rendering the attacker full control to this host.

Hosts and their corresponding vulnerabilities are presented as follows:

<H1, V1>

<H2, V1>

<H3, V1>

<H4, V2>

<H5, V1>

<H6, V1>

<H7, V2>

Deliverable

You will deliver a package that contains

1. Source code

2. README.txt to describe your compiling and run-time environment. Team members will also be included in the README.txt.

You will be responsible for converting and integrating these descriptions into a prolog-based model. Your model should be able to answer the following question given a host:

1. Is it possible for this host to be compromised?

Programming Environment

For the programming environment, B-Prolog isrecommended.


Attachments