Compliance

A signed evidence pack for every audit question.

Thulpar’s control catalogue is generated from the product’s own code. It is the same table the evidence packs are written from. Every control carries the rails and built-in features that implement it, its OWASP and MITRE ATLAS counterparts and seven regulation columns. An evidence pack reads the period’s ledger and marks each control implemented, partial or not configured.

26GR-* controls
19control families
7evidence profiles
9red-team suites
Evidence pack

Signed evidence packs in seven profiles, verified offline.

An evidence pack is produced per tenant, period and profile. The control catalogue carries each control’s status, the summary carries the period’s counts, and decisions.jsonl carries every decision with its hash. The auditor verifies the pack with the installation’s public key; no internet connection is needed.

See what a pack contains →
Evidence ledger

Every decision is written to the ledger with its hash.

An evidence pack reads the period’s ledger and marks each control implemented, partial or not configured. A skipped rail is recorded with the posture that was applied. The chain’s verification result travels inside the pack.

See the control catalogue →
Human oversight

Approvals are part of the evidence.

Actions above the threshold are referred to a person. The period’s approvals travel in approvals.jsonl: who, when, four-eyes, SLA, expiry. Human oversight is a verifiable record written to the ledger.

See the approval flow →
Evidence packs

Signed evidence packs in seven profiles, verified offline.

An evidence pack is produced per tenant, period and profile. The table below lists what it contains. The control catalogue carries each control’s status, the summary carries the period’s counts, and decisions.jsonl carries every decision with its hash. A skipped rail is recorded with the posture that was applied. The auditor verifies the pack with the installation’s public key. No internet connection is needed.

kvkk

KVKK evidence pack

6698 Art. 4, 6, 9, 12; the Generative AI, AI at Work and Agentic AI guides

bddk

BDDK evidence pack

Information Systems Regulation Art. 13, 25, 27; Banking Law Art. 73; audit-trail section

seddk

SEDDK evidence pack

Insurance and Private Pension Internal Systems Regulation

public-tr

Public-sector pack

Circular 2019/12; Information and Communication Security Guide; classification; 5-year retention

eu-ai-act

EU AI Act pack

Art. 9, 12, 14, 15, 50, 72–73; Annex IV technical documentation section

iso42001

ISO/IEC 42001 pack

Annex A control evidence; the 42005 impact-assessment context

dora

DORA pack

Art. 9 ICT risk; Art. 17–20 incident classification section; TLPT-aligned red-team report

filecontents
manifest.json / .sigthe pack’s identity: format, tenant, profile, period, policy versions, detector versions; Ed25519 signature
controls.md / .jsonthe catalogue’s profile column: every control’s status, its rails (mode, locked, served, findings, skips) and features
summary.md / .jsoncounts by kind, stage, decision, category and rail; rails skipped and not run; shadow decisions; approvals
decisions.jsonlevery event of the period in the contract’s shape, with its hash and the redacted sample while retained
chain-verify.txtthe verification result: event count, head hash, the period’s first and last hashes, anchors
approvals.jsonlthe period’s approvals: who, when, four-eyes, SLA, expiry
policy-versions/the pack documents in force: content hash, signer, signature
$ thulpar-evidence verify acme-bddk-2026-Q3.zip --public-key acme-signer.pub
manifest.sig ✓ (ed25519, keyId ins_7f2a:2026-10)   files 9/9 ✓   chain 184,221 events ✓   anchors 92 ✓
controls: 26 · implemented 21 · partial 3 · not_configured 2 (GR-A2A-01, GR-EXEC-01)
Control catalogue

26 controls, 19 families.

The catalogue is copied from the code that generates the product’s evidence packs. CI refuses a divergence between the two. The regulatory mapping is Thulpar’s engineering reading. It is not legal advice and does not replace the institution’s own compliance judgement.

InjectionINJ · 3

GR-INJ-01

Direct injection and jailbreak at the gate (TR+EN)

