Documentation

Introduction

πŸ‘‹ Hello! Welcome to the RF Swift documentation!

RF Swift Logo

Supported OSes linux supported windows supported macOS supported
Supported architectures amd64 arm64 riscv64
Presented at Black Hat Europe 2024 Spectrum 24
Socials Twitter FlUxIuS Twitter Penthertz Join us on Discord

What is RF Swift?

RF Swift is a toolbox for creating an environment laboratory for your RF assessments, that can easily fit your prerequirements.

This toolbox is probably the best solution to deploy a generic, as well as a special environment securely, skipping the headache and waste of time when installing and using RF tools on same host.

⚠️
Even if the project could work on macOS with some manual workaround, we do not advertise it for the moment, but this system will be fully supported in the near future.

RF Swift vs. Kali Linux vs. Dragon OS Comparison

Feature RF Swift Kali Linux Dragon OS
πŸ–₯️ Host OS Preservation βœ… Runs alongside your existing OS ❌ Typically requires dedicated partition or VM ❌ Typically requires dedicated partition or VM
🧰 Tool Isolation βœ… Tools run in containers without impacting system ⚠️ Tools can affect system stability ⚠️ Tools can affect system stability
πŸš€ Deployment Speed βœ… Fast container deployment ❌ Full OS installation required ❌ Full OS installation required
πŸ“¦ VM Requirement βœ… No VM needed ⚠️ Needs VM for non-dedicated machines ⚠️ Needs VM for non-dedicated machines
πŸ”§ Tool Availability βœ… Extensive tool collection for hardware security, RF, reversing, and more. βœ… Extensive tool collection for generic pentests βœ… Specialized for RF
πŸ”„ Tool Updates βœ… Easily updated containers ⚠️ Requires system updates ⚠️ Requires system updates
πŸ’Ύ Storage Efficiency βœ… Customizable to fit small storage ❌ Requires significant disk space ❌ Requires significant disk space
πŸ›‘οΈ Security Isolation βœ… Strong container isolation (custom confinement) ⚠️ Limited isolation between applications ⚠️ Limited isolation between applications
πŸ”Œ Network Containment βœ… Can isolate network activity ⚠️ Network isolation requires additional setup ⚠️ Network isolation requires additional setup
πŸ—οΈ Architecture Support βœ… x86_64, ARM64, RISCV64 βœ… x86_64, ARM64 ⚠️ Primarily x86_64
🧩 Customization βœ… Highly customizable (specific tools only) βœ… Customizable but affects whole system ⚠️ Limited customization
πŸ“± USB Device Access βœ… Streamlined USB forwarding βœ… Direct access βœ… Direct access
πŸ”Š Audio Support βœ… Container-based audio support βœ… Native audio support βœ… Native audio support
🌐 Internet Connectivity βœ… Configurable per container βœ… System-wide configuration βœ… System-wide configuration

Key Benefits of RF Swift

  • Flexibility: Use RF tools without disrupting your daily work environment
  • Efficiency: Deploy only the tools you need, when you need them
  • Security: Strong isolation between containers prevents cross-contamination
  • Portability: Works across multiple architectures with consistent experience
  • Resource Management: Optimized resource usage compared to full VMs

Use Case Scenarios

Scenario RF Swift Kali Linux Dragon OS
Quick assessment on personal device ⭐⭐⭐ ⭐ ⭐
Deployment on a burner laptop ⭐⭐⭐ ⭐ ⭐
Dedicated pentesting machine ⭐⭐ ⭐⭐⭐ ⭐⭐⭐
Low storage environments ⭐⭐⭐ ⭐ ⭐
Multiple architecture development ⭐⭐⭐ ⭐⭐ ⭐
Isolated testing environment ⭐⭐⭐ ⭐⭐ ⭐⭐

Comprehensive Container Orchestration

RF Swift provides a complete orchestration solution that goes beyond traditional containers. Unlike standard Docker, RF Swift simplifies the entire workflow with a straightforward learning curve:

graph TD
    A[rfswift] --> B[Host manager]
    B --> C[Host]
    B --> D[USB]
    B --> F[Sound]
    B --> G[Images Container manager]
    H[Dockerfiles] --> G
    G --> I[Pull]
    G --> J[List]
    G --> K[Save]
    G --> L[Tag]
    G --> M[Run]
    G --> N[Exec]
    
    style A fill:#f9f,stroke:#333,stroke-width:4px
    style B fill:#bbf,stroke:#333,stroke-width:2px
    style H fill:#afa,stroke:#333,stroke-width:2px
    style G fill:#bbf,stroke:#333,stroke-width:2px

RF Swift handles everything from container creation and execution to pulling images, committing changes, and re-tagging. What sets it apart is the seamless integration of USB, video, and audio forwarding in a user-friendly interfaceβ€”tasks that typically require significant expertise in standard Docker environments.

Key Components

  • Go binary (rfswift) - Instruments containers and hosts to simplify the use of tools that may require:

    • Internet connectivity
    • Display
    • Sounds
    • USB accesses

    This rfswift is the main program you will interact with to:

    • Run clean containers
    • Execute inside running or paused containers
    • Perform many magic actions that will make things work without a headache
  • Docker images - Pre-built Docker container images are available in RF Swift’s repository. In case you want to bake your own environment, preserve some space, and have a special set-up, you will also find some Docker files you can edit to fit your expectations.

Questions or Feedback?

❓
RF Swift is still in active development. Have a question or feedback? Feel free to open an issue!

Next Steps

Dive right into the following section to get started:

Last updated on