The ‘Adobe Malware Classifier’ tool uses machine learning algorithms to classify Windows executable and dynamic link library (DLL) files as clean, malicious or unknown, Adobe security engineer Karthik Raman said in a recent blog post.
Raman originally developed Malware Classifier for in-house use by Adobe’s Product Security Incident Response (PSIRT) Team.
“Part of what we do at PSIRT is respond to security incidents. Sometimes this involves analysing malware. To make life easier, I wrote a Python tool for quick malware triage for our team,” Raman said.
When run, the tool extracts seven key attributes from every analysed binary file and compares them to data obtained by running the J48, J48 Graft, PART, and Ridor machine-learning algorithms on a set of 100,000 malicious programs and 16,000 clean ones, Raman said.
Adobe has decided to release the Python script publicly under an open source BSD license. It is available for download from SourceForge.
However, various programmers have questioned the quality of the tool’s code on Twitter and other social media websites, because of its heavy use of conditional statements.
The tool’s source code is being discussed on Reddit, under the headline “How not to write python, Part 1 – Thanks Adobe,” but some of the participants have pointed out that the complex conditionals are the result of the direct inclusion of an J48 decision tree classifier.