saferwall

module
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2023 License: Apache-2.0

README ΒΆ

Saferwall logo

Collaborative and Streamlined Threat Analysis at Scale

Stars Discord Coverage GitHub Workflow Status Report Card GitHub

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:

  • 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:

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

Contributing

Please read docs/CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Directories ΒΆ

Path Synopsis
cmd
agent/client
Package main implements a client for Greeter service.
Package main implements a client for Greeter service.
agent/server
Package server implements a server for AgentServer service.
Package server implements a server for AgentServer service.
internal
config
Package consumer implements the NSQ worker logic.
Package consumer implements the NSQ worker logic.
db
log
Package log provides context-aware and structured logging capabilities.
Package log provides context-aware and structured logging capabilities.
ml
random
package random generate a random file name.
package random generate a random file name.
pkg
bytestats
Package bytestats : vec.go implements slice processing utilities.
Package bytestats : vec.go implements slice processing utilities.
gib
Package gib implements a gibberish string evaluator.
Package gib implements a gibberish string evaluator.
peparser Module
utils Module
pe
web module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL