‹ NativeCAD for defense

CMMC Level 2 / NIST SP 800-171 responsibility map

A defense supplier that runs NativeCAD in its own AWS GovCloud (US) account has to show its assessor where each security requirement is met. This page does that for the requirement families that touch a CAD tool. For every requirement it says what NativeCAD does, what stays with the customer's environment, and where neither applies. It is a map for your System Security Plan (SSP), not a certificate.

What this page is not. CMMC assesses an organization's information system and its scope. It does not certify software products, and NativeCAD is not "CMMC certified", "compliant" or "authorized". Nothing here is an assessment result. Your SSP, your scoping decision and your C3PAO (or DIBCAC) decide what counts. Treat this page as evidence to cite, and check each row against your own deployment.

Checked against the sources listed at the end on 2026-10-12.

Why NativeCAD fits the boundary

The software runs where the controlled data already is. In the GovCloud reference deployment (the GovCloud deployment guide):

Whether a given workload is in your assessment scope is your decision (see 32 CFR 170.19 on scoping). The map below assumes the NativeCAD container holds CUI, so its requirements apply.

Which revision

CMMC Level 2 assesses against NIST SP 800-171 Revision 2: 110 requirements in 14 families. 32 CFR 170.14 says "The security requirements in CMMC Level 2 are identical to the requirements in NIST SP 800-171 R2." NIST published Rev. 3 (17 families) on 2024-05-14 and has superseded Rev. 2. DoD's position (CMMC alignment deck, Feb 2025) is that assessments stay on Rev. 2 until Rev. 3 is adopted through rulemaking. Trade reporting says the planned Rev. 3 rule had not been published as of mid-2026. Confirm the current status before you plan around either revision.

This map uses Rev. 2 numbering (3.x.y). Rev. 3 keeps the same families and adds Planning, System and Services Acquisition and Supply Chain Risk Management. The supply-chain rows (SBOM, signed releases, pinned digests) are the part of this map that Rev. 3's new families will lean on most.

How to read the tables

WhoMeaning
NativeCADthe product meets the requirement for its own surface, with the evidence named
SharedNativeCAD or the reference stack contributes evidence and the customer completes it
Customerthe customer's environment owns it. NativeCAD does not get in the way
N/Adoes not apply to a software product of this kind

"Stack" means the reference CloudFormation template (deploy/govcloud/nativecad-govcloud.template.json). It is a starting point that you own once you deploy it. "Sandbox" means sandbox mode (packages/mcp/src/sandbox/, tools/audit_verify.js). the sandbox acceptance test proves each sandbox behaviour named below.

3.1 Access Control (AC)

ReqRequirement (short)WhoNativeCAD providesCustomer environment provides
3.1.1Limit system access to authorized users, processes and devicesSharedThe MCP server has no network listener: it speaks stdio only, so there is no remote login surface. The modeler sits behind an internal load balancer whose security group admits only ClientCidr.User authentication in front of the modeler (IdP, VDI or reverse proxy), the ClientCidr value, and IAM for who may start tasks or run the image.
3.1.2Limit access to permitted transactions and functionsSharedSandbox refuses every tool that needs a network or an outside toolchain (SANDBOX_UNAVAILABLE) and lists them with reasons in cad_server_info.sandbox.unavailable.Role design: who can invoke which agent, and with which licence.
3.1.3Control the flow of CUI per approved authorizationsSharedThe strongest NativeCAD row. The workspace jail refuses any path outside /workspace (SANDBOX_PATH). The egress block refuses any network call from inside the process (SANDBOX_EGRESS). The VPC has no route out. The modeler's CSP pins connect-src to its own origin. Eval sharing writes a local bundle only.The approved paths in and out of the enclave (media transfer, cross-domain), export and release authorizations, and DLP at your boundary.
3.1.4Separate dutiesCustomerNone.Role separation between build, deploy, operate and audit.
3.1.5Least privilegeSharedThe container runs as UID 1001 with a read-only root, all Linux capabilities dropped, and ECS Exec off. The task role can only mount its own EFS access point, because the application makes no AWS API calls.IAM policies and permission boundaries for people and pipelines.
3.1.6, 3.1.7Non-privileged accounts for non-security functions; log privileged functionsCustomerNativeCAD has no accounts or privilege tiers of its own.Privileged-account management and logging (IAM, CloudTrail).
3.1.8 to 3.1.11Failed-logon limits, privacy and security notices, session lock, inactivity terminationCustomerN/A. NativeCAD has no logon.Your IdP, VDI and workstation policy.
3.1.12 to 3.1.15Monitor, encrypt and route remote access; authorize remote privileged commandsCustomerNo inbound management interface exists on the MCP server. ECS Exec is off, so there is no remote shell into a task.Transit Gateway, Direct Connect or VPN, managed access points, and remote-session monitoring.
3.1.16 to 3.1.19Wireless and mobile device controlsN/ANot applicable to a server-side container.Your device and wireless policy.
3.1.20Verify and control connections to external systemsSharedThe server makes no outbound connections: sandbox blocks them and the stack has no route for them.The connections your boundary does allow.
3.1.21Limit portable storage on external systemsCustomerThe jail stops tools writing outside /workspace.Removable-media policy.
3.1.22Control CUI posted or processed on public systemsSharedSandbox refuses cad_report_bug, cad_quote_submit, cad_eval_share and cad_contest, which are the tools that would send data out.Policy and training.

