oss-forensics

GitHub supply-chain forensics: recovery, IOCs, reporting.

  • Security
  • Forensics
  • GitHub
  • Supply-Chain

Declared platforms: linux · macos · windows

Install
npx skills add 'https://github.com/NousResearch/hermes-agent/tree/main/optional-skills/security/oss-forensics'
Download bundle ↓
main · 24fd22bScanned 2026-09-15

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗
View on GitHub
← Back to SKILL.md

Evidence Types Reference

Taxonomy of all evidence types, IOC types, GitHub event types, and observation types used in OSS forensic investigations.


Evidence Source Types

TypeDescriptionExample Sources
gitData from local git repository analysisgit log, git fsck, git reflog, git blame
gh_apiData from GitHub REST API responses/repos/.../commits, /repos/.../pulls, /repos/.../events
gh_archiveData from GitHub Archive (BigQuery)githubarchive.month.* BigQuery tables
web_archiveArchived web pages from Wayback MachineCDX API results, web.archive.org/web/... snapshots
iocIndicator of Compromise from any sourceExtracted from vendor reports, git history, network traces
analysisDerived insight from cross-source correlation"SHA present in archive but absent from API"
vendor_reportExternal security vendor or researcher reportCVE advisories, blog posts, NVD records
manualManually recorded observation by investigatorNotes on behavioral patterns, timeline gaps

IOC Types

TypeDescriptionExample
COMMIT_SHAA git commit hash linked to malicious activityabc123def456...
FILE_PATHA suspicious file inside the repositorysrc/utils/crypto.js, dist/index.min.js
API_KEYAn API key accidentally committedAKIA... (AWS), ghp_... (GitHub PAT)
SECRETA generic secret / credentialDatabase password, private key blob
IP_ADDRESSA C2 server or attacker IP192.0.2.1
DOMAINA malicious or suspicious domainevil-cdn.io, typosquatted package registry domain
PACKAGE_NAMEA malicious or squatted package namecolo-rs (typosquatting color), lodash-utils
ACTOR_USERNAMEA GitHub handle linked to the attackmalicious-bot-account
MALICIOUS_URLA URL to a malicious resourcehttps://evil.example.com/payload.sh
WORKFLOW_FILEA suspicious CI/CD workflow file.github/workflows/release.yml
BRANCH_NAMEA suspicious branchrefs/heads/temp-fix-do-not-merge
TAG_NAMEA suspicious git tagv1.0.0-security-patch
RELEASE_NAMEA suspicious releaseRelease with no associated tag or changelog
OTHERCatch-all for unclassified IOCs

GitHub Archive Event Types (12 Types)

Event TypeForensic Relevance
PushEventCore: payload.distinct_size=0 with payload.size>0 → force push. payload.before/payload.head shows rewritten history.
PullRequestEventDetects deleted PRs, rapid open→close patterns, PRs from new accounts
IssueEventDetects deleted issues, coordinated labeling, rapid closure of vulnerability reports
IssueCommentEventDeleted comments, rapid activity bursts
WatchEventStar-farming campaigns (coordinated starring from new accounts)
ForkEventUnusual fork patterns before malicious commit
CreateEventBranch/tag creation: signals new release or code injection point
DeleteEventBranch/tag deletion: critical — often used to hide traces
ReleaseEventUnauthorized releases, release artifacts modified post-publish
MemberEventCollaborator added/removed: maintainer compromise indicator
PublicEventRepository made public (sometimes to drop malicious code briefly)
WorkflowRunEventCI/CD pipeline executions: workflow injection, secret exfiltration

Evidence Verification States

StateMeaning
unverifiedCollected from a single source, not cross-referenced
single_sourceThe primary source has been confirmed directly (e.g., SHA resolves on GitHub), but no second source
multi_source_verifiedConfirmed from 2+ independent sources (e.g., GH Archive AND GitHub API both show the same event)

Only multi_source_verified evidence may be cited as fact in validated hypotheses. unverified and single_source evidence must be labeled [UNVERIFIED] or [SINGLE-SOURCE].


Observation Types (Patterned after RAPTOR)

TypeDescription
CommitObservationSpecific commit SHA with metadata (author, date, files changed)
ForceWashObservationEvidence that commits were force-erased from a branch
DanglingCommitObservationSHA present in git object store but unreachable from any ref
IssueObservationA GitHub issue (current or archived) with title, body, timestamp
PRObservationA GitHub PR (current or archived) with diff summary, reviewers
IOCA single Indicator of Compromise with context
TimelineGapA period with unusual absence of expected activity
ActorAnomalyObservationBehavioral anomaly for a specific GitHub actor
WorkflowAnomalyObservationSuspicious CI/CD workflow change or unexpected run
CrossSourceDiscrepancyItem present in one source but absent in another (strong deletion indicator)
Referenced from SKILL.md