Skip to content
Lessons from the October 2026 Breaches in Korea and Japan: A Practical Hardening Guide for Web Services

Lessons from the October 2026 Breaches in Korea and Japan: A Practical Hardening Guide for Web Services

Tony•
Image generated by xAI Grok
22 min read
0
0 comments
25 views

Lessons from the October 2026 Korea bank breaches and the IDCF Cloud ransomware attack: six layers of hardening for web services, with configuration examples and ways to verify each one.

Why these two incidents matter

In the first ten days of October 2026, two separate incidents hit the financial and cloud sectors in Korea and Japan. In Korea, attackers got into internet-facing systems at several banks and lenders and took loan and income data on tens of thousands of customers. In Japan, a ransomware attack on IDC Frontier's IDCF Cloud stopped virtual servers for 495 companies and local governments, and the provider said data in the affected zones is unlikely to be recovered.

Neither case needed a new kind of attack. Authentication was bypassed on a peripheral system. Backups sat on the same platform as production. Detection took hours, sometimes days. Most web services carry some version of these problems, so the incidents are worth studying even if you do not run a bank.

This article covers what is publicly confirmed, what has changed now that attackers use AI tools routinely, and the hardening steps I would take as the person responsible for a web service. Each step comes with a configuration example and a way to check that it works. Everything is based on official announcements and reporting available as of October 10, 2026. Where something is only an attacker's claim or a media report, I say so.

What happened

Korea: a run of breaches at banks and lenders

On October 1, Shinhan Bank disclosed that an outside party had reached some of its services by bypassing authentication. The main target was a platform that loan brokers use to store customer information during loan applications. About 25,000 customers were affected (later updated to 25,727). The leaked data included loan details, annual income, names and phone numbers.

Over the following days, other institutions reported similar incidents:

InstitutionReported impact
Yegaram Savings BankAbout 40,000 customers, the largest single case so far
Shinhan Bank25,727 customers
Welcome Savings BankUp to 2,200 corporate customer records
Hyundai CapitalPersonal data of 146 mortgage loan agents
KB Kookmin Bank119 customers
Hana Bank89 customers
BNK Busan Bank11 outsourced developers
Woori Bank, NH Nonghyup BankTargeted, but access was blocked and no data was taken

Three details stand out. First, the attackers went after internet-facing systems used by staff and loan agents, not the core systems that hold balances and transactions. Second, detection was slow: Shinhan took 15 hours 26 minutes, Hana 41 hours 44 minutes and KB Kookmin 67 hours 41 minutes. Third, regulators named weak authentication and excessive data retention and access as the main weaknesses. At an emergency meeting on October 4, the chairman of the Financial Services Commission said AI use in the attacks could not be ruled out. The Financial Supervisory Service sent the malicious IP addresses it had identified to about 500 financial firms and ordered emergency checks.

Japan: ransomware on IDCF Cloud

At around 3:40 a.m. on October 7, IDC Frontier, a SoftBank subsidiary, detected unauthorized access to its public cloud, IDCF Cloud. It isolated East Japan Region 1 from the network and shut down the customer management console.

In its third update on October 8, the company confirmed ransomware as the cause. Four zones in East Japan Region 1 were affected (tesla, henry, pascal and joule), along with 495 companies and local governments. Virtual servers in those zones stopped and could not be restarted. The company said customer data stored there would be difficult to retrieve or restore, and that customers could only recover from backups they held themselves. Other regions showed no sign of intrusion, but customers there were asked to take their own backups. The intrusion route is still under investigation.

The effects spread to services built on IDCF Cloud, many of which used it indirectly through a vendor. On October 9, JR East's credit card company ViewCard said about 4.03 million email addresses in its member mail system may have been viewed or taken. JR East (up to about 2.06 million across two services) and JR Kyushu (up to about 1.3 million) reported similar risks. These are upper limits under investigation, not confirmed leaks. Peach Aviation is investigating about 1.89 million records and has not confirmed any leak.

Backup placement made a visible difference. Soliton Systems reported that backup servers on the same platform were also unavailable. Six Apart, which kept Movable Type cloud backups on Google Cloud, moved all 31 affected servers to another cloud by the evening of October 8.

Images circulating on social media, apparently from the attacker, claim that hundreds of datastores were encrypted and more than 550,000 snapshots deleted. IDC Frontier has not confirmed these figures.

What AI has changed, and what it has not

Over the past six months, the most capable models from Anthropic, OpenAI and Google have become good at security work. Anthropic has said its restricted Claude Mythos Preview model can find and exploit software vulnerabilities better than all but the most skilled people. The UK AI Security Institute built a 32-step simulated attack on a corporate network, one that takes a human expert about 20 hours, and reported that Mythos Preview was the first model to complete it end to end.

Attackers are using the models they can get. Anthropic's September 2026 threat report says most of the cyber operations it documented used AI to execute or coordinate the attack, not just to answer questions. The same report makes a point I think matters most for smaller companies: when capable AI agents are a click away, the time and labor needed to attack a less prominent target drop to almost nothing. Being "not worth the effort" is no longer much protection.

The effect shows up as speed. Rapid7 found that the median time from a vulnerability's disclosure to its listing in CISA's Known Exploited Vulnerabilities catalog fell from 8.5 days to 5 days. Mandiant's M-Trends 2026 puts the mean time to exploit at minus 7 days, which means exploitation often starts before a patch exists. These figures are measured differently, but they point the same way.

There is counter-evidence too. VulnCheck found that only 1.3% of AI-discovered vulnerabilities had been exploited so far, which suggests the same tools currently help defenders at least as much. Nobody has shown that these models can break into a well-defended system. Defenders also have AI tools now: OpenAI's Codex Security, Google's CodeMender and Anthropic's Project Glasswing all aim at finding and fixing vulnerabilities before attackers do.

Regulators have reacted. On May 22, Japan's Financial Services Agency and the Bank of Japan jointly asked financial institutions to take short-term measures against frontier-AI threats. Korea's financial regulator raised the possibility of AI use in the October attacks.

My reading is that AI has not created new kinds of weakness. It has shortened the time between a weakness existing and someone using it. So the practical goal is to make every part of defense faster: patching, detection, isolation and recovery. The six layers below are organized around that goal. Each one maps to a step in the Korean or Japanese attack chain.

Layer 1: Shrink the attack surface, then get authentication and authorization right

Where it shows up in these incidents. The Korean attackers did not need the core banking system. They found a side system, a loan broker platform, and walked past its authentication.

Why the usual setup falls short. Most teams harden the main login and the main app. Admin panels, partner portals, staging environments and old API versions get less attention. They are often still online and often hold real data.

What to do.

  • Keep an inventory of what is exposed. Enumerate subdomains and live services with subfinder and httpx, scan them weekly with nuclei, and diff the result against your asset list. Anything that shows up and is not on the list needs an owner or a shutdown.
  • Take admin panels off the public internet. Put them behind an identity-aware proxy or a VPN, on a separate entry point from customer login.
  • Use phishing-resistant MFA for admins. FIDO2 keys or passkeys. TOTP at minimum for regular users. Check new passwords against known breaches with the k-anonymity API from Have I Been Pwned.
  • Validate JWTs strictly. Fix the allowed algorithm on the server and reject alg: none. Check iss, aud and exp. Keep access tokens short (5 to 15 minutes) and rotate refresh tokens on every use, revoking the whole chain if an old one is replayed.
  • Follow OAuth and OIDC to the letter. Require PKCE, check state and nonce, and match redirect_uri exactly. Use the provider's sub claim as the stable user key, not the email address.
  • Check object ownership on every request. Broken object-level authorization (changing an ID in the URL and seeing someone else's data) is still one of the most common real-world flaws. Put authorization rules in one place, for example with OPA or Casbin, rather than scattering checks through handlers.

How to check it works. Add tests to CI where user A's token requests user B's resources; every one must return 403 or 404. Run OWASP ZAP against staging, then go through the authentication, session and access control chapters of OWASP ASVS Level 2 by hand.

Layer 2: Withstand automated attacks

Where it shows up. Korea's regulator could not rule out AI-assisted attacks, and the industry data above shows exploitation getting faster. Automated tooling probes many endpoints quickly and keeps going.

Why the usual setup falls short. A single global rate limit is easy to stay under, and a monthly patch cycle is slow when exploitation starts within days of disclosure.

What to do.

  • Rate-limit on three keys: IP, account and token. Give login, password reset and export endpoints much tighter limits than ordinary reads.
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s; limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m; location /api/ { limit_req zone=api burst=20 nodelay; } location /login { limit_req zone=login burst=3; }

IP limits alone are weak against distributed traffic, so add per-account and per-token limits in the application or at the API gateway.

  • Put a WAF in front. Managed rules on Cloud Armor or AWS WAF, or the open-source ModSecurity with the OWASP Core Rule Set. Add rate-based rules for bursts of 404s and unusual user agents, which are typical of scanners.
  • Set a patch deadline and hold to it. For example: anything on the CISA KEV list or rated CVSS 9.0 or above within 48 hours, 7.0 and above within 7 days. Let Renovate open dependency PRs automatically and have osv-scanner or Trivy fail the build on known critical issues.
  • When you cannot patch in time, reduce exposure instead. A WAF rule as a virtual patch, disabling the affected feature, or putting the component behind MFA buys time.
  • Design APIs so bulk access is hard. Cap page size (for example 100 rows), refuse wildcard queries, and turn exports into asynchronous jobs that need approval and leave an audit log.

How to check it works. Load-test login and search endpoints with k6 and confirm you get HTTP 429 once you pass the threshold. Track the time from a critical CVE's publication to your fix being deployed, and review it monthly.

Layer 3: Make data hard to take out

Where it shows up. In Korea, the stolen data went beyond names and phone numbers to income and loan details. That makes follow-up fraud much more convincing: a caller who knows your real loan application is easy to believe. In Japan, the data at risk sat in mail delivery systems and their logs, systems most people would not think of as holding customer data.

Why the usual setup falls short. Many services keep everything forever, store sensitive fields in plain text, and let application servers connect anywhere on the internet. Once an attacker is inside, nothing slows the data down on its way out.

What to do.

  • Keep less. Give every field a purpose and a retention period, and delete automatically when the period ends. Include mail logs and delivery queues. One affected vendor in the IDCF case, for example, deletes stored mail data after 14 days by design.
  • Encrypt sensitive fields in the application. For income, ID numbers and similar fields, use envelope encryption: a key in KMS encrypts per-record or per-table data keys. A database administrator, or someone with a database dump, then sees only ciphertext.
  • Restrict outbound traffic. On Cloud Run, route egress through a VPC and allow only known destinations in firewall rules. On Kubernetes, start from a default-deny NetworkPolicy for egress. Database servers should not be able to open outbound connections at all.
  • Plant canaries. Insert a few fake customer records and alert on any read. Put fake cloud credentials in the repository and environment using Thinkst's open-source Canarytokens, so any use of them triggers an alert. For a small team, this is the cheapest intrusion detection available.

How to check it works. From an application server, try curl to an arbitrary external address. It should fail. Read one canary record from a test account and confirm the alert arrives within minutes.

Layer 4: Detect in hours, not days

Where it shows up. The three largest Korean banks took between 15 and 68 hours to notice they had been breached. That is a long time for an attacker with automated tools.

Why the usual setup falls short. Logs exist but live in different places, nobody owns the alerts, and the alerts that do exist are tuned so loosely that people ignore them.

What to do.

  • Collect the right logs in one place. WAF, application access logs, authentication events, database audit logs (pgaudit for PostgreSQL) and cloud audit logs (Cloud Audit Logs on GCP, CloudTrail on AWS). Wazuh or OpenSearch Security Analytics are workable open-source options.
  • Protect the logs from the people they watch. Send cloud audit logs through an organization-level sink into a separate project with a locked retention bucket, so a compromised production admin cannot delete them.
  • Start with a small set of rules that map to real attack steps. Six is enough to begin with:
AlertExample triggerAttack step it catches
Unusual admin loginNew country or ASN, or outside working hoursMovement after an authentication bypass
Success after many failures20+ failed logins in 5 minutes, then a successCredential stuffing
Bulk readsOne account reads over 1,000 customer records in an hourData collection
New high privilegeOwner/admin role granted, or a new admin accountPersistence
Outbound spikeEgress traffic over 3x baselineData exfiltration
Destructive operationsBulk snapshot deletion, KMS key disabledPreparation for ransomware

Thresholds depend on your traffic. Start strict, then adjust based on what fires in the first two weeks.

  • Set a target. Aim for a mean time to detect under one hour, and give each alert a named owner and a written first response.

How to check it works. Once a quarter, run a few techniques from Atomic Red Team in a test environment and confirm each one raises an alert. A rule that has never fired in a test should not be trusted.

Layer 5: Backups that survive your cloud provider

Where it shows up. This is the main lesson from IDCF. The provider itself said the data in four zones was unlikely to come back, and that customers could restore only from backups they held. Companies with backups on the same platform lost those too. A company with backups on another cloud was running again within about a day.

Why the usual setup falls short. Snapshots in the same account, the same region and under the same admin credentials are convenient, but they are not independent. Anyone who controls the platform or the admin account controls the snapshots too.

What to do.

  • Follow 3-2-1-1-0. Three copies, on two kinds of storage, one off-site, one immutable or offline, and zero errors when you test a restore.
  • Use a different cloud and a different account. If production runs on GCP, write backups to a separate AWS account, or the other way round. The credentials that write backups should not be able to delete them, and they should not belong to anyone who administers production.
  • Make backups immutable. With a locked retention policy, even an administrator cannot delete objects before the period ends.
1# GCS: 30-day retention, then lock it (locking cannot be undone) 2gcloud storage buckets create gs://example-backup \ 3 --location=asia-northeast1 --retention-period=30d 4gcloud storage buckets update gs://example-backup --lock-retention-period 5 6# S3: Object Lock in compliance mode, 30 days 7aws s3api create-bucket --bucket example-backup \ 8 --object-lock-enabled-for-bucket \ 9 --create-bucket-configuration LocationConstraint=ap-northeast-1 10aws s3api put-object-lock-configuration --bucket example-backup \ 11 --object-lock-configuration '{"ObjectLockEnabled":"Enabled","Rule":{"DefaultRetention":{"Mode":"COMPLIANCE","Days":30}}}'

Test lock settings on a throwaway bucket first. A locked retention policy cannot be shortened, and you will pay for the storage until it expires.

  • Back up the database continuously. For PostgreSQL, WAL-G or pgBackRest can archive to another cloud and give you point-in-time recovery. Add a daily logical dump as a second, simpler copy.
  • Be able to rebuild, not just restore. Keep infrastructure in Terraform, push container images by digest to a second registry, and keep an encrypted export of secrets offline. Host DNS with an independent provider and keep TTLs short (for example 300 seconds) so you can move traffic quickly.
  • Prepare a status page elsewhere. A static page on a separate host lets you tell customers what is happening when the main site is down.

How to check it works. Once a quarter, restore into the other cloud from scratch. Verify row counts and checksums automatically, and write down how long it actually took (your real RTO) and how much data you lost (your real RPO). A backup you have never restored is an assumption, not a backup.

A note for teams running their own VMware: IDC Frontier has not published how the attackers got in, so the following is general advice for virtualization platforms, not a statement about this incident. Keep the vCenter and ESXi management network isolated, enable lockdown mode, disable SSH on hosts, and put MFA in front of vCenter.

Layer 6: Protect the management plane and the supply chain

Where it shows up. One cloud provider's incident reached 495 direct customers and many more services built on top of them, including a credit card company's member mail. In Korea, a broker platform became the way into bank customer data. Your risk includes your vendors and their vendors.

Why the usual setup falls short. Long-lived access keys sit in CI systems and laptops. One admin role can delete both production and backups. Nobody has a list of which SaaS products hold customer data.

What to do.

  • Remove long-lived cloud keys. Let CI get short-lived credentials through OIDC, for example GitHub Actions to AWS or GCP. On GCP, enforce the organization policy iam.disableServiceAccountKeyCreation.
  • Put guardrails on destructive actions. On AWS, a service control policy can deny deletion of buckets, snapshots and KMS keys to everyone except a break-glass role:
1{ 2 "Version": "2012-10-17", 3 "Statement": [{ 4 "Sid": "DenyDestructiveExceptBreakGlass", 5 "Effect": "Deny", 6 "Action": ["s3:DeleteBucket", "ec2:DeleteSnapshot", "kms:ScheduleKeyDeletion"], 7 "Resource": "*", 8 "Condition": { 9 "ArnNotLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/BreakGlass" } 10 } 11 }] 12}

Keep the break-glass account's hardware key offline, and alert whenever the role is used.

  • Know what you run. Generate an SBOM with syft, sign container images with cosign, and pin GitHub Actions to commit SHAs rather than tags. Add Subresource Integrity to third-party scripts and restrict script sources with a Content Security Policy.
  • Keep a vendor list and a vendor incident plan. List every SaaS that holds personal data, which API keys connect to it, and what data you send. Send only what the vendor needs. When a vendor reports an incident, rotate the keys and pause the integration first, then assess. During the IDCF incident, the monitoring service Mackerel took exactly this step and suspended its IDCF integration as a precaution.
  • Stop others from sending mail as you. After a leak, the most common follow-up is phishing that impersonates the affected company. Publish SPF and DKIM, then move DMARC to p=reject:
_dmarc.example.jp. TXT "v=DMARC1; p=reject; adkim=s; aspf=s; rua=mailto:dmarc@example.jp"

Move from p=none to p=quarantine and then to p=reject while you watch the aggregate reports, so you do not block your own legitimate mail.

How to check it works. Run an open-source cloud configuration audit such as Prowler or ScoutSuite every month. Try deleting a snapshot with an ordinary admin role and confirm it is denied.

The first hours of an incident

IDC Frontier's first moves were to cut the affected region off from the network and stop the management console. That limited the spread, but it also meant customers could not operate their own servers. You should decide these trade-offs before an incident, not during one. A one-page runbook covering the following steps is enough to start:

  1. Decide who decides. Name one person who can order a shutdown, and a backup if that person is unreachable. Write down in advance the conditions under which you will stop a service.
  2. Isolate. Cut the affected systems from the network, revoke active sessions and disable compromised accounts. Prefer isolation over deletion.
  3. Preserve evidence before rebuilding. Take disk snapshots, export logs to the separate log account, and record the times of everything you do. Rebuilding first destroys the information you need to find the entry point.
  4. Rotate credentials in a set order. Cloud admin accounts and CI credentials first, then database and API keys, then application secrets. Assume anything the compromised system could read is exposed.
  5. Tell people early and plainly. Customers, vendors and, where required, regulators. In Japan, the Act on the Protection of Personal Information requires reporting qualifying leaks to the Personal Information Protection Commission: a preliminary report promptly (the guidelines say within roughly three to five days) and a final report within 30 days, or 60 days when the leak results from a malicious act. Check the Commission's current guidance; this article is not legal advice.
  6. Restore from a known-good backup into a clean environment. Patch the entry point before you reconnect anything to the internet.

A one-page summary for business owners

If you are not technical, these ten questions are what to ask your team or your vendor.

WhenQuestion to ask
This weekDo we have a list of every system we expose to the internet, including admin and partner sites?
This weekDo all admin accounts use phishing-resistant MFA?
This weekIs at least one backup stored outside our main cloud, where our own admins cannot delete it?
This weekIs DMARC set up so others cannot send email in our name?
Within a monthDo we know which vendors hold our customers' data, and how fast they must tell us about an incident?
Within a monthDo we delete data we no longer need, including email logs?
Within a monthWould we notice a large export of customer data within an hour?
Within a monthHave we restored from backup in another environment, and how long did it take?
DesignHow quickly do we patch critical vulnerabilities, and who tracks it?
DesignWho can order a shutdown during an incident, and under what conditions?

Closing

Neither incident was exotic. A side door with weak authentication, backups that shared a platform with production, and alerts that came too late. What has changed is how quickly these weaknesses get found and used. The answer is not a new product. It is doing the basics faster and testing that they work.

I will update this article as IDC Frontier and the Korean regulators publish more detail, especially on how the attackers got in.

About the author: Tony Cai (蔡暁華) is the founder and Representative Director of SolanaLink Co., Ltd. in Tokyo. He has more than 20 years of software engineering experience, mostly in distributed systems, including technical lead and CTO roles in Shanghai. SolanaLink builds and operates cloud systems, web and mobile services, and AI agent integrations. If you would like a second opinion on your cloud setup or backup design, you can reach us through solanalink.jp.

Sources

All accessed October 10, 2026.

Korea

Japan

AI and the threat landscape

Comments

Comments (0)