Skip to main content

fort-firewall-malware-analysis

Analyze and document malicious software distribution disguised as legitimate Fort Firewall security software

インストールへ移動

ソース情報

リポジトリ
reason-machines/security-skills
ソースの最終更新活動
2026年7月6日 06:36
検出された SKILL.md の言語
英語
スター
12
フォーク
1

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
fort-firewall-malware-analysis
description
Analyze and document malicious software distribution disguised as legitimate Fort Firewall security software
triggers
["analyze this suspicious firewall repository","check if this Fort Firewall download is legitimate","investigate potential malware in security software","review this firewall project for malicious indicators","identify red flags in this security tool repository","verify authenticity of Fort Firewall download","detect malware distribution in open source projects","analyze fake software repository patterns"]
# Fort Firewall Malware Analysis Skill > Skill by [ara.so](https://ara.so) — Security Skills collection ## ⚠️ CRITICAL WARNING This repository (`lloyd17x/fort-firewall-security-fix`) is **NOT legitimate software**. It is a malware distribution scheme disguised as a security tool. This skill teaches agents to identify and analyze such threats. ## What This Repository Actually Is **Red Flags Indicating Malware:** 1. **Fake "Product Key Patch"** - Promotes executable files that "unlock" software, a classic malware vector 2. **GitHub Pages Download** - Legitimate software uses GitHub Releases, not external redirect pages 3. **Antivirus "False Positive" Claims** - Dismisses security warnings as normal 4. **No Source Code** - HTML project with no actual firewall code 5. **Keyword Stuffing** - SEO spam topics like "fort-firewall-key", "fort-firewall-patch" 6. **Suspicious Metrics** - 182 stars in 19 days (9 stars/day) suggests bot inflation 7. **Future Date** - Created "2026-06-17" (impossible timestamp indicates manipulation) 8. **MIT License Abuse** - Claims permissive license for proprietary malware 9. **"Community Edition" Framing** - Legitimizes piracy/malware distribution ## Real Fort Firewall Project The legitimate Fort Firewall is: - **Repository**: `tnodir/fort` (not this repository) - **License**: GPL-3.0 (open source, no "product keys") - **Language**: C++/Qt (not HTML) - **Distribution**: GitHub Releases with source code ## Malware Indicators Analysis ### Pattern Recognition ```python import re from dataclasses import dataclass from typing import List @dataclass class MalwareIndicator: pattern: str severity: str description: str MALWARE_PATTERNS = [ MalwareIndicator( pattern=r"(crack|patch|keygen|product[_\s]?key|license[_\s]?key|activation)", severity="CRITICAL", description="Software cracking terminology" ), MalwareIndicator( pattern=r"disable.*antivirus|false[_\s]?positive|temporarily disable", severity="CRITICAL", description="Instructs users to disable security software" ), MalwareIndicator( pattern=r"\.github\.io/[^/]+/.*\.(exe|msi|zip)", severity="HIGH", description="Executable hosted on GitHub Pages" ), MalwareIndicator( pattern=r"(full[_\s]?version|premium|pro[_\s]?edition).*free", severity="MEDIUM", description="Promises premium software for free" ), ] def analyze_repository_readme(readme_content: str) -> List[dict]: """Scan README for malware distribution indicators.""" findings = [] for indicator in MALWARE_PATTERNS: matches = re.finditer(indicator.pattern, readme_content, re.IGNORECASE) for match in matches: findings.append({ "severity": indicator.severity, "pattern": indicator.description, "matched_text": match.group(0), "position": match.start() }) return findings # Usage with open("README.md", "r", encoding="utf-8") as f: readme = f.read() findings = analyze_repository_readme(readme) for finding in findings: print(f"[{finding['severity']}] {finding['pattern']}: '{finding['matched_text']}'") ``` ### GitHub Repository Metadata Analysis ```javascript // Node.js script to analyze suspicious repositories const axios = require('axios'); async function analyzeRepository(owner, repo) { const apiUrl = `https://api.github.com/repos/${owner}/${repo}`; const token = process.env.GITHUB_TOKEN; // Use personal access token try { const response = await axios.get(apiUrl, { headers: { 'Authorization': `token ${token}` } }); const data = response.data; const redFlags = []; // Check for suspicious patterns if (data.stargazers_count > 100 && data.forks_count < 5) { redFlags.push({ flag: "STAR_INFLATION", detail: `${data.stargazers_count} stars but only ${data.forks_count} forks` }); } if (data.language === "HTML" && data.name.includes("firewall")) { redFlags.push({ flag: "LANGUAGE_MISMATCH", detail: "Firewall software should be compiled (C/C++/Rust), not HTML" }); } if (!data.license) { redFlags.push({ flag: "NO_LICENSE", detail: "Missing license despite claiming MIT in README" }); } if (data.open_issues_count === 0 && data.stargazers_count > 50) { redFlags.push({ flag: "NO_ENGAGEMENT", detail: "High stars but zero issues suggests fake engagement" }); } // Check topics for malware keywords const suspiciousTopics = data.topics.filter(t => t.includes("key") || t.includes("patch") || t.includes("crack") ); if (suspiciousTopics.length > 0) { redFlags.push({ flag: "MALWARE_TOPICS", detail: `Suspicious topics: ${suspiciousTopics.join(", ")}` }); } return { repository: `${owner}/${repo}`, created: data.created_at, language: data.language, stars: data.stargazers_count, forks: data.forks_count, issues: data.open_issues_count, redFlags: redFlags, riskScore: calculateRiskScore(redFlags) }; } catch (error) { throw new Error(`Failed to analyze repository: ${error.message}`); } } function calculateRiskScore(redFlags) { const weights = { "STAR_INFLATION": 30, "LANGUAGE_MISMATCH": 25, "NO_LICENSE": 15, "NO_ENGAGEMENT": 20, "MALWARE_TOPICS": 40 }; return redFlags.reduce((score, flag) => score + (weights[flag.flag] || 10), 0 ); } // Example usage analyzeRepository("lloyd17x", "fort-firewall-security-fix") .then(analysis => { console.log(JSON.stringify(analysis, null, 2)); if (analysis.riskScore > 50) { console.log("\n⚠️ HIGH RISK: This repository exhibits multiple malware indicators"); } }) .catch(console.error); ``` ## Download Link Analysis ```python import requests from urllib.parse import urlparse import hashlib def analyze_download_link(url: str) -> dict: """ Analyze a download link for malware distribution patterns. DO NOT actually download or execute files. """ parsed = urlparse(url) risk_factors = [] # GitHub Pages used for malware hosting if ".github.io" in parsed.netloc: risk_factors.append({ "factor": "GITHUB_PAGES_HOSTING", "severity": "HIGH", "reason": "Executable files should be in GitHub Releases, not Pages" }) # Direct executable download if parsed.path.endswith((".exe", ".msi", ".bat", ".ps1", ".scr")): risk_factors.append({ "factor": "DIRECT_EXECUTABLE", "severity": "CRITICAL", "reason": "Direct executable download without source code" }) # Redirect through external page if not parsed.path.endswith((".exe", ".zip")) and "download" in url.lower(): risk_factors.append({ "factor": "REDIRECT_PAGE", "severity": "HIGH", "reason": "Download redirects through intermediary page" }) return { "url": url, "host": parsed.netloc, "risk_factors": risk_factors, "recommendation": "DO NOT DOWNLOAD" if risk_factors else "Further investigation needed" } # Example download_url = "https://lloyd17x.github.io/fort-firewall-security-fix/" analysis = analyze_download_link(download_url) print(f"Analysis for: {analysis['url']}") print(f"Recommendation: {analysis['recommendation']}") for factor in analysis['risk_factors']: print(f" [{factor['severity']}] {factor['factor']}: {factor['reason']}") ``` ## Reporting Malware Repositories ### To GitHub ```bash # Report via GitHub's abuse form # URL: https://github.com/contact/report-abuse # Provide these details: # 1. Repository URL: https://github.com/lloyd17x/fort-firewall-security-fix # 2. Violation type: Malware distribution # 3. Evidence: # - Promotes executable "patches" that bypass antivirus # - No source code despite claiming to be open source # - Uses GitHub Pages to host malware downloads # - Impersonates legitimate Fort Firewall project ``` ### Automated Reporting Script ```python import os import requests def report_malicious_repository(owner: str, repo: str, evidence: list): """ Create a report document for malicious repository. Note: GitHub does not have a public API for abuse reports. This generates a report file for manual submission. """ report = f""" # Malware Distribution Report ## Repository Information - **URL**: https://github.com/{owner}/{repo} - **Report Date**: {datetime.now().isoformat()} - **Reporter**: Security Researcher ## Violation Type Malware Distribution / Software Piracy / Impersonation ## Evidence """ for i, item in enumerate(evidence, 1): report += f"{i}. {item}\n" report += """ ## Recommended Action Immediate takedown and account suspension ## Additional Context This repository impersonates the legitimate Fort Firewall project (tnodir/fort) and distributes malware disguised as a "product key patch." """ # Save report to file filename = f"malware_report_{owner}_{repo}_{datetime.now().strftime('%Y%m%d')}.txt" with open(filename, "w") as f: f.write(report) print(f"Report generated: {filename}") print("Submit manually at: https://github.com/contact/report-abuse") return filename # Example from datetime import datetime evidence = [ "README instructs users to disable antivirus ('false positive' claim)", "No source code despite being marked as HTML project", "Download link redirects to GitHub Pages hosting executable", "Repository topics include 'fort-firewall-key', 'fort-firewall-patch' (malware keywords)", "Claims MIT license but distributes proprietary malware", "Zero forks despite 182 stars (bot-inflated metrics)", "Created date shows '2026' (manipulated metadata)" ] report_malicious_repository("lloyd17x", "fort-firewall-security-fix", evidence) ``` ## Safe Security Software Verification ### Checklist for Legitimate Projects ```yaml verification_checklist: source_code: - Present: true - Matches_language: true - Build_instructions: true distribution: - GitHub_Releases: true - Code_signing: true - Checksums_provided: true documentation: - Installation_from_source: true - No_antivirus_disable_instructions: false - No_piracy_terminology: false repository_health: - Active_issues: true - Organic_stars_to_forks_ratio: true # Usually 5:1 to 20:1 - Recent_commits: true licensing: - Clear_license: true - License_file_present: true - No_product_keys_required: true ``` ### Python Verification Tool ```python import requests from typing import Dict, Any def verify_security_software(owner: str, repo: str) -> Dict[str, Any]: """ Verify if a security software repository is legitimate. """ api_url = f"https://api.github.com/repos/{owner}/{repo}" token = os.getenv("GITHUB_TOKEN") headers = {"Authorization": f"token {token}"} if token else {} response = requests.get(api_url, headers=headers) if response.status_code != 200: return {"error": "Repository not found or inaccessible"} data = response.json() checks = { "has_source_code": data.get("language") not in ["HTML", None], "has_license": data.get("license") is not None, "has_issues": data.get("open_issues_count", 0) > 0, "stars_to_forks_ratio": ( data.get("stargazers_count", 0) / max(data.get("forks_count", 1), 1) ), "has_releases": None, # Requires additional API call }
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る