분석 및 설계 보안관리
8.1.1 보안 요구사항 정의
신규 정보시스템 개발 및 기존 시스템 변경 시 정보보호 관련 법적 요구사항, 최신 보안취약점, 정보보호 기본요소(기밀성, 무결성, 가용성) 등을 고려하여 보안요구사항을 명확히 정의하고 이를 적용하여야 한다.
- 신규 정보시스템 개발 및 기존 시스템 변경 시 법적 요구사항을 포함한 보안 요구사항을 정의하고 설계 단계에서부터 반영하고 있는가?
– 개인정보처리에 관련된 법적 요구사항 (예 : 개인정보 취급자 권한 부여 기록, 접속기록, 암호화 대상 정보 등)
– 사용자 부서 및 기관의 정보보호 요구사항 (예 : 접근권한 정의 및 통제 원칙, 암호화 대상 선정 등)
– 정보보호 관련 기술적인 요구사항 등 (예 : 개발보안, 인증, 암호화 등)
※ 참고 ※
– 홈페이지 SW(웹) 개발보안 가이드 (KISA)
– 웹서버구축 보안점검 안내서 (KISA)
– 웹어플리케이션 보안 안내서 (KISA)
– 홈페이지 개발보안 안내서 (KISA)
– 소프트웨어 개발보안(시큐어 코딩) 관련 가이드 (JAVA, C, Android-JAVA) (안전행정부)
8.1.2 인증 및 암호화 기능
정보시스템 설계 시 사용자 인증에 관한 보안요구사항을 반드시 고려하여야 하며 중요정보의 입 ∙ 출력 및 송수신 과정에서 무결성, 기밀성이 요구될 경우 법적 요구사항을 고려하여야 한다.
- 정보시스템 설계 시 사용자 인증에 대한 보안 요구사항을 정의하여 반영하고 있는가?
– 패스워드 관련 : 패스워드 잠김 임계치 설정, 패스워드 암호화
– 접근관련 : 동일사용자 동시세션 제한 등
– 추가적인 사용자 인증 절차 : 중요한 정보시스템(예 : 개인정보처리스시템)의 경우 추가적인 인증(예 : OTP, 공인 인증서 등) 요구
※ 참고 ※
– 정보통신 이용촉진 및 정보보호 등에 관한 법률 ‘개인정보의 기술적 ∙ 관리적 보호조치 기준(고시)’ 제4조(접근통제)
– 정보통신 이용촉진 및 정보보호 등에 관한 법률 제23조의2(주민등록번호의 사용 제한)
- 중요정보에 대하여 암호화가 요구되는 경우 법적 요구사항을 고려한 적절한 암호화 방법을 사용하고 있는가?
– 법적 요구사항이외에 조직에 특성에 따라 암호화 대상을 정의한 경우 암호화를 고려하여야 한다.
※ 참고 ※
ㅇ 정보통신망 이용촉진 및 정보보호 등에 관한 법률 시행령 제15조(개인정보의 보호조치)
– 비밀번호 일방향 암호화 저장
– 주민등록번호 및 계좌번호 등 금융정보의 암호화 저장
ㅇ 정보통신망 이용촉진 및 정보보호 등에 관한 법률 ‘개인정보의 기술적 ∙ 관리적 보호조치 기준(고시)’ 제6조(개인정보의 암호화)
– 주민등록번호, 신용카드번호, 계좌번호의 암호화 저장
– 정보통신서비스 제공자의 개인용컴퓨터(PC)상에 저장된 이용자의 개인정보 암호화
ㅇ 개인정보보호법 ‘개인정보의 안전성 확보조치 기준(고시)’ 제7조(개인정보의 암호화)
– 고유식별정보(주민등록번호, 여권번호, 운전면허번호, 외국인등록증번호) 암호화
– 비밀번호 및 바이오정보 암호화 (비밀번호는 일방향 암호화)
– 개인정보처리자 개인용컴퓨터(PC)상에 저장된 고유식별번호
ㅇ KISA 안내서
– 암호기술 구현 안내서 (http://seed.kisa.or.kr)
– 암호이용 안내서
– 암호정책 수립기준 안내서 등
- 개인정보 및 인증정보 등의 중요한 정보 전송 시 SSL보안서버 구축 등을 통하여 암호화하고 있는가?
※ 참고 ※
ㅇ 정보통신망 이용촉진 및 정보보호 등에 관한 법률 ‘개인정보의 기술적 ∙ 관리적 보호조치 기준(고시)’ 제6조(개인정보의 암호화)
– 정보통신서비스 제공자등은 정보통신망을 통해 이용자의 개인정보 및 인증정보를 송수신할때에 안전한 보안서버 구축 등의 조치 필요 (예 : SSL, 암호화 응용프로그램을 설치하여 전송정보 암호화)
ㅇ 개인정보보호법 ‘개인정보의 안전성 확보조치 기준 고시 및 해설서’ 제7조(개인정보의 암호화)
– 개인정보처리자는 주민등록번호, 비밀번호, 바이오정보 등 정보통신망을 통하여 송수신하거나 보조저장매체 등을 통하여 전달하는 경우에는 암호화 필요(보안서버 활용가능)
ㅇ 보안서버구축 안내서 (KISA)
8.1.3 보안로그 기능
정보시스템 설계 시 사용자의 인증, 권한 변경, 중요정보 이용 및 유출 등에 대한 감사증적을 확보할 수 있도록 하여야 한다.
- 정보시스템 설계 시 보안관련 로그, 감사증적 등을 확보할 수 있는 기능을 반영하고 있는가?
– 사용자 및 관리자의 접속기록 (로그인 및 로그아웃)
– 사용자 권한 부여, 변경, 말소 기록
– 정보시스템 시작 및 중지
– 특수 권한으로의 접근 기록
– 주요업무관련 행위에 대한 로그 등
- 정보시스템 설계 시 보안로그를 보호하기 위한 대책을 마련하고 있는가?
8.1.4 접근권한 기능
정보시스템 설계 시 업무의 목적 및 중요도에 따라 접근권한을 부여할 수 있도록 하여야 한다.
- 정보시스템 설계 시 시스템 사용자의 업무 목적, 기능, 중요도에 따라 접근권한이 부여될 수 있도록 접근권한 부여 기능을 보안 요구사항 및 설계에 반영하고 있는가?
– 사용자별
– 사용자 업무역할별
– 기능별
– 메뉴별 등
구현 및 이관 보안
8.2.1 구현 및 시험
안전한 코딩방법에 따라 정보시스템을 구현 하고, 분석 및 설계 과정에서 도출한 보안요구사항이 정보시스템에 적용되었는지 확인하기 위하여 시험을 수행하여야 한다. 또한 알려진 기술적 보안 취약성에 대한 노출여부를 점검하고 이에 대한 보안대책을 수립하여야 한다.
- 정보시스템의 안전한 구현을 위한 코딩 표준이 마련되어야 하며 이에 따라 구현하고 있는가?
- 기술적 보안취약점 점검을 하고 있는가?
– 시스템이 안전한 코딩표준에 따라 구현하는 지 소스코드 검증 (소스코드 검증도구 활용 등)
– 코딩이 완료된 프로그램은 운영환경과 동일한 환경에서 취약점 점검도구 또는 모의진단을 통한 취약점 노출 여부를 점검
- 구현된 기능이 사전 정의된 보안 요구사항을 충족하는 지 시험을 수행하고 있는가?
8.2.2 개발과 운영 환경 분리
개발 및 시험 시스템은 운영시스템에 대한 비인가 접근 및 변경의 위험을 감소하기 위해 원칙적으로 분리하여야 한다.
- 정보시스템의 개발 및 시험 시스템을 운영시스템과 분리하고 있는가?
– 조직 규모가 작거나 인적 자원 부족 등의 사유로 인해 불가피하게 개발과 운영 직무 분리가 어려운 경우, 직무자간의 상호 검토, 상위관리자의 주기적인 직무수행 모니터링 및 변경 사항 검토/승인, 직무자의 책임추적성 확보 등의 보완통제를 마련하여야 한다. (인증기준 6.1.2 직무분리 참고)
8.2.3 운영환경 이관
운영환경으로의 이관은 통제된 절차에 따라 이루어져야 하고 실행코드는 시험과 사용자 인수 후 실행하여야 한다.
- 운영환경으로의 이관 절차를 수립 ∙ 이행하고 있는가?
– 개발자 이외의 이관담당자 지정
– 시험완료여부 확인
– 이관 전략 (단계적 이관, 일괄적 이관 등)
– 이관 시 문제 대응 방안
– 이관에 대한 책임자 승인
- 운영환경으로의 이관 시 발생할 수 있는 문제 대응 방안을 마련하고 있는가?
- 운영환경에는 서비스 실행에 필요한 파일만을 설치하고 있는가?
8.2.4 시험데이터보안
시스템 시험 과정에서 운영데이터 유출을 예방하기 위해 시험데이터 생성, 이용 및 관리, 파기, 기술적 보호조치에 관한 절차를 수립하여 이행하여야 한다.
- 시스템 시험 과정에서 실제 운영 데이터 사용을 제한하고 있는가?
- 불가피하게 운영데이터를 시험 환경에서 사용할 경우 책임자 승인 등의 인가 절차를 수립 · 이행하고 있는가?
– 운영 데이터 사용 승인 절차 : 데이터 중요도에 따른 보고 및 승인체계 정의
– 시험용 운영 데이터 사용 기한 및 기한 만료 후 폐기 절차 (예 : 사용 만료 후 즉시 폐기 확인)
– 중요 데이터 사용에 대한 시험 환경에서의 접근 권한 및 통제 수립 (예 : 운영환경과 동일한 접근 통제 권고)
– 운영데이터 복제 및 사용에 대한 모니터링 및 감사
8.2.5 소스 프로그램 보안
소스 프로그램에 대한 변경관리를 수행하고 인가된 사용자만이 소스 프로그램에 접근할 수 있도록 통제절차를 수립하여 이행하여야 한다. 또한 소스 프로그램은 운영환경에 보관하지 않는 것을 원칙으로 한다.
- 소스 프로그램에 대한 변경이력을 관리하고 있는가?
- 시스템 운영 장애 등 비상시를 대비하여 이전 시스템의 소스 프로그램을 보관하고 있는가?
– 이전 시스템 환경에 필요한 운영 소프트웨어 (OS)
– 이전 시스템 지원 소프트웨어
– 이전 시스템 관련 문서 (예 : 기능적, 기술적 설계서, DB 설계 및 데이터 정의서 등)
- 비인가된 자의 소스프로그램의 접근을 통제하기 위하여 절차를 수립 ∙ 이행하고 있는가?
외주개발 보안
8.3.1 외주개발보안
정보시스템 개발을 외주 위탁하는 경우 분석 및 설계단계에서 구현 및 이관까지의 준수해야 할 보안요구사항을 계약서에 명시하고 이행여부를 관리 ∙ 감독하여야 한다.
- 정보시스템 개발을 외주 위탁하는 경우 개발 시 준수해야할 보안 요구사항을 제안요청서에 기재하고 계약시에 반영하고 있는가?
ㅇ 정보시스템을 외주 위탁하여 개발하는 경우 분석부터 설계, 구현에 이르기까지 보안 요구사항을 계약서 상에 분명히 명시하여야 한다.
- 외주 위탁업체가 계약서에 명시된 보안요구사항을 준수하는 지 여부를 관리 ∙ 감독하고 있는가?
– 기능적, 기술적 요구사항의 반영 여부
– 개발 보안 가이드 준수 여부(시큐어 코딩 등)
– 테스트 시 보안요구사항 준수여부 확인 절차 포함
– 개발완료된 시스템에 대한 취약점 점검 등
– 개발인력 대상 SW개발보안 관련교육
- 정보시스템 개발 완료 후 SW 보안취약점 제거여부 진단, SW 보안취약점 발견사항 조치 여부 등을 확인 후 검수 · 인수하고 있는가?