Chimy's Program
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 환경구축 일정계획 수립 본문
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 환경구축 일정계획 수립
SW개발보안 환경구축 일정계획 수립
① 보안성이 강화된 응용프로그램 구현을 위한 환경 구축
- 보안성이 강화된 응용프로그램 구현을 위한 환경은 대상이 되는 시스템을 개발 환경에 배포하기 위해 사용되는 취약점 진단 도구, 취약점 진단 과정 중 대상 시스템을 모니터링 하고 결함을 추적하고 관리하기 위한 결함 관리 시스템으로 구성
(1) 보안 취약점 환경구축(Set up Security vulnerability Environment) 기능(서버, 스토리지, 네트워크 환경의 역할)
- 대상 시스템을 테스트 환경에 배포
- 보안 취약점 점검에 필요한 진단도구와 모니터링 툴을 설치 관리
- 보안 취약점 진단하는 환경 설정 정보를 문서화 명세 관리
(2) 취약점 모니터링 환경(Monitor Environment) 기능
- 보안 취약점 진단 진행 중 보안 취약점 진단 환경 인프라와 대상 시스템에 대한 모니터링 수행
- 보안 취약점 진단 진행 중 환경에 대한 모니터링 정보 저장
보안성이 강화된 응용프로그램 구현을 위한 일정 계획의 수립
- 보안이 강화된 소프트웨어 개발 구축을 위해 개발 전략과 계획은 실제 발주 전 구매 혹은 계약 이전에 수립하며 조직의 보안 정책을 일정 계획 반영
- 전략 및 계획 수립 과정은 보안이 강화된 소프트웨어 개발에 관한 일정, 실행을 위한 역할과 책임을 명시하며 개발 결정을 위해 포함
① 일정 계획을 위한 보안 전문가 선정
- 개발 부서에서는 개발을 위한 모든 과정(계획, 요구사항 분석, 도출, 프로그램 소스 코드 선택, 계약과 발주, 프로젝트 관리 등)은 지식이 풍부하고 동일 업무에 경험이 있는 공신력 있는 보안 전문가와 보안 실무자를 통해 수행
② 일정 계획을 위한 보안 범주 식별
- 조직의 보안 범위는 개발되는 시스템의 데이터와 정보처리시스템을 위협하는 사고의 잠재적 파급 효과를 기반으로 조직의 보안요구사항을 도출하고 선택하고 내용은 일정에 반영
③ 보안요구사항 분석
- 중요 보안고려사항뿐 아니라 소프트웨어 개발자와 공급자 선택, 조직의 각 주요 부서 간 의 역할 및 책임, 전사적인 프로젝트 관리 등에 대한 사항 기술
④ 보안성이 강화되었는지 취약점 점검과 함께 독립적인 테스트 계획 기획
- 보안이 강화된 소프트웨어 구축, 안정성 평가 기능과 특별한 요구사항이 있는지 직간접으로 확인을 위한 취약점 점검 계획 기술
수행
① 보안성이 강화된 응용프로그램 구현을 위한 환경 구축
- 시스템으로부터 실행 가능한 프로그램에 대하여 설계된 보안 취약점 시나리오 케이스를 기반으로 취약점 점검을 수행하기 위한 취약점 점검 환경 구축
- 구축된 취약점 점검 환경에서 취약점 점검 계획서에 정의된 취약점 점검 환경 및 자원을 설정하여 취약점 점검 수행을 준비하는 과정
※ 소프트웨어 보안계획 장점
- 허용되지 않는 위험을 우선적으로 해결
- 개발자가 중단을 최소화하여 안전한 소프트웨어를 만들 수 있는 길이 열리므로 생산성 향상
- 특정 인물이나 그룹에게 소프트웨어 보안 위험을 감소시켜야 하는 책임을 부여하여 최선을 다해야 하는 환경 조성
- 공동의 우선순위와 책임, 계획을 기반으로 보안 팀과 개발 팀 사이에 공식적인 협업의 장을 마련하여 혼란을 줄이고 모두가 효율적으로 협력
- 제품 관리자, 설계자, 개발자, 테스터, 그 외 모든 이해관계자가 참여한 가운데 소프트웨어 보안요구사항을 문서화하고 조율하여 조직 차원의 합의도출
- 내부 팀과 외부 벤더 등 소프트웨어 공급망에 관여하는 모든 사람에게 일관된 목표를 제시 하므로 시작점이 어디든 모든 소프트웨어가 안전하게 구축될 것으로 확신
- 정책, 표준, 도구, 전문가 등 모든 소프트웨어 보안 요구를 처리하는 전문가 조직을 구성하여 모두가 원하는 해답을 얻고 기술력을 향상할 수 있는 거점 제공
- 성공 여부를 측정하고 고객, 파트너, 이사회에 전달
- 소프트웨어 개발 체인의 모든 이해 관계자와 꾸준하게 접촉하고 교육을 제공하여 보안을 중시하는 문화 육성
- 개발 팀의 변화하는 요구를 반영하는 동시에 위험 관리
(1) 취약점 점검 환경 분석서 입력물
- 취약점 점검 계획서
- 취약점 점검 케이스 설계 명세서
(2) 도구 및 기법
(가) 취약점 점검 환경 정보 수집
- 취약점 점검 조직들로부터 취약점 점검 환경에 대한 정보를 얻기 위한 기법을 사용하고 델파이 기법 주로 사용
(a) 시스템 담당자 정보
- 시스템이 어떻게 구성될 것인지에 대한 종합적인 정보 필요
- 취약점 점검 이 왜 필요한지 어떤 종류의 취약점 점검을 수행하여야 하는지 취약점 점검 담당자 정보 적용
(b) DB 담당자 정보
- 시스템 환경 구성에 필요한 DB의 구성과 취약점 점검 수행 시 필요 데이터의 종류와 출력값 및 입력값에 대한 자문을 얻음
(c) 개발 담당자 정보
- 개발환경, 아키텍처, 개발언어, 성능목표 지수 등에 대한 정보 취득
(d) 업무 담당자 정보
- 사용자가 주로 사용하는 업무에 대한 가이드와 구현될 향후 시스템에 대한 정보 취득
(e) 기타 Key Man 정보
- 프로젝트를 수행하면서 발생할 수 있는 이슈에 대한 해결이 가능한 Key Man에 대한 정보 수집
(3) 취약점 점검 계획서, 명세서 검토
(가) 취약점 점검 계획서
- 취약점 점검 활동의 범위, 접근 방법, 자원, 일정 등에 대해 정의
- 취약점 점검 항목, 취약점 점검 수행이 되어야 하는 항목, 수행되는 작업, 해당 작업에 대한 개인별 역할과 책임, 계획과 관련된 리스크 식별
(나) 취약점 점검 설계 명세서
- 취약점 점검 접근 방법 상세화
- 설계 시 포함된 특성과 해당 특성에 대한 취약점 점검 활동, 취약점 점검 활동을 완료하기 위한 취약점 점검 케이스 및 취약점 점검 절차, 각 특성에 대한 성공과 실패 기준 식별
(다) 취약점 점검 케이스 명세서
- 취약점 점검 케이스 명세서는 입력으로 사용된 실제 입력값과 그에 따른 예상 출력결과 문서화
- 취약점 점검 케이스 사용에 필요한 취약점 점검 절차상의 제약 사항 식별
(라) 취약점 점검 절차 명세서
- 취약점 점검 절차 명세서는 관련 취약점 점검 설계를 수행하기 위해 정의된 취약점 점검 케이스 수행
- 취약점 점검 절차는 단계별로 따라야 하는 내용과 외부 환경의 상세 내용을 식별하고 시스템을 운영하기 위한 모든 단계 식별
(마) 취약점 점검 목록 분석
- 장점 : 과거 유사한 취약점 점검 활동에서 취약점 점검 분석서를 식별 시 사용하였던 체크리스트나 점검 목록을 분석하여 식별
- 단점 : 체크리스트나 점검 목록에 누락된 내용은 식별 불가
(바) 가정 분석
- 취약점 점검은 결과에 대한 가정을 바탕으로 계획을 세우기 때문에 가정이 부정확하거나 불일치, 불완전할 경우 취약점 점검 실패 발생
(사) 도식화 기법
- 조직 업무 프로세스, 인과관계도, 시스템 또는 프로세스 흐름도, 영향 관계도를 통해 취약점 점검 환경 분석 수행
(4) 산출물
- 취약점 점검 환경 구축의 산출물 : 취약점 점검 환경 설치 및 명세서
구분 | 취약점 점검 환경 설치 및 명세서 설명 |
취약점 점검 팀 | 취약점 점검 관리자, 취약점 점검 리더, 적합성 테스터, 수동 테스터, 자동화 테스터, 취약점 점검 환경 전문가, 취약점 점검 라이브러리 전문가, 형상관리 전문가로 취약점 점검 방식에 따라 취약점 점검 팀구성은 변경 가능 |
HW 환경 | Architecture 정보, 대상 시스템 정보, 주요 솔루션 정보, 물리적인 서버 개수 |
SW 환경 | 개발 언어 정보, 업무단위별 프로그램 목록, 업무 애플리케이션 정보, 사용자가 주로 사용하는 업무 프로그램, 추정 응답시간 |
기타 지원 | 시스템의 용량, 취약점 점검 환경 관리의 분류, 범주화, 취약점 점검 환경에 관련된 시설과 장소 |
② 보안성이 강화된 응용프로그램 구현을 위한 일정 계획 수립
(1) 시작단계로 조직의 개발 업무 현황 수집하고 보안등급으로 구분
- 실제로 운영되는 업무를 보안 규정에 맞는 요소별 보안 등급으로 구분
※ 요소별 SW개발보안 등급
- 보안요소 : 조직의 보안기준에 따른 등급 구분
- 기밀성 : 고객비밀, 매우 극비, 중간적인 비밀, 대외비, 일반정보
- 무결성 : High, Middle, Low
- 가용성 : 1분, 시간, 1일, 1주, 1달
(2) 시작단계로 조직의 업무 현황 파악
- 소프트웨어 보안약점 유형을 미리 파악하여 코딩 시 실수하지 않도록 숙지하고 추후 보안약점 발생 시에 대비하여 보안대책 강구
(가) 입력데이터 검증 및 표현
- 개발되는 프로그램 입력 값의 사전적으로 검증이 누락이 되는 부적절한 검증, 입력 데이터의 부적절한 형식값(parameter)지정으로 인해 발생할 수 있는 보안약점
- SQL 삽입, 크로스사이트 스크립트(XSS) 공격 유발
(나) 보안기능
- 보안기능(사용자 인증, 내·외부 접근제어, 암호화, 기밀성, 사용자와 운영자 등의 권한 관리)을 적절하지 않게 구현하는 경우 발생할 수 있는 보안약점
- 적절한 인증 없는 중요기능 허용, 부적절한 인가 포함
(다) 시간 및 상태
- 정보처리를 실시하는데 시간적으로 병렬이나 동시에 실행을 지원하는 병렬시스템, 다수의 프로세스가 수행되는 동작 환경에서 수행시간과 처리 상태를 적절하게 관리하지 못하여 발생가능성이 있는 보안 취약점
(라) 에러처리
- 프로그램 실행 시 에러가 발생하여 에러를 예외 처리하지 못하거나 충분하게 처리하지 못하고 에러 발생 시 에러 정보에 시스템의 취약점을 추론할 수 있는 중요한 정보(시스템 인프라와 프로그램 정보, 상세한 에러 처리 내역)가 포함될 때 발생할 수 있는 취약점
- 에러 처리를 적절하게 관리하지 못하여 발생하는 보안약점
(마) 코드오류
- 프로그램형(type) 변환하는 경우 발생하는 오류, 서버의 리소스 자원(메모리)의 부적절한 반환(버퍼 오버플로우) 등과 같이 개발자가 흔하게 실수 하는 프로그램 오류로 인해 발생되는 보안 취약점
(바) 캡슐화
- 외부에 은닉이 필요한 중요한 데이터와 필요한 기능성을 충분하지 못하게 캡슐화하였을 때 인가되지 않은 사용자에게 데이터 유출, 권한문제 등이 발생할 수 있는 보안 취약점
(사) API 오용
- 서비스에서 제공되는 이용에 반하는 방법으로 API를 이용하거나 보안에 취약한 API를 오용하여 발생할 수 있는 보안 취약점
(3) 응용프로그램 개발 환경 및 구현 계획 수립
- 개발 환경 구현
- 응용프로그램 구현 계획
(4) 보안에 적용될 조직의 정책 검토
- 보안 정책 검토
- 등급과 정책을 결정하였으면 보안계획을 수립
'BASE' 카테고리의 다른 글
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 테스트와 결함 관리 (0) | 2020.09.10 |
---|---|
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 구현 (0) | 2020.09.09 |
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 요구사항 명세/설계 (0) | 2020.09.05 |
정보처리기사 실기 - SQL 응용 : DCL 명령문 작성 (0) | 2020.09.04 |
정보처리기사 실기 - SQL 응용 : 특정 기능 수행 SQL문 작성 (0) | 2020.09.03 |