OWASP
LLM01 / ASI01 / MCP06
ATLAS
T0051, T0054, T0068
rails
injection.directjailbreak
features
—
KVKK
Generative AI Guide (safe use); Art. 12
BDDK
IS Reg. Art. 25 (system security); Art. 13 (unauthorised-access trails)
SEDDK
Internal Systems Reg. (information systems security)
Public sector · 2019/12
Circular 2019/12; the Guide (application security)
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.4, A.6.2.6
DORA
Art. 9(2)–(4)
GR-INJ-02

Indirect injection from tool/RAG output: untrusted label, no new tool call without policy

OWASP
LLM01, LLM08 / ASI01, ASI06 / MCP06, MCP10
ATLAS
T0051.001, T0080
rails
injection.indirectfile.hidden_text
features
—
KVKK
Agentic AI Guide
BDDK
IS Reg. Art. 25
SEDDK
Internal Systems Reg. (access control)
Public sector · 2019/12
the Guide (data integrity)
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.6
DORA
Art. 9(3)
GR-INJ-03

Over-defence FPR bound (NotInject + TR benign) in CI

OWASP
—
ATLAS
M0020
rails
—
features
redteam
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.4

Tool callsTOOL · 5

GR-TOOL-01

Tool-call privilege policy (default deny)

OWASP
LLM06 / ASI02, ASI03 / MCP02
ATLAS
T0053
rails
tool.authztool.args
features
—
KVKK
Agentic AI Guide (minimisation); Art. 4
BDDK
IS Reg. Art. 25, 27; Banking Law Art. 73
SEDDK
Internal Systems Reg. (authorisation)
Public sector · 2019/12
Circular 2019/12
EU AI Act
Art. 9, 14
ISO/IEC 42001
A.9.2, A.6.2.2
DORA
Art. 9(4)(c)
GR-TOOL-02

Durable human approval on high-impact actions, four eyes

OWASP
LLM06 / ASI02, ASI09
ATLAS
T0053
rails
labels.sink
features
approvals
KVKK
Agentic AI Guide (human oversight)
BDDK
IS Reg. (segregation of duties); Banking Law Art. 73
SEDDK
Internal Systems Reg. (segregation of duties)
Public sector · 2019/12
Agentic AI Guide (human oversight of public decisions)
EU AI Act
Art. 14
ISO/IEC 42001
A.9.2, A.9.4
DORA
Art. 9(4)
GR-TOOL-03

Tool schema pinning / diff / quarantine (rug-pull)

OWASP
LLM03 / ASI04 / MCP03, MCP04
ATLAS
T0110
rails
tool.schema_pin
features
schema_pin
BDDK
IS Reg. Art. 27 (outsourcing)
EU AI Act
Art. 15
ISO/IEC 42001
A.10.3
DORA
Art. 28–30
GR-TOOL-04

Tool description hygiene

OWASP
LLM03 / ASI04 / MCP03
ATLAS
T0110
rails
—
features
hygiene
EU AI Act
Art. 15
ISO/IEC 42001
A.10.3
DORA
Art. 28
GR-TOOL-05

SQL / command / path traversal / RFI / XSS injection in tool arguments (libinjection + OWASP CRS)

OWASP
LLM05 / ASI02, ASI05 / MCP05
ATLAS
T0053
rails
tool.args.injection
features
—
KVKK
Art. 12 (data security)
BDDK
IS Reg. Art. 25
SEDDK
Internal Systems Reg. (information security)
Public sector · 2019/12
Circular 2019/12; Information and Communication Security Guide
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.6
DORA
Art. 9(2)

Information flowIFC · 1

GR-IFC-01

Information-flow labels (integrity, confidentiality, tenant, PII class) enforced at sensitive sinks

OWASP
LLM02 / ASI01, ASI03 / MCP10
ATLAS
T0086, T0057
rails
labels.sinkpii.detect
features
—
KVKK
Art. 4, 12
BDDK
Banking Law Art. 73; IS Reg. Art. 25
SEDDK
Insurance Law Art. 31/A; KVKK Art. 6
Public sector · 2019/12
Circular 2019/12 (classification levels)
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.6, A.7.2
DORA
Art. 9(3)(a)

ExfiltrationEXF · 1

GR-EXF-01

Tenant egress allowlist; no remote images in chat; no PII in URLs; SSRF

