본문 바로가기

블로그

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

보안

[보안동향] “지켜야 산다” 개인정보 유출을 막는 10가지 방법

2021.10.29

지난 2016년 개인정보 유출 사건으로 방송통신위원회로부터 45억 원 상당의 과징금이 부과된 인터넷 쇼핑몰 사례가 있었습니다. 이 사건은 기업에서 발생하는 개인정보 유출 사고가 기업의 신뢰도와 이미지에 타격을 줄 뿐만 아니라, 기업의 수익 구조에 직접적인 악영향을 끼칠 수 있다는 것을 보여줬습니다.

이러한 개인정보 유출 사고를 방지하기 위해 개인정보보호위원회에서 개인정보의 안정성 조치 방안을 고시했는데요. 여기에서 개인정보 유출 방지를 위한 10가지 관리적, 기술적 방안에 대해 소개하고 있습니다.

안정성 확보에 필요한 기술적 관리적 및 물리적 조치 (출처 : 개인정보보호위원회 교육자료)

이러한 안정성 확보 방안은 개인정보 유출 시 사업자들의 조치에 대한 증명이 되는데요. 더불어 위반 시 직접적인 과징금과 벌칙(*참조)의 대상이 되기 때문에 개인정보를 취급하고 있는 기업은 사업체의 크기에 따라 구현 가능한 방법을 모색해야 합니다. 그리고 유출 사고 발생 전에 안정성 확보 방안을 구축해야 하죠.

  • 제29조(안전조치의무)
    : 안전성 확보에 필요한 기술적ㆍ관리적 및 물리적 조치를 하여야 함
  • 제39조의 15(과징금의 부과 등에 대한 특례) ① 5
    : 제 29조 위반 시 매출액의 100분의 3 이하에 해당하는 금액 과징금 부과할 수 있음
  • 제73조 (벌칙) 1
    : 재 29조 위반 시 2년 이하의 징역 또는 2천만 원 이하의 벌금에 처할 수 있음

개인정보영향평가 중 가장 많이 놓치는 2가지 항목

LG CNS RED팀에서는 개인정보영향평가 수행에 있어 해당 안정성 확보 여부 및 조치 방안에 대해 관련 기업에 안내하고 있습니다. 오늘은 이 중 영향 평가 시 미비 사항으로 많이 발견되는 두 가지 항목을 설명하겠습니다.

개인정보 접속기록 로깅 구현

개인정보 접속기록이란?
개인정보 처리시스템에 접속해 개인정보에 대한 수집, 생성, 연계, 연동, 기록, 저장, 보유, 가공, 편집, 검색, 출력, 정정, 복구, 이용, 제공, 공개, 파기 등의 업무를 수행한 기록을 말합니다.

개인정보 접속기록 로깅 항목 (이하 로깅 항목)
접속기록에는 개인정보취급자가 개인정보처리시스템에 접속해 처리한 업무내역을 알 수 있도록 아래의 항목들을 기록해야 합니다.
1) 계정 : 개인정보처리시스템에서 접속자를 식별할 수 있도록 부여된 ID 등 계정 정보
2) 접속일시 : 수행업무를 수행한 시간 (년-월-일, 시:분:초)
3) 접속지 정보 : 개인정보처리시스템에 접속한 자의 컴퓨터 또는 서버의 IP 주소 등
처리한 정보주체 정보 : 개인정보취급자가 누구의 개인정보를 처리하였는지 알 수 있는 식별정보 (ID, 고객번호, 학번, 사번 등 ; 민감하거나 과도한 개인정보 배제)
4)수행업무 : 개인정보취급자가 개인정보처리시스템을 이용하여 개인정보를 처리한 내용을 알 수 있는 정보

– 개인정보 접속기록 로깅(이하 로깅) 방법
1) 응용 시 구현 : 애플리케이션 소스 개발 시 클래스나 라이브러리를 사용하여 로깅 모듈을 통해 구현
2) 인프라 설정 : DBMS 나 클라우드의 경우 인프라 자체 설정을 통해서 DB에 개인정보처리자가 직접 접근하는 씬에 대해서 로깅 수행
3) 솔루션의 기능 활용 : 전문 로깅 솔루션 뿐만 아니라, 서버 및 DB접근제어 솔루션의 로깅 기능을 활용한 로깅 수행

전자정부프레임워크 로깅 모듈
위의 로깅 방법 중 애플리케이션 소스 개발 시 로깅 모듈 구현에 대해서 전자정부 프레임 워크의 로깅 모듈을 사용해 구현하는 방법에 대해 이야기해보겠습니다.
전자정부프레임워크 3.10 (이하eGov)는 공통컴포넌트 > 시스템관리 > 로그관리 영역에서 개인정보조회로그 관리 모듈을 제공하는데요. 스프링 기반의 AOP(Aspect Oriented Programming) 구현을 통해서 접속기록 로깅을 일관된 기준을 사용해 체계적으로 적용할 수 있습니다. 관련된 소스는 다음과 같습니다.

소스의 구성을 보면 공통 코드 부분인 로깅을 별도의 AOP 설정으로 구현했으며, Aspect는 AOP 설정에 지정된 클래스에 대해서 로깅을 수행을 시작합니다.

비즈니스 로직에 대한 Interface를 Service가 수행하고 Service 인터페이스에 대한 실제 구현을 Serviceimpl이 수행합니다. 그리고 VO를 통해 소프트웨어 레이어 사이에 로깅 항목을 전달하고, DAO를 통해 DB에 로그 저장을 수행합니다. 이에 대해 소프트웨어 아키텍처 계층패턴으로 도식화한 그림은 아래와 같습니다.

소스 상세
1) AOP 설정 파일에 로깅이 필요한 클래스를 반영하고, 프로젝트에서 개인정보로 지정한 파라미터를 target 속성으로 지정합니다. 로깅을 위해 등록한 클래스의 리턴 값에 대해 EgoPrivacyLogAspect 클래스의 insertLog 메소드를 수행하도록 설정합니다.

1) EgovPrivacyLogAspect의 insertLog 메소드에서 로깅 항목 중의 하나인 serviceName을 수집하고, DAO 전송을 위해 로깅 항목을 객체화 합니
다.
2) EgovPrivacyLogServiceImpl에서는 객체화 된 로깅 항목을 DAO 클래스로 전송합니다.

DAO 클래스의 insertPrivacyLog 메소드를 통해 SQL 구문을 수행합니다.

개인정보 파기 구현

개인정보보호법에서 명시되어 있는 것과 같이 개인정보는 처리 목적을 달성 시 즉각 파기돼야 하지만, 법령에 보존해야 하는 기간에 따라 해당 법령 기간 보유할 수 있습니다.

– 법령 별 개인정보 파기 기준 (예시)

파기 정책 및 파기 절차 수립 방법

1) 업무 필요성 및 법적 근거를 고려한 개인정보 보유 및 사용 기간 정책 수립
2) 사용 기간은 개인정보 수집·이용 동의 및 개인정보 취급방침에 명시
3) 사용 목적/보존 기간이 달성된 개인정보는 지체 없이 파기
4) 관련 법 규정에 의해 수집 목적 달성 이후에 보관이 필요한 경우 다른 개인정보와 분리해서 저장
: 별도의 해지 DB를 구성하도록 하고 있음
(별도 테이블 구성 및 해당 테이블 접근 권한 최소화)
5) 법적 규정에 의한 보존 기간 만료 시 즉시 삭제
: DB 내 정보 삭제를 배치화 하거나 정기적으로 삭제 이벤트를 진행하도록 업무 프로세스 수립

– 파기 및 분리보관 대상 정의

파기 방법

1) 배치 스케줄링 프로그램을 활용한 일괄 파기 스케줄 관리 수행
2) 웹, WAS 내 일 배치 등록하여 정의된 대상별 DB 내 개인정보 Delete 및 해지 DB로 내 개인정보 이관 수행
오늘은 평소 개인정보 영향평가 시에 미비 사항으로 많이 발견되는 두 가지 기술적인 항목의 구현 방안에 관해서 얘기해 보았습니다.
“개인정보보호는 기업의 정성적, 정량적 이익과 직결된다”는 화두로 글을 시작했는데요. 기업들은 각자가 소유하고 있는 이용자의 개인정보 보호에 책임감을 느끼고 안정성 확보를 위해 노력해야 한다는 결론으로 글을 마칩니다.

글 ㅣ LG CNS RED팀 박경진 선임

챗봇과 대화를 할 수 있어요