On the Abuse and Detection of Polyglot Files
<|reference_start|>On the Abuse and Detection of Polyglot Files: A polyglot is a file that is valid in two or more formats. Polyglot files pose a problem for malware detection systems that route files to format-specific detectors/signatures, as well as file upload and sanitization tools. In this work we found that existing file-format and embedded-file detection tools, even those developed specifically for polyglot files, fail to reliably detect polyglot files used in the wild, leaving organizations vulnerable to attack. To address this issue, we studied the use of polyglot files by malicious actors in the wild, finding $30$ polyglot samples and $15$ attack chains that leveraged polyglot files. In this report, we highlight two well-known APTs whose cyber attack chains relied on polyglot files to bypass detection mechanisms. Using knowledge from our survey of polyglot usage in the wild -- the first of its kind -- we created a novel data set based on adversary techniques. We then trained a machine learning detection solution, PolyConv, using this data set. PolyConv achieves a precision-recall area-under-curve score of $0.999$ with an F1 score of $99.20$% for polyglot detection and $99.47$% for file-format identification, significantly outperforming all other tools tested. We developed a content disarmament and reconstruction tool, ImSan, that successfully sanitized $100$% of the tested image-based polyglots, which were the most common type found via the survey. Our work provides concrete tools and suggestions to enable defenders to better defend themselves against polyglot files, as well as directions for future work to create more robust file specifications and methods of disarmament.<|reference_end|>
@article{koch2024on,
    title={On the Abuse and Detection of Polyglot Files},
    author={Luke Koch, Sean Oesch, Amul Chaulagain, Jared Dixon, Matthew Dixon,
  Mike Huettal, Amir Sadovnik, Cory Watson, Brian Weber, Jacob Hartman, Richard
  Patulski},
    journal={arXiv preprint arXiv:2407.01529},
    year={2024},
    archivePrefix={arXiv},
    eprint={2407.01529},
    primaryClass={cs.CR cs.LG}
}