By · Last updated 2026-05-28

Risk Assessment

Document ID: ISMS-POL-004
Version: 1.0
Assessment Date: December 29, 2025
Next Review: June 29, 2026
Classification: Internal

1. Purpose#

This Risk Assessment identifies, analyzes, and evaluates information security risks to anonym.legal. It provides the basis for risk treatment decisions and security control implementation.

2. Scope#

This assessment covers:

  • Information assets (customer data, system configurations, code)
  • Technical infrastructure (servers, databases, networks)
  • Application security (frontend, backend services)
  • Operational processes (deployment, monitoring, support)

3. Risk Assessment Methodology#

3.1 Risk Calculation#

Risk = Likelihood × Impact

3.2 Likelihood Scale#

RatingDescriptionProbability
1Rare< 1% per year
2Unlikely1-10% per year
3Possible10-50% per year
4Likely50-90% per year
5Almost Certain> 90% per year

3.3 Impact Scale#

RatingDescriptionBusiness Impact
1NegligibleMinimal disruption, no data loss
2MinorLimited disruption, minor data exposure
3ModerateSignificant disruption, moderate data exposure
4MajorSevere disruption, significant data breach
5CriticalBusiness threatening, massive data breach

3.4 Risk Matrix#

Impact 1Impact 2Impact 3Impact 4Impact 5
Likelihood 5MediumMediumHighCriticalCritical
Likelihood 4LowMediumMediumHighCritical
Likelihood 3LowLowMediumMediumHigh
Likelihood 2LowLowLowMediumMedium
Likelihood 1LowLowLowLowMedium

4. Asset Inventory#

4.1 Information Assets#

AssetClassificationOwnerLocation
Customer PIIConfidentialPlatformDatabase (relational database)
User CredentialsConfidentialPlatformDatabase (hashed)
Encryption KeysConfidentialCustomerDatabase (encrypted)
API TokensConfidentialCustomerDatabase (hashed)
Application CodeInternalDevelopmentServer/Repository
System ConfigurationsInternalOperationsServer
LogsInternalOperationsServer

4.2 Technical Assets#

AssetTypeLocationCriticality
Web ServerInfrastructureHetzner CloudHigh
Database ServerInfrastructureHetzner CloudCritical
Presidio ServicesApplicationHetzner CloudHigh
Frontend ApplicationApplicationHetzner CloudHigh

5. Threat Identification#

5.1 External Threats#

ThreatDescription
Cyber AttacksTargeted attacks, hacktivism
DDoSDistributed denial of service
MalwareRansomware, trojans
Social EngineeringPhishing, pretexting
Data TheftIntellectual property theft

5.2 Internal Threats#

ThreatDescription
Insider ThreatMalicious or negligent insiders
Human ErrorMisconfiguration, accidental disclosure
Process FailureInadequate procedures

5.3 Environmental Threats#

ThreatDescription
Hardware FailureServer/storage failure
Network FailureConnectivity issues
Power FailureData center power issues
Natural DisasterFire, flood, earthquake

6. Risk Register#

6.1 Critical Risks#

IDRiskLikelihoodImpactRisk LevelTreatment
R001Customer data breach via SQL injection25MediumMitigate: Secure ORM, parameterized queries
R002Credential theft via brute force34MediumMitigate: Account lockout, 2FA
R003Service outage due to DDoS33MediumMitigate: Rate limiting, Hetzner DDoS protection

6.2 High Risks#

IDRiskLikelihoodImpactRisk LevelTreatment
R004Unauthorized admin access24MediumMitigate: SSH keys, 2FA, audit logging
R005Data exposure via API vulnerability24MediumMitigate: JWT auth, feature gating, rate limiting
R006Encryption key compromise15MediumMitigate: AES-256-GCM, key per user, secure storage

6.3 Medium Risks#

IDRiskLikelihoodImpactRisk LevelTreatment
R007Session hijacking23LowMitigate: Secure cookies, JWT, HTTPS
R008XSS vulnerability23LowMitigate: CSP, frontend framework auto-escaping
R009Dependency vulnerability42MediumMitigate: npm audit, regular updates
R010Data loss due to backup failure24MediumMitigate: Hetzner snapshots, tested recovery

6.4 Low Risks#

IDRiskLikelihoodImpactRisk LevelTreatment
R011Minor service degradation31LowAccept: Monitoring, auto-restart
R012Non-critical feature unavailable31LowAccept: Graceful degradation

7. Risk Treatment#

7.1 Treatment Options#

OptionDescriptionWhen to Use
MitigateImplement controls to reduce riskRisk exceeds tolerance
TransferInsurance, outsourcingCannot fully mitigate
AcceptAcknowledge and monitorRisk within tolerance
AvoidEliminate risk sourceRisk too high, cannot mitigate

7.2 Implemented Controls#

Risk IDControlStatusEffectiveness
R001Secure ORM (parameterized queries)✅ ImplementedHigh
R002Account lockout (5 attempts/30 min)✅ ImplementedHigh
R002Password complexity (12+ chars)✅ ImplementedHigh
R0022FA support (TOTP/Email)✅ ImplementedHigh
R003Rate limiting✅ ImplementedMedium
R004SSH key authentication✅ ImplementedHigh
R004Brute force protection✅ ImplementedHigh
R005JWT authentication✅ ImplementedHigh
R005Feature gating✅ ImplementedHigh
R006AES-256-GCM encryption✅ ImplementedHigh
R007Secure cookies (HttpOnly, Secure)✅ ImplementedHigh
R007HTTPS only (TLS 1.2+)✅ ImplementedHigh
R008Content Security Policy✅ ImplementedHigh
R009npm audit in CI✅ ImplementedMedium
R010Hetzner cloud snapshots✅ ImplementedHigh

8. Residual Risk#

After implementing controls, the following residual risks remain:

Risk IDOriginal LevelResidual LevelNotes
R001MediumLowSecure ORM prevents SQL injection
R002MediumLowMultiple controls in place
R003MediumLowRate limiting + provider protection
R004MediumLowSSH keys + brute force protection
R005MediumLowJWT + feature gating
R006MediumLowStrong encryption, key isolation
R009MediumLowRegular updates, dev deps only

9. Risk Monitoring#

9.1 Key Risk Indicators (KRIs)#

KRIThresholdMonitoring Frequency
Failed login attempts> 100/dayDaily
API error rate> 5%Real-time
Vulnerability count (high/critical)> 0 in prod depsWeekly
Service availability< 99.9%Real-time
Security incidentsAny P1/P2Immediate

9.2 Review Schedule#

ActivityFrequency
Risk register reviewQuarterly
Full risk assessmentAnnually
Control effectiveness reviewBi-annually
Threat landscape reviewQuarterly

10. Document Control#

VersionDateAuthorChanges
1.02025-12-29Security TeamInitial release

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.