In addition to the research, we try to cleanly distribute our work. You could find several projects on my github, some debian packages on my ppa and also some python3 packages on PyPI, all with GPLv3 license. Below we detail some of them.


netspot

We have built an network IDS (Intrusion Detection System) upon the SPOT algoritm, called netspot. The idea is to flag extreme events whike monitoring netwrok statistics. The philosophy of netspot is the simplicity: neither deep learning stuff nor end-to-end 0-day detection. We merely want to make it a credible real-world anamoly-based IDS. See https://asiffer.github.io/netspot/ for further details.

libspot

In our work, we developped an algorithm aimed to detect outliers in streaming data: SPOT. libspot is a C++ library which mainly implements it.

We also released python3 bindings to libspot and a pure Go implementation of the library is also available at https://github.com/asiffer/gospot

More details are given on https://asiffer.github.io/libspot/.

libfolding

We have also published a new statistical test aimed to detect whether the distribution of your data is unimodal or multimodal. It works in multidimensional and even streaming data. It is called the Folding Test of Unimodality (or FTU). I developped a C++ library and its python3 bindings too.

More details can be found at https://asiffer.github.io/libfolding/.

Yes, an R package exists too! Initially you can find it on github but since october 2018)it has been made available on CRAN through the name Rfolding. This is a pure R package. I apologize for the documentation which is rather minimalist.

I like exploring new technologies and particularly the things that are about Linux and/or the network.

carnx

carnx is an XDP-based (eXpress Data Path) network statistics digger. It leverages the recent XDP hook within the Linux kernel to computes some network statistics. The advantage of this technology is that all heavy processing (packet parsing) is let to the the kernel. It notably removes context switching, leading to very high performances compared with common user-space tools (like libpcap).

In addition, this project links several components (C library, Go server) and exposes a gRPC API.

wg-easy-vpn

I started this project at the beginning of the COVID pandemic. That is a tool that ease the deploymnent of Wireguard VPN in the admin sys point of view. This VPN is far simpler that OpenVPN and IPSec but the config file management remains a pain and wg-easy-vpn tries to hide this task.

arduigo

Once again a tehnology I did not know: embedded systems. First of all I tested my Arduino board through the common user-friensly libraries but there were some bugs in the networking part (yes I bought the ethernet shield). So I decided to have a look to the vendor C libraries to improve my understanding of the interface hardware/software (and the embedded systems protocols).

Finally I came across tinygo that allows to flash Go program to many boards. Unfortunately I did not anage to make it work on my poor Arduino board, so I rewrite some parts of the vendor C library into Go, arduigo was born.

Now it is rather minimal but I managed to make LCD and Ethernet work.