3.3 Audit and Accountability (AU)

ReqRequirement (short)WhoNativeCAD providesCustomer environment provides
3.3.1Create and retain audit logsSharedSandbox appends every tool call, refusals included, to a per-process audit-*.jsonl in /workspace/audit/. A line holds the time, tool, arguments, SHA-256 of every file read or written, the result and the reason code. Geometry payloads are digested, never logged. The stack adds CloudTrail (multi-region, log-file validation, KMS), VPC flow logs capturing ALL traffic, and a KMS-encrypted app log group.Retention beyond LogRetentionDays, and shipping /workspace/audit/ to WORM storage on a schedule.
3.3.2Trace actions to individual usersSharedEach audit line records the actor (agent, or human when _meta["nativecad/actor"] or NATIVECAD_ACTOR says so), the client scope and the document handle. The actor is a role, not a named person.Bind each session to a named identity through your IdP, the task role and CloudTrail, then join that to the audit line by time and task ID.
3.3.3Review and update logged eventsCustomerThe JSONL is plain, stable and machine-readable.The review cadence and event selection.
3.3.4Alert on audit logging process failureSharedIf the server cannot write an audit line it refuses every later call (SANDBOX_AUDIT) rather than run unaudited. It will not start sandboxed without a writable audit directory.Alarms on task failures and on CloudWatch Logs delivery.
3.3.5, 3.3.6Correlate review, analysis and reporting; record reductionCustomerJSONL and CloudWatch Logs are ready inputs.SIEM, correlation and reports.
3.3.7Synchronize system clocksCustomerAudit timestamps come from the host clock.Time source (for example Amazon Time Sync).
3.3.8Protect audit information and toolsSharedEach file is a hash chain. Editing, inserting, removing or moving a line breaks it, and node tools/audit_verify.js /workspace/audit names the first broken line (--require-sealed also fails a file with no session-end). Tools cannot read or write the audit directory (the jail). EFS, log groups and the trail bucket are KMS-encrypted.Write-once storage and IAM on the log destinations. A hash chain cannot prove that a whole file was deleted.
3.3.9Limit audit management to privileged usersCustomerThe audit directory is off limits to every tool.Who can reach EFS, CloudWatch Logs and the trail bucket.

3.4 Configuration Management (CM)

ReqRequirement (short)WhoNativeCAD providesCustomer environment provides
3.4.1Baseline configurations and inventoriesSharedOne image, pinned by digest. The SBOM (deploy/sbom/) inventories the bundle. kernel/BUILD_INFO.json stamps the staged kernel. The stack is version-controlled infrastructure code.The authoritative inventory, and the image digest you approved.
3.4.2Establish and enforce security configuration settingsSharedSecure defaults ship in the image: sandbox on, telemetry off (DO_NOT_TRACK=1, CADSOLVER_TELEMETRY=off), updater off, read-only root, capabilities dropped.Drift detection and enforcement (for example AWS Config).
3.4.3, 3.4.4Track, approve and analyze changesCustomerSigned release manifests, the changelog and a regenerated SBOM per release give you the input for an impact analysis.Your change board and approvals.
3.4.5Restrict access for changesSharedThe root filesystem is read-only. Sandbox forces the updater off, so a running server never replaces itself. Updates are a deliberate image rebuild.ECR, CloudFormation and pipeline IAM.
3.4.6, 3.4.7Least functionality; restrict nonessential programs, ports and servicesSharedNetwork-dependent tools are refused and listed. The image exposes one port (8080, modeler only). The MCP mode exposes none.Ports, protocols and services at your boundary.
3.4.8Deny-by-exception or permit-by-exception for softwareSharedThe image carries three npm dependencies plus the kernel, and the sandboxed process cannot start network tools (curl, ssh, git, npm and the like).Admission control: only approved digests run.
3.4.9Control user-installed softwareSharedRead-only root, and no update path inside the sandbox.Policy for host and workstation software.

3.5 Identification and Authentication (IA)

ReqRequirement (short)WhoNativeCAD providesCustomer environment provides
3.5.1, 3.5.2Identify and authenticate users, processes and devicesCustomerN/A. NativeCAD has no user accounts. The licence key identifies a licence, not a person, and is validated locally.IdP, VDI, IAM roles and device identity.
3.5.3Multi-factor authenticationCustomerN/A.MFA at your IdP or VDI.
3.5.4 to 3.5.9, 3.5.11Replay resistance, identifier reuse and lifecycle, password rules, feedback maskingCustomerN/A.Your IdP policy.
3.5.10Store and transmit only cryptographically protected passwordsN/ANativeCAD stores and transmits no passwords. Keep CADSOLVER_LICENSE_KEY in your secrets store.Secrets management.

3.8 Media Protection (MP)

ReqRequirement (short)WhoNativeCAD providesCustomer environment provides
3.8.1, 3.8.2Protect system media with CUI; limit accessSharedCUI lives in one place: /workspace, a KMS-encrypted EFS volume behind a single access point.Key policy, EFS access and physical protection of any exported media.
3.8.3Sanitize or destroy media before disposal or reuseCustomerAll state is under /workspace, so there is one volume to sanitize. A tmpfs workspace leaves nothing behind.Sanitization procedure and key destruction.
3.8.4Mark media with CUI markingsCustomerNativeCAD does not apply CUI markings to files.Marking process.
3.8.5, 3.8.6Control access and accountability in transport; encrypt in transitSharedThe audit log records the SHA-256 of every file the server reads or writes, so a file's identity can be checked at each hop.Transfer tooling, encryption and chain of custody.
3.8.7, 3.8.8Control removable media; prohibit unowned portable storageCustomerThe jail stops tools writing outside /workspace.Removable-media policy.
3.8.9Protect the confidentiality of backup CUICustomerThe reference stack does not configure backups.EFS backup policy. Backups should inherit KMS encryption.

3.13 System and Communications Protection (SC)

ReqRequirement (short)WhoNativeCAD providesCustomer environment provides
3.13.1Monitor, control and protect communications at boundariesSharedThe stack has no internet gateway, NAT, egress-only gateway, Elastic IP, peering or Transit Gateway attachment, and no AWS::EC2::Route. VPC endpoints are exactly bedrock-runtime-fips, ecr.api, ecr.dkr, logs and s3. deploy/govcloud/validate.js checks each property by name. Flow logs capture ALL traffic. The load balancer is internal.Your boundary devices, inbound connectivity (Transit Gateway, Direct Connect, VPN) and traffic monitoring.
3.13.2Security-promoting architecture and engineeringNativeCADPure JavaScript, no native modules, no WASM, no dev dependencies in packages/mcp. The stager (scripts/stage-kernel.js) hard-fails the build if the kernel closure reaches a native or undeclared package.None.
3.13.3Separate user functionality from management functionalitySharedThe MCP server exposes no management interface. The modeler server is GET and HEAD only. ECS Exec is off.The administrative plane (IAM, CloudFormation).
3.13.5Separate publicly accessible components from internal networksSharedSubnets never map public IPs, and tasks run with AssignPublicIp: DISABLED.Your enclave network design.
3.13.6Deny network traffic by default, allow by exceptionSharedTask egress allows only HTTPS to the VPC CIDR and the S3 prefix list. The endpoint security group's egress is 127.0.0.1/32. In the process, sandbox denies every network call.Default-deny rules at your own boundary.
3.13.7Prevent split tunnelingCustomerN/A.VPN and VDI client configuration.
3.13.8Cryptography to protect CUI in transitSharedThe MCP server does no network I/O. The HTTPS listener uses ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04. EFS requires TLS. AWS APIs go over HTTPS VPC endpoints.The ACM certificate and PKI. Always set CertificateArn: with it empty the stack serves HTTP, which is for a lab only.
3.13.9Terminate connections after the session or inactivityCustomerThe static server is stateless.Load balancer idle timeout and VDI policy.
3.13.10Establish and manage cryptographic keysSharedOne customer-managed KMS key with rotation on, which the validator enforces.Key administration policy and separation of key custodians.
3.13.11FIPS-validated cryptography for CUISharedNativeCAD does no network crypto. It uses SHA-256 for the audit chain and licence check, and ed25519 to verify release signatures, through Node's crypto. The default base image, Red Hat UBI 9, is FIPS-capable: on a FIPS-mode host Node reports crypto.getFips() === 1 with no image change. Neither the image nor NativeCAD is itself a validated module.Run on a FIPS-mode host (for example Fargate in GovCloud or a FIPS AMI) and cite the CMVP certificate for your platform's module.
3.13.13Control and monitor mobile codeSharedThe modeler runs JavaScript in the browser by design, from its own origin only (default-src 'self', connect-src 'self'). Its CSP does allow 'unsafe-inline' and 'unsafe-eval', which the modeler needs.Browser policy and monitoring on the workstation.
3.13.15Protect the authenticity of communications sessionsCustomerTerminated at the load balancer.Certificates and TLS policy.
3.13.16Protect the confidentiality of CUI at restSharedEFS, both log groups and the trail bucket are encrypted with the stack's KMS key. The validator fails the template if any is not.Key custody, and encryption of anything you add (volumes, snapshots, S3).
3.13.4, 3.13.12, 3.13.14Shared-resource information, collaborative devices, VoIPN/ANot applicable to this software.Your environment.

