| name | report-malicious-repository |
| description | Identify and report potentially malicious software repositories masquerading as legitimate security tools |
| triggers | ["how do I identify malicious software repositories","detect fake antivirus or cracked software repos","report suspicious GitHub projects with keygens","identify piracy and malware distribution on GitHub","check if a repository is distributing malware","analyze suspicious security software repos","report copyright infringement on GitHub"] |
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)
for _, keyword := range suspiciousKeywords {
if strings.Contains(lowerDesc, keyword) {
analysis.RedFlags = append(analysis.RedFlags, "Piracy keyword: "+keyword)
analysis.IsSuspicious = true
}
}
brands := []string{"avast", "norton", "mcafee", "kaspersky", "bitdefender"}
for _, brand := range brands {
if strings.Contains(lowerDesc, brand) {
analysis.RedFlags = append(analysis.RedFlags, +brand)
}
}
!hasReadme {
analysis.RedFlags = (analysis.RedFlags, )
analysis.IsSuspicious =
}
age < {
analysis.RedFlags = (analysis.RedFlags, )
}
(analysis.RedFlags) >= {
analysis.RiskLevel =
} (analysis.RedFlags) >= {
analysis.RiskLevel =
} analysis.IsSuspicious {
analysis.RiskLevel =
} {
analysis.RiskLevel =
}
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 {
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
}
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(, url, )
req.Header.Set(, +githubToken)
req.Header.Set(, )
client := &http.Client{}
resp, err := client.Do(req)
err != {
err
}
resp.Body.Close()
repoData []{}
json.NewDecoder(resp.Body).Decode(&repoData)
description := repoData[].()
analysis := AnalyzeRepository(description, , , )
analysis.RiskLevel == || analysis.RiskLevel == {
fmt.Printf(, analysis.RiskLevel)
_, flag := analysis.RedFlags {
fmt.Printf(, flag)
}
ReportToGitHub(owner++repo, )
}
}
Protection Measures
For Developers
func ValidateDependency(repoURL string) bool {
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
Remember: Never download "cracked" or "pre-activated" security software. It ALWAYS contains malware.