-
블로그 [보안동향] 컴플라이언스 보안을 지키고 싶다면, 세 가지만 기억하세요!
IT 정보시스템 보안점검을 하다 보면, 이제 애플리케이션 취약점은 어느 정도 잘 관리되고 있다고 느끼실 겁니다. 초기 개발단계에서는 시큐어코딩(Secure Coding) 가이드를 만들어 배포하고, 소스 취약점 점검 툴을 통해 소스상 여러 가지 취약포인트를 해결합니다. 시큐어코딩이란 개발하는 소프트웨어가 복잡해짐으로 인해 보안상 취약점이 발생할 수 있는 부분을 보완해 프로그래밍하는 것을 의미합니다. 또한, 테스트 단계에서는 모의 해킹을 통해 기술적 취약점을 제거하는 프로세스가 일반화됐죠. 컴플라이언스(준법경영)관점에서 IT정보시스템에 요구하는 사항들이 잘 지켜지고 있는지 살펴보면 그렇지 못한 것이 현실입니다. 미준수 시 처벌조항이 법률에 명시돼 있음에도 불구하고, 고객 기능요구사항 구현에만 집중한 나머지 보안요구사항이 있었는지도 모르는 프로젝트 현장이 있을 수 있습니다. 특히, 개인정보를 다루는 시스템은 이러한 컴플라이언스에 명시된 요구사항에 더욱 주의를 기울일 필요가 있습니다. 1. 컴플라이언스 요구사항은 언제 식별하는 게 좋을까요? 컴플라이언스 요구사항, 특히 보안요구사항은 분석단계에서 식별한 후 설계 단계에 반영돼야 합니다. 개발이 어느 정도 진행된 상태나 테스트 단계에서 수정해 반영하려고 하면 수정 영향도가 너무 크기 때문입니다. 따라서 프로젝트 초기에 컴플라이언스 요구사항을 식별해 대응하는 것이 무엇보다 중요합니다. 개인정보보호법 개인정보 안정성 확보 조치에서는 아래와 같이 명시하고 있습니다. 제8조(접속기록의 보관 및 점검) ① 개인정보처리자는 개인정보취급자가 개인정보처리시스템에 접속한 기록을 1년 이상 보관ㆍ관리해야 한다.다만, 5만명 이상의 정보주체에 관하여 개인정보를 처리하거나, 고유식별정보 또는 민감정보를 처리하는 개인정보처리시스템의 경우에는 2년 이상 보관ㆍ관리해야 한다. 개인정보를 다루는 담당자가 업무를 수행할 때 개인정보를 보유하고 처리하는 시스템은 누가, 언제, 어디서, 무엇을, 무슨 사유로 활용했는지 기록을 남겨야 합니다. 이를 지키지 않았는데 개인정보 유출이 발생했다면 2년 이하의 징역 또는 2,000만원 이하의 벌금이 부과되는데요. 개인정보 유출이 발생하지 않았더라도 이러한 미조치가 적발된다면 3,000만원 이하의 과태료 처분을 받을 수 있습니다. 개인정보 접속기록을 보관해야 한다는 점은 분석단계에서 인지돼야 합니다. 이후 설계단계에서는 이러한 기능을 응용 프레임워크 단계에서 구현할지 공통함수를 만들어 처리할지 설계해야 하죠. 그리고서 개발단계에서 관련 담당자에게 구현사항을 가이드한다면 이러한 요구사항이 매끄럽게 구현될 수 있습니다. 개인정보 접속기록이 남지 않았다는 사실을 프로젝트 마지막 단계인 테스트 단계에서 인지한다면 두 세배의 시간과 노력을 들여 수정해야 합니다. 급하게 개인정보처리 화면을 식별하고, 기존 설계사항을 분석하고 검토해서 해당 프로그램을 수정해야 하죠. 따라서 컴플라이언스 보안요구사항은 프로젝트 조기에 식별하고 설계, 개발에 반영하는 것이 무엇보다 중요합니다. 2. 컴플라이언스 보안요구사항은 어떻게 식별해야 할까요? 컴플라이언스 보안요구사항 분석은 식별 경험이 많고, 요구사항별로 대응 방안을 수립한 경험이 있는 보안 전문인력이 수행하는 것이 중요합니다. 개인정보보호법 개인정보 안정성 확보조치를 보면 개인정보 접속기록을 남기는 것에서 그치지 않는다는 것을 알 수 있는데요. 아래와 같이 추가로 보관 및 점검을 요구하고 있습니다. 제8조(접속기록의 보관 및 점검) ②개인정보처리자는 개인정보의 오ㆍ남용, 분실ㆍ도난ㆍ유출ㆍ위조ㆍ변조 또는 훼손 등에 대응하기 위해 개인정보처리시스템의 접속기록 등을 월 1회 이상 점검하여야 한다. 특히 개인정보를 다운로드한 것이 발견되었을 경우에는 내부관리 계획으로 정하는 바에 따라 그 사유를 반드시 확인해야 한다. ③ 개인정보처리자는 개인정보취급자의 접속기록이 위ㆍ변조 및 도난, 분실되지 않도록 해당 접속기록을 안전하게 보관해야 한다. 먼저 ③번 조항을 살펴보면, 개인정보 접속 기록이 위변조 및 도난, 분실되지 않도록 요구하고 있습니다. 그렇다면 이러한 위협을 막기 위해서는 어떻게 해야 할까요? 여러 방법이 있겠지만 접속기록을 파일 또는 DB에 저장할 경우, 해시함수를 이용해서 로그 데이터 건별로 해시값을 이용한 MAC값을 만들어 별도 테이블에 보관하고, 접근을 통제해 위변조 여부를 확인하는 방법이 있습니다. 다소 비용이 들지만 간편한 웜(Write Once Read Many,WORM) 디스크를 이용하는 방법도 있는데요. WORM 디스크는 한 번 기록된 정보는 수정할 수 없는 데이터 스토리지를 말합니다. 이렇게 비인가자가 접근할 수 없도록 접근통제 솔루션을 이용해 접속 이력 테이블 또는 파일을 보호하는 것이 중요합니다. 개인정보처리자는 이처럼 보안요구사항을 종합해서 빈틈없이 보안요건을 정의하고, 대응 방안을 설계자들에게 다각도로 제시해 해당 시스템에 가장 적합한 대응 방안을 수립해야 합니다. 다음으로 ②번 조항을 살펴보면 개인정보처리자가 개인정보 접속기록을 월 1회 이상 점검해야 한다고 명시하고 있습니다. 하지만 이를 시스템 구축단계가 아닌 운영단계에서 지켜야 할 사항이라고 생각해 넘어가는 경우가 많은데요. 곰곰이 생각해보면 그렇지 않습니다. 구축단계에서 개인정보 접속이력을 잘 저장해야 운영단계에서 원활하게 모니터링이 진행될 수 있죠. 편하게 조회할 수 있도록 화면을 설계하고, 일정 기간 동안 일정 횟수 이상 조회하거나 업무시간 외에 조회하는 상황을 확인하는 기능을 구현하면 운영단계에서 개인정보를 편리하게 사용할 수 있습니다....