Giter Site home page Giter Site logo

whisper's Introduction

Whisper

Licence Last Language Language Codesize

The prototype source code of the paper:
Realtime Robust Malicious Traffic Detection via Frequency Domain Analysis
Chuanpu Fu, Qi Li, Meng Shen, Ke Xu.
ACM Conference on Computer and Communications Security (CCS 2021)

@inproceedings{CCS21-Whisper,
  author       = {Chuanpu Fu and
                  Qi Li and
                  Meng Shen and
                  Ke Xu},
  title        = {Realtime Robust Malicious Traffic Detection via Frequency Domain Analysis},
  booktitle    = {{CCS} '21: 2021 {ACM} {SIGSAC} Conference on Computer and Communications
                  Security, Virtual Event, Republic of Korea, November 15 - 19, 2021},
  pages        = {3431--3446},
  publisher    = {{ACM}},
  year         = {2021},
}

Background

Malicious traffic detection systems are designed to identify malicious traffic on the forwarding path. As a promising security paradigm, machine learning (ML) was leveraged for the zero-day attack issue. Due to the improper trade-off between feature scale and efficiency, the existing can not realize robust and realtime detection. We present the frequency domain features, which reduce the scale of traditional per-packet features, avoid information loss in the flow-level features. Finally, in this repo. Finally, we present the Whisper prototype, an end-to-end detector in a 10 Gb scale network in this repo.

For more details, plsease refer to our paper in ACM CCS 2021.


Install

Feel free to contact me, when something went wrong.

Hardware preparation

Before software installation please check your hardware platform according to the testbed setup in the paper. Here I list some recommendations:

  • Ensure all your NICs and CPUs supports Intel DPDK, find the versions using lspci and proc/cpuinfo and check the lists in DPDK Support
  • Check the connectivity of fiber and laser modules using ICMP echo and static routing. Note that, direct connections are preferred to prevent errors.
  • To adapt the packet rate of MAWI datasets, ensure the NICs support at least 10 Gbps throughput. Measuring the throughput using iperf3 is recommended.
  • At least 10 GB of memory is needed, for the DPDK huge pages. And the server for Whisper main modules needs at least 17 cores.

Software preparation

  1. Install compile toolchain.
    The prototype was tested in Ubuntu 18.04 and 20.04. It is compiled by cmake + ninja + gcc, please find the correct versions and install the tool chain using apt-get.

  2. Install DPDK.
    Whisper used DPDK for highspeed packet parsering. Therefore, please refer to the DPDK Offical Guide and install the libraries. It is worth noting that, the compatibility of DPDK 21 is unknown and the version listed in the paper is preferred.

  3. Install LibPcap++.
    Whisper used LibPcap++ encapsulated DPDK to reduce the size of the source code. Make sure the libpcap++ version is compatible with the DPDK version. Note that, the Libpcap++ with DPDK support can only be obtained via source code compiling. Here is the official the guide for Libpcap++ Installation.

  4. Install PyTorch C++
    Whisper used Pytorch C++ to implement matrix and sequence transformations. Download the Offical released form Pytorch Release. The ABI for CPU only is enough and make sure you selected cxx11 supported version.

  5. Install mlpcak Whisper used mlpack for unsupervised learning. Please used the correct commands for C++ stable version in mlpack Installation.


Usage

Firstly, check the path of downloaded PyTorch C++ is configured in CMakeLists.txt correctly. Then compile the prototype source code.

mkdir build && cd $_
cmake -G Ninja ..
ninja

FAQ

  1. Strange link stage warnings. After the compiling, we got the warnings from ld below, but ninja generated binary successfully. What is the impact of the abnormity?
/usr/bin/ld: /home/libtorch/lib/libtorch_cpu.so: .dynsym local symbol at index 149 (>= sh_info of 2)

Answer: The link stage warning is generated because of the mismatch of the compiler version for PyTorch and Whisper. You can find a closer version, but it has no side-effect from my experience.

  1. On the feasibility of deploying Whisper in cloud.

Answer: I have tried to deploy it on AWS EC2 and other commercial clouds. Finally, I succeeded with huge efforts but still cannot realize the throughput measured on the physical testbed due to the performance limitations of virtual network interfaces. Therefore, I do not recommend the deployment in a multi-tenant network because the . If you have some advice, please contact us.


Contact Me

Chuanpu Fu


whisper's People

Contributors

fuchuanpu 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

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.