Questo repository contiene l'analisi da parte di PagoPA sullo studio dell'arte relativamente ad attacchi perpetrati utilizzando documenti in formato PDF. L'attività è stata condotta in collaborazione con SecSI, uno spin-off universitario dell' Università degli Studi di Napoli Federico II;
I risultati dell'analisi sono riportati nei seguenti documenti presenti nella cartella Deliverables:
- Analisi attacchi tramite documenti PDF: riporta le l'analisi effettuata dalle diverse fonti accademiche e tecniche utilizzate, a cui segue un'analisi effettuata su un noto dataset di documenti PDF malevoli;
- Appendice: Analisi sul 7% dei documenti malevoli senza JS: apporta alcuni chiarimenti su alcuni dei risultati ottenuti dall'analisi dei PDF del dataset.
Nel repository sono inoltre presenti degli scripts che sono stati utilizzati per:
- Effettuare attività di canonicalizzazione dei nomi e rimozione dei duplicati dai documenti del dataset;
- Eseguire gli strumenti peepdf e verapdf su tali documenti al fine di calcolare le statistiche riportate nei risultati dell'analisi.
Il dataset utilizzato è il CICEvasivePDFMal2022, scaricabile al seguente link: http://205.174.165.80/CICDataset/CICEvasivePDFMal2022/Dataset/PDFs/
Per eseguire gli script successivi, basta estrarre gli archivi scaricati e salvare i documenti PDF malevoli nella cartella Malicious/pdfs
e quelli benigni nella cartella Benign/pdfs
.
A partire dai documenti PDF scaricati, è stata applicata una procedura di canonicalizzazione dei nomi e rimozione dei duplicati utilizzando il seguente script:
filter.sh
Tale script creerà una cartella chiamata uniq_pdfs
nelle cartelle di entrambe le classificazioni.
Una volta normalizzato il dataset si è proceduto a lanciare gli strumenti peepdf
e verapdf
per verificare il contenuto di codice JS e la conformità allo standard PDF/A utilizzando il seguente script:
calculate_statistics.sh
Tale script prende i PDF del dataset filtrato ed esegue peepdf e verapdf su di essi, salvandone l'output. Tale output viene sottoposto a parsing per ottenere le percentuali mostrate nel deliverable all'interno del file stats.txt
per entrambe le classificazioni.
Il progetto è stato realizzato grazie una collaborazione tra il team SecSI della Federico II e di PagoPA. Di seguito le persone che hanno contribuito ai risultati.
Emanuele Galdi 💻 🎨 📖 |
gx1 💻 🎨 📆 📖 |
Simon Pietro Romano 🎨 📆 |
Pietro Stroia 🎨 📆 📢 |
Federico Fatica 🎨 📢 |
Francesco Grauso 🎨 📢 |
Francesco Giordano 🎨 📢 |
Il progetto è rilasciato sotto licenza BSD-3-Clause. Per informazioni circa le note di copyright è possibile consultare il file AUTHORS.