K-ISMS 인증기준 - 8. 시스템 개발보안 #2







8.2 구현 및 이관 보안



8.2.1 구현 및 시험

안전한 코딩방법에 따라 정보시스템을 구현 하고, 분석 및 설계 과정에서 도출한 보안요구사항이 정보시스템에 적용되었는지 확인하기 위하여 시험을 수행하여야 한다. 또한 알려진 기술적 보안 취약성에 대한 노출여부를 점검하고 이에 대한 보안대책을 수립하여야 한다.


8.2.1.1 정보시스템의 안전한 구현을 위한 코딩 표준이 마련되어야 하며 이에 따라 구현하고 있는가?

ㅇ 정보시스템에서 알려진 기술적 보안 취약점으로 인한 위협을 최소화하기 위하여 안전한 코딩 표준 및 규약을 마련하여야 하며 이에 따라 정보시스템을 구현하여야 한다.


8.2.1.2 기술적 보안취약점 점검을 하고 있는가?

 ㅇ 코딩 완료 후 안전한 코딩 표준 및 규약 준수 여부를 점검하고 기술적 보안 취약점이 존재하는 지 확인하여 취약점 발견 시 재코딩을 하여야 한다. 


- 시스템이 안전한 코딩표준에 따라 구현하는 지 소스코드 검증 (소스코드 검증도구 활용 등)

- 코딩이 완료된 프로그램은 운영환경과 동일한 환경에서 취약점 점검도구 또는 모의진단을 통한 취약점 노출 여부를 점검


8.2.1.3 구현된 기능이 사전 정의된 보안 요구사항을 충족하는 지 시험을 수행하고 있는가?

 ㅇ 정보시스템 구현 완료 후 사전 정의된 보안 요구사항(인증기준 8.1.1 보안 요구사항 정의 참고)을 충족하는 지 확인하기 위하여 시험 시나리오, 체크리스트 등을 작성하여 시험을 수행하여야 한다. 



8.2.2 개발과 운영 환경 분리

개발 및 시험 시스템은 운영시스템에 대한 비인가 접근 및 변경의 위험을 감소하기 위해 원칙적으로 분리하여야 한다. 


8.2.2.1 정보시스템의 개발 및 시험 시스템을 운영시스템과 분리하고 있는가?

ㅇ 개발과 운영 환경을 분리하지 않은 경우 개발로 인해 운영환경의 성능 및 용량에 영향을 미칠 수 있고 개발자의 비인가된 운영환경으로의 접근이 발생할 수 있다.


-  조직 규모가 작거나 인적 자원 부족 등의 사유로 인해 불가피하게 개발과 운영 직무 분리가 어려운 경우, 직무자간의 상호 검토, 상위관리자의 주기적인 직무수행 모니터링 및 변경 사항 검토/승인, 직무자의 책임추적성 확보 등의 보완통제를 마련하여야 한다. (인증기준 6.1.2 직무분리 참고)



8.2.3 운영환경 이관

운영환경으로의 이관은 통제된 절차에 따라 이루어져야 하고 실행코드는 시험과 사용자 인수 후 실행하여야 한다. 


8.2.3.1 운영환경으로의 이관 절차를 수립 ∙ 이행하고 있는가?

ㅇ 다음과 같은 내용을 고려하여 운영환경으로의 이관 절차를 수립하고 이행하여야 한다.


- 개발자 이외의 이관담당자 지정

- 시험완료여부 확인

- 이관 전략 (단계적 이관, 일괄적 이관 등)

- 이관 시 문제 대응 방안

- 이관에 대한 책임자 승인


8.2.3.2 운영환경으로의 이관 시 발생할 수 있는 문제 대응 방안을 마련하고 있는가?

ㅇ 운영환경으로의 정보시스템 이관이 원활하게 이루어지지 않았을 경우 복귀(rollback) 방안, 이전 버전의 시스템 보관 방안(소프트웨어, 소프트웨어정보, 부가적인 관련 프로그램, 구성파일, 절차, 파라미터 등) 등을 마련하여야 한다.  


8.2.3.3 운영환경에는 서비스 실행에 필요한 파일만을 설치하고 있는가?

 ㅇ 운영환경에는 승인되지 않은 개발도구(컴파일러, 편집기 등)와 소스코드(백업본 포함)가 있어서는 안되며 승인된 실행파일만 설치하여야 한다.



8.2.4 시험데이터보안

시스템 시험 과정에서 운영데이터 유출을 예방하기 위해 시험데이터 생성, 이용 및 관리, 파기, 기술적 보호조치에 관한 절차를 수립하여 이행하여야 한다.


8.2.4.1 시스템 시험 과정에서 실제 운영 데이터 사용을 제한하고 있는가?

