Riassunto analitico
L'importanza di condurre analisi di sicurezza complete sia per l'hardware che per il software è cresciuta molto negli ultimi anni. Nonostante ciò, condurre questi test è ancora un'attività complessa e incline ad errori. Un gran numero di strumenti, librerie e framework sono stati sviluppati per fornire supporto agli operatori di sicurezza nello svolgimento delle loro attività di ricerca e sfruttamento di vulnerabilità e svolgimento di valutazioni di sicurezza. Molti di questi strumenti però richiedono un'interazione umana o delle riconfigurazioni per poter funzionare in diversi scenari. Chiaramente, questa metodologia manca di scalabilità e richiede un intervento manuale ad ogni cambio di scenario. In questo lavoro si propone un sistema esperto che sia in grado di superare queste limitazioni. Il prototipo è basato su un sistema esperto sviluppato in Prolog che può utilizzare fatti e regole per poter dedurre nuove informazioni da quelle che già possiede. Per ottenere nuova conoscenza, il prototipo è anche in grado di utilizzare tool esterni, resi accessibili tramite script Python. Il sistema è stato progettato per poter essere espandibile il più facilmente possibile con nuova conoscenza e tecniche. Il prototipo che è stato sviluppato è stato testato con due sfide di sicurezza. Sono state utilizzate in particolare due macchine: Kioptrix 1.1 e HackTheBox Mirai. I risultati hanno evidenziato che il prototipo è stato in grado di analizzare, ottenere il primo accesso e elevare i suoi privilegi fino all'utente amministratore su entrambe le macchine. Inoltre, è riuscito ad analizzare sequenzialmente un'intera rete dove erano state inserite entrambe le sfide. Infine, il prototipo è anche stato in grado di spostarsi da una rete ad un'altra a cui non aveva inizialmente accesso attraverso una le macchine che ha conquistato nella prima fase dell'analisi.
|
Abstract
The importance of security testing for both hardware and software has grown substantially in recent years. Nevertheless, manually conducting such operations remains a challenging and error-prone activity.
A wide range of tools, libraries and frameworks have been developed to assist security operators in the discovery and exploitation of vulnerabilities, as well as in conducting security assessments.
Most of these tools require human interaction and need manual reconfigurations to operate in different scenarios. This approach lacks scalability and demands manual adjustments based on the specific scenario.
In this thesis we propose an expert system that is able to overcome these limitations. Our prototype is based on a Prolog-based expert system that is able to use facts and rules in order to infer new knowledge from pre-existing one. To obtain new knowledge, the system has also the capability to use external tools accessible via Python wrappers in order to gain information from the target. The prototype is designed to easily be expanded with new knowledge and techniques.
The main peculiarity of this approach is that the entire process in treated like a theorem that has to be proven using facts and inferential rules.
We developed an initial prototype and tested against two security assessment. The testbed was composed by two boot-to-root machines: Kioptrix 1.1 and HackTheBox Mirai.
Our results have shown that the prototype was able to successfully analyse, gain initial access, and escalate privileges on both machines. Additionally, the system underwent testing in a two-NAT network environment, where one host was initially unreachable. It was able to gain access to the first machine and automatically pivot to the other one through SSH tunnels, performing a complete lateral movement.
|