Skip to content

Commit 8bf3f30

Browse files
committed
🛸 Merge develop into main - Release Vimana 1.0.0
2 parents 8f2b9fd + f71ad73 commit 8bf3f30

File tree

295 files changed

+50310
-1856
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

295 files changed

+50310
-1856
lines changed

.github/workflows/README.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Vimana Framework GitHub Actions
2+
3+
This directory contains GitHub Actions workflows for running Vimana Framework plugins in CI/CD environments.
4+
5+
## Available Workflows
6+
7+
### `vimana.yml` - Main Security Testing Pipeline
8+
9+
This workflow provides automated security testing using Vimana Framework plugins, with a focus on the D4M8 Django Web Form Fuzzer.
10+
11+
#### Features:
12+
- **Plugin-Based Architecture**: Uses Vimana's modular plugin system
13+
- **D4M8 Integration**: Django Web Form Fuzzer for exception mapping
14+
- **Multiple Scan Modes**: Blackbox, aggressive, rule-based, and custom data scanning
15+
- **UV Package Management**: Fast dependency installation using UV
16+
- **Docker Integration**: Builds and tests Vimana Docker images
17+
- **Artifact Storage**: Saves scan results as downloadable artifacts
18+
19+
#### Manual Trigger Parameters:
20+
- `target_url`: The target URL to scan (e.g., http://localhost:8000)
21+
- `plugin`: Plugin to use (d4m8, viewscan, other_plugins_coming_soon)
22+
- `scan_mode`: Scan mode for the selected plugin (blackbox, aggressive, rule_based, custom_data)
23+
24+
#### D4M8 Plugin Examples:
25+
26+
**Blackbox Mode:**
27+
```yaml
28+
# Discovers and fuzzes available endpoints
29+
python vimana.py run --plugin d4m8 --target-url http://localhost:8000
30+
```
31+
32+
**Aggressive Mode with Custom Data:**
33+
```yaml
34+
# Comprehensive fuzzing with extended scope
35+
python vimana.py run \
36+
--plugin d4m8 \
37+
--target-url http://localhost:8000 \
38+
--agressive \
39+
--xscope \
40+
--data '{"email":"[email protected]","username": "github_user"}'
41+
```
42+
43+
**Rule-Based Scanning:**
44+
```yaml
45+
# Uses predefined fuzzing rules
46+
python vimana.py run --plugin d4m8 --scan-rules
47+
```
48+
49+
**Custom Data Fields:**
50+
```yaml
51+
# Targeted fuzzing with specific form fields
52+
python vimana.py run \
53+
--plugin d4m8 \
54+
--target-url http://localhost:8000 \
55+
--data '{"email":"[email protected]","password":"testpass123","username":"admin_user"}'
56+
```
57+
58+
#### Usage Examples:
59+
60+
**Manual Execution:**
61+
1. Go to Actions tab in your repository
62+
2. Select "Vimana Framework Security Testing"
63+
3. Click "Run workflow"
64+
4. Enter your target URL
65+
5. Select plugin (d4m8 recommended)
66+
6. Choose scan mode
67+
7. Click "Run workflow"
68+
69+
**Automated Scanning:**
70+
The workflow automatically runs on:
71+
- Push to main/develop branches
72+
- Pull requests to main branch
73+
74+
#### Available Plugins:
75+
- **D4M8**: Django Web Form Fuzzer for mapping exceptions
76+
- **ViewScan**: Code analysis and vulnerability scanning
77+
- **Other plugins**: Various security testing capabilities (coming soon)
78+
79+
#### Output:
80+
- Scan results stored in `core/_dbops_/`
81+
- Log files and reports
82+
- Docker image with plugin testing
83+
- SARIF format vulnerability reports (if available)
84+
85+
## Plugin Architecture
86+
87+
Vimana Framework uses a modular plugin architecture:
88+
89+
```bash
90+
vimana run <plugin_name> <plugin_options>
91+
```
92+
93+
Each plugin has specific capabilities and options. The workflow demonstrates how to integrate different plugins into CI/CD pipelines.
94+
95+
## Security Considerations
96+
97+
- Always review scan results before sharing
98+
- Use appropriate targets (own systems or authorized targets)
99+
- Follow responsible disclosure practices
100+
- Consider rate limiting for external targets
101+
- Ensure legal compliance for security testing
102+
103+
## Customization
104+
105+
You can customize the workflow by:
106+
- Adding new plugins to the workflow
107+
- Modifying scan parameters and modes
108+
- Changing trigger conditions
109+
- Adjusting resource allocation
110+
- Adding custom rule files for plugins
111+
112+
## Troubleshooting
113+
114+
Common issues:
115+
- **Permission errors**: Ensure workflow has necessary permissions
116+
- **Timeout issues**: Increase timeout for large scans
117+
- **Plugin dependency issues**: Check plugin requirements
118+
- **Target accessibility**: Ensure target URL is accessible from GitHub Actions
119+
- **UV installation**: Verify UV is properly installed and configured
120+
121+
## Future Enhancements
122+
123+
- Additional plugin integrations
124+
- Custom rule file support
125+
- Advanced reporting features
126+
- Multi-target scanning capabilities
127+
- Integration with security tools (Trivy, etc.)

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,4 @@ dmypy.json
138138
cython_debug/
139139

140140
.scrapy
141+
docs/internal/

Dockerfile

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,47 @@
44
#
55
#
66
# Author: s4dhu
7-
# Email: <s4dhul4bs[at]prontonmail[dot]ch
7+
# Email: <s4dhul4bs[dot]protonmail[at]ch>
88
# Git: @s4dhulabs
99
# Mastodon: @s4dhu
1010
#
1111
# This file is part of Vimana Framework Project.
1212

13-
FROM python:3.9-slim-buster
13+
FROM python:3.11-slim
1414

15-
LABEL MAINTAINER="s4dhu <s4dhul4bs[dot]protonmail[at]ch>"
16-
MAINTAINER s4dhu <s4dhul4bs[at]protonmail[dot]ch>
15+
LABEL maintainer="s4dhu <s4dhul4bs[dot]protonmail[at]ch>"
1716

1817
ENV DEBIAN_FRONTEND=noninteractive
19-
WORKDIR /vf0.8
20-
COPY . /vf0.8
21-
22-
RUN python3.9 -m pip install --user --no-cache-dir --upgrade pip && \
23-
python3.9 -m pip install --user --no-cache-dir -r requirements.txt && \
24-
python3.9 -m pip install --user --no-cache-dir -U PyYAML
25-
18+
WORKDIR /vf0.1
19+
COPY . /vf0.1
20+
21+
# Install system dependencies and build tools
22+
RUN apt-get update && apt-get install -y \
23+
sudo \
24+
gcc \
25+
python3-dev \
26+
&& python -m pip install --user --no-cache-dir --upgrade pip \
27+
&& python -m pip install --user --no-cache-dir -r requirements.txt \
28+
&& python -m pip install --user --no-cache-dir -U PyYAML \
29+
&& apt-get remove -y gcc python3-dev \
30+
&& apt-get autoremove -y \
31+
&& apt-get clean \
32+
&& rm -rf /var/lib/apt/lists/*
33+
34+
# Create user and set permissions
2635
RUN groupadd -r vimana && \
2736
useradd -r -m -g vimana -G sudo oper && \
28-
chown -R oper:vimana /vf0.8/core/_dbops_/ && \
29-
chmod -R 750 /vf0.8/core/_dbops_/
37+
chown -R oper:vimana /vf0.1/core/_dbops_/ && \
38+
chmod -R 750 /vf0.1/core/_dbops_/
39+
40+
# Set environment variables
41+
ENV PYTHONWARNINGS=ignore::SyntaxWarning,ignore::DeprecationWarning,ignore::PendingDeprecationWarning
42+
ENV PATH="/vf0.1:${PATH}"
43+
44+
# Create symlink
45+
RUN ln -s /vf0.1/vimana.py /usr/bin/vimana
3046

31-
ENV PYTHONWARNINGS=ignore
32-
ENV PATH="/vf0.8:${PATH}"
33-
RUN ln -s /vf0.8/vimana.py /usr/bin/vimana
47+
# Set default command
3448
CMD ["vimana", "load", "--plugins"]
3549
ENTRYPOINT ["vimana"]
3650

0 commit comments

Comments
 (0)