Intro
Collaborative and Streamlined Threat Analysis at Scale
Saferwall allows you to analyze, triage and classify threats in just minutes.
⭐ Collaborative - Built for security teams and researchers to streamline analysis, identification and sharing malware samples.
☁️ Fast & cloud-native - Scalable and cloud-native by design, deploy in minutes to bare metal or in the cloud.
⚡ Save time - Automate cumbersome tasks, generate IoC's and reports with zero friction.
📦 Batteries included - All your favorite tools included, build intelligence feeds for hunting threats or generating signatures.
❤️ Open source first - We are open-source, developer friendly and user driven.
Batteries Included
Static Analysis:
- File metadata, packer identification and crypto hashes.
- String (ASCII/Unicode and ASM) extraction.
- PE (Portable Executable) file parser.
- ELF (Executable Linkable Format) file parser.
Dynamic Analysis:
- Automated Malware Analysis using a Hypervisor based VM.
- Intercepting OS System Calls to build an execution trace of executable files.
- Generate detailed reports and gain insight into malware behavior.
- Choose which API's to trace, grab screenshots and file changes as well as memory dumps.
Multiple AV scanner supporting major vendors:
Vendors status Vendors status Avast ✔️ FSecure ✔️ Avira ✔️ Kaspersky ✔️ Bitdefender ✔️ McAfee ✔️ ClamAV ✔️ Sophos ✔️ Comodo ✔️ Symantec ✔️ ESET ✔️ Windows Defender ✔️ TrendMicro ✔️ DrWeb ✔️ Integrations with your own data processing pipeline.
Get Started
Saferwall takes advantage of Kubernetes for its high availability, scalability and ecosystem behind it.
Everything runs inside Kubernetes. You can either deploy it in the cloud or have it self hosted.
Here are the different deployment options available depending on how you are planning to use it:
"I want to try it first" : Use the cloud instance in https://saferwall.com.
"I want to run it locally" : A Vagrant box is available, the only requirements are VirtualBox and Vagrant with full support of Windows, Linux and OSX, see the guide for detailed steps.
"I want to make a PR or make changes" : When you intend to make changes to the code or make PR's, see this guide for detailed steps.
"I love it ! I want to run it in prod" : First get you a kops and check this guide.
The production deployment using Kops automatically provisions a Kubernetes cluster hosted on AWS, GCE, DigitalOcean or OpenStack and also on bare metal. For the time being, only AWS is officially supported. A helm chart is also provided for fast deployment. This setup works well for companies or small teams planning to scan a massive amounts of file.
Our Stack:
- Golang mostly.
- Backend: Echo
- Frontend: VueJS + Tailwind.css
- Messaging: NSQ
- Database: Couchbase
- Logging: Grafana Loki
- Metrics: Prometheus
- Visualization: Grafana
- MinIO: Object storage
- Deployment: Helm + Kubernetes
Current architecture / Workflow:
Here is a basic workflow of what happens when a new file is submitted:
- Frontend talks to the the backend via REST APIs.
- Backend uploads samples to the object storage.
- Backend pushes a message into the scanning queue.
- Consumer fetches the file and copies it to the nfs share avoiding to pull the sample on every container.
- Consumer starts scanning routines for static information such as (File metadata, File format details...)
- Consumer calls asynchronously scanning services (like AV scanners) via gRPC calls and waits for results.
Acknowledgements
- horsicq for Detect It Easy.
Contributing
Please read docs/CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.