Translations:
- Chinese: / 中文: README_CN
An AI antivirus written in Rust
Explore the Doc
Access training data
·
Read the technical doc
·
Request Feature
Table of Contents
Owlyshield is an open-source AI-driven antivirus engine written in Rust.
We at SitinCloud 🇫🇷 strongly believe that cybersecurity products should always be open-source:
- In addition to the source code, we provide a complete wiki and code documentation,
- You are able to check the product does not add a new vulnerability which could be used to exploit your systems,
- We provide specific entrypoints in the code to make interfacing with third-party tools easy (specifically SIEM and EDRs).
- A minifilter (a file system filter driver) intercepts I/O request packets (IRPs) to collect metadata about what happens on the disks (DriverMsg in the sources),
- Owlyshield-predict uses the previously created DriverMsgs to compute features submitted to a RNN (a special type of neural network wich works on sequences),
- If the RNN predicts a malware, owlyshield-predict asks the minifilter to kill the malicious processes and send a very detailed report about what happened to your SIEM tools (and/or a local file).
The model was trained with malwares from the real world collected from very diverse places on the internet (dark web, by sharing with researchers, analysis of thousands of downloads with virustotal).
We ran them on Windows VMs with owlyshield working in a specific mode (--features record
) to save the IRPs. Owlyshield-predict with --features replay
was then used to write the learning dataset (a csv file).
Owlyshare is the place where we share those vast collections of malwares with cybersecurity researchers. You may apply for an access by sending us an email.
Both versions share the same source code. The commercial version adds the following features:
- Driver signing of the minifilter, allowing it to be installed without having to start Windows in test-signing mode (see Prerequisites),
- A webapp gathering all incidents data to help IT staff to understand the scope of the attack within the company networks and act accordingly (or classify it as a false positive),
- Interfaces with your log management tools (we even provide an API),
- Scheduled tasks to auto-update the application.
- Install the Microsoft Visual C++ Redistributable packages
- Disable "Driver Signature Enforcement" at Windows startup. This is only required if you did not get a copy of the driver signed by Microsoft for SitinCloud (we provide it for free if you are a contributor).
We regularly release installers (in the Releases GitHub section). You may need to enable the driver signin mode (the Signed Driver is part of the commercial version) as explained in Prequisites.
Please refer to the Wiki if you prefer to build it yourself.
- Release the windows driver (minifilter)
- Documentation
- Source code doc
- Wiki
- Pre-print
- Model (RNN)
- behavioral features
- static features
- TBTT with TFlite (it does not support stateful LSTMs)
- connectors
- strategy pattern
- connector with Sitincloud's interface
- others connectors with proprietary and open-source projects
- Linux Driver?
Suggestions are welcome (see Contributing).
See the open issues for a full list of proposed features (and known issues).
We help our contributors by providing them with:
- A copy of the driver signed by Microsoft,
- A free access to Owlyshare, the place where we store our learning data (and vast collections of malwares) if needed,
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the EUPL v1.2 license. See LICENSE.txt
for more information.
Damien LESCOS - @DamienLescos - opensource@sitincloud.com
Project Link: https://github.com/SitinCloud/Owlyshield/
Company Link: SitinCloud