
report-malicious-repository
Identify and report potentially malicious software repositories masquerading as legitimate security tools
- Installs
- 1.1K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/reason-machines/security-skills --skill report-malicious-repository- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads report-malicious-repository automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Report Malicious Repository
Skill by ara.so — Security Skills collection.
⚠️ WARNING: This Repository is Malicious
The project DragonflyTomb/Avast-Premium-Security-2026 is NOT legitimate software. This is a malicious repository designed to distribute malware, trojans, or phishing attacks by:
- Claiming to offer "cracked" or "pre-activated" commercial software
- Including terms like "keygen", "loader", "serial" in the description
- Impersonating legitimate security software (Avast)
- Using deceptive tactics (fake stars, professional-looking descriptions)
Identifying Malicious Repositories
Red Flags
- Piracy Keywords: keygen, crack, loader, serial, pre-activated, license key
- Too Good to Be True: Free versions of expensive commercial software
- Suspicious Topics: Mixing legitimate topics (retdec) with piracy terms
- No Source Code: Empty or minimal repository with download links
- Recent Creation: New accounts with inflated star counts
- Impersonation: Using brand names (Avast, Norton, etc.) without authorization
Analysis Pattern
package main
import (
"strings"
"regexp"
)
type RepoAnalysis struct {
IsSuspicious bool
RedFlags []string
RiskLevel string
}
func AnalyzeRepository(description, topics string, hasReadme bool, age int) RepoAnalysis {
analysis := RepoAnalysis{
RedFlags: []string{},
}
suspiciousKeywords := []string{
"keygen", "crack", "loader", "serial", "pre-activated",
"license key", "full version", "premium", "activation",
}
lowerDesc := strings.ToLower(description)
// Check for piracy keywords
for _, keyword := range suspiciousKeywords {
if strings.Contains(lowerDesc, keyword) {
analysis.RedFlags = append(analysis.RedFlags, "Piracy keyword: "+keyword)
analysis.IsSuspicious = true
}
}
// Check for brand impersonation
brands := []string{"avast", "norton", "mcafee", "kaspersky", "bitdefender"}
for _, brand := range brands {
if strings.Contains(lowerDesc, brand) {
analysis.RedFlags = append(analysis.RedFlags, "Brand impersonation: "+brand)
}
}
// Check for missing README
if !hasReadme {
analysis.RedFlags = append(analysis.RedFlags, "No README file")
analysis.IsSuspicious = true
}
// Check repository age vs stars
if age < 14 {
analysis.RedFlags = append(analysis.RedFlags, "Suspiciously new repository")
}
// Determine risk level
if len(analysis.RedFlags) >= 3 {
analysis.RiskLevel = "CRITICAL"
} else if len(analysis.RedFlags) >= 2 {
analysis.RiskLevel = "HIGH"
} else if analysis.IsSuspicious {
analysis.RiskLevel = "MEDIUM"
} else {
analysis.RiskLevel = "LOW"
}
return analysis
}
Reporting Malicious Repositories
GitHub Reporting Process
- Navigate to the repository
- Click the repository name to go to the main page
- Look for the three dots menu (⋯) or scroll to bottom
- Select "Report repository" or visit:
https://github.com/contact/report-content
Report Template
Repository: [USERNAME/REPO-NAME]
Issue Type: Malware/Phishing/Copyright Infringement
Description:
This repository is distributing malicious software disguised as cracked/pirated
commercial antivirus software. It contains:
- Claims of "keygen", "pre-activated", "license key" for Avast Premium Security
- No legitimate source code
- Impersonation of Avast brand
- Likely contains malware, trojans, or ransomware
Evidence:
- Repository description contains piracy keywords
- No README or source code provided
- Uses deceptive branding
Requested Action: Immediate takedown and account suspension
Automated Reporting Script
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
type GitHubReport struct {
Subject string `json:"subject"`
SubjectType string `json:"subject_type"`
Message string `json:"message"`
}
func ReportToGitHub(repoFullName, reason string) error {
// NOTE: GitHub doesn't have a public API for abuse reports
// This is a conceptual example - actual reporting must be done via web form
reportURL := "https://github.com/contact/report-content"
fmt.Printf("⚠️ MALICIOUS REPOSITORY DETECTED\n")
fmt.Printf("Repository: %s\n", repoFullName)
fmt.Printf("Reason: %s\n\n", reason)
fmt.Printf("Please report manually at: %s\n", reportURL)
fmt.Printf("Include repository URL and reason above.\n")
return nil
}
// Scan repository metadata for red flags
func ScanRepository(owner, repo string) error {
githubToken := os.Getenv("GITHUB_TOKEN")
if githubToken == "" {
return fmt.Errorf("GITHUB_TOKEN environment variable required")
}
url := fmt.Sprintf("https://api.github.com/repos/%s/%s", owner, repo)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+githubToken)
req.Header.Set("Accept", "application/vnd.github+json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
var repoData map[string]interface{}
json.NewDecoder(resp.Body).Decode(&repoData)
description := repoData["description"].(string)
analysis := AnalyzeRepository(description, "", false, 10)
if analysis.RiskLevel == "CRITICAL" || analysis.RiskLevel == "HIGH" {
fmt.Printf("🚨 ALERT: %s risk repository detected!\n", analysis.RiskLevel)
for _, flag := range analysis.RedFlags {
fmt.Printf(" - %s\n", flag)
}
return ReportToGitHub(owner+"/"+repo, "Malware distribution")
}
return nil
}
Protection Measures
For Developers
// Add to your dependency scanning
func ValidateDependency(repoURL string) bool {
// Check against known malware lists
// Verify package signatures
// Analyze repository metadata
blacklist := []string{
"keygen", "crack", "loader", "premium-loader",
}
for _, term := range blacklist {
if strings.Contains(strings.ToLower(repoURL), term) {
return false
}
}
return true
}
For Organizations
- Block suspicious patterns in CI/CD
- Implement dependency scanning tools
- Educate developers about social engineering
- Use verified sources only (official registries)
Common Attack Patterns
- Typosquatting: Similar names to legitimate projects
- Brand Impersonation: Using well-known software names
- SEO Manipulation: Keyword stuffing for search visibility
- Social Engineering: Fake stars, professional appearance
- Trojan Distribution: Executable files disguised as installers
Legitimate Alternatives
For actual Avast software:
- Official website: https://www.avast.com
- Official GitHub (if any): Verify through company website
- Licensed purchases only through authorized channels
Resources
- GitHub Abuse Report: https://github.com/contact/report-content
- DMCA Takedown: https://github.com/contact/dmca
- US-CERT: https://www.cisa.gov/report
- Anti-Phishing Working Group: https://apwg.org/reportphishing/
Remember: Never download "cracked" or "pre-activated" security software. It ALWAYS contains malware.
FAQ
What does the report-malicious-repository skill do?
Identify and report potentially malicious software repositories masquerading as legitimate security tools
How do I install report-malicious-repository?
Run npx skills add https://github.com/reason-machines/security-skills --skill report-malicious-repository in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/report-malicious-repository/ (personal) or .claude/skills/report-malicious-repository/ (project).
Which AI agents can use report-malicious-repository?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is report-malicious-repository safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains report-malicious-repository?
It is published by reason-machines in reason-machines/security-skills. It has 1,081 recorded installs.
More from reason-machines/security-skills
anthropic-cybersecurity-skills
reason-machines/security-skills
Use 754 structured cybersecurity skills mapped to MITRE ATT&CK, NIST CSF, ATLAS, D3FEND, and NIST AI RMF for AI-driven security operations
pentest-ai-agents
reason-machines/security-skills
Claude Code subagents for offensive security research, penetration testing planning, recon analysis, exploit research, detection engineering, and security reporting
pentest-agents-bug-bounty-framework
reason-machines/security-skills
Autonomous bug bounty agent framework with 50 agents, hunt loops, exploit chains, MCP servers for platform integration and writeup search
openosint-ai-osint-framework
reason-machines/security-skills
AI-powered OSINT agent with interactive REPL, MCP server, and CLI for email/username/domain/IP/phone investigation using 11 integrated tools
vibe-security-skill
reason-machines/security-skills
Agent skill that audits vibe-coded apps for common security vulnerabilities introduced by AI coding assistants
openclaw-security-hardening
reason-machines/security-skills
Deploy and manage security hardening for high-privilege autonomous AI agents (OpenClaw) using zero-trust architecture and automated defense matrices
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.