어느 정도 규모가 있는 대한민국의 기업들 중 정규직 인력만으로 운영되는 곳은 거의 없을 것이다. 그 만큼 기업에서 비정규직 인력이나 외주 인력을 매우 많이 활용한다. 이번 카드사 사고가 외주개발 회사 직원에 의해 발생했다는 소식을 듣고 심란해 한 정보보호최고책임자(CISO)나 개인정보보호(관리)책임자(CPO)가 상당히 많았을 것 같다. 회사 여건상 외주 인력을 모두 없앨 수도 없고, 외주 인력을 무작정 의심할 수도 없는 노릇이니 말이다.
사실 보안 관점에서만 보면 외주개발을 안전하게 관리하는 방법이 아주 없는 것은 아니다. 원칙대로 하자면 (1) 개발용 DB를 별도로 구성해서 개발과 테스트에 필요한 데이터를 넣어 준다. 이 때 개인정보는 제외하거나 가상으로 생성한 데이터, 또는 일부를 가려서(masking) 넣어 준다. (2) 개발 환경에서 실 DB를 접근할 수 없도록 차단한다. (3) 주민등록번호 등 데이터베이스의 주요한 개인정보는 암호화 한다.
(4) 기존 시스템의 많은 DB에 산재해 있는 개인정보를 몇 개의 DB에 분할하여 모으고 개인정보 DB에 대해 확실한 보호체계를 만든다. (5) 개발용 PC는 USB 쓰기와 테더링 등의 데이터 유출 경로를 차단하고 보안 소프트웨어를 설치하여 외주인력에게 제공하며, 회사 내부망으로 접속하지 못하도록 통제한다. (6) 외주관리에 관한 회사의 보안 가이드라인을 제작해 해당 현업 부서에서 숙지하게 하고, 계약서에 포함시켜 이를 위반할 때에는 불이익을 줄 수 있도록 한다. 이 외에도 이미 각 회사 현실에 맞게 사용하는 여러 가지 보안 방법이 있을 것이다.
하지만 현실로 돌아 오면 그리 간단치 않다. 산재해 있는 개인정보를 모아 몇 개의 DB에 정리하거나 별도 개발용 DB를 구성하는 데에는 비용과 인력, 시간이 적지 않게 들 수 있어서 사업적 기대효과 없이 보안만을 위해서 시행할 것을 설득하기가 쉽지 않다. 개발 환경에서 실 DB 접근을 차단한다고 하면 개발부서에서는 당장 프로젝트를 더 이상 진행할 수 없다고 주장할 수도 있다. 사업이 살아야 보안도 하는 것 아니냐는 말이 나오면 보안부서로서 더 이상 세게 나가기도 어렵다.
외주개발을 진행하는 경우에 발주사의 힘이 셀수록 고참 인력을 요구하는 것이 보통이다. 하지만 회사의 외주관리는 신참 인력에게 맡기는 경우가 많다. 담당 부서에서 외주 인력을 지원, 관리하는 일에 난이도가 높은 일이 별로 없다고 보기 때문이다. 발주사가 공급사에게 요구하는 것이 많지만 실무로 내려가면 정보와 지식의 비대칭으로 갑과 을이 뒤바뀌는 경우가 발생한다. 특히 경험 있는 개발자 없이 사업부서나 기획부서가 직접 프로젝트를 관리하는 경우에는 외주 개발자의 개발지원 요청을 발주사 담당자가 검증하거나 판단하여 거부하기 어렵다. 외주관리용 보안 가이드라인도 없다면 보안 상황은 더욱 악화된다. 외주개발에 보안 허점이 많은 것은 어쩌면 당연한 일인지도 모른다.
외주관리의 보안 문제를 원칙대로 대응하기 어렵다면 고객 DB를 접근해야 하는 등 중요한 개발 업무는 자체 개발인력이 담당하게 하는 것도 방법이다. 자체 인력이라고 보안사고를 내지 않으리라는 법이 없지만 급여나 복지, 로열티의 측면에서 보안사고가 날 확률이 상대적으로 낮은 것 역시 사실이다. 보안의 역량만으로 보안위협을 100퍼센트 막는 것은 가능하지 않다. 보안 수단으로 막지 못하는 20~30%의 보안위협은 회사의 비전, 동료애, 일에 대한 자부심 등 회사 구성원들의 마음을 사야 줄여 나갈 수 있다. 내부의 보안위협은 더욱 그렇다.
단기적으로는 보안이 중요한 외주개발을 진행할 때 사업부서나 기획부서가 프로젝트를 총괄하더라도 IT 관련 부서의 경험 있는 기술자가 관여하도록 하는 것이 필요하다. 외주개발사의 지원 요청이 개발하는 데 반드시 필요한 건지, 다른 대안은 없는지 검토하여 보안 수준을 유지하면서 개발 프로젝트를 진행하는 데 무리가 없는 방안을 낼 수 있기 때문이다.
보안부서 입장에서 보면 외주개발은 현업에서 직접 진행하기 때문에 그것이 진행되고 있다는 사실 자체를 알기 어려울 수도 있다. 외주 인력의 상주를 위한 출입증 발급, 내부 IT 자원 사용을 위한 ID 발급, 발주 계약서에 포함된 보안조항 점검 등을 통해 보안부서가 외주개발을 사전에 인지할 수 있도록 프로세스를 구축하는 것이 급선무다. 특히 원격에서 접속해서 개발하는 경우가 있다면 보안부서가 알지 못한 채 보안의 큰 구멍이 발생할 수 있으므로 보안 관점에서 면밀하게 검토해야 한다. 한 발 더 나아가면 현업부서가 외주개발을 계획할 때부터 보안부서와 협의할 수 있도록 하는 게 필요하다. 그러면 보안부서에서도 해당 외주관리의 특징을 살펴 보고 미리 대응할 수 있다.
외주관리 보안 가이드라인이 없는 회사에서는 이를 만들어 현업에 배포하고 교육하는 것이 좋다. 외주 인력이 들어 오면 반드시 보안교육을 받게 하여 회사가 정한 보안 프로세스를 따르도록 알려 주고, 이를 위반할 때의 불이익 조항도 설명하여 그런 조치를 당하지 않도록 해야 할 것이다. 개발자들이 자신의 몸값을 높이는 데 도움이 될 만한 좋은 내용을 보안교육에 담아 보안교육 시간이 의무적으로 거쳐야 하는 따분한 시간이 아니라는 점을 외주 개발자들에게 실감하게 해 주면 프로세스가 정착하는 데 동력이 되리라 생각한다.
한 가지 정보를 드리자면, 한국인터넷진흥원(KISA)의 위탁을 받아 상명대에서 운영한 2013년 ‘일반기업 정보보안 책임자 과정’에 ‘IT 아웃소싱과 보안’이라는 과목이 있었다. 강사가 상명대 장항배 교수였는데, 전반적으로 내용이 좋고 매뉴얼 수준의 상세한 자료도 있어서 필요한 회사에서는 도움을 요청해도 좋지 않을까 싶다.
--comment--
첫 번째 댓글을 작성해 보세요.