소프트웨어 개발 전 단계에 걸쳐 보안을 고려 => 안전한 소프트웨어를 개발하기 위한 체계적인 방법론
소프트웨어 개발 생명 주기 (SDLC) 각 단계별로 보안 활동을 통합한 프로세스
비기능 요구사항으로서의 보안 : 기능의 정상적인 동작을 보장하면서 추가적으로 고려해야하는 품질 요소
설계단계에서 보안 개발 필요한 이유 : 설계 단계에서 보안 항목을 반영하지 않으면 이후 구현 단계에서 소프트웨어 일관성이 떨어지거나, 단순 수정을 통해 보안 항목을 만족 시킬 수 없는 경우 발생
소프트웨어 생명 주기 각 단계별 보안 활동
| 개발 단계 | 핵심 보안 활동 |
|---|---|
| 요구사항 분석 | 보안 요구사항 식별 및 정보 보안 등급 결정 |
| 설계 | 위협 모델링 수행 및 설계 반영 |
| 구현 | 보안 코딩 가이드 준수 및 코드 리뷰 수행 |
| 테스트 | 동적 분석 및 모의 침투 테스트 수행 |
| 유지보수 | 취약점 모니터링 및 보안 사고 대응 수행 |
업무망(사내 시스템)과 인터넷망(외부망)을 물리적·논리적으로 분리하여 내부 자산 노출과 외부 침해 위험을 줄이는 보안 방법.
장점
• 외부 인터넷으로부터의 직접 침해 경로 차단 → 공격 표면 감소
• 내부 중요 시스템에 대한 접근 통제 강화
단점
• 시스템 운영/ 관리 부담 증가 - 최신 보안 패치 어려움
• 업무 불편성 증가
• 우회경로 발생 가능성
• 내부자 공격 취약
경계기반 모델 (Perimeter-based)
• 내부는 신뢰, 외부는 불신으로 가정
• 내부 위협(권한 남용, 내부자 공격)에 취약
• 클라우드·원격근무·BYOD 환경에 적합하지 않음
ZTA (Zero Trust Architecture)
• “Never trust, always verify” 원칙
• 모든 요청에 대해 강력한 인증·인가 수행
• 마이크로세그멘테이션, 최소권한 접근, 소프트웨어 정의 경계 적용
• 망분리의 문제(내부 신뢰 가정)를 보완 가능