The State of Offensive Security in Insurance
Offensive Security in Insurance
90 of 128 insurance domains had an information-disclosure finding. This report shows where authorization breaks and how to fix it.
Executive Summary
Insurance software exists to move information between people and organizations. A producer services a policy. An administrator handles a claim. A platform generates a document. Each of those actions is allowed because of a specific business relationship.
Security weakens when a technical identity can do more than that relationship permits. A login proves who is calling. It doesn’t prove the caller is entitled to this policy, this claim, or this document.
CodeAnt AI reviewed security assessments covering 135 insurance-sector domains. In the latest assessment for each of 128 domains, 90 included an information-disclosure finding, 51 an authentication-bypass finding, 31 an exposed secret, and 11 an object-reference finding.
The gaps behind those labels kept recurring. Alternate APIs skipped the checks the portal enforced. Service credentials carried more authority than the user behind them. Records and documents came back to callers with no relationship to them.
This paper explains how those gaps happen and gives security and engineering leaders a 90-day plan to close them. It keeps returning to one question: can the system prove that this caller is entitled to this business object and this action, across every API, service, and document path?
The paper covers:
Why the business relationship, not the login, is the real security boundary
How alternate APIs, legacy paths, lists, and exports bypass portal controls
The six decisions hiding behind “authenticated”, and a negative test for each
How service identities and client-side secrets turn narrow access into broad access
Where policy, claims, billing, and document data converge
How to size a finding without inflating it
A validation matrix and a 90-day plan for continuous validation
A note on the research: findings come from a retrospective review of insurance-sector assessment reports. They describe historical reported behavior, not the current security posture of any company or of the industry. Patterns are anonymized, and the figures are not customer counts or market-wide prevalence estimates.
The portal can be secure while the business behind it stays exposed. This whitepaper on insurance application security covers what penetration testing keeps finding behind carrier, broker, MGA, and claims platforms: broken object level authorization (BOLA), broken authentication, exposed secrets, and unprotected document paths. It shows why a protected sign-in journey says little about the APIs, service accounts, and storage links behind it.
Inside: an authorization model built on business relationships, a six-part test for every API request, guidance for turning a finding into a defensible impact assessment, a 12-row validation matrix, and a 90-day plan for continuous validation. Grounded in a review of 128 insurance-sector assessments, with references to the OWASP API Security Top 10, OWASP ASVS 5.0, MITRE CWE, and NIST guidance.
1. The Business Relationship Is the Security Boundary
Most access reviews start with the login. In insurance, the login is the least interesting part of the decision.
[Image: figure-1-relationship-model.png]
Roles alone are incomplete without the relationship that permits the operation. Conceptual model: the roles and connections illustrate authorization design, not observed links between assessed organizations.
Signing In Does Not Settle the Question
Take a simple question: can this user access this policy? Being signed in is only the first part of the answer. The rest depends on the business.
Which agency does the user represent?
Is that agency appointed for this business?
Does the user have a servicing relationship with this policy?
Which fields does the task actually need?
Can the user only read, or also amend, export, or cancel?
The application has to turn those relationships into a decision that survives every technical hop. A portal, an API gateway, a service account, a database query, and a document store can each see a different version of the caller.
If one component drops the relationship context, a narrow business permission becomes broad technical access.
Test the Decision, Not the Screen
Offensive testing is most useful when it asks what the system does for a caller who lacks the expected relationship. Start with an allowed action, then change one thing at a time.
Another organization
An unrelated object
A lower-privilege role
A different stage of the workflow
The goal is to find the failed boundary without collecting more sensitive data than the proof requires.
The reviewed reports describe four forms of this failure:
Alternate services returned information outside the expected login path.
Objects selected by the caller were not constrained tightly enough.
Credentials available to public clients opened broader service access.
Related document paths introduced a second authorization decision after the record lookup, where the boundary could fail again.
Write Rules the Business Can Challenge
An authorization rule should be specific enough for an underwriter, a claims leader, or a distribution owner to challenge.
Compare two statements. “The endpoint requires a token” describes one technical prerequisite. “Only the assigned claims team may read these attachments” describes a business property that a test can prove or disprove.
OWASP’s authorization guidance calls for server-side enforcement, least privilege, and explicit testing. NIST’s zero trust architecture protects resources instead of granting implicit trust from network location. Both lead to the same requirement: preserve the authorized relationship all the way to the returned data or the completed action.
2. The API Behind the Portal
A portal is the route users are expected to take. It is rarely the only route the business operates.
Mobile clients, partner integrations, background workers, acquired applications, and older service versions can all reach the same information. The boundary has to hold across all of them.
Alternate Paths Keep Old Assumptions
The reviewed assessments describe data access through development-labeled and legacy paths that sat alongside customer-facing applications.
An environment name proves nothing about the data behind it. A service can keep production-connected relationships even when it looks like a staging or support tool.
The question is not whether an alternate host exists. It is whether that path reaches a sensitive operation, and whether it applies the same identity and business-scope decisions as the supported application.
Keep three observations apart: a reachable page, a service description, and an unauthorized data response. They are different findings.
[Image: figure-2-access-path-map.png]
Conceptual access-path map. Every route that reaches the operation must enforce the intended policy or be retired. The figure does not depict a specific assessed deployment.
Lists, Exports, and Batches Deserve Their Own Tests
A detail view can be correctly restricted while a search, a directory, or an export returns a much broader population. Test list, detail, batch, and download behavior separately.
The scope filter has to constrain the data and the sensitive metadata that travels with it, including totals, object names, and job status.
Batch operations add a question: what happens when one request mixes permitted and unrelated objects? The service should decide per item, or reject the whole request under a documented policy. Checking the first item, or only the batch container, doesn’t establish authorization for the rest.
Treat the API Inventory as a Control Map
For each service, record:
Owner and intended audience
Environment and supported version
Identity mechanism
Sensitive business operations
Include direct origins, administrative services, and partner-managed interfaces.
An inventory earns its keep when it shows where an authorization rule must hold, not when it reports how many routes were discovered. OWASP API9 covers the risk of outdated, undocumented, and poorly inventoried APIs.
A Better Test
Demonstrate one allowed request and one controlled relationship violation through every relevant access path. A failure on the alternate route should trigger a review of the shared control, not only a patch to the visible screen.
3. When Authentication Becomes False Assurance
A request that carries a token can still be unauthorized. The token may belong to the wrong audience, represent an overprivileged service, or identify a user with no relationship to the requested object.
Authentication establishes facts about an identity. Authorization decides what those facts permit.
Six Decisions Hide Behind “Authenticated”
Every request to a sensitive operation has to pass six separate decisions. Each one has its own negative test.
Decision | Question the service must answer | Controlled negative test |
|---|---|---|
Identity | Is this identity valid for this service? | Missing, expired, revoked, or wrong-audience identity |
Organization | Which business organization does the caller represent? | Equivalent role from another controlled organization |
Object | What relationship permits access to this record? | Unrelated object beside an allowed fixture |
Function | May this role perform this operation? | Read-only role attempting a privileged function |
Properties | Which fields may be read or changed? | Restricted response field or protected input property |
State | Is the operation valid at this stage? | Action before a required business prerequisite |
These decisions interact, but they should stay distinguishable in both the finding and the fix. Missing authentication is a different failure from a valid identity reading the wrong customer’s record. A token-validation error is different from an authenticated service holding excessive permissions.
The same visible result can need a different remediation depending on which decision failed.
The standards keep them apart too. Identity failures map to OWASP API2 and CWE-306. Object failures map to OWASP API1 and CWE-639, and function failures to OWASP API5. CWE-862 covers the general case of a missing authorization check.
Registration Creates an Identity, Not an Entitlement
Self-service account creation is a legitimate feature. It must not hand a new account authority over unrelated customers, agencies, or firms.
The service needs a separate process for establishing the relationship that grants access. Anything the client asserts, including an organization identifier or a role claim, has to be validated against trusted records before it affects authorization.
The reviewed reports include token-bearing access paths where the important failure came after the identity step. A source label such as “authentication bypass” can compress several mechanisms into one. A useful analysis restores the prerequisites and asks where the authority expanded.
Restrict the Data Before It Is Returned
Object and tenant restrictions should shape the query before any rows come back. Output schemas should then select the properties permitted for that caller and purpose.
Hiding a field in the browser doesn’t remove it from the API response.
Inputs need the same discipline. A normal update should not be able to set internal approval flags, ownership fields, or privileged properties. OWASP API3 covers these property-level concerns.
4. One Identity, Too Much Access
A backend service often needs more technical access than the person using the application. It may read several systems, generate documents, or process an entire queue.
That is exactly why the handoff from user authority to service authority deserves scrutiny.
Public Clients Can’t Keep Privileged Secrets
The reviewed reports describe credentials and shared keys delivered through public-facing application artifacts, and default-credential paths that produced powerful service identities.
Neither is the same as a request with no credentials at all. These are failures in how credentials are distributed, trusted, or scoped.
A browser or mobile client is a distribution surface. Assume its user can obtain any value embedded in it. Public application identifiers can legitimately live there. Privileged secrets can’t rely on obscurity inside a bundle for protection.
The first task is to establish what the value actually is and what authority, if any, it grants. CWE-798 and the OWASP Secrets Management Cheat Sheet describe the failure and the lifecycle controls around it.
[Image: figure-3-privilege-expansion.png]
Restrict audience, resources, functions, and credential lifetime. Conceptual privilege-expansion model: narrow caller scope must remain enforceable when a backend service acts on the caller’s behalf.
Every Service Identity Needs a Purpose and an Owner
Give each service identity an intended audience, a resource scope, and an allowed set of operations.
Prefer short-lived workload credentials where the platform supports them.
Don’t share one powerful credential across unrelated customers or functions.
Replace an overprivileged key with a narrower identity. That is worth more than rotating the key and leaving its permissions unchanged.
For a delegated operation, the service should carry the initiating caller’s organization and business relationship in trusted context. It must not treat its own broad database permissions as the caller’s entitlement.
Where an operation is intentionally system-wide, access to it needs a distinct role and an auditable approval path.
Removing a Secret Is Not Revoking It
Deleting a secret from a public artifact doesn’t invalidate the copies already taken. A real response has three parts:
Revoke or rotate the credential through an authorized process.
Review the downstream permissions it carried.
Collect evidence that the old credential no longer works.
The intended service has to keep running throughout, on replacement access that is properly constrained.
Not every credential-like string is a usable secret. It may be a public identifier, an expired value, or a test artifact. A report should state the evidence for validity and for privilege separately. That keeps teams from underreacting to real service authority and from overreacting to harmless configuration.
A Better Test
Verify that the retired credential can no longer obtain or exercise authority. Then verify that the replacement identity can do its intended job and cannot cross customer, resource, or function boundaries.
5. Where Policies, Claims, and Payments Converge
An insurance record is sensitive because of what it connects. Contact details reveal more when they are linked to coverage, a claim, a renewal, or a servicing party.
A single policy or invoice can join several categories of information in one response. A document can add context the structured fields never held.
One Object Joins Several Data Classes
The reviewed assessments describe policy and billing context, claimant information, internal notes, partner directories, and supporting documents.
Those observations point to impact concentrating around business objects. They don’t establish that every related system or attachment was reachable from the same initial request.
One bounded number supports testing these joins. Of the 58 assessments with a financial-information category, 56 also contained a consumer-PII category.
Read that figure carefully. The PII label can include staff or producer information. The overlap is at report level, so the two categories can sit in different findings. It doesn’t prove that one record held both, or that one weakness caused the other.
Classify the Population Before Describing the Impact
Information family | Insurance context | Important distinction |
|---|---|---|
Identity and relationships | Insureds, claimants, employees, producers, and partners | A personal-information label doesn’t make every person a policyholder |
Policy and underwriting | Coverage, premiums, assets, renewal, and risk context | A policy row, an insured firm, and an individual person are different units |
Claims and supporting material | Incident narratives, adjuster notes, and attachments | Metadata and readable document bodies are separate evidence |
Billing and payment context | Invoices, commissions, and payment-related fields | Financial information doesn’t establish payment authority or loss |
Technical and credential material | Application configuration and service identities | Public identifiers and usable privileged secrets need different treatment |
Documents Are a Separate Enforcement Point
A protected case record can return a link into a storage system with different protection. Authorization has to hold at three moments:
When the application selects the document
When a link is generated
When the bytes are delivered
File names, storage prefixes, and possession of a URL should never be the only controls on a sensitive document.
Temporary links need a deliberate scope and lifetime, and teams should know the limits of revocation once a link has been issued.
Exports need the same care. The caller who creates a job, the party who polls it, and the party who downloads the output all have to be authorized under the intended policy.
Test the Joins Without Collecting the Population
Use controlled fixtures that contain a record, its billing information, and an attachment. Confirm that an authorized user can complete the workflow. Then change the organization or the object relationship and check every linked resource.
One well-supported unauthorized response is enough to establish a failed boundary. Broader extraction isn’t needed to justify containment, and it creates privacy risk of its own.
A Better Test
Make attachments enforce the parent record’s relationship restrictions plus any document-specific ones. Prove it through both the application and the file-delivery path, and test list, metadata, and content access separately.
6. Different Businesses, Recurring Gaps
Insurance is not one operating model. Carriers, brokers, MGAs, claims administrators, and software providers hold different relationships and control different parts of the same workflow. Adversarial testing should reflect that.
Carriers and Delegated Underwriting
For a carrier, access to a policy or claim depends on the insured, the product, the distribution arrangement, and the assigned operational role.
An MGA or MGU adds delegated authority, and its scope can vary by product, territory, or agreement. The test should establish which business relationship authorizes the operation and where that authority stops. Broad organization membership is rarely the whole rule.
Brokers, Agencies, and Producer Networks
Distribution systems aggregate relationships: producers, customers, carrier appointments, and books of business.
A directory response may therefore expose a network of business contacts, not a population of policyholders. Both matter. The distinction changes the impact assessment and the right access policy.
Claims Administrators and Service Providers
Claims workflows connect structured records to notes, documents, and parties acting under delegated responsibility. A third-party administrator may handle records for many clients while assigning access to separate teams.
Test the relationship at the client, claim, and document level. Health-plan administration deserves its own data-classification and access review. It is not interchangeable with general insurance operations.
Insurance Software and Integration Platforms
A technology provider can concentrate customer-specific credentials and operating data. If customer boundaries are weak, that concentration becomes an amplification point.
A report of exposed credential material justifies investigating those privileges. On its own, it doesn’t prove access to every downstream customer system.
Where to Test Each Handoff
Operating relationship | Test the boundary between | Engineering owner should establish |
|---|---|---|
Carrier and distribution partner | Permitted book of business and unrelated policy | Trusted appointment or servicing scope |
MGA or MGU and capacity provider | Delegated authority and operations beyond it | Product and action limits carried into service decisions |
Administrator and client | Assigned client or claim and unrelated work | Client isolation and claim-level assignment |
Platform and customer | Customer-specific identity and platform-wide authority | Separate identities and verified downstream permissions |
Application and document store | Permitted record and its delivered artifacts | Equivalent authorization through storage and exports |
Recurring Patterns Do Not Prove a Shared Incident
Similar labels across businesses support a common set of test questions. They don’t show that those organizations share a vulnerable vendor, codebase, or attack path.
A shared-component claim needs linked dependency evidence and validation of the control in each affected deployment or tenant. Common cloud technology or a similar route name is not enough.
A Better Test
Define the organization’s actual role in the workflow, then test the handoff where another party or service acts on its behalf. Make ownership of the fix and of the closure evidence explicit on both sides.
7. What the Assessment Patterns Show
The comparison below summarizes reported issue categories across 128 domain assessments. It shows which types of issue appear in the review. It doesn’t measure how common confirmed breaches are in the insurance market.
[Image: figure-4-reported-categories.png]
Overlapping reported categories in the core comparison. A domain can appear in more than one bar. Category names summarize source labels; mechanisms and evidence strength need separate interpretation.
Reported category | Domains with at least one matching finding | Share of 128 domains |
|---|---|---|
Information disclosure | 90 | 70% |
Authentication bypass | 51 | 40% |
Exposed secret | 31 | 24% |
Object reference | 11 | 9% |
Broad Labels Hide Different Root Causes
An authentication-related category can describe missing identity checks, default credentials, or a token-validation problem. An information-disclosure category can cover technical material that is public by design as well as sensitive data.
The useful technical question has three parts: which decision failed, what the caller needed beforehand, and what information or capability was actually demonstrated.
The reviewed reports also include negative results, public artifacts, and claims whose scale exceeds the retained evidence. Those distinctions belong in the analysis. A sound security program keeps them instead of converting every discovery into an equally certain exposure.
Follow Relationships Instead of Adding Up Findings
Several reports can describe the same underlying data through different routes. Several findings can refer to overlapping documents, people, or business objects. Repeated assessments can revisit the same application.
Adding those figures together produces a total that looks precise and mixes incompatible units.
The stronger reading is qualitative and architectural. Identify the operation, the relationship it should enforce, the access prerequisite, and the narrow observation the evidence supports. Use owner-side records and logs for a separate impact assessment.
Never convert an advertised total into a population of affected customers.
8. From a Finding to a Defensible Impact Assessment
A strong finding needs a mechanism and a boundary on its claim.
“This unrelated record was returned to this controlled identity” is actionable. “The response advertised a very large total” is relevant context, but it answers a different question.
Keep Four Questions Separate
Question | Evidence that answers it | What remains to be established |
|---|---|---|
Was the path reachable? | A documented request and observed response | Whether access was unauthorized and the content sensitive |
Did the boundary fail? | Controlled allowed and disallowed cases with the relevant relationship | How broadly the same condition applies |
What was actually observed? | A bounded response, document, or action with clear units | The full population and duplicate relationships |
What happened beyond the test? | Owner-side access history and incident investigation | Current exposure, misuse, and any notification obligations |
A directory listing is not a census of readable files. An identifier range is not a count of valid records. A successful request doesn’t prove that every related route behaves the same way.
The reverse also holds. A small, decisive sample can justify a fix while the total affected population is still unresolved.
Sensitivity and Exploitability Need Their Own Evidence
Similar-looking artifacts carry very different weight:
A credential-like value may be public, stale, or privileged.
A business contact may be intentionally published.
A blank questionnaire differs from completed, organization-linked answers.
A financial field differs from a usable payment instrument.
The assessment should preserve those distinctions without reproducing personal information or credential values in the report.
Reachable Logic Is Not a Completed Action
An error from a write-oriented operation may show that a request reached backend logic. It doesn’t prove that durable state changed.
A controlled retest should compare before and after state for an approved fixture. Destructive or financially consequential actions in production aren’t needed to establish the test requirement.
NIST’s testing guidance separates planning, examination, analysis, and mitigation. A mature finding keeps that separation: the evidence supports the observed result, the analyst explains the mechanism, and the owner decides the response within an authorized scope.
Leadership Takeaway
Ask for the smallest defensible claim that still explains the risk. Precision strengthens urgency when the evidence is real, and it stops inflated scale from weakening an important finding.
9. From Annual Testing to Continuous Validation
A periodic assessment captures one point in time. Insurance access relationships keep changing as products launch, roles evolve, partners integrate, and applications migrate.
Continuous validation makes the important security properties repeatable across those changes.
Start With a Few Durable Invariants
An invariant is a business rule that must stay true across implementations. For example:
A producer cannot retrieve an unrelated policy.
A claim attachment enforces the claim’s restrictions and any document-specific limits.
A customer-specific service identity cannot act across other customers.
An export contains only data permitted under the policy at execution time.
Rules like these outlast any list of routes.
Turn each invariant into positive and negative tests, using authorized accounts and synthetic or specifically approved fixtures. Keep the positive control. A suite that only expects rejection can pass because the service is completely broken.
Record the application version, the policy version, and the test context so the result can be interpreted later.
[Image: figure-5-validation-loop.png]
Keep a working positive control and a bounded evidence record. Recommended validation loop: testing is bounded, authorized, and designed to preserve evidence without collecting unnecessary production data.
Carry Scope Through Asynchronous Work
Exports, document generation, and partner synchronization often run after the original request has ended.
Preserve the initiating scope in trusted job context.
Decide when permissions must be rechecked, especially if a relationship can change before execution or delivery.
Bind job status and result access to the intended party.
Assess cache behavior for cross-tenant leakage.
Retest the Family of Paths
After a shared authorization fix, test representative dependent operations and the route that bypassed the control in the first place. Include list, detail, batch, export, and attachment behavior where they apply.
If the fix is local to one route, review the sibling operations before closing the failure family.
Business-flow controls need state-aware tests too. Quote generation, issuance, cancellation, claim approval, and payment-related instructions all have prerequisites and sequencing rules.
Rate controls, duplicate detection, and replay protection may be appropriate, but the business owner should define the abuse case and the acceptance criteria. OWASP API6 describes this class of risk. These are recommended test targets, not claims that each abuse occurred in the reviewed sample.
Make Closure Evidence Usable by Another Team
A closure record should identify:
The original failed boundary
The implemented control
The release or configuration change
The test matrix
Any residual limitation
Distinguish verified closure from partial remediation and from inability to reproduce. A blocked host, a transient error, or an unavailable environment doesn’t establish that the original authorization defect was fixed.
Leadership Takeaway
Measure whether critical business rules are covered and keep passing. Route counts and scanner activity are supporting measures, not proof that the authorization model is sound.
10. A Practical Validation Matrix
The matrix below is a starting point for an owner-authorized test plan. Select the dimensions relevant to the workflow and define the expected behavior before testing. Use controlled fixtures, not broad extraction.
Test dimension | Variation | Required result |
|---|---|---|
Identity | No identity, invalid token, wrong audience, expired or revoked identity | Denied access with no sensitive content or unauthorized effect |
Object relationship | Allowed object and unrelated object within one organization | Decision is enforced for the selected object |
Tenant relationship | Equivalent roles in two controlled organizations | No cross-tenant record, count, file, or job disclosure |
Function and state | Lower-privilege role or unmet workflow prerequisite | Operation rejected and durable state unchanged |
Input properties | Restricted ownership, approval, or privileged field | Unpermitted change rejected or safely ignored under defined policy |
Output properties | Same object requested by roles with different needs | Only permitted fields returned |
Batch | Allowed, denied, and mixed-scope object sets | Documented per-item or whole-request policy enforced |
Export | Creation, execution, status, and result retrieval | Scope remains valid through every stage |
Document | Metadata, generated link, and delivered content | Equivalent authorization for each resource |
Alternate route | Supported version, legacy path, direct service, and storage | Equivalent policy or verified retirement |
Service credential | Old credential and constrained replacement | Old authority removed; replacement cannot exceed its purpose |
Revocation | Relationship removed during a session or pending job | Behavior matches the defined revocation policy |
Look Beyond the Response Body
A denied record body can coexist with a leaked count, a document title, an export status, or an observable state change.
Decide which metadata is sensitive for the workflow and test it explicitly. Inspect the business outcome as well as the HTTP response. Neither a success status nor an error status is sufficient on its own.
OWASP ASVS 5.0.0 provides a versioned verification baseline. Select and record the relevant requirements, then connect them to application-specific invariants. Adopting a standard or running a test suite doesn’t confer blanket certification.
11. The First 90 Days
This plan is a framework for a CISO, a CTO, and business-service owners. Adapt it to the organization’s architecture, change controls, and evidence.
An active, substantiated exposure may need immediate containment. It should not wait for a scheduled phase.
Days 1 to 30: Establish the Critical Paths
Select the workflows with the most consequential data or authority:
Policy servicing
Claims and attachments
Privileged partner operations
Bulk exports
Service credentials
Assign an owner to each. Map the user-facing route, the alternate APIs, the service identities, and the data-delivery paths. Identify the business relationship that should constrain every operation.
Triage existing findings by evidence strength, reachable authority, and data sensitivity. Confirm which credential-like artifacts are actually privileged before choosing a response.
Contain substantiated paths through the authorized incident process, and preserve the facts needed for investigation.
Days 31 to 60: Repair the Shared Decisions
Implement server-side relationship checks and query scoping at the appropriate shared control points.
Separate customer identities and narrow service permissions.
Align document and export authorization with the originating business object.
Retire unsupported alternate paths, or bring them under the same tested policy.
Create a controlled fixture set and automate the positive and negative cases for each priority invariant. Review the operations that depend on the repaired component.
Where the intended policy is ambiguous, involve the business owner. Implementation convenience should not become the access rule.
Days 61 to 90: Prove Closure and Make It Repeatable
Run the full relevant test family against the released change. Verify revoked authority, allowed workflows, and rejected relationship violations.
Establish release triggers for authorization regression tests and a clear escalation when they fail. Review partner handoffs, and document who supplies the evidence when a control is managed elsewhere.
Who Owns What by Day 90
Accountable role | Deliverable by the end of the cycle | Useful measure |
|---|---|---|
Business-service owner | Explicit relationship and workflow rules | Priority operations with approved access rules |
Engineering owner | Enforcement and automated regression tests | Critical invariants with passing positive and negative cases |
Security reviewer | Mechanism-specific findings and closure criteria | Substantiated findings with verified or explicitly partial closure |
Platform or partner owner | Scoped identities and integration responsibilities | Privileged identities with owners and tested scope |
12. Conclusion
A portal can be secure while the business behind it stays exposed. A protected sign-in journey says little about the direct API, the legacy version, the service credential, the export, or the document link.
Each of those paths has to answer the same question. Is this caller entitled to this business object and this action? A valid token is where that decision starts, not where it ends.
The fix is not a longer list of endpoints to patch. It is a short list of business rules, written so the business can challenge them, enforced at shared control points, and tested with both an allowed case and a controlled violation.
Precision matters as much as coverage. The smallest defensible claim moves an engineering team faster than an inflated total, and it holds up when someone checks.
Insurance relationships change every time a product launches or a partner integrates. Authorization has to be proven continuously, not assumed from last year’s report.
Make the business rule explicit, then prove it holds on every path.
This white paper is a living document. As assessment data and testing methods evolve, so will the guidance in it.
Published by CodeAnt AI | October 2026
Test Your Authorization Boundaries Before an Attacker Does
Get a pentest report that shows proven paths to your critical data, with the full audit trail behind every finding.
Get Pentest Report | Book a Demo
Appendix A: Research Approach and Interpretation
What Was Reviewed
This report is based on a retrospective analysis of insurance-sector security-assessment reports and retained validation records from 2026.
The research covered 135 domains classified with high confidence as core insurance-sector businesses.
The quantitative comparison uses the latest available assessment report for each of 128 domains.
Insurance technology and service-provider operations, and health-insurance-related businesses, were examined as separate groups.
Domains are technical scope units. They are not independent corporate groups, customers, or market share. The sample was not randomly drawn from the insurance industry, and assessment scope, depth, timing, and available evidence vary.
The report therefore describes patterns within the reviewed material. It doesn’t estimate industry-wide prevalence or compare the security performance of business segments.
Evidence and Interpretation
The review distinguishes source-reported observations, retained validation support, and architectural inference. It did not independently repeat tests against live systems or inspect raw personal-data datasets.
Reported categories remain source labels and may group different mechanisms or populations. Historical observations don’t establish current exposure, exploitation by another actor, or a security incident.
The issue-category chart counts a domain once when its source report accepted at least one data-exposure finding carrying the plotted label. The categories overlap.
The financial and personal-information comparison measures co-occurrence within a selected domain report, potentially across different findings. It doesn’t demonstrate a causal relationship or a single access path.
Anonymization and Scope
Mechanism descriptions synthesize patterns from the reviewed assessments. Identifying details and organization-specific quantities have been removed.
Conceptual diagrams illustrate control design. They don’t represent discovered connections between particular companies, and this review established no shared-vendor exposure network.
The analysis doesn’t sum record counts into an affected-person total. Evidence of a listing, an advertised total, or an addressable range is kept distinct from information actually observed. Present-day posture and population impact require an authorized, owner-led assessment.
Using the Recommendations
The controls and test plans are engineering recommendations. Apply them within an explicitly authorized scope, using controlled accounts and synthetic or approved fixtures.
Incident decisions, legal obligations, and business-risk acceptance depend on the organization’s facts and its responsible advisers. This report provides no compliance guarantee.
OWASP, MITRE, and NIST provide the terminology and control references cited throughout. These organizations did not review or endorse the report. The standards are interpretive sources; the insurance assessment review supplies the empirical observations.
Appendix B: References
Primary technical references. OWASP API categories refer to the 2023 edition. The selected ASVS baseline is version 5.0.0. Reference links were checked in October 2026.
NIST SP 800-115. Technical Guide to Information Security Testing and Assessment. September 2008.
OWASP API2:2023. Broken Authentication.
MITRE CWE-306. Missing Authentication for Critical Function.
OWASP API1:2023. Broken Object Level Authorization.
OWASP API3:2023. Broken Object Property Level Authorization.
OWASP API5:2023. Broken Function Level Authorization.
OWASP Authorization Cheat Sheet. Server-side, least-privilege authorization and testing guidance.
OWASP API6:2023. Unrestricted Access to Sensitive Business Flows.
MITRE CWE-798. Use of Hard-coded Credentials.
OWASP Secrets Management Cheat Sheet. Secret lifecycle, access control, and rotation guidance.
NIST SP 800-207. Zero Trust Architecture. August 2020.
OWASP API9:2023. Improper Inventory Management.
OWASP ASVS 5.0.0. Application Security Verification Standard. Versioned technical requirements baseline.
MITRE CWE-862. Missing Authorization.
MITRE CWE-639. Authorization Bypass Through User-Controlled Key.
OWASP API8:2023. Security Misconfiguration.
[GET STARTED]
Find out what's already
exploitable in your codebase.
Find out what's already exploitable in your codebase.
Find out what's already
exploitable in your codebase.
START PENTEST


