Add suspicious activity discovery runbook (SEC-G04, #437) #969
No reviewers
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic!969
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-437-suspicious-activity-queries"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds SEC-G04 operator discovery recipes so incident responders can surface suspicious wallets, pairs, and tokens before applying pause/blacklist controls (#437).
docs/runbooks/suspicious-activity-queries.md: indexer API calls, Postgres SQL, and LCD queries for top traders, failed wasm txs, pair swap spikes, liquidity/reserve anomalies, and compliance blacklist probes.blacklist-decision.mdcross-links discovery queries before the decision tree.make check-suspicious-activity-queries-docs; full checklist:make verify-issue-437.skills/AGENTS_SUSPICIOUS_ACTIVITY_QUERIES.md.Acceptance checklist
grep suspicious-activity-queries docs/templates/incident-dex-indexer.mdmake check-suspicious-activity-queries-docsmake verify-issue-437Verification checklist (third parties)
make check-suspicious-activity-queries-docs— exits 0; prints OK line.make verify-issue-437— all steps PASS.docs/templates/incident-dex-indexer.md→ Triage → confirm links tosuspicious-activity-queries.mdunder Tx samples and Suspicious activity discovery.docs/runbooks/suspicious-activity-queries.md→ confirm §§ 1–5 have copy-pastablecurl/psqlblocks and escalation table.export INDEXER_URL=http://127.0.0.1:3001thencurl -sf "$INDEXER_URL/api/v1/traders/leaderboard?sort=volume_24h&limit=3".Security review — MR !969
Commit reviewed:
efc63a7b6b3f7da6666a0ad0afa4b2c8ac59b168Scope: Added/modified files in this MR —
docs/runbooks/suspicious-activity-queries.md, cross-links in incident/blacklist runbooks,skills/AGENTS_SUSPICIOUS_ACTIVITY_QUERIES.md,scripts/check_suspicious_activity_queries_docs.py,scripts/qa/verify-issue-437.sh, Makefile/doc index updates.Method: Diff review; traced operator-facing
curl/psql/ LCD recipes to sinks (indexer read APIs, Postgres SELECTs, LCD tx search). Compared patterns to existing runbooks (emergency-commands.md) and indexer controls (parameterized API queries, sort allowlists, rate limits inindexer/tests/security.rs). No prior security-review threads on this MR.Outcome:
FINDINGS: 0medium+Security review: no medium+ findings on this diff.
Summary
This MR adds operator discovery documentation and doc-invariant tooling only. It does not change indexer, frontend, or contract runtime code.
--data-urlencodeor path segments with bech32 placeholders. Doc checker reads fixed repo paths — no attacker-controlled input.DATABASE_URLshown aspostgresql://...placeholder;source indexer/.envmatches existing emergency runbook LocalTerra pattern.INDEXER_URL,LCD), not application sinks.Inline threads
None (no medium+ findings).
Automated security review workflow — SEC-G04 / #437
mentioned in issue #437
added 12 commits
main11666a00- Merge origin/main into issue-437-suspicious-activity-queriesCompare with previous version
Resolved merge conflicts with
main(merge commit11666a00).Files:
Makefile,docs/README.md,docs/testing.mdResolution: Kept both sides — SEC-G04
check-suspicious-activity-queries-docs/verify-issue-437from this branch, plusmain's incident-template (#439) and launch-monitoring (#434) doc targets and verify scripts.Sanity checks:
make check-suspicious-activity-queries-docs,make check-incident-template-docs, andmake check-launch-monitoring-docsall pass.Security review — MR !969
Commit reviewed:
11666a0059604777c00023628d12ed3e86ad6cc3Scope: Added/modified files in this MR —
docs/runbooks/suspicious-activity-queries.md, cross-links in incident/blacklist runbooks,skills/AGENTS_SUSPICIOUS_ACTIVITY_QUERIES.md,scripts/check_suspicious_activity_queries_docs.py,scripts/qa/verify-issue-437.sh, Makefile/doc index updates.Method: Full diff review on current MR head (includes merge from
mainsince prior review atefc63a7). Traced operator-facingcurl/psql/ LCD recipes to sinks (indexer read APIs, Postgres SELECTs, LCD tx search). Compared patterns to existing runbooks (emergency-commands.md) and indexer controls (indexer/src/api/compliance.rs, rate limits / sort allowlists inindexer/tests/security.rs). Re-read prior security-review note (2026-06-30,efc63a7) — no new attack surface in merge-only delta.Outcome:
FINDINGS: 0medium+Security review: no medium+ findings on this diff.
Summary
This MR adds operator discovery documentation and doc-invariant tooling only. It does not change indexer, frontend, or contract runtime code.
--data-urlencodeor path segments with bech32 placeholders. Doc checker reads fixed repo paths — no attacker-controlled input.DATABASE_URLshown aspostgresql://...placeholder;source indexer/.envmatches existing emergency runbook LocalTerra pattern.INDEXER_URL,LCD), not application sinks.Inline threads
None (no medium+ findings).
Automated security review workflow — SEC-G04 / #437
added 4 commits
main8de9d708- Merge origin/main into issue-437-suspicious-activity-queriesCompare with previous version
Resolved merge conflicts with
mainin Makefile and docs/testing.md.Both parallel doc targets are kept:
check-suspicious-activity-queries-docs,verify-issue-437check-anomaly-signals-docs,verify-issue-435Sanity:
make check-suspicious-activity-queries-docsandmake verify-issue-437pass locally.Security review — MR !969
Commit reviewed:
8de9d708e1e81796eeaf799d4ef81517d858e72bScope: Full MR diff at current head —
docs/runbooks/suspicious-activity-queries.md, cross-links in incident/blacklist runbooks,skills/AGENTS_SUSPICIOUS_ACTIVITY_QUERIES.md,scripts/check_suspicious_activity_queries_docs.py,scripts/qa/verify-issue-437.sh, Makefile/doc index updates. Merge delta since prior review (11666a00) isorigin/mainintegration only (anomaly-signals #435 targets); no new runtime code in this branch.Method: Diff review on head
8de9d708; traced operator-facingcurl/psql/ LCD recipes to sinks (indexer read APIs, Postgres SELECTs, LCD tx search). Compared patterns to existing runbooks (emergency-commands.md) and indexer controls (indexer/src/api/compliance.rs, sort allowlists / rate limits inindexer/tests/security.rs). Re-read prior security-review notes (2026-06-30,efc63a7and11666a00) — conclusions unchanged on current head.Outcome:
FINDINGS: 0medium+Security review: no medium+ findings on this diff.
Summary
This MR adds operator discovery documentation and doc-invariant tooling only. It does not change indexer, frontend, or contract runtime code.
--data-urlencodeor path segments with bech32 placeholders. Doc checker reads fixed repo paths — no attacker-controlled input.DATABASE_URLshown aspostgresql://...placeholder;source indexer/.envmatches existing emergency runbook LocalTerra pattern.INDEXER_URL,LCD), not application sinks.Inline threads
None (no medium+ findings).
Automated security review workflow — SEC-G04 / #437
added 5 commits
mainf28cdd4d- Merge origin/main into issue-437-suspicious-activity-queriesCompare with previous version
Resolved merge conflicts with
main(SEC-G03 pool triage, #436):.PHONY,lint, andhelptargets to include bothcheck-suspicious-activity-queries-docs/verify-issue-437(SEC-G04) andcheck-pool-triage-docs/verify-issue-436(SEC-G03).docs/templates/incident-dex-indexer.md— kept SEC-G04 tx-sample link on the existing checklist item and added the SEC-G03 top-pools-by-liquidity triage item.Sanity:
make check-suspicious-activity-queries-docs,make check-pool-triage-docs, andmake check-incident-template-docsall pass locally.Security review — MR !969
Commit reviewed:
f28cdd4d528882e1e93b49ea59a81f05af5f88c9Scope: Full MR diff at current head —
docs/runbooks/suspicious-activity-queries.md, cross-links in incident/blacklist runbooks,skills/AGENTS_SUSPICIOUS_ACTIVITY_QUERIES.md,scripts/check_suspicious_activity_queries_docs.py,scripts/qa/verify-issue-437.sh, Makefile/doc index updates. Merge delta since prior review (8de9d708) isorigin/mainintegration only (SEC-G03 pool triage #436 targets); no new runtime code in this branch.Method: Diff review on head
f28cdd4d; traced operator-facingcurl/psql/ LCD recipes to sinks (indexer read APIs, Postgres SELECTs, LCD tx search). Compared patterns to existing runbooks (emergency-commands.md) and indexer controls (indexer/src/api/compliance.rs, sort allowlists / rate limits inindexer/tests/security.rs). Re-read prior security-review notes (2026-06-30,efc63a7,11666a00,8de9d708) — conclusions unchanged on current head.Outcome:
FINDINGS: 0medium+Security review: no medium+ findings on this diff.
Summary
This MR adds operator discovery documentation and doc-invariant tooling only. It does not change indexer, frontend, or contract runtime code.
--data-urlencodeor path segments with bech32 placeholders. Doc checker reads fixed repo paths — no attacker-controlled input.DATABASE_URLshown aspostgresql://...placeholder;source indexer/.envmatches existing emergency runbook LocalTerra pattern.INDEXER_URL,LCD), not application sinks.Inline threads
None (no medium+ findings).
Automated security review workflow — SEC-G04 / #437
mentioned in commit
2f966c048fmentioned in merge request !972