Skip to content

Commit bd256aa

Browse files
committed
Add MIT license and GitHub Actions CI
1 parent 93d6fe7 commit bd256aa

4 files changed

Lines changed: 93 additions & 1 deletion

File tree

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
permissions:
8+
contents: read
9+
10+
concurrency:
11+
group: ci-${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
test:
16+
name: Python ${{ matrix.python-version }}
17+
runs-on: ubuntu-latest
18+
strategy:
19+
fail-fast: false
20+
matrix:
21+
python-version: ["3.11", "3.14"]
22+
23+
steps:
24+
- name: Check out repository
25+
uses: actions/checkout@v6
26+
27+
- name: Set up Python
28+
uses: actions/setup-python@v6
29+
with:
30+
python-version: ${{ matrix.python-version }}
31+
cache: pip
32+
cache-dependency-path: pyproject.toml
33+
34+
- name: Install project
35+
run: |
36+
python -m pip install --upgrade pip
37+
python -m pip install .
38+
39+
- name: Run tests
40+
run: python -m pytest -q
41+
42+
- name: Compile Python sources
43+
run: >-
44+
python -m compileall -q
45+
attck converters core enrichment extractor generators ingestion ioc
46+
quality reporting review tests main.py

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 rootverdict
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# MalForge
22

3+
[![CI](https://github.com/rootverdict/MalForge/actions/workflows/ci.yml/badge.svg)](https://github.com/rootverdict/MalForge/actions/workflows/ci.yml)
4+
35
Local malware behavior to detection-rule pipeline for sandbox JSON reports. The project parses Cuckoo, CAPE, and ANY.RUN reports, extracts behavior, maps to MITRE ATT&CK, generates Sigma rules, converts them to Wazuh XML, scores and validates output, creates synthetic test events, and builds analyst-facing reports.
46

57
## Safety
@@ -152,6 +154,7 @@ Evidence files:
152154
This validates broad externally sourced URL/IOC report handling. It does not prove compatibility with every possible sandbox/vendor schema.
153155

154156
The URLhaus validation set also includes a Mozi `elf/mips` sample-style report. For that case the pipeline now emits Linux/generic telemetry rules instead of Windows/Sysmon rules, preserves raw IP values as generic network evidence without forcing an application-protocol or Remote Services mapping, preserves direct HTTP URL evidence as web-protocol behavior, tags non-standard ports with T1571, and reports missing payload hashes as source-data limitations when URL-only metadata does not include MD5/SHA1/SHA256 values.
157+
155158
## Current Limitations
156159

157160
- VirusTotal and MISP enrichment modules build local descriptors but do not make API calls
@@ -168,7 +171,11 @@ The URLhaus validation set also includes a Mozi `elf/mips` sample-style report.
168171
- Improve Sigma selector fidelity and rule grouping
169172
- Add optional Wazuh deployment packaging and manager-side validation
170173
- Export consolidated pipeline manifests
171-
- Add optional packaging and CI workflow polish
174+
- Add automated release and artifact publishing
175+
176+
## License
177+
178+
MalForge is released under the [MIT License](LICENSE).
172179

173180

174181

tests/test_repository_metadata.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,21 @@ def test_generated_handbook_is_ignored() -> None:
5050
}
5151

5252
assert "MALFORGE_COMPLETE_PROJECT_HANDBOOK.md" in ignored_entries
53+
54+
55+
def test_repository_has_an_mit_license() -> None:
56+
license_text = (PROJECT_ROOT / "LICENSE").read_text(encoding="utf-8")
57+
58+
assert license_text.startswith("MIT License")
59+
assert "Copyright (c) 2026 rootverdict" in license_text
60+
61+
62+
def test_ci_runs_tests_and_compilation_on_supported_python_versions() -> None:
63+
workflow = (PROJECT_ROOT / ".github" / "workflows" / "ci.yml").read_text(encoding="utf-8")
64+
65+
assert "actions/checkout@v6" in workflow
66+
assert "actions/setup-python@v6" in workflow
67+
assert 'python-version: ["3.11", "3.14"]' in workflow
68+
assert "python -m pytest -q" in workflow
69+
assert "python -m compileall -q" in workflow
70+
assert "quality reporting review tests main.py" in workflow

0 commit comments

Comments
 (0)