첫번째. 시스템 설계
보안과 신뢰성을 위한 소프트웨어 설계 단계
1) 최소 권한 설계 (사용자 작업 수행 및 시스템 최소한 접근 권한)
2) 이해 가능성을 위한 설계
- 범위가 좁고 일관적 타입 인터페이스
- 일관적/신중한 인증, 승인, 계정 전략
- 구분없이 활성 엔티티에 신원 명확하게 할당하기
- 보안 불변성 캡슐화
3) 범위 변화를 위한 설계
- 보안 관련 변경사항 구분(변경 영향 부분 최소화)
- 롤아웃, 컨테이너화, 마이크로서비스 설계 전략 채택
- 외부접촉부분에 계층형 접근법 도입
- 변화 중점 설계
- 지속적 문서화
4) 회복성을 위한 설계 (심층방어 도입 검토)
5) 복구를 위한 설계
- 최신 버전 롤백
- 시스템 상태 모니터링
- 정책/절차, 중앙형 신뢰 원본과 로컬 기능
6) 서비스 거부 공격 완화(Dos, Denial of service)
- DoS 방어 장치의 경제적 제약 필요(모든 공격 흡수하는 것은 가장 비효율적인 방법)
- DoS 완화 시스템 도입(절감 비용과 조직적 간소화 집중)
- 웹 애플리케이션 방화벽(WAF) 이용
