Skip to main content

Robustness evaluation framework for ML-Based Windows malware detectors

Project description

ML - Pentest | Are malware detector robust?

This is a software framework that can be used for the evaluation of the robustness of Malware Detection methods with respect to adversarial attacks. Currently, there is a focus on black-box adversarial attacks on PE malware detector.

The high level architecture of the software framework is shown in the following figure.

arch

Attacks included

  • GAMMA, formulated by Demetrio et al., with section injection and API injection manipulations. This implementation of the attack is easily used against any target model by implementing only the specific wrapper. Some code is reused from the open-source repository secml-malware.
  • GAMMA V2, introducted in this framework. Is an augmented version of GAMMA that optimize the section injection position, the section characteristics and the section names.

Models included

Some of the known malware detectors in the literature have already been included by default within the library.

Specifically, the models included include:

  • MalConv (link) in its original formulation. The PyTorch implementation of MalConv was taken from this open source repository.
  • MalConv2 (link), an improved version of MalConv that requires less memory and time to train the model. The PyTorch implementation of MalConv was taken from this open source repository. A pre-trained version of the model is available into the library.
  • EMBER Gradient-Boosted Decision Tree (GBDT) (link): a gradient-boosted decision tree that use EMBER features for classification. A pre-trained version of the model on the EMBER dataset (taken from this repository is available into the library.

It should be noted that any requirements needed to run the models must already be available in the software environment used for execution. The library offers support for any type of model upon implementation of a specific wrapper, with no software dependencies statically encoded in the library.

Therefore, PyTorch must be installed to use the MalConv and MalConv2 models, lgbm for the GBDT model.

Any other model can be used after implementing the specific wrapper and installing the necessary dependencies on the used environment.

Table of Contents

Installation

The library is tested with Python 3.8. The library can be used with later versions of Python as long as they are compatible with LIEF version 0.12.0.

You can install the library by using the following command.

pip install ml_pentest 

License

This system uses the GNU General Public License v3.0 (GPL-3.0) to ensure that the software remains open-source and free for everyone to use, modify and distribute. The license allows users to use the system for personal or commercial use, modify the code, and distribute the modified code as long as they maintain the same license. The GPL-3.0 ensures that the system's source code remains open and accessible, fostering a collaborative development environment.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ml_pentest-0.0.2.tar.gz (57.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ml_pentest-0.0.2-py3-none-any.whl (57.9 MB view details)

Uploaded Python 3

File details

Details for the file ml_pentest-0.0.2.tar.gz.

File metadata

  • Download URL: ml_pentest-0.0.2.tar.gz
  • Upload date:
  • Size: 57.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for ml_pentest-0.0.2.tar.gz
Algorithm Hash digest
SHA256 2e39fab1c5babccafec765ad30b8146041b4cb4a879e80b6ff51111a6c47eca9
MD5 011e111039190a06996c69dd8d2f0d91
BLAKE2b-256 aba958d8ec33be6d4822ec289cbd2609783048067e2aa5887d9581f56c067b55

See more details on using hashes here.

File details

Details for the file ml_pentest-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: ml_pentest-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 57.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for ml_pentest-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 353d431f648c02c8ffdce5c5d02fc4115a763cb8f73b22b25302e54f19ad245c
MD5 a88f8df7c3acf2cd2728670919d1000b
BLAKE2b-256 27cf21fc004fbaca910e4fb3da7bc4665a195f0dc08f5c5d83e64d6eea6f4977

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page