Back to Intelligence

'Password1' Breach: ICO Slams Welsh Data Unit After Ransomware Exposed Children's Data — Credential Hardening & Detection Guide

SA
Security Arsenal Team
October 21, 2026
11 min read

In a case that will be cited in security awareness training for years, the UK Information Commissioner's Office (ICO) has formally reprimanded the Welsh local government data unit and its IT service provider following a 2024 encryption-based cyber attack that resulted in the theft of children's data. The root cause, as reported by Infosecurity Magazine, is almost too simple to believe: attackers compromised an account protected with the password 'Password1'.

Let that sink in. A literal textbook example of a weak password — one that appears in virtually every password dictionary and brute-force list on the planet — was the single barrier between threat actors and sensitive data belonging to children. Once inside, the attackers deployed encryption-based malware (ransomware), locked down systems, and exfiltrated data before or during the encryption event.

The ICO's criticism was not limited to the weak credential itself. It targeted systemic security failings at both the data unit and its IT service provider — which means we should read this as a governance and defense-in-depth failure, not a single user's bad decision. Weak passwords survive in environments where nobody is auditing for them, where MFA is absent or selectively deployed, and where service providers are not held to contractual security baselines.

For defenders, the urgency is real: the same access brokers and ransomware affiliates scanning UK local government are scanning your environment too. If an account with a trivially guessable password exists anywhere in your estate — especially on a remote access service, VPN, or privileged account — you are one credential-guessing session away from the same headline.

Technical Analysis: Anatomy of the Intrusion

What We Know

  • Victim: Welsh local government data unit (a shared data processing body for Welsh councils) and its contracted IT service provider.
  • Initial access vector: Compromise of an account with the password 'Password1'. No CVE is associated with this incident — this was pure credential-based intrusion, consistent with MITRE ATT&CK T1078 (Valid Accounts) and very likely T1110 (Brute Force / Password Guessing) as the discovery mechanism.
  • Impact: Encryption of systems (ransomware-style destructive/encryption phase, ATT&CK T1486 — Data Encrypted for Impact) and exfiltration of children's personal data (T1041 — Exfiltration Over C2 Channel or similar).
  • Regulatory outcome: ICO reprimand citing security failings by both the data controller-side unit and the IT provider.

