Code Monkey home page Code Monkey logo

secuml's Introduction

SecuML is a Python tool that aims to foster the use of Machine Learning in Computer Security. It is distributed under the GPL2+ license.

It allows security experts to train detection models easily and comes with a web user interface to visualize the results and interact with the models. SecuML can be applied to any detection problem. It requires as input numerical features representing each instance. It supports binary labels (malicious vs. benign) and categorical labels which represent families of malicious or benign behaviours.

Benefits of SecuML

SecuML relies on scikit-learn to train the Machine Learning models and offers the additionnal features:

  • Web user interface
    diagnosis and interaction with Machine Learning models (active learning, rare category detection)
  • Hide some of the Machine Learning machinery
    automation of data loading, feature standardization, and search of the best hyperparameters

What you can do with SecuML

  • Training and diagnosing a detection model before deployment with DIADEM
  • Annotating a dataset with a reduced workload with ILAB
  • Exploring a dataset interactively with rare category detection
  • Clustering
  • Projection
  • Computing descriptive statistics of each feature

See the sphinx documentation for more detail.

Papers

PhD Dissertation

Presentations

Authors

secuml's People

Contributors

ah-anssi avatar kination avatar nguyenhoaihuy avatar pierre-collet-anssi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

secuml's Issues

"Getting started"

Hi guys, I really like your project,
could you prepare a "getting started" to quick testing?
thank you so much!
nice tool!

Installation issues

Hello
I'm following the installation guide, so setup with

$ python3 -m venv venv
$ source venv_SecuML/bin/activate
(venv)$ python setup.py install
// ...installed...

and set conf file as:

input_data_dir: 'input_data'
output_data_dir: 'output_data'
db_uri: 'mysql+mysqldb://root@localhost/secuml_test'

and define path with:

$ export SECUMLCONF=conf/SecuML_travis_conf.yml

But when I try with:

(venv)$ python SecuML/web/SecuML_server
 * Serving Flask app "SecuML.web" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://localhost:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 226-019-981
127.0.0.1 - - [24/Jul/2018 15:16:12] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [24/Jul/2018 15:16:12] "GET /favicon.ico HTTP/1.1" 404 -

it shows like above, but shows nothing when I access to localhost:5000 on browser.
Is there something more I have to do?

ModuleNotFoundError when launching the web server

Hello,

I tried installing the module in a virtualenv, as mentionned in the docs. Everything works fine until I launch the web server with the following command :
SecuML_server --secuml-conf conf.yml
My conf.yml file looks like this :

input_data_dir: '/var/dataset.csv'
output_data_dir: '/var/results/'
db_uri: 'postgresql://user:password@localhost/secuml'

The error I get is the following :

Traceback (most recent call last):
  File "/var/SecuML/venv/bin/SecuML_server", line 4, in <module>
    __import__('pkg_resources').run_script('SecuML==0.12', 'SecuML_server')
  File "/var/SecuML/venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 658, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/var/SecuML/venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1438, in run_script
    exec(code, namespace, namespace)
  File "/var/SecuML/venv/lib/python3.6/site-packages/SecuML-0.12-py3.6.egg/EGG-INFO/scripts/SecuML_server", line 53, in <module>
    import secuml.web.views
  File "/var/SecuML/venv/lib/python3.6/site-packages/SecuML-0.12-py3.6.egg/secuml/web/views/__init__.py", line 18, in <module>
    from .active_learning import active_learning  # NOQA
  File "/var/SecuML/venv/lib/python3.6/site-packages/SecuML-0.12-py3.6.egg/secuml/web/views/active_learning/active_learning.py", line 30, in <module>
    from secuml.exp.active_learning import ActiveLearningExp  # NOQA
  File "/var/SecuML/venv/lib/python3.6/site-packages/SecuML-0.12-py3.6.egg/secuml/exp/active_learning/__init__.py", line 30, in <module>
    from .iteration import Iteration
  File "/var/SecuML/venv/lib/python3.6/site-packages/SecuML-0.12-py3.6.egg/secuml/exp/active_learning/iteration.py", line 26, in <module>
    from .monitoring.exec_times import ExecutionTimesMonitoring
ModuleNotFoundError: No module named 'secuml.exp.active_learning.monitoring'

Thank you

Simple confusing typo on doc

Hello,

There is a small confusing typo in the documentation: in getting_started.lingspam.rst, in the Annotating a Dataset with a Reduced Workload section, the example command you show is :
SecuML_ILAB SpamHam lingspam --secuml-conf <conf_file >Ilab --auto --budget 500

I think it would be clearer if the right bracket of conf_file is not preceded by a space and not immediately followed by Ilab, like so:
SecuML_ILAB SpamHam lingspam --secuml-conf <conf_file> Ilab --auto --budget 500

Thanks,
Pavel

First experiment

Hello,
Thank you for your amazing work. I finished installing SecuML, yet I don't know how to start experimenting with it. I am required to try some experiments for a research project but I don't know how to start. What should be my first step to do after installing it?
Thanks again, and sorry if my question is quite silly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.