IT/Secure Coding

소프트웨어 보안 개발 가이드

바바옄 2015. 4. 22. 13:48
반응형

 

소프트웨어 개발 프로세스별 보안 활동(국내 안행부에서 만든 것)

 

시작 단계 보안 프로세스

  • 개발되는 애플리케이션의 개발목적을 정의.
  • 업무현황 파악과 애플리케이션 개발과정에 적용되어야 하는 보안정책 검토.
  • 위험 분석 및 조직 전체에 적용되는 보안 계획 등 작성.

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) 구현단계 보안활동에 대한 점검 참고

별첨5) 구현단계 보안활동에 대한 점검.docx


시험 단계 보안 프로세스

  • 애플리케이션 개발자 및 보안 담당자는 시험계획서에 따라 보안 기능 시험.

  • 애플리케이션 보안 설계 구현과정에서 제시된 추가항목 및 최신 취약점 점검을 위한 테스트 계획서에 따라 보안 기능을 테스트

  • 보안 기능 테스트가 완료되면 보안 담당자는 평과 결과를 검토하여 보안 기능 동작의 적절성 여부를 결정

  • 보안 평가자는 평가 절차에 따라 적절히 계획되고 실행되었는지, 평가 결과가 신뢰할 수 있는지 검증

  • 보안 담당자 및 보안 평가자의 테스트 결과를 개발자에게 피드백을 제공하여 문제가 있는 기능에 대한 보안이 이루어질 수 있도록 조치

반응형

'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