Attack Chain (Reconstructed from a Defender's Perspective)

  1. Reconnaissance & Access Discovery: Attackers identified an externally reachable authentication surface — VPN, RDP, webmail/OWA, or a remote management portal. In our IR casework, RDP and VPN portals remain the top initial access vectors for ransomware against UK public sector targets.
  2. Credential Compromise: 'Password1' does not require a password spray campaign. It falls to a single-threaded dictionary attempt or even manual guessing. If the account lacked MFA — which the ICO's findings strongly imply — a single correct guess equals full access.
  3. Establishment & Expansion: With valid credentials, attackers blend in. They enumerate the environment, identify file shares and databases containing personal data, and stage tooling. The dwell time in similar local government intrusions we have worked has ranged from days to weeks.
  4. Exfiltration: Children's data was stolen — meaning exfiltration occurred before or alongside encryption. Modern ransomware affiliates exfiltrate first, encrypt second, to enable double-extortion leverage.
  5. Encryption: Systems were encrypted, causing operational disruption and triggering the incident response and regulatory notification chain that ultimately led to the ICO investigation.

Why 'Password1' Gets In

'Password1' satisfies naive complexity requirements on many systems: it is 9+ characters, contains uppercase, lowercase, and a digit. Legacy password policies that check composition but not breached-password or banned-password lists will happily accept it. This is exactly why NIST SP 800-63B recommends screening candidate passwords against known-compromised lists rather than relying solely on composition rules — and why Microsoft's banned password list in Entra ID Password Protection exists.

Exploitation Status

There is no CVE, PoC, or KEV entry here — because none is needed. Valid-account intrusion with weak credentials remains one of the most reliably exploited 'vulnerabilities' in existence, and it is unpatched in any environment that has not audited its credential hygiene. CISA, the NCSC, and every major incident response retainer firm (ours included) continue to see valid accounts as a top-three initial access vector in ransomware engagements through 2025 and into 2026.

Detection & Response

The detections below target the observable behaviors in this attack chain: password guessing against external surfaces, anomalous successful authentication following failures, and mass-encryption behavior. These are tuned to fire on attacker behavior, not routine administration.

YAML
---
title: Password Guessing Followed by Successful Logon (Same Source, Same Account)
id: 3f8a2c71-9b4e-4d5a-b6c7-2e1f9a8d3c5b
status: experimental
description: Detects multiple failed logons for a single account from a single source IP followed by a successful logon within a short window — consistent with dictionary-based credential guessing such as the 'Password1' compromise in the Welsh data unit breach.
references:
  - https://attack.mitre.org/techniques/T1110/003/
  - https://attack.mitre.org/techniques/T1078/
author: Security Arsenal
date: 2026/02/14
tags:
  - attack.credential_access
  - attack.t1110.003
  - attack.initial_access
  - attack.t1078
logsource:
  product: windows
  service: security
detection:
  selection_failed:
    EventID: 4625
  selection_success:
    EventID: 4624
    LogonType:
      - 3
      - 10
  condition: selection_failed | count() by TargetUserName, IpAddress > 10
falsepositives:
  - Users mistyping passwords repeatedly before succeeding
  - Misconfigured service accounts with stale credentials
level: high
---
title: RDP or Network Logon from Rare External Source
title_note: Successful remote authentication from an IP with no prior history
id: 8d4e6f12-3a5b-4c7d-9e8f-1a2b3c4d5e6f
status: experimental
description: Detects successful RDP (LogonType 10) or network logons sourced from external IP addresses. Valid-account intrusions with guessed credentials typically originate from IPs with no baseline history in the environment.
references:
  - https://attack.mitre.org/techniques/T1078/
  - https://attack.mitre.org/techniques/T1021/001/
author: Security Arsenal
date: 2026/02/14
tags:
  - attack.lateral_movement
  - attack.t1021.001
  - attack.initial_access
  - attack.t1078
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 4624
    LogonType:
      - 3
      - 10
  filter_private:
    IpAddress|startswith:
      - '10.'
      - '172.16.'
      - '172.17.'
      - '172.18.'
      - '172.19.'
      - '172.2'
      - '172.30.'
      - '172.31.'
      - '192.168.'
      - '127.'
      - '-'
  condition: selection and not filter_private
falsepositives:
  - Legitimate remote administration via jump hosts (whitelist known admin source IPs)
  - VPN-assigned addresses if not logged as private ranges
level: medium
---
title: Mass File Rename Consistent with Ransomware Encryption
id: 5c2b9e47-1f6a-4d8b-a3c9-7e4f2b1d8a6c
status: experimental
description: Detects a high volume of file rename/write operations by a single process in a short window — the hallmark of the encryption phase seen in the Welsh data unit incident. Tune threshold to environment baseline.
references:
  - https://attack.mitre.org/techniques/T1486/
author: Security Arsenal
date: 2026/02/14
tags:
  - attack.impact
  - attack.t1486
logsource:
  category: file_event
  product: windows
detection:
  selection:
    TargetFilename|endswith:
      - '.locked'
      - '.encrypted'
      - '.enc'
      - '.crypt'
      - '.crypted'
      - '.ryuk'
      - '.lockbit'
      - '.blackcat'
  selection_note:
    TargetFilename|contains: 'RECOVER'
  condition: selection or selection_note | count() by Image > 50
falsepositives:
  - Legitimate backup or archive software performing bulk operations
  - DLP/encryption-at-rest tooling
level: critical
KQL — Microsoft Sentinel / Defender
// Hunt: credential-guessing pattern — burst of failures then a success on the same account
// Ingest via SecurityEvent (Windows) or CommonSecurityLog (VPN/firewall auth logs)
let window = 30m;
let threshold = 10;
let failures = SecurityEvent
| where EventID == 4625
| where TimeGenerated > ago(24h)
| summarize FailCount = count(), FirstFail = min(TimeGenerated), LastFail = max(TimeGenerated)
    by TargetAccount, IpAddress, Computer
| where FailCount >= threshold;
SecurityEvent
| where EventID == 4624
| where LogonType in (3, 10)
| where TimeGenerated > ago(24h)
| join kind=inner (failures) on TargetAccount, IpAddress
| where TimeGenerated between (FirstFail .. LastFail + window)
| project SuccessTime = TimeGenerated, TargetAccount, IpAddress, Computer,
          LogonType, FailCount, FirstFail, LastFail
| order by SuccessTime desc;
KQL — Microsoft Sentinel / Defender
// Hunt: authentication from IPs with no 30-day baseline history (valid-account intrusion)
let baseline = SecurityEvent
| where TimeGenerated between (ago(30d) .. ago(1d))
| where EventID == 4624 and LogonType in (3, 10)
| summarize by IpAddress;
SecurityEvent
| where TimeGenerated > ago(24h)
| where EventID == 4624 and LogonType in (3, 10)
| where isnotempty(IpAddress)
| where IpAddress !in (baseline)
| where ipv4_is_private(IpAddress) == false
| summarize FirstSeen = min(TimeGenerated), Accounts = make_set(TargetAccount),
            Hosts = make_set(Computer), EventCount = count() by IpAddress
| order by FirstSeen desc;
VQL — Velociraptor
-- Hunt for ransomware staging indicators: vssadmin shadow deletion and
-- suspicious processes executing from user-writable directories
SELECT Pid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(?i)vssadmin.*(delete|resize).*shadow'
   OR CommandLine =~ '(?i)bcdedit.*(recoveryenabled|bootstatuspolicy)'
   OR Exe =~ '(?i)(Users\\\\[^\\\\]+\\\\(AppData|Downloads|Temp)|ProgramData)\\\\[^\\\\]+\\.exe$'
PowerShell
# Credential Hygiene Audit & Hardening — run on a Domain Controller or admin workstation
# 1) Flag accounts whose passwords have never been changed or are extremely old
Get-ADUser -Filter {Enabled -eq $true} -Properties PasswordLastSet, PasswordNeverExpires |
  Where-Object { $_.PasswordLastSet -eq $null -or
                 $_.PasswordLastSet -lt (Get-Date).AddDays(-365) -or
                 $_.PasswordNeverExpires -eq $true } |
  Select-Object SamAccountName, PasswordLastSet, PasswordNeverExpires |
  Export-Csv -Path .\stale-password-accounts.csv -NoTypeInformation

# 2) Enforce a modern fine-grained password policy (14+ chars, per NCSC/NIST guidance)
New-ADFineGrainedPasswordPolicy -Name "Org-Strong-Password-Policy" `
  -Precedence 1 -MinPasswordLength 14 -ComplexityEnabled $true `
  -ReversibleEncryptionEnabled $false -LockoutThreshold 10 `
  -LockoutDuration "00:30:00" -LockoutObservationWindow "00:30:00" `
  -Description "Baseline policy — pair with banned-password screening (Entra Password Protection / Lithnet)"

# 3) Audit for accounts NOT requiring Kerberos pre-authentication (AS-REP roastable)
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties DoesNotRequirePreAuth |
  Select-Object SamAccountName, DoesNotRequirePreAuth

# 4) Verify MFA enforcement on remote access — list users with RDP access to internet-facing hosts
Get-NetFirewallRule -DisplayGroup "Remote Desktop" |
  Where-Object { $_.Enabled -eq 'True' -and $_.Profile -match 'Any|Public' } |
  Select-Object DisplayName, Enabled, Profile, Direction, Action

# 5) Disable NTLMv1 and legacy protocols that weaken credential protections
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
  -Name "LmCompatibilityLevel" -Value 5
Write-Output "Review stale-password-accounts.csv — force resets and enroll in MFA."

Remediation: Closing the Gaps the ICO Found

There is no vendor patch for this incident class — remediation is architectural and procedural. These are the controls that would have prevented or contained this breach, prioritized by impact:

  1. Mandate MFA on every remote access path — no exceptions. VPN, RDP gateways, webmail, remote management tooling, and third-party service provider access. The ICO's findings implicitly condemn any environment where a guessed password alone yields access. Per CISA and NCSC guidance, phishing-resistant MFA (FIDO2/passkeys) is the target state for privileged and remote accounts.
  2. Screen passwords against banned and breached lists. Deploy Microsoft Entra Password Protection (extends to on-prem AD via agents) or an equivalent such as Lithnet Password Protection. 'Password1' and its thousands of variants must be rejected at set-time, not discovered post-breach. This aligns with NIST SP 800-63B §5.1.1.2 and NCSC password guidance.
  3. Run continuous weak-credential audits. Quarterly (minimum) password audits using offline cracking of AD hashes in a controlled manner — any cracked credential triggers an immediate forced reset. In our experience, 5–15% of accounts fall within hours in unaudited environments.
  4. Enforce account lockout and throttling on external surfaces. The dictionary attempt that lands 'Password1' should trip lockout or rate-limiting long before success. Pair with CAPTCHA or proof-of-work on web portals.
  5. Eliminate or gate direct RDP exposure. Move remote administration behind a VPN plus a PAM/jump-host model. Alert on any external RDP that bypasses the jump host.
  6. Hold service providers to contractual security baselines. The ICO reprimanded both the data unit and its IT provider. Contracts must specify MFA requirements, patching SLAs, audit rights, and incident notification timelines. Audit compliance annually — trust is not a control.
  7. Protect the data, not just the perimeter. Children's data warranted encryption at rest, strict access controls, and DLP/exfiltration monitoring. Assume credential compromise and design so that one account does not equal one breach.
  8. Test your detection of the encryption phase. VSS deletion, mass renames, and ransom-note drops are highly detectable. If your EDR would not have caught the encryption in progress, that is a finding — remediate it this quarter.
  9. Rehearse the regulatory clock. UK GDPR breach notification to the ICO is 72 hours. Run a tabletop that includes the regulatory workstream — most organizations discover gaps in legal/comms coordination during live incidents, not exercises.

Immediate action for any public sector or MSP-supported environment: run the stale-password audit above this week, confirm MFA coverage on 100% of externally reachable authentication surfaces, and add the failed-then-successful-logon correlation to your SIEM. These three steps directly counter the exact attack path that produced this breach.

Related Resources

Security Arsenal Incident Response Services AlertMonitor Platform Book a SOC Assessment incident-response Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.