ㅇ 개인정보를 포함한 회사의 중요한 정보가 시스템 시험과정에서 유출되는 것을 방지하기 위하여 시험데이터는 임의의 데이터를 생성하거나 운영데이터를 가공하여 사용하여야 한다.


8.2.4.2 불가피하게 운영데이터를 시험 환경에서 사용할 경우 책임자 승인 등의 인가 절차를 수립 · 이행하고 있는가?

 ㅇ 실제 운영 데이터가 시험 환경에서 사용될 경우, 다음과 같은 절차를 수립하고 이행하여야 한다.


- 운영 데이터 사용 승인 절차 : 데이터 중요도에 따른 보고 및 승인체계 정의

- 시험용 운영 데이터 사용 기한 및 기한 만료 후 폐기 절차 (예 : 사용 만료 후 즉시 폐기 확인)

- 중요 데이터 사용에 대한 시험 환경에서의 접근 권한 및 통제 수립 (예 : 운영환경과 동일한 접근 통제 권고)

- 운영데이터 복제 및 사용에 대한 모니터링 및 감사



8.2.5 소스 프로그램 보안

소스 프로그램에 대한 변경관리를 수행하고 인가된 사용자만이 소스 프로그램에 접근할 수 있도록 통제절차를 수립하여 이행하여야 한다. 또한 소스 프로그램은 운영환경에 보관하지 않는 것을 원칙으로 한다.


8.2.5.1 소스 프로그램에 대한 변경이력을 관리하고 있는가?

ㅇ 소스 프로그램의 변경(예 : 변경 ∙ 구현 ∙ 이관 일자, 변경 요청 사유 등)을 통제하고 변경된 소스 프로그램에 맞춰서 시스템 관련 문서(예 : 요구사항정의서, 설계서 등)에 대한 변경통제도 함께 수행하여야 한다.


8.2.5.2 시스템 운영 장애 등 비상시를 대비하여 이전 시스템의 소스 프로그램을 보관하고 있는가?

ㅇ 신규 시스템 개발 및 기존 시스템 개선 완료 후 시스템 운영 장애 등 비상시를 대비하여 이전 시스템 소스 프로그램을 다음 항목과 함께 보관하여야 한다.


- 이전 시스템 환경에 필요한 운영 소프트웨어 (OS)

- 이전 시스템 지원 소프트웨어 

- 이전 시스템 관련 문서 (예 : 기능적, 기술적 설계서, DB 설계 및 데이터 정의서 등)


8.2.5.3 비인가된 자의 소스프로그램의 접근을 통제하기 위하여 절차를 수립 ∙ 이행하고 있는가?

ㅇ 소스 프로그램은 운영 환경이 아닌 별도의 환경에 저장하여야 하며 인가된 담당자에게만 접근을 허용하여야 한다.









8.3 외주개발 보안

8.3.1 외주개발보안

정보시스템 개발을 외주 위탁하는 경우 분석 및 설계단계에서 구현 및 이관까지의 준수해야 할 보안요구사항을 계약서에 명시하고 이행여부를 관리 ∙ 감독하여야 한다.


8.3.1.1 정보시스템 개발을 외주 위탁하는 경우 개발 시 준수해야할 보안 요구사항을 제안요청서에 기재하고 계약시에 반영하고 있는가?

ㅇ 정보시스템을 외주 위탁하는 경우 SW 개발보안을 위한 적절한 개발절차 방법, SW 보안 취약점 진단도구 사용여부 확인에 대하여 제안요청서에 기재하여야 한다.


ㅇ 정보시스템을 외주 위탁하여 개발하는 경우 분석부터 설계, 구현에 이르기까지 보안 요구사항을 계약서 상에 분명히 명시하여야 한다.


8.3.1.2 외주 위탁업체가 계약서에 명시된 보안요구사항을 준수하는 지 여부를 관리 ∙ 감독하고 있는가? 

ㅇ 정보시스템 개발주기(분석-설계-구현-시험)별로 보안요구사항 준수여부를 관리하고 감독하여야 한다.


- 기능적, 기술적 요구사항의 반영 여부

- 개발 보안 가이드 준수 여부(시큐어 코딩 등)

- 테스트 시 보안요구사항 준수여부 확인 절차 포함

- 개발완료된 시스템에 대한 취약점 점검 등

- 개발인력 대상 SW개발보안 관련교육


8.3.1.3 정보시스템 개발 완료 후 SW 보안취약점 제거여부 진단, SW 보안취약점 발견사항 조치 여부 등을 확인 후 검수 · 인수하고 있는가?

ㅇ 정보시스템 개발 완료 후 보안 요구사항 반영 여부,  SW 보안취약점 제거 여부, SW 보안취약점 발견사항 조치여부, 개발자 계정 및 권한 삭제 여부 등을 확인한 후 검수 또는 인수하여야 한다.




+ Recent posts