본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

보안

[보안동향] 컴플라이언스 보안을 지키고 싶다면, 세 가지만 기억하세요!

2022.06.24

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회 이상 점검해야 한다고 명시하고 있습니다. 하지만 이를 시스템 구축단계가 아닌 운영단계에서 지켜야 할 사항이라고 생각해 넘어가는 경우가 많은데요. 곰곰이 생각해보면 그렇지 않습니다. 구축단계에서 개인정보 접속이력을 잘 저장해야 운영단계에서 원활하게 모니터링이 진행될 수 있죠. 편하게 조회할 수 있도록 화면을 설계하고, 일정 기간 동안 일정 횟수 이상 조회하거나 업무시간 외에 조회하는 상황을 확인하는 기능을 구현하면 운영단계에서 개인정보를 편리하게 사용할 수 있습니다.

그리고 ②번 조항에는 엑셀로 개인정보를 다운받는 것처럼 개인정보를 다운로드하는 경우, 그 사유를 기록해 모니터링하도록 규정하고 있습니다. 이는 2019년에 개정된 사항인데요. 개인정보 요건을 식별하는 하는 담당자는 컴플라이언스의 최신 개정사항을 숙지하고 있어야 한다는 것을 알 수 있습니다.

보안요구사항이 앞서 언급한 개인정보보호법에만 명시돼 있는 건 아닙니다. 따라서 정보통신망법, 전자금융법 등 고객 산업 특성에 해당하는 다양한 컴플라이언스를 전체적으로 체크해 보안요구사항을 확인해야 합니다. 이렇게 여러 가지 컴플라이언스를 검토하다 보면 비슷한 내용을 서로 다른 컴플라이언스에서 요구하는 경우가 종종 있는데요. 그런 경우, 고객의 산업을 보고 컴플라이언스 우선순위를 확인하면 됩니다. 예를 들어 금융업의 경우, 전자금융법이 가장 우선되겠죠. 

또한, 컴플라이언스를 보면 타 컴플라이언스와의 우선순위를 언급하는 경우도 있습니다. 해당 법률에서 기술되지 않는 사항은 다른 법률을 따른다고 명시하거나 다른 법령보다 우선 적용하도록 명시하기도 하죠. 이처럼 해당 산업과 관련된 컴플라이언스를 다각도로 검토해 보안요구사항을 정의해야 합니다. 주요 산업별 적용되는 법률은 아래와 같습니다.

– 금융권: 전자금융거래법, 신용정보법, 개인정보법 등
– 공공기관: 정통망법, 개인정보법, 정보화기본법 등
– 민간기관: 정통망법, 개인정보법 등

보안요구사항을 식별할 때 관련된 컴플라이언스 검토가 어느 정도 마무리되면 해당 기업 또는 기관의 보안 정책과 지침, 보안 가이드 등을 검토해 추가 또는 수정할 필요가 있습니다. 때에 따라 컴플라이언스에 명시되지 않는 내용을 추가로 수행하도록 요구하는 경우도 있고, 컴플라이언스의 요구사항을 더 구체적으로 명시하는 경우도 있기 때문입니다. 예를 들어, 법에서는 세션타임아웃을 설정하는 것만 요구하지만 보안 지침이나 가이드에선 세션타임아웃 시간을 구체적으로 설정하도록 요구하는 경우가 있습니다.

이처럼 보안요구사항 식별 정의는 단순하지 않습니다. 다각도로 면밀하게 식별 정의하는 작업이 수반돼야 합니다.

3. 보안요구사항은 식별 정의만 하면 끝인가요? 이후 관리는 어떻게 되나요?

다음 그림은 프로젝트 전체 단계별 보안요구사항 관련 수행내역을 정리한 그림입니다.

[그림 1] 프로젝트 단계별 보안요구사항 관련 수행내역

프로젝트 초반 즉, 요구사항 정의단계 또는 분석단계에서는 수행사 시큐리티 아키텍트(Security Architect, SA)가 해당 프로젝트와 관련된 컴플라이언스 전체를 종합적으로 분석합니다.이를 통해 고객사의 정책과 가이드를 확인한 후 보완해 보안요건을 정의하죠. 그리고 응용, 애플리케이션 아키텍트(Application Architect, AA), 데이터아키텍트(Data Architect, DA) 등 각 영역 관련자에게 보안요건을 배포하고 각 관련자와 대응 방안을 협의하면서 가이드하는 단계를 거칩니다.


그리고나면 각 영역 관련 담당자들은 분석, 설계단계에서 자기 영역과 관련된 보안요건을 확인해 설계 사항에 반영합니다. 그리고 설계단계 후반에는 앞서 정의한 보안요건이 영역별로 잘 반영됐는지 확인하고 점검해야 합니다. 이때, 잘못 설계됐거나 누락된 부분이 있다면 이를 수정하고 보완하는 단계를 거쳐야 하죠. 끝으로, 설계된 사항대로 구현되면 개발단계 말미에 최종적으로 보안요건이 잘 구현됐는지 이행 점검 단계를 거쳐 마무리하게 됩니다. 이처럼 보안요건 관리는 프로젝트의 모든 단계에 거쳐 이뤄져야 합니다.

4. 마무리

앞서 설명한 대로 컴플라이언스 보안요건은 프로젝트 초기 단계에서 식별 후 정의되는 것이 중요합니다. 여러 가지 관련 컴플라이언스를 종합적으로 분석하되, 우선순위를 잘 따져서 정의해야 하죠. 그리고 관련 담당자에게 보안요건을 배포하고 가이드할 때 여러 가지 대응 방안을 수립한 경험이 있는 전문인력이 수행해야 한다는 점도 기억해야 합니다. 그리고 정의된 보안요건은 각 프로젝트 단계별로 관리돼야 합니다.

이처럼 컴플라이언스 보안요건의 중요성은 여러 번 강조해도 지나치지 않습니다. 지금까지 컴플라이언스 보안요구사항에 관해 알아보았는데요. 어떠셨나요? 컴플라이언스 보안요건 관리, 어렵지 않겠죠?

이해는 되지만 막상 어떻게 보안요건 관리를 시작해야 할지 어렵게 느껴지신다면, 주저하지 마시고 LG CNS에 문의해주세요. 보안 아키텍처 설계와 구축, 모의 해킹 경험과 함께 컴플라이언스 보안요건 관리 경험까지 갖춘 보안 멀티플레이어가 여러분을 기다리고 있습니다. 보안이 고민될 때 언제든 LG CNS의 문을 두드려주세요.


글 ㅣ LG CNS 보안기술전략팀 김태훈 책임

챗봇과 대화를 할 수 있어요