Skip to content

Cryptojacking, home-network intrusion, stalkerware, and identity theft recovery - #3

Open
lizTheDeveloper wants to merge 3 commits into
feat/core-frameworkfrom
claude/bloatware-spyware-remediation-0mbzkb
Open

Cryptojacking, home-network intrusion, stalkerware, and identity theft recovery#3
lizTheDeveloper wants to merge 3 commits into
feat/core-frameworkfrom
claude/bloatware-spyware-remediation-0mbzkb

Conversation

@lizTheDeveloper

@lizTheDeveloper lizTheDeveloper commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Adds detection and remediation for a household whose Wi-Fi has been broken into, the cryptojacking that tends to arrive with it, and the identity theft that follows.

What was missing

Existing coverage was crypto_miner_detect (macOS only), wifi_security_audit (macOS only), mvt_spyware_scan (mobile backups), keylogger_indicators, and four small bloatware lists. The gaps:

  • Nothing looked at the network itself — no way to see who is on the Wi-Fi, no interception detection, no router audit.
  • Miner persistence was not checked anywhere. Killing a miner does nothing if a launch agent restarts it, which is the normal arrangement.
  • No Windows miner detection at all, and no in-browser mining detection (which never appears in a process list — the process is Chrome).
  • No stalkerware module, and no distinction between covert monitoring, workplace monitoring, and dual-use remote access.
  • No identity theft walkthrough, which is where most of this ends up.

Seven new modules

Module Platforms What it finds
lan_device_inventory all Devices visible on the network, with OUI vendor labels
arp_spoof_check all Traffic interception: gateway impersonation, duplicate MACs, multiple default routes
router_security_audit all Gateway's exposed admin surface (telnet, TR-069, HTTP admin), UPnP
crypto_miner_persistence all What restarts a miner: launch items, cron, systemd, Run keys, scheduled tasks, shell profiles, dropped configs
win_crypto_miner_detect Windows Live miners by command line, established pool connections, high CPU
browser_cryptojacking_check all Mining extensions, startup pages, hosts-file entries
stalkerware_scan all Monitoring software, split by category

Two new profiles and guides

home_network_intrusion — six phases, ordered network → devices → accounts, because a cleaned laptop rejoining a compromised network is compromised again.

identity_theft_recovery — seven phases that double as a persistent checklist (rescue guide identity_theft_recovery, then --complete <n>). Ordered freeze → report → dispute: a dispute letter without an FTC identity theft report gets a form-letter reply; with one, §605B forces removal in four business days instead of a contestable 30-day investigation. US-first, with UK, Canada, Australia, and EU equivalents.

Both guides end with a resources and tiplines phase: free case-managed help (Identity Theft Resource Center, AARP helpline, DOJ elder fraud hotline, IDCARE, Access Now), official reporting channels, all six credit bureaus and databases accepting freezes, abuse-specific support including coerced debt, free legal aid, and per-country equivalents. Each opens with the warning that support numbers in search results are bought by scam call centres — worthless below the list, so it is step 1, and a test keeps it there.

Design decisions worth reviewing

  • Every fix() is guidance only (ActionKind.GUIDANCE), nothing is auto-removed. On a possibly-compromised machine, deletion destroys evidence, and a half-removed miner is worse than an intact one. This follows the roadmap's P0 item 6 on not rendering guidance as a completed fix.
  • stalkerware_scan leads with safety, not removal. If the person who installed it lives with the victim, cutting access tells them they have been found out. The first action is the abuse helplines, with a note not to look them up from the monitored device.
  • Confidence is graded and carried in finding data. A wallet address or stratum URL is high confidence; a product name alone is medium; high CPU is a low-confidence lead with wording that says so.
  • Detection states its limits. The device list says a quiet device can be missing; the spoof check says it cannot see interception at the router itself; both name mesh nodes and extenders as innocent explanations.
  • Bounded work throughout, per the roadmap's P0 item 7: every subprocess call has a timeout, every filesystem scan has a file-count and byte cap, and no check traverses a home directory freely.
  • Short product names match on word boundaries, so "bark" (a parental-control product) does not fire on barkeeper.app.
  • Hosts-file blackholes are recognised as protection, not as a threat — a mining domain pointed at 0.0.0.0 is somebody defending the machine.

Supporting changes

  • Shared cryptojacking IOC dataset and a shared neighbour-table helper, both data-only packages that module discovery skips.
  • rescue.runtime.load_content_module() so modules can share a helper by path — works in a source checkout, a pip install, and a frozen bundle alike, where a plain import does not.
  • Expanded known-bloatware datasets: adware, scareware, bundled miners, OEM trials. process_scanner now treats cryptominer as a critical category.
  • Regenerated integrity_manifest.json for the runtime.py change, which was otherwise printing a tamper warning on every launch.

Unrelated pre-existing fixes

Three Python 3.12-only f-strings made win_malware_indicators and win_bsod_analysis fail to load entirely on the declared minimum Python 3.11, and test_module_win_scheduled_tasks_security fail to collect. Fixed, since one of them is a malware module directly relevant here. Happy to split these into their own PR.

Testing

86 new tests. Full suite: 3139 passed, 61 failed — all 61 verified to fail identically on a clean worktree of the base branch (macOS-specific tests running on Linux as root, a missing GPG key). test_module_ai_threat_indicators still hangs, as docs/ROADMAP.md already records.

Known gaps

  • wifi_security_audit is still macOS-only, so there is no Wi-Fi encryption or WPS check for Windows or Linux.
  • Phone numbers and URLs in the guides go stale. They are marked as accurate at time of writing with an instruction to verify at the official site, but they will need periodic review — the content-update mechanism in the roadmap is the natural home for that.