OWASP
LLM02, LLM05 / ASI02 / MCP06
ATLAS
T0086
rails
exfiltool.argsfile.qr
features
egress_guard
KVKK
Art. 9 (cross-border transfer); Art. 12
BDDK
IS Reg. Art. 25
SEDDK
KVKK Art. 9
Public sector · 2019/12
Circular 2019/12 (data leaving the institution)
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.6
DORA
Art. 9(3)

Personal dataPII · 1

GR-PII-01

PII and special-category detection + masking (TCKN, IBAN, phone, health) on input/tool/output/log

OWASP
LLM02 / — / MCP10
ATLAS
T0057
rails
pii.detectpii.redactfile.metadata_pii
features
—
KVKK
Art. 6 (special categories), 12
BDDK
Banking Law Art. 73 (customer secrecy); KVKK Art. 6
SEDDK
KVKK Art. 6 (health data); Insurance Law Art. 31/A
Public sector · 2019/12
KVKK Art. 6, 12
EU AI Act
Art. 10, 12
ISO/IEC 42001
A.7.2
DORA
Art. 9(3)(b)

System promptSYS · 1

GR-SYS-01

System-prompt leak + canary

OWASP
LLM07 / ASI01
ATLAS
T0056
rails
system_prompt.leak
features
—
BDDK
IS Reg. Art. 25
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.6

OutputOUT · 1

GR-OUT-01

Output handling: no raw HTML, code sandbox, schema validation

OWASP
LLM05 / ASI05 / MCP05
ATLAS
T0053
rails
codeschemaregexsecretsfile.analyzefile.typefile.active_contentyara
features
—
BDDK
IS Reg. Art. 25
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.6

ExecutionEXEC · 1

GR-EXEC-01

Isolated sandbox for code/MCP (gVisor/Kata; Wasm plugin)

OWASP
— / ASI05 / MCP05, MCP09
ATLAS
T0053
rails
code
features
sandbox
BDDK
IS Reg. Art. 25
EU AI Act
Art. 15
DORA
Art. 9(2)

IdentityID · 2

GR-ID-01

Cryptographic workload identity for agents/tools at run time (SPIFFE)

OWASP
— / ASI03 / MCP01, MCP07
ATLAS
T0108
rails
—
features
workload_identity
BDDK
IS Reg. Art. 25, 27
EU AI Act
Art. 15
DORA
Art. 9(4)(d)
GR-ID-02

MCP gateway as OAuth 2.1 resource server: audience, no token passthrough, scope minimisation

OWASP
— / ASI03 / MCP01, MCP02, MCP07
ATLAS
T0108
rails
—
features
mcp_gateway
EU AI Act
Art. 15
ISO/IEC 42001
A.10.3
DORA
Art. 9(4)(d)

Tenant isolationTEN · 1

GR-TEN-01

Tenant isolation across retrieval, credentials, memory, logs + canary tests

OWASP
LLM08, LLM02 / ASI03, ASI06 / MCP10
ATLAS
T0085
rails
—
features
tenancy
KVKK
Art. 12
BDDK
IS Reg. Art. 25
SEDDK
Internal Systems Reg. (access control)
Public sector · 2019/12
the Guide (access control)
EU AI Act
Art. 15
ISO/IEC 42001
A.6.2.6
DORA
Art. 9(4)(c)

MemoryMEM · 1

GR-MEM-01

Memory-poisoning policy + provenance

OWASP
— / ASI06 / MCP10
ATLAS
T0080.001
rails
memory.write
features
—
KVKK
Agentic AI Guide
EU AI Act
Art. 15
ISO/IEC 42001
A.7.5

Agent to agentA2A · 1

GR-A2A-01

Agent-to-agent message identity, labels and limits

OWASP
— / ASI07, ASI10
ATLAS
T0118
rails
—
features
a2a
EU AI Act
Art. 15

Resource limitsRES · 1

GR-RES-01

Per-run rate/cost/loop limits, circuit breaker

OWASP
LLM10 / ASI08
ATLAS
T0124
rails
budget
features
admission
BDDK
IS Reg. (continuity)
EU AI Act
Art. 15
DORA
Art. 9(2) (kapasite)

ContentCONT · 1

GR-CONT-01

Content-harm policy (AILuminate 12 + TR) with tenant thresholds

OWASP
LLM09 / ASI09
ATLAS
M0020
rails
content.inputcontent.outputtoxicitytopicgroundednesslanguageimage.content_safetybanlistcompetitors
features
—
KVKK
Generative AI Guide
BDDK
KVKK Generative AI Guide; IS Reg. (customer interaction)
SEDDK
KVKK Generative AI Guide
Public sector · 2019/12
the Guide; public-service principles
EU AI Act
Art. 9
ISO/IEC 42001
A.9.2, A.9.4

TransparencyTRANS · 1

GR-TRANS-01

AI disclosure: chat + voice

OWASP
— / ASI09
ATLAS
—
rails
conversation
features
disclosure
KVKK
Art. 10 (disclosure); Generative AI Guide (transparency)
BDDK
KVKK Art. 10
SEDDK
KVKK Art. 10
Public sector · 2019/12
KVKK Art. 10; Agentic AI Guide
EU AI Act
Art. 50
ISO/IEC 42001
A.8.2, A.8.3

LoggingLOG · 1

GR-LOG-01

Tamper-evident event log (model/tool/policy/approval/hit), ≥ 6 months, auditor export

OWASP
— / — / MCP08
ATLAS
—
rails
—
features
ledgeranchorsexport
KVKK
Art. 12
BDDK
IS Reg. Art. 13 (audit trails ≥ 5 years)
SEDDK
Internal Systems Reg. (audit trails)
Public sector · 2019/12
the Guide (record management)
EU AI Act
Art. 12, 26(6)
ISO/IEC 42001
A.6.2.8
DORA
Art. 9(2), 17

Red teamRT · 1

GR-RT-01

Continuous red-teaming (ASR + utility threshold as a deploy gate)

OWASP
all
ATLAS
all
rails
—
features
redteam
BDDK
IS Reg. (penetration testing)
EU AI Act
Art. 9, 15, 72
ISO/IEC 42001
A.6.2.4
DORA
Art. 24–26 (TLPT)

IncidentINC · 1

GR-INC-01

Incident taxonomy (art. 73, DORA, KVKK 72 hours) evidence pack

OWASP
— / ASI08 / MCP08
ATLAS
—
rails
—
features
ledgerexport
KVKK
Art. 12(5) (72-hour notification)
BDDK
Banking Law Art. 73; IS Reg. (incident management)
SEDDK
Internal Systems Reg. (incident management); KVKK Art. 12(5)
Public sector · 2019/12
the Guide (incident management); KVKK Art. 12(5)
EU AI Act
Art. 73
ISO/IEC 42001
A.8.4
DORA
Art. 17–20

GovernanceGOV · 1

GR-GOV-01

Versioned, signed policy packs; ISO 42001 / Annex IV / BDDK / DORA evidence export

OWASP
—
ATLAS
—
rails
—
features
signingexport
KVKK
VERBİS; Art. 12
BDDK
IS Reg. (policies and procedures)
SEDDK
Internal Systems Reg. (internal control)
Public sector · 2019/12
the Guide (policy management)
EU AI Act
Art. 9, 11, 17
ISO/IEC 42001
A.2.2, A.3.2, A.6.1.2
DORA
Art. 5, 6
Red team

A failing benchmark blocks policy activation.

Nine suites (the Turkish pack, promptfoo, PyRIT, garak) run against attack-success-rate and utility thresholds. Results are written to the ledger as benchmark events bound to a policy version. The console shows drift between versions. A policy pack with a failing benchmark cannot be activated. The nightly run executes every suite and publishes the results.

9suites
4frameworks: the TR pack, promptfoo, PyRIT, garak
2thresholds: attack success rate and utility
Retention and deletion

Content is deleted, the hash chain remains.

Redacted samples are deleted at the end of the retention period. The chain is untouched. A tenant leaving is one command, and it produces a signed certificate of deletion. KVKK Art. 7 and the sector retention floors are set per pack. The floor is 5 years for BDDK and the public sector and 10 years for defence.

See it in your own environment.

A one-hour technical demo: your scenario, your policy pack, on a closed-circuit install. Then the install kit and a trial licence for a pilot.