소프트웨어 개발 프로세스별 보안 활동(국내 안행부에서 만든 것)
시작 단계 보안 프로세스
- 개발되는 애플리케이션의 개발목적을 정의.
- 업무현황 파악과 애플리케이션 개발과정에 적용되어야 하는 보안정책 검토.
- 위험 분석 및 조직 전체에 적용되는 보안 계획 등 작성.
1) 업무현황 파악
보안 요소별 보안 등급 구분 예
2) 보안정책 검토
보안정책 검토 형식 예
3) 보안 계획 수립
보안계획서 양식 예
4) 보안계획 검토
보안계획 검토 결과서 양식 예
5) 시작 단계 보안활동에 대한 점검
보안활동 점검표
분석 단계 보안 프로세스
1) 보안 요구사항 정의
-
시작단계의 “보안계획 검토결과서”를 토대로 보안 요구사항과 보안 계획간의 일치성을 확인한다.
-
기술적 측면, 관리적 측면으로 분류해 보안 요구사항을 정의.
-
기술적 측면의 보안 요구 사항 정의 예
- 애플리케이션이 서비스되는 환경에서 안전한 서비스 제공을 위한 통신과 운영관리, 애플리케이션 보안,
서버 보안 네트워크 보안에 대한 보안 요구사항을 정의
-
관리적 측면의 보안 요구 사항 정의
- 애플리케이션이 서비스되는 환경에서 안전한 서비스 제공을 위한 보안정책, 보안조직, 인력보안,
자산분류와 통제, 준거성, 사업지속 관리, 물리적 보안을 정의한다.
2) 보안 요구사항 분석
-
분석단계 전체 보안 활동에 대한 점검 목록 예
설계 단계 보안 프로세스
-
분석 단계에서 파악된 보안 요구사항 분석서의 요구사항을 반영함.
-
개발 위험과 통제를 고려하여 보안 구현 설계서(기능 명세서, 기본 설계서, 상세 설계서)를 작성.
1) 보안 요구사항 반영
분석단계에서 정의된 보안 요구사항 분석을 통해 나타난 항목을 검토한 뒤 아래 사항을 고려해 설계에 반영
- 보안 계획이나 표준에 적합한지 확인
- 설계 가능성 여부 판단
- 보안 요구사항을 분석하여 설계에 적절히 반영
2) 보안 구현 설계
2-1) 개발환경 보안 : 네트워크 보안
- 외부 사이버 공격으로부터 개발/운영 환경 보호를 위해 네트워크 보안환경을 구성하고,
개발/운영에 필요한 네트워크 접근 경로를 구성
- DMZ 방화벽의 네트워크 접근 통제 구성 예
2-2) 개발환경 보안 : 서버 보안
- 개발/운영시 외부 공격으로부터 보호하기 위한 네트워크 서비스와 접근 계정을 통제
- 개발관련 서버의 네트워크 서비스 관리표 예
2-3) 개발환경 보안 : 물리적 보안
- 네트워크 장비, 서버의 물리적 공간에 대한 출입 통제
- 애플리케이션 개발 조직의 보안 정책과 연계하여 관리적, 기술적 통제 수행
- 개발 환경 물리적 보안을 위해 필요한 주요 보안 항목
개발 관련 인력들의 위치 : 지정된 공간에서 진행하는 지
개발 프로젝트 공간에 대한 카드 키 출입 통제
출입 구역 폐쇄회로 등을 통한 모니터링 및 방문자 기록 여부
- 개발 관련 응용 프로그램 보안
애플리케이션 개발시 허가되지 않은 프로그램 구현의 통제
허가되지 않은 시스템 접근 통제
개발 단계와 운영단계의 구분 등에 대한 통제 사항을 정의하여 기술
2-4) 개발환경 보안 : 애플리케이션 보안 설계
기밀성을 위한 설계
사용자 컴퓨터 시스템 내에서의 침해에 대응한 설계 : 암호화, 쿠키 정보의 암호화,
메모리 저장
개방 네트워크로 전송 중 침해에 대응한 설계 : 암호화, SSL, Link 암호화 장비
저장 장치 내에서의 침해에 대응한 설계 : DB접근제어 정책, 특별한 구성관리 요구사항 요구
무결성을 위한 설계
사용자 컴퓨터 시스템 내에서의 침해에 대응한 설계 : 백엔드프로세싱에 무결성체크, 전자서명
개방 네트워크로 전송 중 침해에 대응한 설계 : 암호화(전자서명), 체크섬(CRC, MIC) 등
저장 장치 내에서의 침해에 대응한 설계 : 접근제어, 감사로그 관리, 암호 체크섬
가용성을 위한 설계
내부 LAN 가용성을 위한 설계 : 내부 DNS 취약점 존재 고려, 하드웨어 구성상의 문제 고려
저장장치 가용성을 위한 설계 : 클러스트 시스템, 데이터 백업
책임 추적성을 위한 설계
식별 및 인증 : 사용자 수, 사용자에 대한 통제, 정보 민감도 등 고려
감사 : 어떤 로그 정보를 어떻게 저장할 것인가 결정. 로그 정보에 대한 보호
3) 설계 단계 보안활동에 대한 점검
설계단계 전체 보안활동에 대한 점검 목록 예
별첨4) 설계단계 전체 보안활동에 대한 점검 목록 참고
구현 단계 보안 프로세스
-
설계단계의 개발/운영 환경 보안 계획에 따라 환경을 구성하고 보안 구현 설계서의 내용에 따라 실제 구현시
보안 요구사항들을 정의하고 세부적인 활동을 제시
-
1) 개발환경 보안 구현
네트워크 보안 구현
네트워크 정책 운영 - DB Zone 분리
네트워크 분리 및 DMZ 구성 - 전송 데이터 보호
침입탐지/침입차단 시스템 적용 및 보안 관리
서버 보안 구현
네트워크 서비스 보안 관리 - 사용자 계정 관리
기본 시스템 보안 설정 및 보안 패치 - 악성코드 차단
-
2) 애플리케이션 보안 설계 구현
프로그램 입력 검토 - 로그인 관리
패스워드 관리 - 사용자 계정 관리
데이터 및 DB 보안 관리 - 애플리케이션 접근 제어 관리
로그 관리 및 접근 통제 - 보안 등급별 로그 보관 기간 설정
로그 접근 통제
-
3) 구현단계 보안 활동에 대한 점검
보안 평가자에 의해 평가되어 그 결과가 애플리케이션 개발자에게 피드백 되어야 함.
별첨5) 구현단계 보안활동에 대한 점검 참고
시험 단계 보안 프로세스
-
애플리케이션 개발자 및 보안 담당자는 시험계획서에 따라 보안 기능 시험.
-
애플리케이션 보안 설계 구현과정에서 제시된 추가항목 및 최신 취약점 점검을 위한 테스트 계획서에 따라 보안 기능을 테스트
-
보안 기능 테스트가 완료되면 보안 담당자는 평과 결과를 검토하여 보안 기능 동작의 적절성 여부를 결정
-
보안 평가자는 평가 절차에 따라 적절히 계획되고 실행되었는지, 평가 결과가 신뢰할 수 있는지 검증
-
보안 담당자 및 보안 평가자의 테스트 결과를 개발자에게 피드백을 제공하여 문제가 있는 기능에 대한 보안이 이루어질 수 있도록 조치
'IT > Secure Coding' 카테고리의 다른 글
CVE (Common Vulnerabilities and Exposures) (0) | 2015.04.22 |
---|---|
CWE (Common Weakness Enumeration) (0) | 2015.04.22 |
별첨 3) 위협모델링 방법 (0) | 2015.04.22 |
Microsoft SDL(제일 중요) (0) | 2015.04.22 |
OWASP CLASP (0) | 2015.04.22 |