TILLSHIELD · TILLTELL

Every attack has a tell.

GA

TillTell is the detection engine inside TillShield. Every Till product already keeps a server-side record of who did what: sign-ins and second factors in TillAuth, keys and roles in the workspace, secret reads in TillSecrets, pushes and protection changes in TillForge, backup deletions in TillArk, and the edge decisions TillGate makes. TillTell puts those records on one stream and reads them with a library of rules, each tied to a MITRE ATT&CK technique. Nothing to install, nothing to ship: it runs on the workspace you already have.

01The stream

What TillTell sees

Each product writes an event with the same shape: who (a user, a service or an unknown caller, with the address and country when known), did what (an action such as auth.login_failed or secret.reveal), to what, with what outcome. Two fields matter for trust:

  • trust is server when a Till service recorded the event itself and client when an app SDK reported it. Most library rules demand server evidence; a rule that would revoke or block never fires on a client-reported record.
  • drill marks traffic from a labelled exercise. Drill findings prove a rule sees the pattern; they never alert and never count toward a rule’s record.

Events are kept for detection and hunting for the workspace’s retention tier: 30, 90 or 400 days. Change it under Shield → Settings → TillTell; it applies to events recorded from then on.

02The library

The rules that ship

Every rule names the ATT&CK technique it covers, the false positives to expect, a playbook it would suggest, and fixtures that must both fire and stay quiet before it ships. Some rules match one event; others correlate a burst, an order of events, a count of distinct values or a first-time value per account. The library today:

RuleWhat it seesATT&CK
tell-cred-stuffing20+ failed logins from one address in 5 minT1110.004
tell-account-brute-force10+ failed logins on one account in 10 minT1110.001
tell-login-new-countrya sign-in from a country the account has not used in 30 daysT1078
tell-mfa-fatigue5+ failed or denied second-factor prompts in 10 minT1621
tell-mfa-removeda second factor disabledT1556.006
tell-password-then-mfa-removedpassword changed, then a factor removed, within an hourT1098
tell-credential-burst5+ keys or tokens minted by one actor in an hourT1098.001
tell-admin-role-granteda member moved to owner or adminT1098
tell-sso-trust-changedthe identity-provider trust changedT1484.002
tell-secret-mass-read25+ distinct secrets read by one actor in 10 minT1552
tell-secret-exportan environment pushed out or a data exportT1567
tell-history-rewritea force pushT1565.001
tell-branch-protection-droppedprotection removed from a branchT1685
tell-backup-retention-cuta person shortened backup retentionT1490
tell-backup-mass-delete3+ backups deleted by one person in an hourT1490
tell-edge-block-storm50+ edge blocks for one address in 5 minT1499.003
tell-device-compromiseda rooted or jailbroken device, high confidence (client)T1404 (Mobile)
tell-cert-pinning-wave10+ sessions of one project failing pinning in 15 min (client)T1638 (Mobile)
tell-session-thefta refresh token replayed from a second placeT1539
tell-scim-mass-deprovision10+ users removed through provisioning in 10 minT1531
tell-token-refused-burst5+ credential refusals for one actor in 10 minT1550.001

Open any rule in the library page or with tilldev shield tell rules show to read its YAML, its fixtures and its record in your workspace.

03Lifecycle

Stages: a rule earns its way

Every rule is at one of four stages in your workspace. New library rules start in shadow.

StageWhat the rule may do
draftNothing is recorded. Leaving draft needs the rule’s fixtures to pass.
shadowFindings are recorded on the TillTell page and never alert. Watch it here first.
advisoryFindings are recorded and alert; the rule suggests nothing.
liveFindings alert and carry the rule’s suggested playbook.

Owners and admins move rules up. The system only ever moves a rule down, and only for one reason: too many false positives. When 20% or more of the last 20 triaged findings were judged false positive or benign (once at least 10 have been triaged), the rule falls back to shadow and the move is written to the workspace audit log with the numbers behind it.

Unattended playbooks

A live rule may run its playbook without a person once it has earned it: 30 or more triaged findings, 5% or fewer false positives, and none in the last 10. Even then two humans stand in the way: the workspace switch under Shield → Settings → TillTell must be on, and an owner or admin confirms automation for that rule. A demotion clears the confirmation. Both thresholds can be overridden per workspace and per rule through the API.

04Verdicts

Triage feeds the lifecycle

Every finding takes a verdict from any member of the workspace. Verdicts are appended, never edited, so a rule’s record is a history nobody can tidy up after the fact.

VerdictMeansEffect
true_positiveAn attack or a policy breach.The finding stays open as triaged; counts for the rule.
false_positiveThe rule was wrong.The finding closes; counts against the rule.
benignMatched as written, nothing hostile.The finding closes; counts against the rule as noise.
duplicateAlready covered by another finding.The finding closes; no signal either way.
Drill findings
Findings from a labelled drill cannot be triaged and never enter the arithmetic. They exist to show the rule saw the exercise.
05Coverage

The ATT&CK map, scored honestly

Shield → TillTell → Coverage lays out the MITRE ATT&CK Enterprise and Mobile matrices by tactic and scores every technique against the rules running in your workspace. A rule counts once it is out of draft; a draft runs nowhere, so it covers nothing.

CellWhat it claims
No ruleNothing in your library is tagged with this technique, or every rule that is sits in draft.
Some sub-techniquesThe technique has no rule of its own, but rules cover some of its sub-techniques.
RuleA running rule is tagged with it, or rules cover every sub-technique. The rule exists; nothing yet shows it fires.
Proven by drillA defense drill ran a safe copy of the technique through your stack and the rule fired. The only strong claim the map makes, dated.

What your sources can see

ATT&CK says which kinds of records each technique is detected from. TillTell checks that against the Till products that have written to your security stream in the last 90 days. Techniques none of them can see are faded rather than counted as gaps, and the ones they can see with no running rule are listed as gaps, each naming the Till product whose records would make it visible. Process injection, in-memory malware and other endpoint-only techniques stay faded until an endpoint source exists: the map never claims what the stream cannot observe.

Catalogue
The map is pinned to ATT&CK v19.2 (Enterprise and Mobile). A newer release reaches TillTell only after every library rule’s tags resolve against it. MITRE’s notice is printed beneath the map and on the attributions page.
06CLI and API

From the terminal

bash
# what fired, newest first (open findings by default)
tilldev shield tell findings
tilldev shield tell findings --rule tell-cred-stuffing --stage live --json

# read one, with its record and evidence, then judge it
tilldev shield tell finding <id>
tilldev shield tell verdict <id> fp --note "shared office egress during a password reset"

# the library as your workspace runs it
tilldev shield tell rules ls
tilldev shield tell rules show tell-secret-mass-read
tilldev shield tell rules stage tell-cred-stuffing advisory --reason "two weeks clean in shadow"
tilldev shield tell rules automate tell-cred-stuffing

# the ATT&CK map, and the techniques you can see but don't cover
tilldev shield tell coverage
tilldev shield tell coverage --domain mobile
tilldev shield tell coverage --gaps

# retention and the unattended-playbook switch
tilldev shield tell settings
tilldev shield tell settings set --retention long --automation

The same operations are on the HTTP API under /api/shield/tell/…, documented in the API reference. Stage changes, automation confirmations, verdicts and settings changes all land in the workspace audit log.