정보시스템의 도입·개발·변경 시 정보보호 및 개인정보보호 관련 법적 요구사항, 최신 보안취약점, 안전한 코딩방법 등 보안 요구사항을 정의하고 적용하여야 한다.
새로운 정보시스템(서버, 네트워크 장비, 상용 소프트웨어 패키지) 및 보안시스템 도입 시 도입 타당성 분석 등의 내용이 포함된 도입계획 수립
정보보호 및 개인정보보호 측면의 요구사항을 제안요청서(RFP)에 반영하고 업체 또는 제품 선정 시 기준으로 활용
정보시스템 인수 여부를 판단하기 위한 시스템 인수기준 수립
정보시스템을 신규로 도입·개발 또는 변경하는 경우 법적 요구사항, 최신 취약점 등을 포함한 보안 요구사항을 명확히 정의하고 설계 단계에서부터 반영하여야 한다.
정보시스템의 안전한 구현을 위한 코딩 표준을 마련하고 적용하여야 한다.
정보시스템 인수 전 보안성 검증 기준 및 절차가 마련되어 있지 않은 경우
신규 시스템 도입 시 기존 운영환경에 대한 영향 및 보안성을 검토하도록 내부 규정을 마련하고 있으나, 최근 도입한 일부 시스템에 대하여 인수테스트(취약점 점검) 등의 관련 보안성검토 수행 증적이 확인되지 않은 경우
개발 관련 내부 지침에 개발과 관련된 주요 보안 요구사항(인증 및 암호화, 보안로그 등)이 정의되어 있지 않은 경우
ʻ개발표준정의서ʼ에 사용자 패스워드를 안전하지 않은 암호화 알고리즘(MD5, SHA1)으로 사용하도록 되어 있어 관련 법적 요구사항을 적절히 반영하지 않는 경우
사전 정의된 보안 요구사항에 따라 정보시스템이 도입 또는 구현되었는지를 검토하기 위하여 법적 요구사항 준수, 최신 보안취약점 점검, 안전한 코딩 구현, 개인정보 영향평가 등의 검토 기준과 절차를 수립·이행하고, 발견된 문제점에 대한 개선조치를 수행하여야 한다.
정보시스템 인수 전 인수기준 적합성 여부를 확인하기 위한 시험 수행
개발·변경 및 구현된 기능이 사전에 정의된 보안 요구사항을 충족하는지 시험 수행
정보시스템이 안전한 코딩 기준 등에 따라 안전하게 개발되었는지를 확인하기 위한 취약점 점검을 수행하여야 한다.
시험 및 취약점 점검 과정에서 발견된 문제점이 신속하게 개선될 수 있도록 개선계획 수립, 이행점검 등의 절차를 이행하여야 한다.
정보시스템 구현 이후 개발 관련 내부 지침 및 문서에 정의된 보안 요구사항을 시험하지 않고 있는 경우
응용프로그램 테스트 시나리오 및 기술적 취약점 점검항목에 입력값 유효성 체크 등의 중요 점검항목 일부가 누락된 경우
구현 또는 시험 과정에서 알려진 기술적 취약성이 존재하는지 여부를 점검하지 않거나, 타당한 사유 또는 승인 없이 확인된 취약성에 대한 개선조치를 이행하지 않은 경우
공공기관이 5만 명 이상 정보주체의 고유식별정보를 처리하는 등 영향평가 의무 대상 개인 정보파일 및 개인정보처리시스템을 신규로 구축하면서 영향평가를 실시하지 않은 경우
공공기관이 영향평가를 수행한 후 영향평가기관으로부터 영향평가서를 받은 지 2개월이 지났음에도 불구하고 영향평가서를 개인정보보호위원회에 제출하지 않은 경우
개발 및 시험 시스템은 운영시스템에 대한 비인가 접근 및 변경의 위험을 감소시키기 위하여 원칙적으로 분리하여야 한다.
개발 및 시험 시스템과 운영시스템은 원칙적으로 분리하여 구성
개발자가 불필요하게 운영시스템에 접근할 수 없도록 개발 및 시험 시스템과 운영시스템 간 접근통제 방안 수립·이행
불가피한 사유로 개발과 운영환경의 분리가 어려운 경우 상호검토, 상급자 모니터링, 변경 승인, 책임 추적성 확보 등의 보안대책을 마련하여야 한다.
타당한 사유 또는 승인 없이 별도의 개발환경을 구성하지 않고 운영환경에서 직접 소스코드 변경을 수행하고 있는 경우
불가피하게 개발시스템과 운영시스템을 분리하지 않고 운영 중에 있으나, 이에 대한 상호 검토 내역, 모니터링 내역 등이 누락되어 있는 경우
개발시스템이 별도로 구성되어 있으나, 개발환경으로부터 운영환경으로의 접근이 통제되지 않아 개발자들이 개발시스템을 경유하여 불필요하게 운영시스템 접근이 가능한 경우
시스템 시험 과정에서 운영데이터의 유출을 예방하기 위하여 시험 데이터의 생성과 이용 및 관리, 파기, 기술적 보호조치에 관한 절차를 수립·이행하여야 한다.
개인정보 및 중요 정보가 시스템 시험과정에서 유출되는 것을 방지하기 위하여 시험데이터는 임의의 데이터를 생성하거나 운영데이터를 가공·변환한 후 사용
시험데이터 변환 및 사용에 따른 기준·절차 수립·이행
불가피하게 운영데이터를 시험 환경에서 사용할 경우 책임자 승인, 접근 및 유출 모니터링, 시험 후 데이터 삭제 등의 통제 절차를 수립·이행하여야 한다.
개발서버에서 사용할 시험 데이터 생성에 대한 구체적 기준 및 절차가 수립되어 있지 않은 경우
타당한 사유 및 책임자 승인 없이 실 운영데이터를 가공하지 않고 시험 데이터로 사용하고 있는 경우
불가피한 사유로 사전 승인을 받아 실 운영데이터를 시험 용도로 사용하면서, 테스트 데이터베이스에 대하여 운영 데이터베이스와 동일한 수준의 접근통제를 적용하고 있지 않은 경우
실 운영데이터를 테스트 용도로 사용한 후 테스트가 완료되었음에도 실 운영데이터를 테스트 데이터베이스에서 삭제하지 않은 경우
소스 프로그램은 인가된 사용자만이 접근할 수 있도록 관리하고, 운영환경에 보관하지 않는 것을 원칙으로 하여야 한다.
비인가자에 의한 소스 프로그램 접근을 통제하지 위한 절차를 수립·이행하여야 한다.
소스 프로그램은 장애 등 비상시를 대비하여 운영환경이 아닌 곳에 안전하게 보관하여야 한다.
소스 프로그램에 대한 변경이력을 관리하여야 한다.
(변경 통제)
별도의 소스 프로그램 백업 및 형상관리 시스템이 구축되어 있지 않으며, 이전 버전의 소스 코드를 운영 서버 또는 개발자 PC에 승인 및 이력관리 없이 보관하고 있는 경우
형상관리시스템을 구축하여 운영하고 있으나 형상관리시스템 또는 형상관리시스템에 저장된 소스코드에 대한 접근제한, 접근 및 변경이력이 적절히 관리되지 않고 있는 경우
(형상관리시스템 : 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것)
내부 규정에는 형상관리시스템을 통하여 소스 프로그램 버전관리를 하도록 되어 있으나, 최신 버전의 소스 프로그램은 개발자 PC에만 보관되어 있고 이에 대한 별도의 백업이 수행되고 있지 않은 경우
신규 도입·개발 또는 변경된 시스템을 운영환경으로 이관할 때는 통제된 절차를 따라야 하고, 실행코드는 시험 및 사용자 인수 절차에 따라 실행되어야 한다.
개발자 본인 이외의 이관담당자 지정
시험완료 여부 확인
이관 전략(단계적 이관, 일괄적 이관 등)
이관 시 문제 대응 방안(복귀 방안, 이전 버전의 시스템 보관 방안 등)
이관에 대한 책임자 승인
이관에 대한 기록 보존 및 검토 등
운영환경으로 이관 시 발생할 수 있는 문제에 대한 대응 방안을 마련하여야 한다.
운영환경에는 승인되지 않은 개발도구(편집기 등), 소스 프로그램 및 백업본, 업무 문서 등 서비스 실행에 불필요한 파일이 존재하지 않아야 한다.
(운영환경에는 서비스 실행에 필요한 파일만을 설치해야 함)
개발·변경이 완료된 소스 프로그램을 운영환경으로 이관 시 검토·승인하는 절차가 마련되어 있지 않은 경우
운영서버에 서비스 실행에 불필요한 파일(소스코드 또는 배포모듈, 백업본, 개발 관련 문서, 매뉴얼 등)이 존재하는 경우
내부 지침에 운영환경 이관 시 안전한 이관·복구를 위하여 변경작업 요청서 및 결과서를 작성하도록 정하고 있으나, 관련 문서가 확인되지 않은 경우