Skip to content

Conversation

@serj
Copy link
Owner

@serj serj commented Dec 13, 2025

Allow to lock application's capabilities during runtime.

serj added 3 commits December 12, 2025 23:38
Introduces jcapslock-agent module for runtime capability detection and policy enforcement:

- CapslockAgent: Java agent entry point, instruments JDK classes at startup
- CapabilityTransformer: ASM-based bytecode transformer for capability methods
- PolicyChecker: Stack inspection and policy enforcement with YAML config support

Features:
- Log-only mode: monitors capability usage with full stack traces
- Policy mode: blocks capabilities for specific packages via SecurityException
- Uses capability mappings from core module (java-interesting.cm)

Also:
- Add dependency-reduced-pom.xml to .gitignore
- Disable AssignmentToForLoopParameter inspection (false positive on i++)
Dependency management:
- Add protobuf.version (4.33.2) and mockito.version properties
- Add asm-commons to parent dependencyManagement
- Remove duplicate maven.plugin.version from maven-plugin module
- Remove unused jetbrains:annotations dependency

Agent fixes:
- Fix classloader null check in CapabilityMapper resource loading
- Remove unused import in CapabilityTransformer
- Add extraArtifacts config to maven-invoker for jcapslock-agent

Policy enforcement:
- Add policy.yaml for quick-test example
- Add BlockedExec test class and PolicyEnforcementTest
- Add test-policy.sh E2E test script
@serj serj merged commit 0e00aeb into main Dec 15, 2025
1 check failed
@serj serj deleted the runtime branch December 15, 2025 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants