Rilevamento e visualizzazione della corruzione della memoria tramite strumentazione binaria dinamica
Mostra/ Apri
Autore
Cossu, Chiara <2000>
Data
2024-10-16Disponibile dal
2024-10-24Abstract
Le vulnerabilità legate alla corruzione della memoria mettono a dura prova la sicurezza del software, poiché possono portare a accessi non autorizzati, instabilità del sistema ed esecuzione arbitraria di codice. Sebbene strumenti come Memcheck di Valgrind, AddressSanitizer (ASan) e Dr. Memory offrano informazioni utili, spesso mancano di visualizzazioni intuitive e complete degli stati di memoria durante l'esecuzione, rendendo difficile comprendere appieno le interazioni più complesse tra le aree di memoria.
Questa tesi introduce MemorEye, un nuovo strumento di analisi della memoria progettato per risolvere tali limitazioni. MemorEye offre una visualizzazione intuitiva degli stati di memoria, consentendo agli utenti di tracciare i pattern di allocazione e accesso alla memoria. Presentando schematicamente le operazioni su stack e heap, lo strumento semplifica l'individuazione delle vulnerabilità legate alla corruzione della memoria e funge da risorsa didattica per comprendere meglio i comportamenti complessi della memoria.
Il tool utilizza un logger C++ per tracciare le operazioni di memoria tramite Intel Pin e una GUI in Python per visualizzare i dati. Nonostante le sfide legate alle prestazioni, al filtraggio di informazioni rilevanti e alla gestione dei diversi allocatori, MemorEye raggiunge i suoi obiettivi e getta una solida base per futuri sviluppi. Memory corruption vulnerabilities pose significant challenges in software security, potentially leading to unauthorized access, system instability, and arbitrary code execution. While tools like Valgrind's Memcheck, AddressSanitizer (ASan), and Dr. Memory provide valuable insights, they often lack intuitive and comprehensive visualizations of memory states during execution, making it difficult to understand the whole context of memory interactions.
This thesis introduces a new memory analysis tool, MemorEye, designed to address these limitations. MemorEye provides a user-friendly visualization of memory states, allowing users to track memory allocation and access patterns. By presenting stack and heap operations schematically, the tool simplifies the detection of memory corruption vulnerabilities and serves as an educational resource for better understanding complex memory behaviors.
The tool includes a C++ backend logger, which traces memory operations using Intel Pin, and a Python-based GUI for visualizing the data. While testing confirmed the tool's reliability, challenges such as performance overhead, filtering relevant data, and handling various heap allocators were encountered.
Despite these challenges, MemorEye successfully achieves its objectives and lays a good foundation for further development. Future work could focus on enhancing performance, refining the GUI, and improving direct communication between the backend and GUI components.
Tipo
info:eu-repo/semantics/masterThesisCollezioni
- Laurea Magistrale [4811]