claude added 2 commits August 3, 2026 01:47
…rage

Adds the detection and remediation content for a household whose Wi-Fi has
been broken into, and for the cryptojacking that tends to arrive with it.

New modules:
- crypto_miner_persistence (macOS/Windows/Linux) finds what restarts a miner
  after it is killed: launch items, cron, systemd units, Run keys, scheduled
  tasks, shell profiles, and dropped miner configs. Wallet addresses and
  stratum arguments are treated as high-confidence evidence; a product name
  alone is not.
- win_crypto_miner_detect gives Windows the live-miner detection that
  previously existed only for macOS: process command lines, established
  connections to mining-pool ports, and high CPU as a low-confidence lead.
- browser_cryptojacking_check covers in-browser mining, which never shows up
  in a process list: extension code, startup pages, and hosts-file entries.
  Blackholed mining domains are recognised as protection, not as a threat.
- lan_device_inventory lists the devices actually visible on the network,
  with OUI vendor labels, and says plainly that a quiet device can be missing.
- arp_spoof_check looks for traffic interception: the gateway's address
  answering for other hosts, duplicate addresses, and multiple default routes.
- router_security_audit checks the gateway's exposed admin surface and UPnP,
  and carries the full router reclaim procedure.
- stalkerware_scan separates covert monitoring software from workplace and
  parental products and from dual-use remote access, and leads its guidance
  with safety planning rather than removal instructions.

Supporting content: shared cryptojacking IOC data, a shared neighbour-table
helper, expanded known-bloatware datasets (adware, scareware, bundled miners,
OEM trials), and the home_network_intrusion profile and five-phase guide,
ordered so the network is reclaimed before the devices are cleaned.

rescue.runtime gains load_content_module() so modules can share a helper by
path, which works in a source checkout, a pip install, and a frozen bundle.

Every fix() here is guidance only, marked ActionKind.GUIDANCE, and every
external command and filesystem scan is bounded by a timeout or a cap.

Also fixes three pre-existing Python 3.12-only f-strings that made
win_malware_indicators and win_bsod_analysis fail to load, and
test_module_win_scheduled_tasks_security fail to collect, on the declared
minimum Python 3.11.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsDpjoDi59AXxhoy8TriUQ
Adds a six-phase guide that doubles as a recovery checklist — `rescue guide
identity_theft_recovery` prints the outstanding steps and `--complete <n>`
marks them off, so progress survives across the weeks this actually takes.

The phases are ordered the way recovery works rather than the way it feels:

0. The first hour — start a recovery log, write down what is known, and deal
   with money that has already moved (reporting windows for unauthorised
   debit charges are short).
1. Confirm the device is not the leak — the only automatable phase, because
   changing passwords on a machine with a keylogger hands them straight back.
   Also covers email forwarding rules and carrier port-out locks, which both
   survive a password change.
2. Freeze — all three credit bureaus plus Innovis, NCTUE, and ChexSystems,
   which is where phone contracts and bank accounts get opened.
3. Report — IdentityTheft.gov first, because the FTC identity theft report is
   what unlocks the §605B block and the seven-year extended alert. Then
   police, IRS/state tax, SSA, CFPB, and the channels specific to SIM swap,
   medical, criminal, child, and deceased-relative identity theft.
4. Dispute — the distinction between a dispute (30 days, contestable) and an
   identity theft block (four business days, backed by the FTC report), plus
   the follow-up schedule for accounts that reappear via a new collector.
5. Monitor and rebuild — the long tail, and what recurrence looks like.

The profile pairs the guide with the twelve existing modules that answer the
one technical question here: is this device leaking credentials. It claims no
automation for anything that happens at a bank or a government agency.

US-first, with equivalents for the UK, Canada, Australia, and the EU in
phase 2, and free case-managed support services named in phase 5.

Also regenerates the integrity manifest for the runtime.py change in the
previous commit, which was making every launch print a tamper warning.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsDpjoDi59AXxhoy8TriUQ
@lizTheDeveloper lizTheDeveloper changed the title feat: add cryptojacking, home-network intrusion, and stalkerware coverage Cryptojacking, home-network intrusion, stalkerware, and identity theft recovery Aug 3, 2026
Both guides had helplines scattered inline across steps, which is where they
are least findable — somebody who needs a number six weeks from now is not
going to re-read phase 3 step 4 to find it. Each guide now ends with a
dedicated reference phase.

identity_theft_recovery phase 6 covers free case-managed help (Identity Theft
Resource Center, the AARP helpline, the DOJ elder fraud hotline, IDCARE, the
Access Now digital security helpline), the official reporting channels, all
six credit bureaus and databases that accept freezes, abuse-specific support
including coerced debt, free legal aid, and non-US equivalents.

home_network_intrusion phase 5 covers abuse support first — because when the
intruder is someone known, the safety plan changes the order of the technical
work — then free incident response, where to report an intrusion, a pointer to
the identity theft guide when accounts are involved, and how to tell whether
a router is worth keeping.

Both open with the same warning: search results for support numbers are bought
by scam call centres, and someone mid-recovery is exactly who they want. Type
the domain, use the number on the card, and nothing legitimate is ever paid
for in gift cards. That warning is worthless below the list, so it is step 1.

stalkerware_scan's safety guidance gains the same country-by-country numbers,
plus a note not to look them up from the monitored device — browsing history
is one of the things that gets reported.

A test asserts the scam-helpline warning stays first in the resources phase,
and the step-title check caught one heading too vague to work as a checklist
item.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsDpjoDi59AXxhoy8TriUQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants