How App Maintenance Helps Prevent Data Breaches

Picture the investigation beginning on a Monday morning.

A customer reports activity they do not recognise. Security checks the account and discovers that somebody accessed information through an old administrative function. The application itself was not defeated by a previously unknown attack. Instead, the investigation uncovers a chain of much less dramatic problems.

A security update for one component had been postponed because the release carried regression risk. An old support account still had privileges it no longer needed. A configuration exception introduced months earlier had never been removed, while the logs recorded suspicious access but no alert brought it to anyone's attention.

Individually, each issue had seemed manageable enough to leave for later.

Together, they gave an attacker a path to data.

That is an important way to think about the relationship between application maintenance and data breaches. Maintenance cannot guarantee that a breach will never occur, nor can routine upkeep replace secure architecture or specialist security work. What it can do is continually remove weaknesses that would otherwise accumulate in a live application.

The relevance is becoming harder to dismiss. Verizon's 2026 Data Breach Investigations Report, based on more than 22,000 confirmed breaches, says vulnerability exploitation has become the leading breach vector and again emphasizes fundamentals such as asset visibility, disciplined patch management and practiced response. Verizon: 2026 Data Breach Investigations Report

For Levelworks, this is why Secure App Health cannot be separated from ongoing maintenance. Applications change after launch, but so do vulnerabilities, permissions, dependencies, configurations and attack techniques. Preventing breaches requires keeping those moving parts under control.

Data breaches often begin with ordinary weaknesses left unresolved

When people imagine a data breach, they often picture a highly sophisticated attacker discovering a previously unknown flaw.

That happens, but many security failures involve conditions defenders could already identify: vulnerable software, excessive privileges, weak configuration, compromised credentials or insufficient monitoring.

The OWASP Top 10:2025 illustrates how ordinary these categories are. Its current list includes Broken Access Control, Security Misconfiguration, Software Supply Chain Failures, Authentication Failures and Security Logging & Alerting Failures among the most important web application risks.

Notice what many of those problems have in common.

They can become worse after launch.

An account gains privileges. A dependency falls out of support. A deployment changes configuration. A new endpoint bypasses an old authorization assumption. A useful security alert stops reaching the right team.

Application maintenance is the process that keeps revisiting those conditions rather than assuming that security remains fixed because the original release passed testing.

Patching closes known routes before somebody uses them

Patching is one of the most obvious ways maintenance contributes to breach prevention, but the security value is sometimes misunderstood.

The purpose is not simply to keep version numbers current.

A security patch removes or mitigates a weakness that has become known. Once the vulnerability is publicly documented, continuing to operate the affected version can leave a route available to attackers who now have considerably more information about the weakness.

CISA's Known Exploited Vulnerabilities Catalog exists specifically to help organisations prioritise vulnerabilities for which exploitation has already been observed in the wild. CISA recommends using this evidence as an input to vulnerability-management decisions rather than treating every vulnerability as equally urgent.

Good maintenance therefore creates a repeatable path:

Find the relevant vulnerability → establish whether the application is exposed → prioritise the risk → apply the correction → test it → verify production.

Without that path, patches accumulate until one eventually becomes urgent.

That is particularly dangerous in older applications, where a seemingly small security update can require a larger framework or runtime upgrade before it can be applied safely.

[Internal Link: “Why Security Patching Should Be Part of Every App Maintenance Plan”]

Maintenance prevents dependency risk from becoming invisible

Applications increasingly contain large amounts of software that their own developers did not write.

Frameworks, libraries, SDKs, container images and transitive packages all become part of the application's security surface.

A dependency can operate perfectly while becoming a security liability.

OWASP's 2025 category on Software Supply Chain Failures warns about vulnerable, unsupported and outdated software across the application stack. It recommends tracking direct and transitive dependencies, monitoring relevant security information and addressing underlying platforms, frameworks and dependencies in a risk-based, timely manner.

Maintenance helps in two ways.

First, it gives teams visibility into what they actually run.

Second, regular dependency work prevents the application from moving so far behind supported versions that an urgent security fix becomes a major migration.

This distinction matters.

The immediate breach-prevention benefit is fixing known weaknesses.

The longer-term benefit is keeping the application fixable when the next weakness appears.

Removing old functionality can reduce the attack surface

Maintenance is often associated with adding fixes, but removing things can improve security too.

Applications accumulate:

  • old API versions;
  • abandoned administration screens;
  • unused test endpoints;
  • legacy integration routes;
  • unnecessary packages;
  • dormant user accounts;
  • obsolete services.

Every component that remains available represents something that may need to be authenticated, authorised, configured, updated, tested and monitored.

OWASP's guidance on security misconfiguration specifically warns about unnecessary features, services, accounts and privileges remaining enabled. It also notes that secure configuration needs to be repeatable across the application stack rather than performed once and forgotten. OWASP: Security Misconfiguration

An application-maintenance review should therefore occasionally ask:

What is still running that the product no longer needs?

Deleting an unused endpoint can sometimes provide better security than adding another control around it.

Access maintenance limits what a compromised identity can reach

Not every breach begins with vulnerable software.

Attackers also use legitimate credentials.

That makes access maintenance important even when authentication itself is working exactly as designed.

Imagine an employee who originally needed customer-export privileges but moved to another team eighteen months ago. Their account remains active, and the old role remains attached.

If that account is later compromised, the attacker inherits privileges the employee no longer has any business need to possess.

The authentication system has not failed.

The access lifecycle has.

OWASP's Broken Access Control guidance describes the consequences of allowing identities to act outside their intended permissions, including unauthorised disclosure, modification or destruction of data.

Maintenance reduces this risk through recurring work such as:

  • removing dormant accounts;
  • reviewing administrator privileges;
  • removing temporary access;
  • checking service-account permissions;
  • updating roles when responsibilities change;
  • revoking access when users or integrations leave the application.

This is especially important as an application grows. Permission models tend to expand much more readily than they contract.

[Internal Link: “How to Maintain Authentication and Access Control in a Growing App”]

Configuration drift can quietly undo earlier security work

An application may launch with secure configuration and still become less secure later.

Cloud permissions change. A diagnostic endpoint is enabled temporarily. A firewall exception is created during troubleshooting. A storage resource receives broader access so an integration can work. Debugging information is exposed to solve a production issue and never disabled.

These changes are often reasonable at the moment they are made.

The risk comes when temporary conditions quietly become permanent.

OWASP's Security Misconfiguration category includes improperly configured permissions, unnecessary features, default accounts, insecure framework settings and weak hardening across the technology stack. It specifically recommends a repeatable hardening process rather than relying on one-time configuration.

This is why configuration belongs inside maintenance.

Useful practices include keeping security-sensitive configuration reviewable, identifying differences between environments, removing temporary exceptions and checking that upgrades have not introduced insecure defaults.

The objective is not to freeze configuration.

It is to make changes visible enough that the application's security posture does not drift accidentally.

Secrets and credentials need maintenance too

Applications contain identities that belong to systems rather than people:

  • database credentials;
  • API keys;
  • OAuth client secrets;
  • signing keys;
  • service-account credentials;
  • certificates.

These credentials often survive much longer than anyone originally intended because rotating them carries operational risk.

A key created for an integration three years ago may still work even though nobody is sure which services depend on it.

This creates a security problem because the organisation may struggle to respond if the credential is exposed.

Maintenance should make credential ownership and replacement normal rather than exceptional.

At minimum, teams should know:

  • what the credential belongs to;
  • which application uses it;
  • what access it provides;
  • where it is stored;
  • whether it can be replaced;
  • how it can be revoked during an incident.

A secret that cannot be rotated because nobody knows what will break has effectively become part of the application's maintenance debt.

Maintenance catches authorization mistakes introduced by product change

Access control does not become vulnerable only because permissions are old.

New development can also break previously safe assumptions.

Suppose an application originally allowed each account to contain one organisation. Later, enterprise functionality introduces sub-organisations and delegated administrators.

An authorization check built around:

user belongs to account

may no longer be enough.

The application may now need:

user belongs to account

AND

user has permission for this organisation

AND

user may perform this action on this resource

If maintenance focuses only on keeping servers and dependencies updated, security can still deteriorate through product evolution.

This is why security regression testing matters after changes to roles, APIs, sensitive workflows and data models.

The question is not only:

Does the new feature work?

It is also:

Did this change allow anyone to see or do something they could not access before?

Preventing data breaches requires maintaining security assumptions alongside functionality.

Logging helps stop suspicious activity from remaining invisible

Preventing initial access is only one part of breach prevention.

Sometimes an attacker gets in.

What happens next depends partly on whether the application exposes enough evidence for the activity to be detected.

OWASP's Logging Cheat Sheet recommends application-level security logging because application events often provide context that infrastructure logging alone cannot. It highlights the value of consistent security-event logging for analysis and incident investigation.

For an application, useful events might include:

  • repeated authentication failures;
  • unexpected privilege changes;
  • administrator creation;
  • large data exports;
  • access to sensitive records;
  • unusual API activity;
  • security-control failures;
  • repeated authorization failures.

Maintenance matters because logging ages too.

A new sensitive workflow may not be covered by old security events. An alert may still exist but point to a team channel nobody uses. A new API may bypass the logging used by the original web application.

Maintaining security visibility means periodically asking whether important activity would still be noticed.

Detection can limit the difference between intrusion and large-scale loss

Security monitoring cannot guarantee that an attacker never obtains access.

It can affect how long suspicious activity continues before somebody responds.

Consider two versions of the same compromised account.

In the first, it starts requesting thousands of customer records, but the behaviour generates no meaningful security signal.

In the second, abnormal export volume, unusual privilege use or suspicious resource access is visible quickly enough for responders to disable the account and investigate.

The original compromise is the same.

The eventual consequences may be very different.

This is why Observable reinforces Secure within Levelworks' App Health framework. Preventive security controls matter, but teams also need sufficient visibility to recognise when those controls have failed or are being tested.

Maintenance keeps that visibility aligned with the application's current behaviour instead of its architecture from two years ago.

Fixing the vulnerability is not enough if the underlying pattern remains

Suppose a security review discovers that one API endpoint trusts an object ID supplied by the user without confirming ownership.

Engineering fixes the endpoint.

Three months later, another team creates a different endpoint with the same weakness.

The first vulnerability was patched.

The breach condition was not really removed because the underlying engineering pattern remains.

NIST's Secure Software Development Framework explicitly includes addressing the root causes of vulnerabilities so similar problems are less likely to recur, rather than limiting remediation to individual findings.

Application maintenance provides the opportunity to turn a security finding into a durable improvement.

That could mean:

  • introducing a reusable authorization component;
  • adding a regression test;
  • improving secure coding guidance;
  • modifying code-review checks;
  • adding automated dependency validation;
  • improving configuration controls.

The strongest maintenance work does not simply close tickets.

It makes the next version of the same vulnerability harder to create.

Maintenance reduces the dangerous gap between discovery and remediation

Security work often fails in the space between knowing about a problem and actually fixing it.

A vulnerability scanner raises a finding.

Nobody knows which team owns the affected service.

Engineering identifies a patch, but the application has poor regression coverage.

The update is postponed until the next release window.

That window slips.

Three months later, the vulnerability is still in production.

OWASP explicitly warns that slow risk-based updates can leave organisations exposed unnecessarily for days or months when patching is constrained by rigid maintenance processes.

A mature maintenance capability shortens this path because ownership, testing and deployment already exist.

The real security advantage is not that maintenance teams somehow predict every vulnerability.

It is that when a relevant weakness becomes known, the organisation can act while the information is still useful.

Maintenance should reduce exposure without creating uncontrolled change

Security maintenance creates its own risk when performed carelessly.

A rushed patch can introduce a regression. A dependency update can break authentication. A new security configuration may accidentally block legitimate customers.

That is not an argument for postponing security work.

It is an argument for maintaining the application well enough that security changes can be introduced safely.

A useful lifecycle looks like:

Maintenance step

Breach-prevention purpose

Inventory

Know what needs protecting and updating

Detect

Identify vulnerabilities, suspicious behaviour and drift

Prioritise

Focus effort on meaningful exposure

Remediate

Remove or reduce the weakness

Test

Confirm the security change did not break essential behaviour

Deploy

Move the correction safely into production

Verify

Confirm the expected fix is actually operating

Learn

Prevent the same weakness from returning

This is where Tested and Seamlessly Updatable contribute indirectly to breach prevention.

The easier it is to change an application safely, the easier it is to remove security exposure before an attacker takes advantage of it.

Maintenance can reduce the amount of data available to steal

Data exposure is partly determined by what the application retains and where copies accumulate.

Over time, systems can collect:

  • obsolete exports;
  • old uploaded files;
  • abandoned database tables;
  • temporary processing data;
  • development copies of production information;
  • logs containing excessive sensitive content.

Not every application-maintenance team owns data-retention policy, and retention decisions may be shaped by legal and business requirements.

Still, maintenance should identify when application changes create unnecessary copies or new storage locations.

The security principle is straightforward:

Data the application genuinely no longer needs cannot be exposed through that application once it has been appropriately removed.

This should be handled carefully rather than becoming an excuse for uncontrolled deletion, but reviewing data flows as systems evolve can reduce the eventual impact of compromise.

An effective maintenance plan closes several breach paths at once

The relationship between maintenance activity and breach risk becomes clearer when viewed together:

Maintenance activity

Security exposure it reduces

Security patching

Exploitation of known vulnerabilities

Dependency maintenance

Vulnerable or unsupported third-party code

Access reviews

Dormant and excessive privileges

Configuration reviews

Accidental exposure and insecure defaults

Credential maintenance

Long-lived or poorly controlled secrets

Authorization regression testing

Data access introduced by product changes

Security logging

Undetected suspicious application activity

Removal of obsolete functionality

Forgotten attack surface

Root-cause remediation

Recurrence of known vulnerability patterns

Safe deployment capability

Delay in getting security fixes into production

No row guarantees that a breach will not happen.

Together, they steadily reduce the number of easy opportunities available.

[Internal Link: “Application Security Maintenance: What Needs to Happen After Launch?”]

Maintenance cannot make an application impossible to breach

This distinction matters.

A properly maintained application can still be attacked through:

  • zero-day vulnerabilities;
  • stolen credentials;
  • sophisticated social engineering;
  • compromised suppliers;
  • insider activity;
  • new design flaws.

Maintenance is not a guarantee.

Its role is to prevent avoidable security deterioration.

There is an important difference between suffering a breach because an attacker exploited a genuinely novel weakness and suffering one through a vulnerability that had been known for months, an account that should have been removed, or a configuration exception nobody remembered existed.

Maintenance cannot eliminate adversaries.

It can eliminate many of the conditions that make their work easier.

Secure applications have to stay secure

A launch security review can tell you that an application is reasonably secure at one point in time.

It cannot preserve that condition.

Every subsequent dependency update, employee change, feature release, configuration adjustment, API integration and vulnerability disclosure has the potential to change the application's security posture.

That is why breach prevention is connected so closely to maintenance.

At Levelworks, Secure App Health is not treated as a certificate an application earns once. It is a condition that has to survive change, which in turn depends on the application remaining Current & Updated, Observable, Tested and sufficiently Seamlessly Updatable to correct weaknesses when they appear.

The value of application maintenance is rarely one dramatic security action.

It is the cumulative effect of closing old accounts, correcting vulnerable software, removing forgotten functionality, narrowing privileges, checking configuration, improving detection and making the next security fix easier to deploy than the last.

A breach often needs only one usable path.

Good maintenance keeps removing them.

‍

Continue Reading