| name | cis-controls |
| description | Implement CIS Controls v8 critical security controls for effective cyber defense in CIA platform |
| license | Apache-2.0 |
CIS Controls v8 Implementation Skill
Purpose
Implement prioritized CIS Controls for cyber defense, focusing on high-impact security controls.
When to Use
- ✅ Security hardening activities
- ✅ Compliance assessments
- ✅ Security baseline establishment
- ✅ Vendor security reviews
Critical CIS Controls
Control 1: Inventory and Control of Enterprise Assets
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,Tags[?Key==`Name`].Value|[0],State.Name]' --output table
aws ec2 create-tags --resources i-1234567890abcdef0 --tags Key=Application,Value=CIA Key=Environment,Value=Production
Control 2: Inventory and Control of Software Assets
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
Control 3: Data Protection
@Service
public class DataProtectionService {
@Autowired
private BytesEncryptor encryptor;
public void protectSensitiveData(SensitiveData data) {
data.setEncryptedContent(encryptor.encrypt(data.getPlainContent()));
data.setClassification(DataClassification.CONFIDENTIAL);
data.setRetentionUntil(LocalDate.now().plusYears(7));
dataRepository.save(data);
}
}
Control 4: Secure Configuration
spring:
security:
user:
name: ${ADMIN_USERNAME}
password: ${ADMIN_PASSWORD}
server:
port: 8443
ssl:
enabled: true
error:
include-stacktrace: never
Control 5: Account Management
@Service
public class AccountManagementService {
@Scheduled(cron = "0 0 2 * * *")
public void reviewAccounts() {
List<User> inactiveUsers = userRepository.findInactiveSince(
LocalDateTime.now().minusDays(90)
);
inactiveUsers.forEach(user -> {
user.setEnabled(false);
auditLog.log("Account disabled due to inactivity: " + user.getUsername());
});
userRepository.saveAll(inactiveUsers);
}
}
Control 6: Access Control Management
@PreAuthorize("hasRole('ADMIN')")
public void deleteUser(String userId) {
auditLogger.logPrivilegedAction("DELETE_USER", userId);
userRepository.deleteById(userId);
}
Control 8: Audit Log Management
@Aspect
@Component
public class AuditLoggingAspect {
@Around("@annotation(Audited)")
public Object auditMethod(ProceedingJoinPoint joinPoint) throws Throwable {
String action = joinPoint.getSignature().getName();
String user = SecurityContextHolder.getContext().getAuthentication().getName();
auditLog.info("Action: {}, User: {}, Timestamp: {}",
action, user, Instant.now());
return joinPoint.proceed();
}
}
Control 16: Application Software Security
mvn org.owasp:dependency-check-maven:check
mvn sonar:sonar -Dsonar.qualitygate.wait=true
Implementation Priority
-
IG1 (Implementation Group 1) - Essential for all organizations
- Controls 1-6: Basic cyber hygiene
-
IG2 - Additional controls for medium-sized organizations
- Controls 7-16: Enhanced security
-
IG3 - Comprehensive controls for large organizations
- Controls 17-18: Advanced/specialized
Hack23 ISMS Policy References
CIS Controls Implementation:
All Hack23 ISMS Policies: https://github.com/Hack23/ISMS-PUBLIC
CIA Platform Architecture References
References