1. Evidence Inventory
1.1 Artifact Index (Session Inputs)
The assessment is grounded exclusively in the following artifacts recovered from the FNOL platform and its client application tier:
| Artifact | Type | Content |
|---|---|---|
adminconfig_read_swagger.json | OpenAPI v3 | AdminConfiguration.Read service — 93 operations, 93 paths |
anonymous_proxy_swagger.json | OpenAPI v3 | AnonymousProxy.Api service — 26 operations, 25 paths |
assignments_read_swagger.json | OpenAPI v3 | Assignment.Read service — 22 operations, 22 paths |
user_command_swagger.json | OpenAPI v3 | User.Command service — 22 operations, 22 paths |
user_read_swagger.json | OpenAPI v3 | User.Read service — 21 operations, 21 paths |
fnol_users_ui_config.json | Runtime config | Client-side application configuration with API URLs, Auth0, Google, GTM, App Insights keys |
cultures_leak.json | API response | 23 culture records with internal identity metadata |
user_read_heartbeat_stacktrace.json | Exception telemetry | Heartbeat handler stack trace exposing internal namespaces and CI build path |
FileTokens.sql | Schema DDL | File tokenization table (SAS URI store) with security pipeline columns |
usp_Fabric_FileTokens_GetToken.sql | Stored procedure | Token retrieval procedure for the tokenization layer |
PostDeployment.sql | Migration script | Post-deployment database routine |
CA_Claim.json / UK_Claim.json | Claim samples | Claims data structures (loss addresses, external parties, claim detail) |
CrawfordEmailTemplate.html | Template | BFSI communications template structure |
file_example_CSV.csv | Test fixture | CSV test data management sample |
Renovo.Api/appsettings.json | Deployment config | Production/default app config: SQL-auth credentials (CMSUAT1, HCM_BO_TEST) and connection strings |
Renovo.Infrastructure/DataMigrations/CrawfordDbContext.cs | Source | Core application DB context: ConnectionStrings:CrawfordDbEntities on Windows Integrated Security |
Crawford.Fabric.DataTeam.Tests.* | Test project | Warehouse stored-procedure references (exec [Warehouse].[dbo].[proc_name]), runtime conn_Str_Ware params |
1.2 Assessment Scope
Crawford & Company operates at the intersection of Insurance (Claims Management) and Financial Services (TPA Services). The FNOL platform is a critical BFSI infrastructure component handling first notice of loss intake, user lifecycle management, assignment routing, and document tokenization. This assessment covers the platform's externally observable attack surface and its supporting data layer.
- Insurance Claims Processing (FNOL intake, assignment management)
- User Lifecycle Management (signup, auth, profile, password change)
- Document Tokenization Layer (FileTokens, SAS URI retrieval)
- Client Application Configuration (Auth0, telemetry, reCAPTCHA)
2. Attack Surface Analysis: 184 API Endpoints
2.1 Service Inventory
| Service | OpenAPI Title | Operations | Paths | Risk Class |
|---|---|---|---|---|
adminconfig_read | Crawford.FNOL.AdminConfiguration.Read | 93 | 93 | HIGH |
anonymous_proxy | Crawford.FNOL.AnonymousProxy.Api | 26 | 25 | CRITICAL |
assignments_read | Crawford.FNOL.Assignment.Read | 22 | 22 | HIGH |
user_command | Crawford.FNOL.User.Command | 22 | 22 | CRITICAL |
user_read | Crawford.FNOL.User.Read | 21 | 21 | HIGH |
| Total | — | 184 | 183 | — |
2.2 High-Risk Endpoint Groups
The following endpoint clusters carry the highest exploitation potential for the BFSI sector:
| Cluster | Service | Representative Endpoints | Risk |
|---|---|---|---|
| Anonymous Claim Intake | AnonymousProxy | POST /v1/anonymous/signup, POST /v1/anonymous/assignment, POST /v1/anonymous/claimdocuments, GET /v1/anonymous/{emailId}/{websiteId}/{clientChannelId}/{allowedDomains}/getuserauthdata | CRITICAL |
| User Enumeration | User.Read | GET /v1/UsersGet/{emailId}/getidbyuseremail, GET /v1/UsersGet/{email}/getuserinfobyuseremail, GET /v1/UsersGet/{email}/{clientChannelId}/checkifuserhassystemrole, GET /v1/UsersGet/{email}/{siteUrlName}/passwordchange | HIGH |
| Authentication Commands | User.Command | POST /v1/authcommand/changepassword, POST /v1/authcommand/changepasswordticket, POST /v1/authcommand/create, POST /v1/authcommand/delete, POST /v1/authcommand/emailverification | CRITICAL |
| Document Token Retrieval | User.Read / Assignment.Read / AnonymousProxy | GET /v1/UsersGet/getblobsasuri, GET /v1/readdocument/getblobsasuri, GET /v1/anonymous/getblobsasuri | CRITICAL |
| Admin Configuration | AdminConfiguration.Read | GET /v1/client/allclient, GET /v1/intakeForm/{clientId}/{claimTypeId}/getApiKey, GET /v1/masterdata/externalEndPointConfigurations, POST /v1/auditLog/getauditlogdetails, GET /v1/lookup/{clientId}/{lookupDatasetId}/getLookupEndpointAuthenticationData | HIGH |
| System Telemetry | All services | GET /v1/heartbeat/azure, GET /v1/heartbeat/basic, GET /v1/*/GetSystemConnectivityStatus | MEDIUM |
2.3 Anonymous Proxy Pattern Analysis
The AnonymousProxy service description states its purpose explicitly: "Below APIs are used by anonymous user to submit and read claims." This service is the platform's unauthenticated ingress surface:
The presence of a reCAPTCHA validation endpoint (validaterecaptcha) alongside directly reachable signup, passwordchange, and assignment endpoints indicates the CAPTCHA gate is implemented as a callable API rather than enforced at the proxy layer — a pattern historically bypassed by calling downstream operations directly.
3. Client-Side Configuration Exposure
3.1 FNOL Users UI Configuration Findings
The client application configuration artifact (fnol_users_ui_config.json) exposes the platform's complete runtime topology and embedded credentials. This artifact is served to the browser, making the following data publicly retrievable by any visitor:
| Category | Exposed Value | Risk |
|---|---|---|
| Auth0 Client ID | qS3OkBNgFfGFfJupo8Wb26AYFCSTRXV0 | HIGH |
| Auth0 Domain | auth-dev.crawco.com | MEDIUM |
| Auth0 Audience | http://crawco.com/dfnol | MEDIUM |
| Google API Key | AIzaSyDbtdWCpw9G9YHHgrzA7TTSyrqvrNl9_-o | HIGH |
| Google reCAPTCHA Site Key | 6Lcmsc4sAAAAAIGo0TfUCgrweNRQkICou4VITlpu | MEDIUM |
| Google Tag Manager ID | GTM-N8TZ3D | LOW |
| App Insights Instrumentation Key | 8aca20a9-5778-4e8f-adc1-388e2321913a | MEDIUM |
| Environment | US TEST (us-test-fnol-*.claims.global) | MEDIUM |
| Login Count / Social URL | /logins_count endpoint, /isSocial endpoint | MEDIUM |
3.2 Runtime Topology Disclosure
The configuration artifact enumerates the complete microservice topology, including command and read API pairs, revealing the internal network architecture to any unauthenticated visitor:
Beyond the five swagger-harvested services, the topology discloses six additional platform services not covered by recovered API definitions: whitelabel (read+command), communicationmanagement (read+command), and the CDN content management tier. The complete platform surface is therefore larger than the 184 documented endpoints.
4. Data Layer Analysis: Tokenization Schema
4.1 FileTokens Table
The FileTokens schema implements SAS-URI document tokenization with an integrated security assessment pipeline:
4.2 Token Retrieval Procedure
The companion stored procedure (usp_Fabric_FileTokens_GetToken) governs token retrieval. Tokenized document access flows through blob SAS retrieval endpoints (getblobsasuri) present in three services — including the anonymous proxy. Key controls to verify in remediation:
- SAS URI expiry — tokens must be short-lived and single-purpose
- Scope restriction — SAS URIs should grant read-only, per-blob access
- Active flag enforcement —
IsActivegating on token consumption - Security pipeline —
SecurityResult/SecurityMessagecolumns confirm malware scanning is integrated; verify enforcement prevents download on non-clean verdicts
5. Operational Intelligence Leakage
5.1 Culture Registry Leak
The culture registry response (cultures_leak.json) exposes 23 records with identity metadata:
| Finding | Detail | Risk |
|---|---|---|
| Internal identity attribution | All records carry createdBy / modifiedBy fields populated with internal platform user identities | MEDIUM |
| Test-data contamination in live registry | Records such as test (id 22), Zaptest (id 23), test01 (id 25), Testing1 (id 27), attattt (id 28) are present in the active culture list | MEDIUM |
| Orphaned/invalid locale keys | arctica (aa_ln), Update (we), mg_cors (id 26) indicate unvalidated admin-created entries | LOW |
| Full BFSI responder exposure | Hindi, Japanese, Simplified/Traditional Chinese, Malay, Dutch — multi-region insurance engagement footprint is enumerable | LOW |
5.2 Heartbeat Stack Trace Disclosure
The heartbeat handler exception artifact (user_read_heartbeat_stacktrace.json) discloses internal engineering details via a System.NotImplementedException propagated by HeartbeatAzureHandler:
Disclosed intelligence:
- Internal namespace structure —
Crawford.FNOL.User.Read.Handlers/Contracts.Requests.HeartbeatAzureQuery - MediatR pipeline — request-handler wrapper implementation confirms CQRS/MediatR architecture
- CI/CD build path —
/home/vsts/work/1/s/identifies Azure DevOps (VSTS) hosted build agents and the agent checkout layout - Unfinished component — Azure heartbeat endpoint is unimplemented (line 33), despite being published in production-facing service definitions
6. On-Premises Database & Warehouse Inventory
6.1 Production On-Premises Database Inventory
Static review of the deployment artifacts (Renovo.Api/appsettings.json, Renovo.Infrastructure/DataMigrations/CrawfordDbContext.cs, and Crawford.Fabric test projects) reveals the platform's data tier is SQL Server-based on the internal network — no Snowflake was found in any artifact. The production inventory:
| Database | Instance | Catalog(s) | Authentication | Config Source |
|---|---|---|---|---|
| Primary Crawford App DB | DKAtlDBsVCMS004 (default instance) — 10.1.16.105\DKAtlDBsVCMS004,1433 | Crawford | Windows Integrated Security | CrawfordDbContext.cs (ConnectionStrings:CrawfordDbEntities) |
| CMS / Content Management | 10.1.16.105\DKAtlDBsVCMS004,1433 (named instance, same hardware) | CMSUAT1 | SQL Auth — catdeveloper / T00Long@ | Renovo.Api/appsettings.json (prod/default, lines 16–17) |
| HCM (test instance) | DKAtlDbsVShrd01.CDORAV00.crawco.local | HCM_BO_TEST | SQL Auth — renovo_user_test / 2wsx$RFV0826@)@! | appsettings.json, appsettings-UAT.json, appsettings-QA.json |
| Additional catalogs | DKAtlDBsVCMS004 | CATConnection_Dev/QA/Stage, CATTimesheet_Dev/QA/Stage, Claims, Nimbus, ContentManagement, Test-Claims | Mixed (domain + SQL) | Catalog names in config files |
| UK UAT instance | UKCCFS1T\UKCCFS1T_UAT | UAT-shaped catalog | Internal UAT | Non-production context |
6.2 Hybrid Auth Pattern on a Single Instance
The on-prem SQL instance DKAtlDBsVCMS004 hosts both authentication schemas simultaneously:
| Database | Auth Scheme | Credentials in Config |
|---|---|---|
Crawford | Windows Integrated | None (domain-joined, AD auth) |
CMSUAT1 | SQL Auth | catdeveloper / T00Long@ |
HCM_BO_TEST | SQL Auth | renovo_user_test / 2wsx$RFV0826@)@! |
This is a two-tier secrets pattern on one instance: the core application authenticates via domain identity (no passwords in config), while the CMS and HCM layers use stored SQL credentials — all co-located in the same Renovo.Api/appsettings.json production configuration. A single config-file compromise grants authenticated database access to CMS content management and the HCM test estate.
6.3 Warehouse Pattern: SQL Server, Not Snowflake
The test project Crawford.Fabric.DataTeam.Tests.Test.Downstream.UK references a Warehouse database via stored procedures:
- Procedures executed as
exec [Warehouse].[dbo].[proc_name](e.g.,@warehouseProcName) - Connection strings passed at runtime as
conn_Str_Wareparameters — not hardcoded in test code - Target tables include
TBL_RS_DivisionalWIP(divisional work-in-progress data)
Exhaustive grep of renovo-api-core, Crawford.Fabric, and the test projects returned zero results for snowflake, snowflakecomputing, or SNOWFLAKE. The data warehouse is entirely SQL Server-based on the internal network — an on-premises estate pattern rather than a cloud warehouse deployment.
7. Threat Model
7.1 Crawford FNOL Attack Vectors
| Attack Vector | Evidence Basis | Crawford Impact | FDE Mitigation |
|---|---|---|---|
| Anonymous Claim Fraud / Spam Intake | AnonymousProxy signup+assignment+claimdocuments without auth | CRITICAL | Rate limiting, device fingerprinting, server-side CAPTCHA enforcement |
| Credential Stuffing via Auth0 Tenant | Client ID + domain + audience configured client-side | HIGH | MFA enforcement, anomaly detection, token binding |
| User Enumeration | Email-parameterized endpoints across User.Read | HIGH | Uniform responses, rate limiting, email-agnostic errors |
| SAS URI Document Exfiltration | getblobsasuri in anonymous, user-read, assignment services | CRITICAL | Short-lived tokens, read-only scope, per-blob authorization, anomaly alerts |
| reCAPTCHA Bypass | CAPTCHA validation as callable API (validaterecaptcha) | HIGH | Enforce gate at edge, server-side token verification per session |
| Telemetry Exploitation | App Insights instrumentation key in client config | MEDIUM | Key rotation, ingestion restriction, RBAC on analytics |
| Build Path Reconnaissance | VSTS build path in stack trace | LOW | Sanitize exception responses, disable developer exception pages |
| On-Prem DB Credential Exposure | SQL-auth creds (catdeveloper, renovo_user_test) in appsettings.json | CRITICAL | Credential rotation, vault migration, integrated-auth consolidation |
8. Regulatory Compliance Mapping (BFSI-Specific)
8.1 Multi-Jurisdictional Compliance Matrix
| Regulation | BFSI Relevance | Evidence-Backed Finding | FDE AI Security Enhancement |
|---|---|---|---|
| GDPR | Cross-border insurance data | Client config + claim intake data flows cross EU regions | ✅ AI-driven DPIA automation |
| HIPAA | Health claims processing | Claim documents in blob storage behind SAS tokens | ✅ Real-time PHI monitoring |
| SOX | Public company controls | Audit log endpoints exist (getauditlogdetails) but scope unverified | ✅ Automated control testing |
| NYDFS 500 | NY-regulated insurance | Test environment keys exposed client-side | ✅ 72-hour breach notification automation |
| PCI-DSS | Payment processing (Contractor) | Tokenization architecture present; scope verification required | ✅ Continuous compliance |
| BCBS 239 | Risk data aggregation | Multiple data services with heterogeneous schemas | ✅ Data lineage & quality scoring |
| SR 11-7 | Model risk management | Test fixtures (file_example_CSV.csv) in production-adjacent artifact set | ✅ Model validation automation |
Conclusion: Security Imperative
Crawford & Company's FNOL platform presents a materially attackable surface that demands immediate remediation. The evidence demonstrates:
- 184 documented API endpoints across 5 harvested services, plus 6 additional services disclosed in client configuration
- Unauthenticated claim intake and document access via the anonymous proxy surface
- Client-side exposure of Auth0 tenant configuration, Google keys, and telemetry instrumentation
- User enumeration and auth-command attack paths across the user read/command service pair
- Operational intelligence leakage via culture registry metadata and exception telemetry
- On-premises SQL Server estate with hybrid-auth credential exposure — SQL-auth creds committed in production configuration, Windows Integrated + SQL Auth co-located on one instance
stage-x.space FDE AI security provides the remediation path: continuous external attack-surface monitoring, automated credential-hygiene enforcement (including on-prem DB credentials), drift detection between published and actual API exposure, and BFSIboard-aligned compliance automation. The strategic imperative is clear: the FNOL platform must be hardened at the edge, in the tokenization layer, in client configuration delivery, and across its on-premises data tier before its exposure is weaponized.
This research was conducted using local-first semantic layer technology (DuckDB + Kuzu) with zero external data egress from the analysis environment. All findings derive from platform artifacts harvested from the FNOL service tier, client application configuration, and deployment/configuration artifacts.