Back to Intelligence

Oregon Dental Breaches: Hood River Dental and Keep Smiling Dental Group Expose 31,000+ Patients — Detection and HIPAA Remediation Guide

SA
Security Arsenal Team
November 13, 2026
13 min read

The HIPAA Journal has reported that Hood River Dental and Keep Smiling Dental Group — dental practices operating in Oregon — have disclosed data security incidents collectively affecting more than 31,000 patients. While the full forensic details of each intrusion are still emerging through breach notifications, the pattern is one I've seen repeatedly across 15 years of incident response work: small-to-midsize healthcare providers, particularly dental and specialty practices, remain among the most consistently breached segments of the healthcare sector precisely because attackers know their defenses are thin.

Let me be direct about what is at stake here. Dental practices hold a concentrated package of regulated data that commands premium value on criminal markets: full patient names, dates of birth, Social Security numbers, treatment and diagnosis records, insurance information, and frequently payment card data. Under the HIPAA Breach Notification Rule (45 CFR §§ 164.400–414), unauthorized acquisition, access, use, or disclosure of unsecured protected health information (PHI) affecting 500 or more individuals triggers notification obligations to HHS, affected individuals, and in some cases prominent media outlets. Both of these Oregon practices have now crossed into the public-breach-ledger territory — the HHS Office for Civil Rights (OCR) 'wall of shame' — which invites regulatory scrutiny that often outlasts the incident itself by years.

For defenders reading this, the actionable question is not 'what happened to Hood River Dental?' but 'would my organization detect the same intrusion path before 31,000 records walked out the door?' This post breaks down the realistic attack chains behind dental practice compromises, delivers concrete detection content for SOC teams, and lays out a remediation roadmap aligned to the HIPAA Security Rule and NIST CSF 2.0.

Technical Analysis: How Dental Practices Actually Get Breached

The Target Profile

Dental practices are a distinct threat surface. In my IR engagements involving healthcare SMBs, the environment almost always looks like this:

  • Practice Management Software (PMS): Platforms such as Dentrix, Eaglesoft, Open Dental, or cloud-hosted equivalents. These systems aggregate the full PHI corpus — patient demographics, treatment charts, imaging, billing, and insurance records — typically in a single on-premises SQL database or a vendor-hosted tenant.
  • Windows-centric infrastructure: Front-desk workstations, an on-prem server (often a single box running the PMS database, file shares, and sometimes domain services), minimal segmentation, and imaging devices (panoramic X-ray, CBCT scanners) that run embedded or legacy operating systems with weak authentication.
  • Managed IT via small MSPs: Frequently a break/fix provider rather than a security-aware MSSP, meaning RMM tooling with remote access — and the credentials that guard it — becomes a high-value pivot.
  • Email as the primary identity plane: Microsoft 365 or Google Workspace tenants often without phishing-resistant MFA, making business email compromise (BEC) and credential phishing the cheapest entry point.

The Realistic Attack Chains

Because the public reporting on these two incidents does not yet attribute a specific CVE or named threat actor — and I will not fabricate one — defenders should focus on the three attack chains that account for the overwhelming majority of dental and small-healthcare breaches I have investigated:

  1. Phishing → credential theft → mailbox and cloud application access. The attacker harvests Microsoft 365 credentials, accesses mailboxes containing patient correspondence and attachments, and may pivot to the PMS or billing platform using single sign-on or reused credentials. Detection hinge: anomalous sign-ins, inbox rule creation, mass mail access.
  2. Internet-exposed remote access → interactive intrusion → data theft and/or ransomware. Exposed RDP (TCP 3389), an unpatched VPN appliance, or compromised MSP/RMM remote tooling gives the attacker hands-on-keyboard access. Staging follows: PHI databases are queried or copied, archives are created (7-Zip/WinRAR), and data is exfiltrated before or alongside encryption. Detection hinge: database staging to archive, archive creation in atypical paths, egress volume spikes.
  3. Third-party / business associate compromise. Billing vendors, collection agencies, cloud PMS providers, or IT vendors are breached and patient data is exposed downstream. Detection hinge: largely contractual and telemetry-based — you cannot log what you never instrumented, which is why business associate agreements (BAAs) and vendor risk management are compensating controls, not paperwork.

Exploitation Status

There is no CVE, PoC, or CISA KEV entry associated with these disclosures, and none should be invented. What matters for defenders is that the techniques above are continuously exploited in the wild against healthcare SMBs. HHS OCR breach data consistently shows hacking/IT incidents and unauthorized access/disclosure as the dominant breach causes in healthcare, and ransomware groups operating double-extortion models explicitly target healthcare verticals because PHI maximizes extortion leverage and regulatory pain.

Detection & Response

The detections below are built around the observable behaviors that precede a breach disclosure like the ones Hood River Dental and Keep Smiling Dental Group are now working through: mass PHI access, archive staging, anomalous cloud sign-ins, and suspicious inbox manipulation. Every rule is tuned to avoid the 'fires on half the environment' failure mode — these target behaviors that have almost no legitimate counterpart in a front-desk workflow.

Sigma Rules

YAML
---
title: Mass Archive Creation in Healthcare Data Directories
tid: 4f2c9a71-8b3d-4e5f-9a1c-2d7e6f8a9b01
status: experimental
description: Detects 7-Zip, WinRAR, or similar archive utilities executed against directories commonly containing PHI (patient databases, imaging shares, billing exports). A hallmark of ransomware and data-theft staging in healthcare SMB intrusions.
references:
  - https://attack.mitre.org/techniques/T1560/001/
  - https://www.hipaajournal.com/data-breach-hood-river-dental-liberty-health-keep-smiling-dental/
author: Security Arsenal
date: 2026/04/10
tags:
  - attack.collection
  - attack.t1560.001
logsource:
  category: process_creation
  product: windows
detection:
  selection_tool:
    Image|endswith:
      - '\7z.exe'
      - '\7za.exe'
      - '\rar.exe'
      - '\winrar.exe'
  selection_args:
    CommandLine|contains:
      - ' a '
      - ' u '
  selection_paths:
    CommandLine|contains:
      - '\Patients\'
      - '\PatientData\'
      - '\Dentrix\'
      - '\Eaglesoft\'
      - '\OpenDental\'
      - '\Imaging\'
      - '\XRay\'
      - '\Billing\'
      - '\Exports\'
  condition: selection_tool and selection_args and selection_paths
falsepositives:
  - Scheduled PMS backup jobs using archive utilities — whitelist known backup service accounts and maintenance windows rather than disabling the rule
level: high
---
title: Suspicious Inbox Rule for Email Hiding or Forwarding
id: 6b1d8e34-2c5f-4a7b-9d3e-1f4a6c8e0b23
status: experimental
description: Detects creation of Microsoft 365 inbox rules that delete, move to RSS/Archive folders, or forward mail externally — a strong indicator of business email compromise, the most common initial access vector in small healthcare breaches.
references:
  - https://attack.mitre.org/techniques/T1114/002/
  - https://attack.mitre.org/techniques/T1098.002/
author: Security Arsenal
date: 2026/04/10
tags:
  - attack.collection
  - attack.t1114.002
  - attack.persistence
logsource:
  service: exchange
  product: m365
detection:
  selection:
    Operation:
      - 'New-InboxRule'
      - 'Set-InboxRule'
    Parameters|contains:
      - 'DeleteMessage'
      - 'ForwardTo'
      - 'RedirectTo'
      - 'MoveToFolder'
      - 'MarkAsRead'
  condition: selection
falsepositives:
  - Users creating legitimate forwarding rules — alert, then validate with the mailbox owner; BEC-driven rule creation rarely survives a 60-second phone call
level: medium
---
title: Interactive Logon Followed by Database Service Access on Practice Server
id: 9e7a2c15-4d8b-4f6a-a2c9-8e1b3d5f7a42
status: experimental
description: Detects remote interactive logons (RDP/network logon type 3 or 10) to servers hosting practice management databases outside of expected administrative accounts. Lateral movement to the single on-prem server is where dental intrusions become PHI theft.
references:
  - https://attack.mitre.org/techniques/T1021/001/
  - https://attack.mitre.org/techniques/T1078/
author: Security Arsenal
date: 2026/04/10
tags:
  - attack.lateral_movement
  - attack.t1021.001
  - attack.initial_access
  - attack.t1078
logsource:
  product: windows
  service: security
detection:
  selection:
    Logon_Type:
      - 3
      - 10
    Target_User_Name|contains:
      - 'admin'
      - 'svc'
  filter_known_admins:
    Target_User_Name:
      - 'DOMAIN\\known_admin_1'
      - 'DOMAIN\\known_admin_2'
    Workstation_Name:
      - 'ADMIN-WS01'
  condition: selection and not filter_known_admins
falsepositives:
  - MSP/RMM remote sessions — maintain an explicit allowlist of MSP service accounts and jump hosts; everything else should page
level: high

KQL — Microsoft Sentinel / Defender

The following hunt queries target the two highest-signal behaviors: anomalous M365 sign-in patterns consistent with credential phishing, and local staging/exfiltration indicators on Windows endpoints.

KQL — Microsoft Sentinel / Defender
// Hunt 1: Impossible-travel / first-time-country sign-ins into M365 (phishing-to-BEC chain)
SigninLogs
| where TimeGenerated > ago(14d)
| where ResultType == 0
| summarize FirstSeenInCountry = min(TimeGenerated), SigninCount = count(), IPs = make_set(IPAddress)
    by UserPrincipalName, Location, AppDisplayName
| where SigninCount <= 3
| join kind=inner (
    SigninLogs
    | where TimeGenerated > ago(90d) and TimeGenerated < ago(14d)
    | summarize HistoricCountries = make_set(Location) by UserPrincipalName
) on UserPrincipalName
| where HistoricCountries !has Location
| project UserPrincipalName, Location, AppDisplayName, IPs, FirstSeenInCountry, SigninCount
| sort by FirstSeenInCountry desc

// Hunt 2: Archive utility execution touching healthcare data paths (staging for exfiltration)
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where FileName in~ ("7z.exe", "7za.exe", "rar.exe", "winrar.exe", "zip.exe")
| where ProcessCommandLine has_any ("Patient", "Dentrix", "Eaglesoft", "OpenDental", "Imaging", "Billing", "Export", ".bak", ".mdf", ".ldf")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessAccountName
| sort by TimeGenerated desc

// Hunt 3: Unusual egress volume from server-class devices (exfiltration timing window)
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| summarize BytesSent = sum(SentBytes), DistinctRemoteIPs = dcount(RemoteIP) by DeviceName, bin(TimeGenerated, 1h)
| where BytesSent > 500000000
| sort by BytesSent desc

Velociraptor VQL

For IR teams doing live response on a suspected dental practice compromise, this artifact hunts archive staging and suspicious recent execution on the practice management server:

VQL — Velociraptor
-- Hunt archive staging and suspicious tooling on a practice management server
SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)(7z|rar|winrar|zip)'
   OR CommandLine =~ '(?i)(patient|dentrix|eaglesoft|opendental|imaging|billing|export)'
   OR Exe =~ '(?i)(temp|appdata|programdata)\\\\[^\\\\]+\.exe$'

-- Companion: enumerate recently created archives in common staging locations
SELECT FullPath, Size, Mtime, Ctime
FROM glob(globs=['C:/Users/*/Downloads/*.zip', 'C:/Users/*/Downloads/*.rar', 'C:/Users/*/Downloads/*.7z', 'C:/ProgramData/**/*.7z', 'C:/ProgramData/**/*.rar', 'C:/Temp/**/*.zip'])
WHERE Mtime > (now() - (7 * 24 * 3600))
ORDER BY Mtime DESC

Remediation and Verification Script

This PowerShell script hardens the classic single-server dental environment and verifies the controls that matter most post-incident: exposed RDP, archive staging paths, auditing of PHI directories, and SMB hardening.

PowerShell
# Security Arsenal - Dental/Healthcare SMB Hardening & Verification Script
# Run elevated on the practice management server. Review before executing in production.

# 1) Disable direct RDP exposure and require NLA (RDP should be behind VPN only)
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name 'fDenyTSConnections' -Value 0
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'UserAuthentication' -Value 1
Write-Host '[*] RDP restricted to NLA-authenticated sessions. Confirm firewall blocks inbound TCP 3389 from the internet.'

# 2) Enable advanced audit policy for PHI access and staging behaviors
auditpol /set /subcategory:"File System" /success:enable /failure:enable
auditpol /set /subcategory:"Process Creation" /success:enable
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable
Write-Host '[*] Audit policy enabled for file access, process creation, and logons.'

# 3) Include command line in process creation events (feeds the Sigma rules above)
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit' -Name 'ProcessCreationIncludeCmdLine_Enabled' -Value 1
Write-Host '[*] Command-line auditing enabled for process creation events.'

# 4) Apply SACLs to PHI directories so mass access is logged
$phiPaths = @('D:\PatientData','D:\Dentrix','D:\Imaging','C:\OpenDental','D:\Billing\Exports')
foreach ($p in $phiPaths) {
    if (Test-Path $p) {
        $acl = Get-Acl $p -Audit
        $rule = New-Object System.Security.AccessControl.FileSystemAuditRule('Everyone','ReadData,WriteData,Delete','ContainerInherit,ObjectInherit','None','Success')
        $acl.AddAuditRule($rule)
        Set-Acl $p $acl
        Write-Host "[+] SACL applied to $p"
    }
}

# 5) Disable SMBv1 (ransomware lateral movement vector still found on legacy imaging devices)
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart -ErrorAction SilentlyContinue
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Confirm:$false
Write-Host '[*] SMBv1 disabled.'

# 6) Verify no unexpected local administrators (common persistence in SMB breaches)
Get-LocalGroupMember -Group 'Administrators' | Select-Object Name, ObjectClass, PrincipalSource
Write-Host '[!] Review the Administrators membership above. Any account not in your documented baseline is an incident.'

# 7) Check for suspicious scheduled tasks (persistence check)
Get-ScheduledTask | Where-Object { $_.TaskPath -notlike '\Microsoft*' } | Select-Object TaskName, TaskPath, State

Remediation: What These Practices — and Yours — Must Do Now

For Hood River Dental, Keep Smiling Dental Group, and similarly situated organizations

  1. Complete forensically sound scoping before finalizing notification counts. The initial '31,000+ affected' figure should be validated against access logs, not assumed. Engage a DFIR firm to establish the intrusion window, initial access vector, and exactly which PHI elements were accessed versus merely at risk — OCR's posture toward breached entities is materially influenced by the quality of the investigation.
  2. Execute HIPAA Breach Notification Rule obligations. Individual notice within 60 days of discovery, HHS OCR submission (contemporaneous for 500+ individuals), media notice where applicable, and Oregon-specific obligations under the Oregon Consumer Identity Theft Protection Act, which carries its own Attorney General notification requirement for breaches affecting 250+ Oregon residents.
  3. Offer credit monitoring and identity theft protection commensurate with the data elements exposed — if SSNs are involved (the norm in dental records), 12–24 months of monitoring is the defensible minimum.
  4. Reset and rotate everything. All user credentials, service accounts, MSP/RMM credentials, API keys, and any shared mailboxes. Assume credential harvest until proven otherwise.
  5. Prepare for OCR's data request. Post-breach OCR investigations routinely demand the Security Risk Analysis (SRA), risk management plan, policies, training records, and incident response documentation. Gaps here convert a breach into a settlement.

For every other dental and small healthcare practice reading this

  1. Conduct or refresh your HIPAA Security Risk Analysis now. 45 CFR § 164.308(a)(1)(ii)(A) is not optional, and 'our IT guy handles that' is not an SRA. Map where ePHI lives — PMS databases, imaging shares, email, backups, cloud billing portals — and assess threats against each repository.
  2. Enforce phishing-resistant MFA on everything. Email, PMS cloud portals, remote access, RMM tooling, and administrative accounts. FIDO2/passkeys where supported; at minimum, app-based TOTP with number matching. Credential phishing is the cheapest door into your practice — close it.
  3. Eliminate internet-exposed remote access. No public RDP. No unpatched VPN concentrators. Remote administration goes through a hardened VPN or ZTNA broker with MFA, and RMM access is restricted to named MSP accounts with conditional access policies.
  4. Segment the clinical floor from the business network. Imaging devices and operatories should not share a flat network with front-desk workstations that browse the internet and open email attachments. VLANs plus a basic firewall policy stop ransomware from turning a phished receptionist PC into an encrypted patient database.
  5. Test your backups against the PMS reality. 3-2-1 backups with at least one offline or immutable copy, and — critically — a tested restore procedure for your specific practice management database. During a ransomware event at a dental practice, the restore question is not 'do we have backups' but 'can we restore Dentrix/Eaglesoft/Open Dental to a functional state, and how long does it take?'
  6. Instrument and monitor. Forward Windows event logs, M365 unified audit logs, and firewall egress logs to a monitored platform — whether that's an in-house SIEM or an MDR provider. The detections above only work if telemetry exists. A breach discovered by a third party or by ransomware deployment is a breach discovered too late.
  7. Formalize vendor risk management. Every business associate touching PHI — billing, IT, cloud PMS, shredding — needs a current BAA and periodic security attestation. Third-party compromise is the attack chain you cannot log your way out of; contracts and due diligence are the control.
  8. Align to NIST CSF 2.0 and the HICP practices. HHS's Health Industry Cybersecurity Practices (HICP) guidance for small healthcare organizations maps cleanly to the dental threat model and gives you a defensible framework narrative if OCR ever comes asking.

The Hood River Dental and Keep Smiling Dental Group disclosures are not anomalies — they are the statistical norm for an under-defended segment of healthcare. The attackers' economics are simple: low defensive maturity, high-value data, and a regulatory environment that amplifies the victim's pain. Every control above is achievable on a dental practice budget. The only unaffordable option is the one these 31,000 patients are now living with.

Related Resources

Security Arsenal Healthcare Cybersecurity AlertMonitor Platform Book a SOC Assessment healthcare Intel Hub

Is your security operations ready?

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