Chimy's Program
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 요구사항 명세/설계 본문
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 요구사항 명세/설계
SW개발보안
- 해킹 등 사이버공격의 원인인 보안 취약점을 SW개발 단계에서 미리 제거하고 SW개발에 따른 생명주기별 단계적으로 수행하고 개발 과정에서 보안 업무을 수행하며 안전한 보안요소를 만족하는 소프트웨어를 개발/운영하기 위한 목적으로 수행하는 개발 방법
① SW개발보안의 3요소
- 기밀성(confidentiality)
- 무결성(integrity)
- 가용성(availability)
(1) 소프트웨어 자산(Asset)과 관련된 상세
- 자산 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상
- 서버의 하드웨어, 소프트웨어와 기업의 중요 데이터
(2) 위협원(Threat agents)
- 조직 자산의 파괴와 손해가 발생하는 행동을 할 수 있는 내외부의 주체
- 해커, 내부의 인가받지 않은 임직원, 단체, 자연재해
(3) 위협(Threat)
- 조직의 자산에 대한 위협이 되는 위협원의 공격 행동
- 해킹, 삭제, 자산의 불법적인 유출, 위변조, 파손
(4) 취약점(Vulnerability)
- 위협이 발생하기 위한 사전 조건에 따른 상황
- 평문을 전송, 입력값을 검증하지 않음, 비밀번호를 공유하는 행위
(5) 위험(Risk)
- 위협원이 취약점을 사용하여 위협 행동하여 자신에 나쁜 영향의 결과를 가져올 확률과 영향도
소프트웨어 개발보안의 요구공학 프로세스
- 보안요구 공학 : 보안요구사항 개발과 보안요구사항 관리로 분류
- 요구사항 개발 : 도출(Elicitation) ↔ 분석(Analysis) → 명세(Specification) ↔ 확인(Vaildation)
- 요구사항 관리 : 요구사항 변경관리, 추적관리
① 소프트웨어 개발보안의 요구사항 개발
(1) 소프트웨어 개발보안의 요구사항 도출
- 조직의 이해관계자의 상호의견을 조율하고 협의를 통해 요구사항을 수집하고 수집된 요구사항을 정제하고 내용별로 분류
- 참조되는 산출물 : 제안서나 계약서, 과업지시서, 회의록, 사업 수행 계획서
(2) 소프트웨어 개발보안의 요구사항 분석
- 그 후에 보안요구사항을 내용별로 분류된 것을 토대로 분석에 들어가는데 요구사항 중에서는 실제로 구현하기 어렵거나 현시점에서 과도하게 비용 또는 인력이 소모되는 비용 효율적인 면을 고려하여 보안요구사항의 제약조건 판별
- 만약 기술적 이나 비용적으로 당장 구현이 힘들더라도 비슷한 대안을 제시할 수 있다면 의견 제시로 보안요구사항 분석서에 기술해도 무방
(3) 소프트웨어 개발보안의 요구사항 명세
- 보안요구사항을 다른 사람이 알아보기 쉽도록 명세화
- 보안요구사항의 분석서를 통해 요구사항 정의서 도출
- 내용은 소프트웨어 개발 시스템의 목표 기술과 사업의 기능과 비기능적 요구사항 명세
(4) 소프트웨어 개발보안의 요구사항 확인과 검증
- 소프트웨어 개발보안요구사항 명세 작성이 완료되면 관계자들에게 요구사항이 맞는지 확인하고 검증하는 과정 필요
- 이해 관계자들의 지식과 조직의 성숙도, 소프트웨어 개발보안요구사항 문서와 조직의 표준을 고려하여 소프트웨어 개발보안요구사항 문제 보고서 작성
- 보고서는 경영진 또는 중간관리자에게 승인을 받아 내용 확정
- 경영진, 중간관리자는 보고서의 문서화 정도와 내용의 명확성, 간결하고 실제로 구현이 가능하고 문제가 없는지 테스트가 가능하여야 하며 향후 장애 등의 문제 발생 시 근본 원인을 파악할 수 있도록 추적성이 가능한 코드체계를 통하여 내용 검토를 수행한 후 검증
② 소프트웨어 개발보안의 요구사항 관리
- 비즈니스 환경 변화 또는 시간의 흐름에 따라 서버 보안요구사항은 변경될 수 있으며 서버 보안요구사항은 지속적으로 관리, 갱신
- 서버 보안요구사항의 관리는 이해관계자 간의 협상을 통해 기준을 정하고 상부의 정식 승인 받아 변경 수행
- 아무 승인 없이 서버 보안요구사항 변경 후 시간이 지나면 이력을 알 수 없기 때문에 철저히 관리하고 서버 보안요구사항 명세서와 함께 서버 보안요구사항 추적 매트릭스를 통해 산출물과 테스트 시나리오 등 관리
(1) 소프트웨어 개발보안 설계
- 소프트웨어 개발에 운영되고 개발되는 운영 애플리케이션의 조직의 사업방향에 맞는 보안 목적을 정의하고 조직의 업무 현행 현황 업무 파악과 응용 애플리케이션 개발과정에서 이행되고 적용되어야 하는 조직의 보안 정책을 검토하고 소프트웨어 개발보안 위험 분석 및 전사 조직에 적용되는 소프트웨어 개발보안 계획 작성
(가) 소프트웨어 개발보안의 요구사항
- 반영 소프트웨어 개발보안의 분석 단계에서 파악된 소프트웨어 개발보안 요구사항 분석서의 요구사항을 반영하여 소프트웨어 개발 설치 시 감지하지 못하는 보안 위험과 통제를 고려하여 소프트웨어 개발보안 설계 작성
- 소프트웨어 개발보안 설계서의 내용은 소프트웨어 개발의 기능과 OS, 애플리케이션의 기본 설계와 상세 설계서 작성
(나) 소프트웨어 개발보안의 요구사항 설계 반영
- 소프트웨어 개발보안의 분석 단계에서 정의된 소프트웨어 개발보안 요구사항 분석을 통해 나타난 항목을 검토한 뒤에 여러 사항을 고려하여 설계에 반영
- 소프트웨어 개발보안 계획이나 조직의 표준(기술, 비즈니스 요건)에 적합한지 확인
- 실제 소프트웨어 개발보안이 가능한지 가능성 여부 판단
- 보안요구사항을 분석하여 소프트웨어 개발보안 설계에 적절히 반영
(다) 소프트웨어 개발보안의 환경 설계 반영
- 기술적인 구현 타당성이 검증되었고 확인되었다면 네트워크 보안을 검토하여 소프트웨어 개발과 네트워크 연결 시 문제가 발생하지 않는지 여러 사항을 검토하여 설계에 반영
- 외부 사이버 공격으로부터 개발/운영 환경 보호를 위해 네트워크 보안환경 구성
- 개발/운영에 필요한 네트워크를 분리하고 소프트웨어 개발도 분리하여 다른 접근 경로로 구성
- DMZ 구간에 설치될 소프트웨어 개발의 네트워크 접근과 소프트웨어 개발의 계정관리 체계를 점검하여 구성
- DMZ : 인프라 네트워크의 구성중에서 외부 인터넷망과 내부 인프라넷망의 사이에 위치하는 중간지대, 인프라네트워크의 보안영역의 일부
(2) 소프트웨어 개발보안 계획 수립
- 시작 단계
- 분석 단계
- 설계 단계
- 구현 단계
- 시험 단계
SW개발보안 요구사항 명세/설계
① 정보에 대한 보안항목을 환경 분석에 따라 법률적으로 검토
- 소프트웨어 개발에 대한 보안항목의 식별을 위해 내외부 환경 분석을 통하여 보안항목을 분석하고 규제와 컴플라이언스 이슈제거를 위한 사전 항목 식별
- 소프트웨어 의 목적에 맞게 소프트웨어가 처리하는 정보의 분류를 조직 정보의 자산 가치에 따라 기타 중요정보 식별
(1) 내외부환경 분석(법에 따른 제도와 규정)을 통해 보안 항목 식별
- 분석단계에서 정보와 조직의 정보처리 기능에 대해 식별해야 하는 항목작업이 우선적으로 수행
- 보안요구사항은 법률적인 요구사항의 검토 필수
※ 정보보호관련 법령 목록
- 국가기밀보호 : 보안업무 규정, 군사기밀 보호법, 군형법
- 중요정보 국외 유출 방지 : 산업기술의 유출 방지 및 보호에 관한 법률, 기술의 이전 및 사업화 촉진에 관한 법률, 민군겸용 기술사업 촉진법, 부정경쟁방지 및 영업 비밀 보호에 관한 법률
- 전자서명 및 인증 : 전자서명법, 전자정부법
- 정보통신망과 정보시스템 보호추진 : 국가정보화기본법, 정보통신기반보호법, 정보통신망 이용촉진 및 정보보호 등에 관한 법률, 전자정부법, 전자 문서 및 전자거래 기본법, 국가사이버안전관리 규정
- 침해행위 처벌 : 전자무역 촉진에 관한 법률, 형법, 정보통신기반 보호법, 정보통신망 이용촉진 및 정보보호 등에 관한 법률
- 개인정보보호 : 개인정보 보호법, 정보통신망 이용촉진 및 정보보호 등에 관한 법률, 신용정보의 이용 및 보호에 관한 법률
(가) 보안 관련 법규 검토
(a) 개인정보 보호법 검토
- 개인정보 처리 과정 상의 정보 주체와 개인정보 처리자의 권리/의무를 검토하여 소프트웨어 개발 요구사항에 충분히 반영
1) 개인정보 고유식별 정보의 처리 제한 요구사항 수집
- 개인을 식별하는 고유한 식별정보(ex. 주민등록번호)를 처리하는 경우 그 정보가 분실/도난/유출/변조/훼손되지 않도록 암호화를 통하여 안전성 확보,조치 필요
2) 개인정보보호법 안전조치 의무화 요구사항 반영
- 개인정보가 분실/도난/유출/변조/훼손되지 않도록 조직내부의 보안관리 계획 수립
- 접속기록보관이 필요하기 때문에 안전성 확보를 위한 필요한 기술적, 관리적, 물리적 조치
3) 개인정보의 안전성 확보 조치 요구사항 수집
- 개인정보를 안전하게 저장, 전송할 수 있는 암호화 기술의 적용하거나 상응 하는 조치 필요
(b) 정보통신망 이용촉진 및 정보보호 등에 관한 법률 검토
- 정보통신망을 통하여 수집/처리/보관/이용되는 개인정보의 보호에 관한 규정을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
1) 개인정보의 보호조치 시행령 제 15조 분석
- 개인정보가 안전하게 저장, 전송될 수 있도록 보안조치
- 비밀번호 및 바이오정보(ex. 지문) 단방향 암호화 저장, 개인의 주민등록번호/계좌번호/금융정보를 암호화하여 저장
- 개인정보 와 인증정보를 송수신하는 경우 보안이 강화된 서버 인프라 구축 등의 조치 와 그 밖의 검증된 암호화 기술을 이용한 보안 조치를 위한 요구사항 분석 실시
2) 개인정보의 보호조치 법률 제 28조 분석
- 개인정보를 취급할 때에는 개인정보의 분실, 도난, 누출, 변조 또는 훼손을 방지 하기 위해 기술적, 관리적 조치
- 개인정보를 안전하게 저장, 전송 할 수 있는 암호화 기술 등을 이용한 보안조치
3) 개인정보의 암호화 분석
- 비밀번호/바이오정보는 복호화되지 않도록 일방향 암호화하여 저장
- 주민등록번호/카드번호/계좌번호에 대해서는 안전한 암호화 알고리즘으로 암호화하여 저장
- 서비스를 제공하는 서버 단에서 SSL(Secure Socket Layer) 인증서를 통하여 송수신하는 정보를 암호화하여 송수신
- 서비스를 제공하는 서버에 암호화 응용프로그램을 설치하여 전송하는 정보를 암호화하여 송수신하는 기능의 보안조치
(c) 신용정보의 이용 및 보호에 관한 법률 개인 신용정보 취급
- 단계별 보호조치 및 의무사항에 관한 규정을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(d) 위치정보의 보호 및 이용 등에 관한 법률
- 개인위치정보 수집, 이용, 제공 파기 및 정보주체의 권리 등 규정을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(e) 표준 개인정보보호 지침
- 조직의 표준 개인정보 지침은 개인정보 취급자와 개인정보 처리자가 준수해야 하는 개인정보의 처리에 관한 기준을 준수
- 개인정보 침해의 유형 및 예방조치 등에 관한 세부사항 규정을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(f) 개인정보의 안전성 확보 조치 기준
- 개인정보 처리자가 개인정보를 처리함에 있어서 분실, 도난, 유출, 변조, 훼손되지 아니하도록 안전성을 확보하기 위해 취해야 하는 세부적인 기준 규정과 개인 정보 위험도 분석기준과 개인정보 처리시스템의 보호수준을 진단하여 암호화에 상응하는 조치 필요여부를 판단할 수 있는 기준을 규정을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(g) 개인정보 영향평가에 관한 기준
- 개인정보의 영향평가 수행을 위하여 공신력 있는 평가기관의 지정 및 영향평가의 절차 등에 관한 세부 기준 규정을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(나) 소프트웨어 개발 요구사항 관련 특정 IT기술 관련 규정과 법률이 있는지 조사
(a) RFID 프라이버시 보호 가이드라인
- RFID 활용 시 개인정보보호 조치 사항을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(b) 위치정보의 보호 및 이용 등에 관한 법률
- 개인정보에서 실시간 개인의 위치정보 수집과 서비스 제공에 필요한 정보를 가공하거나 이용하는 경우 개인정보보호 조치 사항을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(c) 위치정보의 관리적/기술적 보호조치 권고 해설서
- 지문/홍채 등 생체정보 수집/이용 시 개인정보보호 조치 사항을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(d) 바이오정보 보호 가이드라인
- 새로운 컨텐츠 서비스 이용하고 제공하는 경우 개인정보 침해사고 예방을 위한 준수사항을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(e) 뉴미디어 서비스 개인정보보호 가이드라인
- 뉴미디어 서비스 이용하고 뉴미디어 서비스를 제공 시 개인정보 침해사고 예방 을 위한 준수사항을 검토하여 소프트웨어 개발 요구사항에 충분히 반영
(2) 정보의 자산 가치에 따라 기타 중요정보 식별
(가) 조직의 정보 자산 가치에 따른 중요한 자산의 정보 식별
- 소프트웨어 시스템이 처리하는 정보는 법적인 의무사항으로 필수적인 결함제거를 위한 안전조치가 필요한 정보들 이외에도 물리적이고 기술적으로 접근하거나 접근되는 허용되는 범위와 정보유출이 발생하는 경우 예상되는 피해를 기준으로 보안등급을 결정하고 조직의 정보의 자산 가치를 기준으로 중요정보를 식별/분류하며 법적의무사항에 준하는 보안강도 적용
② 보안항목의 요구사항 수집
- 보안요구사항 수집을 통하여 다양한 관계자들의 의견을 청취하여 문서로 분류하고 비슷한 내용은 서로 그룹핑을 하여 요구사항을 단순화시킨 후 단순화시킨 내용을 다시 관계자들의 확인을 거쳐 내용검증을 통해 요구사항 분류/체계화
- 서버 보안요구사항은 서버의 보안 안정성을 확보하기 위한 기초 데이터로서 내/외부 위협으로 부터 주요 자산 보호
(1) 보안관련 법률검토 요구사항에 의한 개발 환경의 계획과 통제에 관한 정보 식별
- 보안 법률검토에 의한 보안의 목적과 목표 설정 이행 시스템에 대한 정확한 정보를 식별하여 보안요구사항을 분석할 수 있도록 파악
(2) 소프트웨어 개발 PM(project manager)은 보안요구사항을 분석하여 수행 계획 수립
- 보안 설계서의 작업 준비로 보안 환경에 대한 자료 수집과 자료 정리에 따라 작업을 할당하고 역할과 책임 분류
- 작업 실시에 따른 일정별 작업 계획을 수립하고 보안 환경 구축에 필요한 과업별 작업 카드 작성 및 기록과 보고체계 구축
(3) 보안 환경의 적용 기술을 검토
- 보안 환경의 요구사항 수집과 현행 시스템의 목표를 바탕으로 보안 환경의 구축을 위해 구체적으로 필요한 적합한 환경 기술, 인력과 인력의 기술수준, 조직의 보안 성숙도를 기반으로 스펙(spec)을 기술하고 검토
(가) 보안 환경의 요구사항 이행 방안
- 보안 환경 설계서의 요구사항 정의에 의해 요구사항에 대한 식별을 수행하고 각 요구사항의 테스크(task)에 대한 의존도와 독립성에 대한 검토 수행
- 각 요구사항의 항목별로 하부 요구사항을 구체적으로 어떻게 구현할 것인지 세부적인 도출 수행
(나) 보안 환경의 구축 가능한 기술에 대한 참조 기술 목록 검색
- 보안 환경 설계서의 정의된 요구사항의 세부 이행 방안에 대한 각종 참조 기술 검색
- 보안 설계서의 이행 방안에 따른 각각 적용해야 하는 참조 기술을 별도로 정의하여 보안 환경의 구축을 수행하고 참조 기술 갱신
(다) 보안 환경의 참조 적용 기술에 대한 적용 가능성 검토
- 구체적으로 해당 참조 기술을 사용하는 방법, 해당 참조 기술을 이용하기 위한 적용 가능성 검토
'BASE' 카테고리의 다른 글
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 구현 (0) | 2020.09.09 |
---|---|
정보처리기사 실기 - 소프트웨어 개발 보안 구축 : SW개발보안 환경구축 일정계획 수립 (0) | 2020.09.08 |
정보처리기사 실기 - SQL 응용 : DCL 명령문 작성 (0) | 2020.09.04 |
정보처리기사 실기 - SQL 응용 : 특정 기능 수행 SQL문 작성 (0) | 2020.09.03 |
정보처리기사 실기 - SQL 응용 : 집계성 SQL 작성 (0) | 2020.09.02 |