blockmine 1.21.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/README.md +469 -0
- package/.claude/agents/auth-route-debugger.md +118 -0
- package/.claude/agents/auth-route-tester.md +93 -0
- package/.claude/agents/auto-error-resolver.md +97 -0
- package/.claude/agents/build-optimizer.md +236 -0
- package/.claude/agents/code-architecture-reviewer.md +83 -0
- package/.claude/agents/code-refactor-master.md +94 -0
- package/.claude/agents/cost-optimizer.md +134 -0
- package/.claude/agents/deployment-orchestrator.md +113 -0
- package/.claude/agents/documentation-architect.md +82 -0
- package/.claude/agents/frontend-error-fixer.md +77 -0
- package/.claude/agents/iac-code-generator.md +71 -0
- package/.claude/agents/incident-responder.md +346 -0
- package/.claude/agents/infrastructure-architect.md +31 -0
- package/.claude/agents/kubernetes-specialist.md +56 -0
- package/.claude/agents/migration-planner.md +181 -0
- package/.claude/agents/network-architect.md +196 -0
- package/.claude/agents/plan-reviewer.md +52 -0
- package/.claude/agents/refactor-planner.md +63 -0
- package/.claude/agents/security-scanner.md +102 -0
- package/.claude/agents/web-research-specialist.md +78 -0
- package/.claude/commands/cost-analysis.md +315 -0
- package/.claude/commands/dev-docs-update.md +55 -0
- package/.claude/commands/dev-docs.md +51 -0
- package/.claude/commands/incident-debug.md +247 -0
- package/.claude/commands/infra-plan.md +81 -0
- package/.claude/commands/migration-plan.md +478 -0
- package/.claude/commands/route-research-for-testing.md +37 -0
- package/.claude/commands/security-review.md +66 -0
- package/.claude/hooks/CONFIG.md +448 -0
- package/.claude/hooks/README.md +163 -0
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
- package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
- package/.claude/hooks/add-skill-activation-banners.ts +132 -0
- package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
- package/.claude/hooks/error-handling-reminder.sh +12 -0
- package/.claude/hooks/error-handling-reminder.ts +222 -0
- package/.claude/hooks/k8s-manifest-validator.sh +56 -0
- package/.claude/hooks/package-lock.json +556 -0
- package/.claude/hooks/package.json +16 -0
- package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
- package/.claude/hooks/post-tool-use-tracker.sh +183 -0
- package/.claude/hooks/security-policy-check.sh +247 -0
- package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
- package/.claude/hooks/skill-activation-prompt.sh +10 -0
- package/.claude/hooks/skill-activation-prompt.ts +141 -0
- package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
- package/.claude/hooks/terraform-validator.sh +53 -0
- package/.claude/hooks/test-input.json +7 -0
- package/.claude/hooks/test-skill-activation.ts +427 -0
- package/.claude/hooks/trigger-build-resolver.sh +79 -0
- package/.claude/hooks/tsc-check.sh +173 -0
- package/.claude/hooks/tsconfig.json +19 -0
- package/.claude/settings.json +55 -0
- package/.claude/settings.local.json +27 -14
- package/.claude/skills/README.md +507 -0
- package/.claude/skills/api-engineering/SKILL.md +63 -0
- package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
- package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
- package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
- package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
- package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
- package/.claude/skills/build-engineering/SKILL.md +431 -0
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
- package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
- package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
- package/.claude/skills/build-engineering/resources/build-security.md +95 -0
- package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
- package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
- package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
- package/.claude/skills/cloud-engineering/SKILL.md +675 -0
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
- package/.claude/skills/cybersecurity/SKILL.md +409 -0
- package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
- package/.claude/skills/database-engineering/SKILL.md +61 -0
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
- package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
- package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
- package/.claude/skills/devsecops/SKILL.md +374 -0
- package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
- package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
- package/.claude/skills/devsecops/resources/container-security.md +915 -0
- package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
- package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
- package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
- package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
- package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
- package/.claude/skills/devsecops/resources/security-testing.md +203 -0
- package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
- package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
- package/.claude/skills/documentation-as-code/SKILL.md +323 -0
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
- package/.claude/skills/engineering-management/SKILL.md +356 -0
- package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
- package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
- package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
- package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
- package/.claude/skills/error-tracking/SKILL.md +379 -0
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
- package/.claude/skills/general-it-engineering/SKILL.md +393 -0
- package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
- package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
- package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
- package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
- package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
- package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
- package/.claude/skills/network-engineering/SKILL.md +385 -0
- package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
- package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
- package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
- package/.claude/skills/network-engineering/resources/network-security.md +921 -0
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
- package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
- package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
- package/.claude/skills/observability-engineering/SKILL.md +101 -0
- package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
- package/.claude/skills/platform-engineering/SKILL.md +555 -0
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
- package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
- package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
- package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
- package/.claude/skills/release-engineering/SKILL.md +393 -0
- package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
- package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
- package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
- package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
- package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
- package/.claude/skills/route-tester/SKILL.md +392 -0
- package/.claude/skills/skill-developer/ADVANCED.md +197 -0
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/.claude/skills/skill-developer/SKILL.md +430 -0
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/.claude/skills/skill-rules.json +2940 -0
- package/.claude/skills/sre/SKILL.md +464 -0
- package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
- package/.claude/skills/sre/resources/capacity-planning.md +226 -0
- package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
- package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
- package/.claude/skills/sre/resources/incident-management.md +436 -0
- package/.claude/skills/sre/resources/observability-stack.md +240 -0
- package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
- package/.claude/skills/sre/resources/performance-optimization.md +108 -0
- package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
- package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
- package/.claude/skills/sre/resources/toil-reduction.md +145 -0
- package/.claude/skills/systems-engineering/SKILL.md +648 -0
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
- package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
- package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
- package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
- package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
- package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
- package/.claude/skills/technical-leadership/SKILL.md +728 -0
- package/CHANGELOG.md +90 -54
- package/README.md +94 -0
- package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
- package/backend/jest.config.js +59 -0
- package/backend/package-lock.json +6129 -0
- package/backend/package.json +16 -4
- package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
- package/backend/prisma/schema.prisma +33 -0
- package/backend/src/__tests__/core/DependencyService.test.js +336 -0
- package/backend/src/__tests__/core/UserService.test.js +875 -0
- package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
- package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
- package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
- package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
- package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
- package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
- package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
- package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
- package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
- package/backend/src/__tests__/secretsFilter.test.js +425 -0
- package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
- package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
- package/backend/src/__tests__/services/CacheManager.test.js +125 -0
- package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
- package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
- package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
- package/backend/src/__tests__/setup.js +25 -0
- package/backend/src/api/routes/apiKeys.js +181 -0
- package/backend/src/api/routes/bots.js +49 -7
- package/backend/src/api/routes/plugins.js +2 -1
- package/backend/src/api/routes/system.js +174 -0
- package/backend/src/container.js +82 -0
- package/backend/src/core/BotManager.js +142 -871
- package/backend/src/core/BotManager.old.js +1093 -0
- package/backend/src/core/BotProcess.js +1092 -858
- package/backend/src/core/EventGraphManager.js +280 -198
- package/backend/src/core/GraphExecutionEngine.js +321 -325
- package/backend/src/core/MessageQueue.js +27 -6
- package/backend/src/core/NodeRegistry.js +37 -1134
- package/backend/src/core/PluginManager.js +62 -12
- package/backend/src/core/PrismaService.js +32 -0
- package/backend/src/core/UserService.js +3 -3
- package/backend/src/core/__tests__/PrismaService.test.js +24 -0
- package/backend/src/core/commands/README.md +305 -0
- package/backend/src/core/commands/dev.js +13 -7
- package/backend/src/core/commands/ping.js +10 -4
- package/backend/src/core/commands/whois.js +63 -0
- package/backend/src/core/config/validation.js +27 -0
- package/backend/src/core/constants/graphTypes.js +21 -0
- package/backend/src/core/node-registries/actions.js +132 -0
- package/backend/src/core/node-registries/arrays.js +137 -0
- package/backend/src/core/node-registries/bot.js +23 -0
- package/backend/src/core/node-registries/data.js +290 -0
- package/backend/src/core/node-registries/debug.js +26 -0
- package/backend/src/core/node-registries/events.js +187 -0
- package/backend/src/core/node-registries/flow.js +139 -0
- package/backend/src/core/node-registries/logic.js +45 -0
- package/backend/src/core/node-registries/math.js +42 -0
- package/backend/src/core/node-registries/objects.js +98 -0
- package/backend/src/core/node-registries/strings.js +153 -0
- package/backend/src/core/node-registries/time.js +113 -0
- package/backend/src/core/node-registries/users.js +79 -0
- package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
- package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
- package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
- package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
- package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
- package/backend/src/core/nodes/arrays/get_next.js +35 -0
- package/backend/src/core/nodes/{data_cast.js → data/cast.js} +8 -0
- package/backend/src/core/nodes/data/datetime_literal.js +27 -0
- package/backend/src/core/nodes/data/entity_info.js +69 -0
- package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
- package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
- package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
- package/backend/src/core/nodes/data/type_check.js +53 -0
- package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
- package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
- package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
- package/backend/src/core/nodes/flow/delay.js +43 -0
- package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
- package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
- package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
- package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
- package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
- package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
- package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
- package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
- package/backend/src/core/nodes/time/add.js +33 -0
- package/backend/src/core/nodes/time/compare.js +35 -0
- package/backend/src/core/nodes/time/diff.js +29 -0
- package/backend/src/core/nodes/time/format.js +32 -0
- package/backend/src/core/nodes/time/now.js +18 -0
- package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
- package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
- package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
- package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
- package/backend/src/core/services/BotLifecycleService.js +596 -0
- package/backend/src/core/services/BotProcessManager.js +163 -0
- package/backend/src/core/services/CacheManager.js +111 -0
- package/backend/src/core/services/CommandExecutionService.js +351 -0
- package/backend/src/core/services/ResourceMonitorService.js +90 -0
- package/backend/src/core/services/TelemetryService.js +124 -0
- package/backend/src/core/services/ValidationService.js +132 -0
- package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
- package/backend/src/core/services.js +20 -5
- package/backend/src/core/system/CommandContext.js +84 -0
- package/backend/src/core/system/Transport.js +78 -0
- package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
- package/backend/src/core/utils/jsonParser.js +18 -0
- package/backend/src/core/utils/secretsFilter.js +262 -0
- package/backend/src/core/utils/variableParser.js +89 -0
- package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
- package/backend/src/core/validation/nodeSchemas.js +112 -0
- package/backend/src/lib/prisma.js +2 -4
- package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
- package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
- package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
- package/backend/src/real-time/botApi/handlers/index.js +43 -0
- package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
- package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
- package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
- package/backend/src/real-time/botApi/index.js +40 -0
- package/backend/src/real-time/botApi/middleware.js +79 -0
- package/backend/src/real-time/botApi/utils.js +54 -0
- package/backend/src/real-time/socketHandler.js +6 -2
- package/backend/src/repositories/BaseRepository.js +43 -0
- package/backend/src/repositories/BotRepository.js +42 -0
- package/backend/src/repositories/CommandRepository.js +53 -0
- package/backend/src/repositories/EventGraphRepository.js +40 -0
- package/backend/src/repositories/GroupRepository.js +69 -0
- package/backend/src/repositories/PermissionRepository.js +48 -0
- package/backend/src/repositories/PluginRepository.js +42 -0
- package/backend/src/repositories/ServerRepository.js +27 -0
- package/backend/src/repositories/UserRepository.js +48 -0
- package/backend/src/server.js +3 -0
- package/backend/src/test-refactor.js +85 -0
- package/frontend/dist/assets/index-CfTo92bP.css +1 -0
- package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/package.json +0 -5
- package/package.json +2 -1
- package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
- package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
- package/nul +0 -0
- /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
- /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
- /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
- /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
- /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
- /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
- /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
- /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
- /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
- /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
- /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
- /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
- /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
- /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
- /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
- /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
- /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
- /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
- /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
- /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
- /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
- /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
- /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
- /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
- /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
- /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
- /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
- /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
- /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
- /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
- /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
- /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
- /package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +0 -0
package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md
ADDED
|
@@ -0,0 +1,773 @@
|
|
|
1
|
+
# Cleared Environment Architecture
|
|
2
|
+
|
|
3
|
+
Architectural patterns, design principles, and reference architectures for classified and controlled environments supporting Secret, Top Secret/SCI, CUI, and ITAR workloads.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Overview](#overview)
|
|
8
|
+
- [Reference Architectures](#reference-architectures)
|
|
9
|
+
- [Security Zones](#security-zones)
|
|
10
|
+
- [Cross-Domain Solutions](#cross-domain-solutions)
|
|
11
|
+
- [High Availability Patterns](#high-availability-patterns)
|
|
12
|
+
- [Disaster Recovery](#disaster-recovery)
|
|
13
|
+
- [Best Practices](#best-practices)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
**Cleared Environment Architecture** addresses unique challenges of classified systems: physical separation, strict access controls, limited connectivity, and compliance with security directives.
|
|
20
|
+
|
|
21
|
+
**Key Design Principles:**
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Cleared Environment Principles:
|
|
25
|
+
┌─────────────────────────────────────────────────────┐
|
|
26
|
+
│ 1. Defense in Depth │
|
|
27
|
+
│ - Multiple security layers │
|
|
28
|
+
│ - No single point of failure │
|
|
29
|
+
│ - Redundant controls │
|
|
30
|
+
├─────────────────────────────────────────────────────┤
|
|
31
|
+
│ 2. Least Privilege │
|
|
32
|
+
│ - Minimal access rights │
|
|
33
|
+
│ - Need-to-know enforcement │
|
|
34
|
+
│ - Compartmentalization │
|
|
35
|
+
├─────────────────────────────────────────────────────┤
|
|
36
|
+
│ 3. Air-Gap Isolation │
|
|
37
|
+
│ - Physical network separation │
|
|
38
|
+
│ - Controlled data transfer │
|
|
39
|
+
│ - One-way data flows │
|
|
40
|
+
├─────────────────────────────────────────────────────┤
|
|
41
|
+
│ 4. Audit Everything │
|
|
42
|
+
│ - Comprehensive logging │
|
|
43
|
+
│ - Immutable audit trails │
|
|
44
|
+
│ - Real-time monitoring │
|
|
45
|
+
├─────────────────────────────────────────────────────┤
|
|
46
|
+
│ 5. Assume Breach │
|
|
47
|
+
│ - Continuous validation │
|
|
48
|
+
│ - Threat detection │
|
|
49
|
+
│ - Rapid response capability │
|
|
50
|
+
└─────────────────────────────────────────────────────┘
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Reference Architectures
|
|
56
|
+
|
|
57
|
+
### Architecture 1: CUI Cloud Architecture (NIST 800-171)
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
CUI Cloud Reference Architecture (AWS GovCloud):
|
|
61
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
62
|
+
│ AWS GOVCLOUD (US) │
|
|
63
|
+
│ │
|
|
64
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
65
|
+
│ │ VPC (10.0.0.0/16) - CUI Network │ │
|
|
66
|
+
│ │ │ │
|
|
67
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
68
|
+
│ │ │ Public Subnet (10.0.1.0/24) - DMZ │ │ │
|
|
69
|
+
│ │ │ ┌──────────┐ ┌──────────┐ │ │ │
|
|
70
|
+
│ │ │ │ ALB │ │ NAT GW │ │ │ │
|
|
71
|
+
│ │ │ └──────────┘ └──────────┘ │ │ │
|
|
72
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
73
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
74
|
+
│ │ │ Private Subnet (10.0.10.0/24) - Application Tier │ │ │
|
|
75
|
+
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │
|
|
76
|
+
│ │ │ │ EKS Node │ │ EKS Node │ │ EKS Node │ │ │ │
|
|
77
|
+
│ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │
|
|
78
|
+
│ │ │ - Encrypted EBS volumes (FIPS 140-2) │ │ │
|
|
79
|
+
│ │ │ - MFA-protected access │ │ │
|
|
80
|
+
│ │ │ - Audit logging to CloudWatch │ │ │
|
|
81
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
82
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
83
|
+
│ │ │ Data Subnet (10.0.20.0/24) - Data Tier │ │ │
|
|
84
|
+
│ │ │ ┌──────────┐ ┌──────────┐ │ │ │
|
|
85
|
+
│ │ │ │ RDS │ │ S3 VPC │ │ │ │
|
|
86
|
+
│ │ │ │ (KMS) │ │ Endpoint │ │ │ │
|
|
87
|
+
│ │ │ └──────────┘ └──────────┘ │ │ │
|
|
88
|
+
│ │ │ - Encryption at rest (FIPS validated KMS) │ │ │
|
|
89
|
+
│ │ │ - No internet access │ │ │
|
|
90
|
+
│ │ │ - Backup to separate account │ │ │
|
|
91
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
92
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
93
|
+
│ │
|
|
94
|
+
│ Security Services: │
|
|
95
|
+
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌─────────────┐ │
|
|
96
|
+
│ │ CloudTrail │ │ Config │ │ GuardDuty │ │ Security Hub│ │
|
|
97
|
+
│ │ (all API) │ │ (compliance│ │ (threats) │ │ (findings) │ │
|
|
98
|
+
│ └────────────┘ └────────────┘ └────────────┘ └─────────────┘ │
|
|
99
|
+
│ │
|
|
100
|
+
│ Direct Connect (FIPS 140-2 encrypted): │
|
|
101
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
102
|
+
│ │ On-Premises Cleared Facility ←→ AWS Direct Connect │ │
|
|
103
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
104
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
105
|
+
|
|
106
|
+
Compliance Controls:
|
|
107
|
+
- NIST 800-171: 110 controls
|
|
108
|
+
- Access: MFA required, U.S. persons only
|
|
109
|
+
- Encryption: FIPS 140-2 validated
|
|
110
|
+
- Monitoring: Real-time SIEM integration
|
|
111
|
+
- Backup: Daily encrypted backups, 7-year retention
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Architecture 2: Secret / DoD IL6 Architecture
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
Secret Workload Architecture (Azure Government DoD):
|
|
118
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
119
|
+
│ AZURE GOVERNMENT DOD EAST (SECRET - IL6) │
|
|
120
|
+
│ │
|
|
121
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
122
|
+
│ │ Virtual Network (10.100.0.0/16) │ │
|
|
123
|
+
│ │ │ │
|
|
124
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
125
|
+
│ │ │ Management Subnet (10.100.0.0/24) │ │ │
|
|
126
|
+
│ │ │ ┌──────────┐ ┌──────────┐ │ │ │
|
|
127
|
+
│ │ │ │ Bastion │ │ Jump Box │ │ │ │
|
|
128
|
+
│ │ │ │ (CAC) │ │ (Secret │ │ │ │
|
|
129
|
+
│ │ │ │ │ │ cleared) │ │ │ │
|
|
130
|
+
│ │ │ └──────────┘ └──────────┘ │ │ │
|
|
131
|
+
│ │ │ - CAC/PIV authentication required │ │ │
|
|
132
|
+
│ │ │ - All sessions logged │ │ │
|
|
133
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
134
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
135
|
+
│ │ │ Application Subnet (10.100.10.0/24) │ │ │
|
|
136
|
+
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │
|
|
137
|
+
│ │ │ │ AKS Node │ │ AKS Node │ │ AKS Node │ │ │ │
|
|
138
|
+
│ │ │ │ (IL6) │ │ (IL6) │ │ (IL6) │ │ │ │
|
|
139
|
+
│ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │
|
|
140
|
+
│ │ │ - Kubernetes RBAC with CAC integration │ │ │
|
|
141
|
+
│ │ │ - Encrypted persistent volumes (FIPS 140-2 L3+) │ │ │
|
|
142
|
+
│ │ │ - Pod Security Standards: Restricted │ │ │
|
|
143
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
144
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
145
|
+
│ │ │ Data Subnet (10.100.20.0/24) │ │ │
|
|
146
|
+
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │
|
|
147
|
+
│ │ │ │ SQL MI │ │ Cosmos DB│ │ Key Vault│ │ │ │
|
|
148
|
+
│ │ │ │ (TDE) │ │ (CMK) │ │ (HSM) │ │ │ │
|
|
149
|
+
│ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │
|
|
150
|
+
│ │ │ - Transparent Data Encryption │ │ │
|
|
151
|
+
│ │ │ - Customer-managed keys (CMK) │ │ │
|
|
152
|
+
│ │ │ - FIPS 140-2 Level 3 HSM │ │ │
|
|
153
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
154
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
155
|
+
│ │
|
|
156
|
+
│ Security: │
|
|
157
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
158
|
+
│ │ Microsoft Defender for Cloud (IL6) │ │
|
|
159
|
+
│ │ - Just-In-Time VM Access │ │
|
|
160
|
+
│ │ - File Integrity Monitoring │ │
|
|
161
|
+
│ │ - Adaptive Application Controls │ │
|
|
162
|
+
│ │ - Network Security Groups (default deny) │ │
|
|
163
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
164
|
+
│ │
|
|
165
|
+
│ Connectivity: │
|
|
166
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
167
|
+
│ │ ExpressRoute (IL6-approved) ←→ SIPRNET │ │
|
|
168
|
+
│ │ - Dedicated connection │ │
|
|
169
|
+
│ │ - Suite B cryptography │ │
|
|
170
|
+
│ │ - No internet breakout │ │
|
|
171
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
172
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
173
|
+
|
|
174
|
+
Personnel Requirements:
|
|
175
|
+
- Secret clearance: All operators and developers
|
|
176
|
+
- Two-person integrity: Database access
|
|
177
|
+
- Continuous monitoring: SIEM + SOC
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Architecture 3: Air-Gapped TS/SCI Architecture
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
Top Secret/SCI Air-Gapped Architecture:
|
|
184
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
185
|
+
│ SCIF FACILITY - TS/SCI PROCESSING │
|
|
186
|
+
│ │
|
|
187
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
188
|
+
│ │ PHYSICAL SECURITY PERIMETER │ │
|
|
189
|
+
│ │ - Cipher locks on all entry points │ │
|
|
190
|
+
│ │ - Continuous CCTV monitoring │ │
|
|
191
|
+
│ │ - Two-person integrity zones │ │
|
|
192
|
+
│ │ - No personal devices allowed │ │
|
|
193
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
194
|
+
│ │
|
|
195
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
196
|
+
│ │ AIR-GAPPED KUBERNETES CLUSTER │ │
|
|
197
|
+
│ │ │ │
|
|
198
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
199
|
+
│ │ │ Control Plane (10.200.0.0/24) │ │ │
|
|
200
|
+
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │
|
|
201
|
+
│ │ │ │ Master 1 │ │ Master 2 │ │ Master 3 │ │ │ │
|
|
202
|
+
│ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │
|
|
203
|
+
│ │ │ - etcd encryption with Type 1 crypto │ │ │
|
|
204
|
+
│ │ │ - RBAC with CAC + biometric │ │ │
|
|
205
|
+
│ │ │ - Audit logs to WORM storage │ │ │
|
|
206
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
207
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
208
|
+
│ │ │ Worker Nodes (10.200.10.0/24) │ │ │
|
|
209
|
+
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │
|
|
210
|
+
│ │ │ │ Worker 1 │ │ Worker 2 │ │ Worker N │ │ │ │
|
|
211
|
+
│ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │
|
|
212
|
+
│ │ │ - TPM 2.0 for secrets │ │ │
|
|
213
|
+
│ │ │ - Encrypted volumes (Type 1) │ │ │
|
|
214
|
+
│ │ │ - IDS/IPS on each node │ │ │
|
|
215
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
216
|
+
│ │ ┌──────────────────────────────────────────────────────┐ │ │
|
|
217
|
+
│ │ │ Storage Layer │ │ │
|
|
218
|
+
│ │ │ ┌──────────┐ ┌──────────┐ │ │ │
|
|
219
|
+
│ │ │ │ Ceph │ │ Backup │ │ │ │
|
|
220
|
+
│ │ │ │ Cluster │ │ System │ │ │ │
|
|
221
|
+
│ │ │ └──────────┘ └──────────┘ │ │ │
|
|
222
|
+
│ │ │ - Triple replication │ │ │
|
|
223
|
+
│ │ │ - Encryption at rest (NSA-approved) │ │ │
|
|
224
|
+
│ │ │ - Offline backups (tape) │ │ │
|
|
225
|
+
│ │ └──────────────────────────────────────────────────────┘ │ │
|
|
226
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
227
|
+
│ │
|
|
228
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
229
|
+
│ │ DATA DIODE (One-Way Transfer) │ │
|
|
230
|
+
│ │ │ │
|
|
231
|
+
│ │ [Secret Network] ──────ONE-WAY─────→ [TS/SCI Network] │ │
|
|
232
|
+
│ │ │ │
|
|
233
|
+
│ │ - Hardware-enforced │ │
|
|
234
|
+
│ │ - Content inspection │
|
|
235
|
+
│ │ - Malware scanning │
|
|
236
|
+
│ │ - Data sanitization │
|
|
237
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
238
|
+
│ │
|
|
239
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
240
|
+
│ │ MONITORING & SECURITY │ │
|
|
241
|
+
│ │ - 24/7 Security Operations Center │ │
|
|
242
|
+
│ │ - Real-time anomaly detection (AI/ML) │ │
|
|
243
|
+
│ │ - Insider threat detection │ │
|
|
244
|
+
│ │ - All actions logged to WORM │ │
|
|
245
|
+
│ │ - 25-year retention │ │
|
|
246
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
247
|
+
│ │
|
|
248
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
249
|
+
│ │ PHYSICAL CONNECTIVITY │ │
|
|
250
|
+
│ │ ✅ JWICS (TS/SCI network) - Approved terminal │ │
|
|
251
|
+
│ │ ❌ NO internet connectivity │ │
|
|
252
|
+
│ │ ❌ NO wireless networks │ │
|
|
253
|
+
│ │ ❌ NO external USB devices │ │
|
|
254
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
255
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
256
|
+
|
|
257
|
+
Access Requirements:
|
|
258
|
+
- TS/SCI clearance with polygraph
|
|
259
|
+
- Compartment access approval
|
|
260
|
+
- Continuous monitoring
|
|
261
|
+
- Biometric + CAC authentication
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Security Zones
|
|
267
|
+
|
|
268
|
+
### Zone Model
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
Security Zone Architecture:
|
|
272
|
+
┌─────────────────────────────────────────────────────┐
|
|
273
|
+
│ ZONE 0: Public/Internet │
|
|
274
|
+
│ - No sensitive data │
|
|
275
|
+
│ - WAF protection │
|
|
276
|
+
│ - DDoS mitigation │
|
|
277
|
+
└───────────┬─────────────────────────────────────────┘
|
|
278
|
+
│ Firewall + IDS/IPS
|
|
279
|
+
┌───────────▼─────────────────────────────────────────┐
|
|
280
|
+
│ ZONE 1: DMZ (Unclassified) │
|
|
281
|
+
│ - Public-facing services │
|
|
282
|
+
│ - Reverse proxies │
|
|
283
|
+
│ - Certificate termination │
|
|
284
|
+
└───────────┬─────────────────────────────────────────┘
|
|
285
|
+
│ Firewall + Deep Packet Inspection
|
|
286
|
+
┌───────────▼─────────────────────────────────────────┐
|
|
287
|
+
│ ZONE 2: Internal Applications (Unclassified) │
|
|
288
|
+
│ - Business applications │
|
|
289
|
+
│ - Internal APIs │
|
|
290
|
+
│ - Standard security controls │
|
|
291
|
+
└───────────┬─────────────────────────────────────────┘
|
|
292
|
+
│ CDS (Cross-Domain Solution)
|
|
293
|
+
┌───────────▼─────────────────────────────────────────┐
|
|
294
|
+
│ ZONE 3: CUI Processing │
|
|
295
|
+
│ - NIST 800-171 controls │
|
|
296
|
+
│ - MFA required │
|
|
297
|
+
│ - Enhanced logging │
|
|
298
|
+
└───────────┬─────────────────────────────────────────┘
|
|
299
|
+
│ Trusted Guard
|
|
300
|
+
┌───────────▼─────────────────────────────────────────┐
|
|
301
|
+
│ ZONE 4: Secret Processing │
|
|
302
|
+
│ - Secret clearance required │
|
|
303
|
+
│ - CAC/PIV authentication │
|
|
304
|
+
│ - Real-time monitoring │
|
|
305
|
+
└───────────┬─────────────────────────────────────────┘
|
|
306
|
+
│ Data Diode (One-Way)
|
|
307
|
+
┌───────────▼─────────────────────────────────────────┐
|
|
308
|
+
│ ZONE 5: TS/SCI Processing (Air-Gapped) │
|
|
309
|
+
│ - TS/SCI clearance required │
|
|
310
|
+
│ - SCIF environment │
|
|
311
|
+
│ - Biometric authentication │
|
|
312
|
+
│ - 24/7 monitoring │
|
|
313
|
+
└─────────────────────────────────────────────────────┘
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Cross-Domain Solutions
|
|
319
|
+
|
|
320
|
+
### CDS Architecture
|
|
321
|
+
|
|
322
|
+
```yaml
|
|
323
|
+
# Cross-Domain Solution configuration
|
|
324
|
+
|
|
325
|
+
cross_domain_solution:
|
|
326
|
+
type: "Trusted Guard"
|
|
327
|
+
model: "Owl Computing DualDiode"
|
|
328
|
+
|
|
329
|
+
source_network:
|
|
330
|
+
classification: "UNCLASSIFIED"
|
|
331
|
+
ip_range: "10.0.0.0/16"
|
|
332
|
+
allowed_protocols: ["HTTPS", "SFTP"]
|
|
333
|
+
|
|
334
|
+
destination_network:
|
|
335
|
+
classification: "SECRET"
|
|
336
|
+
ip_range: "10.100.0.0/16"
|
|
337
|
+
allowed_protocols: ["HTTPS"]
|
|
338
|
+
|
|
339
|
+
security_features:
|
|
340
|
+
content_inspection:
|
|
341
|
+
- malware_scanning: "Enabled"
|
|
342
|
+
- data_loss_prevention: "Enabled"
|
|
343
|
+
- file_type_validation: "Whitelist only"
|
|
344
|
+
- size_limits: "100MB per transfer"
|
|
345
|
+
|
|
346
|
+
data_sanitization:
|
|
347
|
+
- metadata_stripping: "Enabled"
|
|
348
|
+
- embedded_object_extraction: "Enabled"
|
|
349
|
+
- macro_removal: "Enabled"
|
|
350
|
+
|
|
351
|
+
approval_workflow:
|
|
352
|
+
- automatic_transfer: ["System logs", "Performance metrics"]
|
|
353
|
+
- manual_approval_required: ["User data", "Reports", "Documents"]
|
|
354
|
+
- two_person_approval: ["Bulk transfers > 1GB", "Database exports"]
|
|
355
|
+
|
|
356
|
+
audit_logging:
|
|
357
|
+
- log_all_transfers: true
|
|
358
|
+
- log_approval_decisions: true
|
|
359
|
+
- log_retention_years: 7
|
|
360
|
+
- immutable_logs: true
|
|
361
|
+
|
|
362
|
+
transfer_rules:
|
|
363
|
+
- name: "System Logs"
|
|
364
|
+
direction: "low_to_high" # Unclass → Secret
|
|
365
|
+
automatic: true
|
|
366
|
+
file_types: [".log", ".json"]
|
|
367
|
+
max_size: "10MB"
|
|
368
|
+
|
|
369
|
+
- name: "Reports"
|
|
370
|
+
direction: "high_to_low" # Secret → Unclass
|
|
371
|
+
automatic: false
|
|
372
|
+
requires_approval: true
|
|
373
|
+
requires_declassification: true
|
|
374
|
+
file_types: [".pdf", ".docx"]
|
|
375
|
+
|
|
376
|
+
monitoring:
|
|
377
|
+
alerts:
|
|
378
|
+
- failed_transfers
|
|
379
|
+
- policy_violations
|
|
380
|
+
- anomalous_patterns
|
|
381
|
+
notification_recipients:
|
|
382
|
+
- "security-team@agency.gov"
|
|
383
|
+
- "isso@agency.gov"
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## High Availability Patterns
|
|
389
|
+
|
|
390
|
+
### Multi-Region HA (CUI)
|
|
391
|
+
|
|
392
|
+
```
|
|
393
|
+
High Availability CUI Architecture:
|
|
394
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
395
|
+
│ AWS GOVCLOUD WEST-1 (Primary) │
|
|
396
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
397
|
+
│ │ VPC-West (10.0.0.0/16) │ │
|
|
398
|
+
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
|
|
399
|
+
│ │ │ EKS AZ-A │ │ EKS AZ-B │ │ EKS AZ-C │ │ │
|
|
400
|
+
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
|
|
401
|
+
│ │ ┌──────────┐ ┌──────────┐ │ │
|
|
402
|
+
│ │ │ RDS │ │ RDS │ │ │
|
|
403
|
+
│ │ │ Primary │──│ Standby │ │ │
|
|
404
|
+
│ │ └──────────┘ └──────────┘ │ │
|
|
405
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
406
|
+
│ │ │
|
|
407
|
+
│ │ Cross-Region Replication (encrypted) │
|
|
408
|
+
│ ↓ │
|
|
409
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
410
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
411
|
+
│ AWS GOVCLOUD EAST-1 (Disaster Recovery) │
|
|
412
|
+
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
413
|
+
│ │ VPC-East (10.1.0.0/16) │ │
|
|
414
|
+
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
|
|
415
|
+
│ │ │ EKS AZ-A │ │ EKS AZ-B │ │ EKS AZ-C │ │ │
|
|
416
|
+
│ │ │ (standby)│ │ (standby)│ │ (standby)│ │ │
|
|
417
|
+
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
|
|
418
|
+
│ │ ┌──────────┐ │ │
|
|
419
|
+
│ │ │ RDS │ │ │
|
|
420
|
+
│ │ │ Read │ │ │
|
|
421
|
+
│ │ │ Replica │ │ │
|
|
422
|
+
│ │ └──────────┘ │ │
|
|
423
|
+
│ └────────────────────────────────────────────────────────────┘ │
|
|
424
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
425
|
+
|
|
426
|
+
Failover:
|
|
427
|
+
- Automatic: RDS replica promotion (< 2 minutes)
|
|
428
|
+
- Manual: DNS switch to DR region
|
|
429
|
+
- RPO: < 5 minutes
|
|
430
|
+
- RTO: < 15 minutes
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## Disaster Recovery
|
|
436
|
+
|
|
437
|
+
### DR Strategy for Classified Environments
|
|
438
|
+
|
|
439
|
+
```yaml
|
|
440
|
+
disaster_recovery:
|
|
441
|
+
tier_1_critical: # TS/SCI systems
|
|
442
|
+
rpo: "0 minutes (synchronous replication)"
|
|
443
|
+
rto: "< 5 minutes (hot standby)"
|
|
444
|
+
strategy: "Active-Active with data diode"
|
|
445
|
+
backup:
|
|
446
|
+
frequency: "Continuous"
|
|
447
|
+
retention: "25 years"
|
|
448
|
+
media: "Tape in geographically separated SCIF"
|
|
449
|
+
encryption: "Type 1"
|
|
450
|
+
|
|
451
|
+
tier_2_essential: # Secret systems
|
|
452
|
+
rpo: "< 5 minutes"
|
|
453
|
+
rto: "< 15 minutes"
|
|
454
|
+
strategy: "Active-Passive with warm standby"
|
|
455
|
+
backup:
|
|
456
|
+
frequency: "Hourly incremental, daily full"
|
|
457
|
+
retention: "7 years"
|
|
458
|
+
media: "Encrypted disk + offsite tape"
|
|
459
|
+
encryption: "FIPS 140-2 Level 3"
|
|
460
|
+
|
|
461
|
+
tier_3_important: # CUI systems
|
|
462
|
+
rpo: "< 1 hour"
|
|
463
|
+
rto: "< 4 hours"
|
|
464
|
+
strategy: "Pilot light in DR region"
|
|
465
|
+
backup:
|
|
466
|
+
frequency: "Daily"
|
|
467
|
+
retention: "1 year"
|
|
468
|
+
media: "Cross-region replication"
|
|
469
|
+
encryption: "FIPS 140-2 validated KMS"
|
|
470
|
+
|
|
471
|
+
testing:
|
|
472
|
+
frequency: "Quarterly"
|
|
473
|
+
scope: "Full failover test"
|
|
474
|
+
documentation: "Test report required"
|
|
475
|
+
compliance: "ICD 503 Annex A"
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
### Backup Architecture
|
|
479
|
+
|
|
480
|
+
```
|
|
481
|
+
Backup Strategy for Cleared Environments:
|
|
482
|
+
┌─────────────────────────────────────────────────────┐
|
|
483
|
+
│ PRODUCTION ENVIRONMENT │
|
|
484
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
485
|
+
│ │ Databases│ │ Files │ │ Configs │ │
|
|
486
|
+
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
|
|
487
|
+
└───────┼─────────────┼─────────────┼────────────────┘
|
|
488
|
+
│ │ │
|
|
489
|
+
↓ ↓ ↓
|
|
490
|
+
┌───────┴─────────────┴─────────────┴────────────────┐
|
|
491
|
+
│ BACKUP TIER 1: Online (WORM Storage) │
|
|
492
|
+
│ - Continuous backup │
|
|
493
|
+
│ - Immutable for audit compliance │
|
|
494
|
+
│ - 90-day retention online │
|
|
495
|
+
│ - Same classification zone │
|
|
496
|
+
└───────┬─────────────────────────────────────────────┘
|
|
497
|
+
│ Daily full backup
|
|
498
|
+
↓
|
|
499
|
+
┌───────┴─────────────────────────────────────────────┐
|
|
500
|
+
│ BACKUP TIER 2: Near-line (Tape Library) │
|
|
501
|
+
│ - Daily encrypted full backups │
|
|
502
|
+
│ - Separate physical location (same facility) │
|
|
503
|
+
│ - 1-year retention │
|
|
504
|
+
│ - Robotic tape library │
|
|
505
|
+
└───────┬─────────────────────────────────────────────┘
|
|
506
|
+
│ Weekly archival
|
|
507
|
+
↓
|
|
508
|
+
┌───────┴─────────────────────────────────────────────┐
|
|
509
|
+
│ BACKUP TIER 3: Offline (Iron Mountain) │
|
|
510
|
+
│ - Weekly encrypted full backups │
|
|
511
|
+
│ - Geographically separated facility │
|
|
512
|
+
│ - 7-year retention (compliance) │
|
|
513
|
+
│ - Certificate of destruction after retention │
|
|
514
|
+
│ - Two-person integrity for access │
|
|
515
|
+
└─────────────────────────────────────────────────────┘
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
## Best Practices
|
|
521
|
+
|
|
522
|
+
### 1. Defense in Depth Implementation
|
|
523
|
+
|
|
524
|
+
```yaml
|
|
525
|
+
defense_in_depth_layers:
|
|
526
|
+
layer_1_perimeter:
|
|
527
|
+
- "Physical security (guards, gates, guns)"
|
|
528
|
+
- "SCIF accreditation"
|
|
529
|
+
- "Visitor escort requirements"
|
|
530
|
+
|
|
531
|
+
layer_2_network:
|
|
532
|
+
- "Network segmentation (VLANs, subnets)"
|
|
533
|
+
- "Firewalls between zones"
|
|
534
|
+
- "IDS/IPS on all boundaries"
|
|
535
|
+
- "Zero trust network access"
|
|
536
|
+
|
|
537
|
+
layer_3_host:
|
|
538
|
+
- "Hardened OS (DISA STIGs)"
|
|
539
|
+
- "Host-based firewall"
|
|
540
|
+
- "Endpoint detection and response (EDR)"
|
|
541
|
+
- "Application whitelisting"
|
|
542
|
+
|
|
543
|
+
layer_4_application:
|
|
544
|
+
- "Secure coding practices"
|
|
545
|
+
- "Input validation"
|
|
546
|
+
- "Output encoding"
|
|
547
|
+
- "OWASP Top 10 mitigation"
|
|
548
|
+
|
|
549
|
+
layer_5_data:
|
|
550
|
+
- "Encryption at rest (FIPS 140-2)"
|
|
551
|
+
- "Encryption in transit (TLS 1.3)"
|
|
552
|
+
- "Data loss prevention (DLP)"
|
|
553
|
+
- "Rights management"
|
|
554
|
+
|
|
555
|
+
layer_6_identity:
|
|
556
|
+
- "CAC/PIV authentication"
|
|
557
|
+
- "MFA enforcement"
|
|
558
|
+
- "Privilege access management (PAM)"
|
|
559
|
+
- "Just-in-time access"
|
|
560
|
+
|
|
561
|
+
layer_7_monitoring:
|
|
562
|
+
- "SIEM correlation"
|
|
563
|
+
- "24/7 SOC monitoring"
|
|
564
|
+
- "Threat hunting"
|
|
565
|
+
- "Incident response"
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### 2. Operational Security (OPSEC)
|
|
569
|
+
|
|
570
|
+
```python
|
|
571
|
+
# opsec_checks.py
|
|
572
|
+
"""Operational security validation"""
|
|
573
|
+
|
|
574
|
+
class OPSECValidator:
|
|
575
|
+
def __init__(self):
|
|
576
|
+
self.findings = []
|
|
577
|
+
|
|
578
|
+
def validate_configuration(self, environment):
|
|
579
|
+
"""Validate OPSEC configuration"""
|
|
580
|
+
|
|
581
|
+
# Check 1: No classified data in logs
|
|
582
|
+
self.check_log_sanitization()
|
|
583
|
+
|
|
584
|
+
# Check 2: No PII in hostnames
|
|
585
|
+
self.check_hostname_opsec()
|
|
586
|
+
|
|
587
|
+
# Check 3: Error messages don't leak information
|
|
588
|
+
self.check_error_messages()
|
|
589
|
+
|
|
590
|
+
# Check 4: No version disclosure
|
|
591
|
+
self.check_version_disclosure()
|
|
592
|
+
|
|
593
|
+
# Check 5: Metadata stripped from documents
|
|
594
|
+
self.check_metadata_leakage()
|
|
595
|
+
|
|
596
|
+
return self.findings
|
|
597
|
+
|
|
598
|
+
def check_log_sanitization(self):
|
|
599
|
+
"""Ensure logs don't contain classified markings"""
|
|
600
|
+
# Search for classification markings in logs
|
|
601
|
+
classified_markers = [
|
|
602
|
+
'TOP SECRET', 'SECRET', 'CONFIDENTIAL',
|
|
603
|
+
'(U)', '(S)', '(TS)', '//SCI', '//NOFORN'
|
|
604
|
+
]
|
|
605
|
+
|
|
606
|
+
# Implementation would scan log files
|
|
607
|
+
pass
|
|
608
|
+
|
|
609
|
+
def check_hostname_opsec(self):
|
|
610
|
+
"""Validate hostnames don't reveal sensitive info"""
|
|
611
|
+
opsec_violations = [
|
|
612
|
+
'secret', 'classified', 'scif', 'cia', 'nsa',
|
|
613
|
+
'weapon', 'missile', 'nuclear'
|
|
614
|
+
]
|
|
615
|
+
|
|
616
|
+
# Check against hostname patterns
|
|
617
|
+
pass
|
|
618
|
+
|
|
619
|
+
def check_error_messages(self):
|
|
620
|
+
"""Ensure error messages don't leak information"""
|
|
621
|
+
# Check for overly descriptive errors
|
|
622
|
+
# Verify stack traces disabled in production
|
|
623
|
+
pass
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
### 3. Continuous Compliance Monitoring
|
|
627
|
+
|
|
628
|
+
```bash
|
|
629
|
+
#!/bin/bash
|
|
630
|
+
# compliance-check.sh - Daily compliance validation
|
|
631
|
+
|
|
632
|
+
echo "Running compliance checks for cleared environment..."
|
|
633
|
+
|
|
634
|
+
# Check 1: Verify encryption
|
|
635
|
+
check_encryption() {
|
|
636
|
+
echo "Checking encryption status..."
|
|
637
|
+
|
|
638
|
+
# Check all EBS volumes encrypted
|
|
639
|
+
aws ec2 describe-volumes \
|
|
640
|
+
--region us-gov-west-1 \
|
|
641
|
+
--query 'Volumes[?Encrypted==`false`]' \
|
|
642
|
+
--output table
|
|
643
|
+
|
|
644
|
+
# Check RDS encryption
|
|
645
|
+
aws rds describe-db-instances \
|
|
646
|
+
--region us-gov-west-1 \
|
|
647
|
+
--query 'DBInstances[?StorageEncrypted==`false`]' \
|
|
648
|
+
--output table
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
# Check 2: Verify logging enabled
|
|
652
|
+
check_logging() {
|
|
653
|
+
echo "Checking audit logging..."
|
|
654
|
+
|
|
655
|
+
# Verify CloudTrail enabled
|
|
656
|
+
aws cloudtrail describe-trails \
|
|
657
|
+
--region us-gov-west-1
|
|
658
|
+
|
|
659
|
+
# Check VPC Flow Logs
|
|
660
|
+
aws ec2 describe-flow-logs \
|
|
661
|
+
--region us-gov-west-1
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
# Check 3: Verify MFA compliance
|
|
665
|
+
check_mfa() {
|
|
666
|
+
echo "Checking MFA compliance..."
|
|
667
|
+
|
|
668
|
+
# List users without MFA
|
|
669
|
+
aws iam get-credential-report \
|
|
670
|
+
| jq -r '.Content' \
|
|
671
|
+
| base64 -d \
|
|
672
|
+
| awk -F',' '$4=="false" {print $1}'
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
# Check 4: Verify geographic restrictions
|
|
676
|
+
check_geography() {
|
|
677
|
+
echo "Checking geographic compliance..."
|
|
678
|
+
|
|
679
|
+
# Verify no resources in non-compliant regions
|
|
680
|
+
for region in $(aws ec2 describe-regions --query 'Regions[].RegionName' --output text); do
|
|
681
|
+
if [[ ! "$region" =~ ^us-gov- ]]; then
|
|
682
|
+
instances=$(aws ec2 describe-instances --region $region --query 'Reservations[].Instances[].InstanceId' --output text)
|
|
683
|
+
if [ -n "$instances" ]; then
|
|
684
|
+
echo "WARNING: Instances found in non-GovCloud region: $region"
|
|
685
|
+
fi
|
|
686
|
+
fi
|
|
687
|
+
done
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
# Run all checks
|
|
691
|
+
check_encryption
|
|
692
|
+
check_logging
|
|
693
|
+
check_mfa
|
|
694
|
+
check_geography
|
|
695
|
+
|
|
696
|
+
echo "Compliance check complete."
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
### 4. Incident Response for Classified Environments
|
|
700
|
+
|
|
701
|
+
```yaml
|
|
702
|
+
incident_response_plan:
|
|
703
|
+
phase_1_detection:
|
|
704
|
+
- "SIEM alert triggers"
|
|
705
|
+
- "EDR detection"
|
|
706
|
+
- "User report"
|
|
707
|
+
- "Audit finding"
|
|
708
|
+
|
|
709
|
+
phase_2_containment:
|
|
710
|
+
immediate_actions:
|
|
711
|
+
- "Isolate affected system (network disconnect)"
|
|
712
|
+
- "Preserve evidence (disk image, memory dump)"
|
|
713
|
+
- "Notify ISSO within 1 hour"
|
|
714
|
+
- "Activate incident response team"
|
|
715
|
+
|
|
716
|
+
short_term:
|
|
717
|
+
- "Identify scope of compromise"
|
|
718
|
+
- "Block malicious indicators (IPs, domains, hashes)"
|
|
719
|
+
- "Reset compromised credentials"
|
|
720
|
+
- "Increase monitoring"
|
|
721
|
+
|
|
722
|
+
phase_3_eradication:
|
|
723
|
+
- "Remove malware/backdoors"
|
|
724
|
+
- "Patch vulnerabilities"
|
|
725
|
+
- "Rebuild compromised systems"
|
|
726
|
+
- "Verify clean state"
|
|
727
|
+
|
|
728
|
+
phase_4_recovery:
|
|
729
|
+
- "Restore from clean backups"
|
|
730
|
+
- "Validate system integrity"
|
|
731
|
+
- "Return to operation"
|
|
732
|
+
- "Enhanced monitoring period"
|
|
733
|
+
|
|
734
|
+
phase_5_lessons_learned:
|
|
735
|
+
- "Root cause analysis"
|
|
736
|
+
- "Update security controls"
|
|
737
|
+
- "Revise procedures"
|
|
738
|
+
- "Training for personnel"
|
|
739
|
+
|
|
740
|
+
special_considerations_classified:
|
|
741
|
+
- "Classified spillage procedures (ICD 503)"
|
|
742
|
+
- "Counterintelligence notification"
|
|
743
|
+
- "Damage assessment"
|
|
744
|
+
- "Potential compromise reporting"
|
|
745
|
+
- "Security clearance implications"
|
|
746
|
+
|
|
747
|
+
reporting_requirements:
|
|
748
|
+
immediate:
|
|
749
|
+
- "ISSO/ISSM"
|
|
750
|
+
- "Authorizing Official"
|
|
751
|
+
- "Security Manager"
|
|
752
|
+
|
|
753
|
+
within_1_hour:
|
|
754
|
+
- "US-CERT"
|
|
755
|
+
- "DoD Cyber Crime Center (if DoD)"
|
|
756
|
+
|
|
757
|
+
within_24_hours:
|
|
758
|
+
- "Written incident report"
|
|
759
|
+
- "Preliminary damage assessment"
|
|
760
|
+
|
|
761
|
+
final_report:
|
|
762
|
+
- "Within 30 days"
|
|
763
|
+
- "Root cause analysis"
|
|
764
|
+
- "Corrective actions"
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
---
|
|
768
|
+
|
|
769
|
+
**Related Resources:**
|
|
770
|
+
- [workload-classification.md](workload-classification.md) - Classification levels and criteria
|
|
771
|
+
- [cleared-cloud-environments.md](../../cloud-engineering/resources/cleared-cloud-environments.md) - Cloud implementations
|
|
772
|
+
- [disaster-recovery.md](disaster-recovery.md) - DR patterns
|
|
773
|
+
- [security-architecture.md](security-architecture.md) - Security design patterns
|