3.14 System and Information Integrity (SI)

ReqRequirement (short)WhoNativeCAD providesCustomer environment provides
3.14.1Identify, report and correct flaws in a timely mannerSharedReports go to support@featureboard.ai. Fixes ship as new releases with a changelog. The release manifest is signed (ed25519). A server installs a release only if the signature and every artifact digest verify. In the sandbox the updater is off, so you rebuild and redeploy a new signed release when you choose.Image scanning, patch cadence and redeployment.
3.14.2, 3.14.4Malicious-code protection; keep it currentCustomerPure JavaScript with no native modules shrinks the native-code attack surface. NativeCAD is not an antivirus product.Image and host scanning, EDR.
3.14.3Monitor security alerts and advisoriesSharedThe SBOM gives you exact component names, versions and hashes to match against advisories.The advisory feed and the triage process.
3.14.5Scan files from external sourcesCustomerImports (STEP, DXF, PDF, Parasolid and others) are parsed by in-process JavaScript inside the jail. They are not scanned for malware.Scan on the way into the enclave.
3.14.6Monitor communications to detect attacksCustomerVPC flow logs (ALL traffic) are on.Detection and alerting on them.
3.14.7Identify unauthorized useSharedRefused calls are audited with reason codes (SANDBOX_PATH, SANDBOX_EGRESS, SANDBOX_UNAVAILABLE). cad_server_info.sandbox counts refused egress attempts and names the audit file.Alerting on those events.

Other families

Supply chain: the SBOM

The SBOM generator writes a CycloneDX 1.5 JSON SBOM for the staged MCP bundle. It reads only local files (the lockfile and the kernel stager's require-closure), runs offline and produces the same bytes for the same checkout.

node tools/sbom_cyclonedx.js            # writes deploy/sbom/nativecad-mcp-<version>.cdx.json
node tools/sbom_cyclonedx.js --check    # exit 1 if the committed SBOM is stale
PartWhat it lists
the packagenativecad-mcp and its version
npm closureevery package in packages/mcp/package-lock.json, each with a package URL, version, declared licence and the dependency graph. The SBOM states how many packages carry a lockfile integrity digest (nativecad:lockfile-integrity-coverage); today the lockfile records none, so tarball hashes are not in the SBOM
kernel closureone component for the first-party kernel files that stage-kernel.js ships, with a SHA-256 over the sorted per-file digests
assetsthe fonts and other verbatim assets the stager copies, each with a SHA-256

Scan it with any CycloneDX-aware tool, for example grype sbom:deploy/sbom/nativecad-mcp-<version>.cdx.json. Regenerate it and commit it with each release. --check exits 1 when the committed file has drifted from the package version or the npm closure, and NativeCAD's CI runs it.

The SBOM covers NativeCAD's own bundle. It does not list the operating-system packages of the base image: scan the image you build (for example with syft) and record its digest, as step 2 of the GovCloud deployment guide says.

Sources

Checked 2026-10-12. Items marked (secondary) are trade or third-party reporting that I could not tie to a primary page. Confirm them before you rely on them.

Want this running inside your boundary? We will walk your team through the deployment and the map.

Talk to sales: sales@featureboard.ai