<Insert Picture Here> Case Study 를통한개인정보보호및내부통제방안 이진호 DB 기술팀 TSC 본부 jinho.lee@oracle.com
발표순서 최근보안침해사례 데이터베이스보안침해사례 개발환경에서의정보유출 물리적인접근에의한정보유출 내부자에의한정보유출 데이터베이스보안의문제점 보안침해유형별오라클대응방안 결론 <Insert Picture Here> 2
정보보호관점의변화 인터넷비즈니스활성화 인터넷기술의향상 해킹기술발전및도덕적해이 1996 2008 아마추어해커 웹사이트손상 단순웜 바이러스유포 지엽적인공격 조직화된해킹범죄 개인정보탈취 시스템운영방해 지속적인위협 3
어떤보안솔루션을적용해야하나? 네트워크보안 보안관리체계강화 시스템보안 사설망구축 접근탐지시스템구축 방화벽구축 DDOS 공격방어 네트워크암호화 (SSL) 보안교육강화 전산보안담당자운영 계정분리관리 메신저, 메일차단 웹접근통제 시스템계정분리관리 작업명령어감시 외부연결감시 (FTP) 개발 / 테스트환경분리 어플리케이션보안 PC 보안 반입 / 반출통제 데이터베이스보안 파일보안 (DRM) 미디어 /USB 보안 화면캡처보호 키보드보안 바이러스보안 출입문통제 개인 PC 반출통제 미디어반출통제 휴대폰 /MP3/USB 통제 프린트물반출통제 DB 암호화 접근제어 감사 계정관리 백업관리 4
Oracle Database Security Products 사용자인증 (Authentication) 데이터보호 (Data Protection) 접근통제 (Access Control) 모니터링 (Monitoring) Strong Authentication Advanced Security Network Encryption Transparent Data Encryption Secure Backup EM Data Masking Pack Virtual Private Database Label Security Database Vault Audit Vault (Server/Collecti on Agent) EM Configuration Management Pack 오라클데이터베이스보안솔루션 5
Case : 테스트과정에서개인정보유출 실제운영환경과동일한데이터구조의필요성 여타응용프로그램과의데이터연동확인 테이블간의무결성, SQL 실행계획검증등 사용자 타인의실제정보접근가능 테스트서버 운영서버 개발자 외주업체 가입자자정보가입자자정보 가입자정보에대한위변조필요 복호화가불가능한자동화된변조방식필요 운영환경과의데이터정합성유지필요 6
데이터마스킹에의한노출방지 EM Masking Pack 운영중인실제데이터가개발및테스트과정에서노출되지않도록변조 AA BB A CC B C 운영 DB 1. 복제 2. 마스킹 ( 변조 ) 마스킹서버 3. 복제 aa bb a cc b c 개발 DB α βα γβ α γβ γ 운영 DB 환경과의정합성유지 데이터를자동으로변조 다양한변조방식제공 실제데이터보호 운영 DB와동일한데이터형식유지 데이터무결성유지 테스트 DB 7
EM Masking Pack 적용예제 개인정보변조방안비고 이름 주민번호 섞기또는대표샘플테이블사용 시작 7자리유지 후반 6자리무작위숫자대체 Check Sum 함수사용여부 우편번호 후반 3 자리무작위숫자 주소와일치여부 주소 1 주소 2 집전화번호 시작 10 문자만유지 시작 6 자리만유지 후반 4자리무작위숫자 휴대폰번호 시작 3 자리이통사번호변경 후반 4자리무작위숫자 계좌번호 12~16 자리무작위숫자 Check Sum 함수사용여부 카드번호 시작 6 자리유지 Check Sum 함수사용여부 나머지무작위숫자 전자우편주소 2 번째문자에서 @ 전까지 x 로변환 8
Case : 물리적인접근에의한정보유출 고객카드정보가흘러다니는곳은? 데이터베이스파일및백업미디어 / 네트워크패킷등 DB 관리자 OS 관리자 DB 업체서버장비업체유지보수업체백업솔루션업체디스크업체 N/W 패킷스니핑 - 데이터노출 -인증정보노출 데이터베이스서버 백업시스템 UNDO 파일 백업테이프 데이터파일 임시파일 리두로그 아카이브로그 백업스토리지 데이터베이스파일복사 백업파일복사 9
물리적인암호화를통한유출방지 Oracle Advanced Security 강력한사용자인증과데이터보호를위해다양한보안기능을어플리케이션의변경없이제공 10
물리적인암호화방법 Transparent Data Encryption 자동칼럼암호화 CREATE TABLE employee ( first_name VARCHAR2(128), last_name VARCHAR2(128), emp_id NUMBER, salary NUMBER(6) ENCRYPT using 'AES256' ); create unique index idx_card_idd on secure_info(card_id); id) ALTER TABLE employee MODIFY (salary DECRYPT); 자동암호화테이블스페이스 CREATE TABLESPACE securespace DATAFILE /home/user/oradata/secure01.dbf SIZE 150M ENCRYPTION USING AES128 DEFAULT STORAGE(ENCRYPT); 11
물리적인정보노출방지 Oracle Advanced Security DB 관리자 OS 관리자 DB 업체서버장비업체유지보수업체백업솔루션업체디스크업체 O 네트워크암호화 데이터베이스서버 백업시스템 UNDO 파일 백업테이프 데이터파일 임시파일 리두로그 아카이브로그 백업스토리지 O 데이터베이스파일암호화 O 백업파일암호화 12
Case : 내부관리자에의한정보오용 인사계획및회사기밀이자꾸노출되는것같다? HR 직원 신규성과시스템작업 신규인사시스템작업 인사 / 고가정보산정 합병관련재반작업 인사이동정보 상급자 HR, 재무시스템 내부시스템관리자 고가정보 동료 재무직원 내년예산설정 분기실적통계작업 상장관련재무정보작업 합병관련작업 데이터센터 인수 합병 실적 투자자 주요기밀정보의접근제한 관리자계정의개인정보접근원천차단 감사활동강화 13
Case : 외부해킹에의한정보유출 악성이메일에감염 관리자계정유출 사내인증정보유출악성이메일 해킹프로그램설치 백도어확보 시스템환경조사 해킹프로그램 제 3 의외부서버에자료전송 추적회피 개인정보파일 국외유출 내부직원 서버제 3 의서버 ( 경유지 ) 데이터센터 데이터베이스파일자체의유출 해킹의한관리자정보추출 데이터베이스파일자체의암호화필요 관리자계정의개인정보접근원천차단 DB 서버로의접근경로및유형을통제 감사활동강화 14
비즈니스데이터의보호 Oracle Database Vault 높은권한의사용자접근을통제, 특정 SQL 문장실행을다양한조건에따라제어 SYSDBA 도접근이불가능한보안영역 (Realm) 제공 Select Any Table 권한을부여받은사용자도접근불가 의심스러운 IP 를통한 CONNECT 불가 업무시간대에 DDL 문장수행금지설정가능 관리만할뿐, 조회는불가 15
Case : 다국적아웃소싱 C 은행 DB 업무포함 IT 업무를다국적외부 SP에수행중 보안구조상의문제점발견 주요정보노출위험 각종국제규약준수 최단시간내의확실한솔루션고민 글로벌 24 시서비스지원체계요구 AMERICAS APAC $ 다국적아웃 HIPAA J-SOX (Japan) 소싱비용 SEC and DoD Records Retention CLERP 9: Audit Reform and USA PATRIOT Act Corporate Disclosure Act 동일지역에서 24시간 Gramm-Leach-Bliley Act (Australia) 관리 Foreign Corrupt Practices Act $1 Market Instruments 52 (Canada) GLOBAL EMEA International Accounting EU Privacy Directives Standards d $5 UK Companies Law Basel II (Global Banking) OECD Guidelines on Corporate Governance 데이터베이스관리, 지원비용절감요구 자국또는국제보안규약준수요구 16
Case : 다국적아웃소싱 Database Vault 의활용 다른지역의데이터에접근할수없도록함 - EU Privacy Directive 준수 - 경로 (IP) 와시간 (Time) 에따라명령어규칙 (Command Rule) 으로통제 개발자들에게중요한정보가노출되지않도록설정 - 보안영역 (Realm) 설정 시간대별로다국적의외주 DBA 를고용을통한비용절감효과 Global ERP 시스템 DBA ( 영국 ) DBA ( 미국 ) 보안영역 (Realm) DBA ( 일본 ) 업무데이터 DBA ( 인도 ) 10:00 16:00 04:00 10:00 22:00 04:00 16:00 22:00 ( 기준 ) 17
Case : 복잡한정보교환구조 고객정보교환을요구하는복잡한비즈니스 정말필요한정보만교환되는가? 카드제휴사 고객신원정보 제휴항공사 고객예약, 개인정보 항공정보 고객정보 마일리지제휴사 고객의마일리지정보 데이터센터 제휴여행사 고객예약, 개인정보 항공정보 개별권한관리의강화 레코드별접근제어방식필요 감사활동강화 18
JCB (Japan Credit Bureau) Oracle Label Security 통합된 Data 의행수준접근제어 고객정보 Table 제휴사 A 제휴사 B 제휴사 C 제휴사 C 결제정보 Table 제휴사 A 제휴사 B 제휴사 C 부채정보 Table 제휴사 A 제휴사 B 제휴사 C OLS 기반행수준접근제어 Out-Of-Box VPD 제휴사 A 제휴사 B 제휴사 C 19
Artear ( 아르헨티나민영방송사 ) Oracle Label Security OLS 기반보안 Infrastructure 방송 Contents Highly Sensitive Highly Sensitive Sensitive Sensitive Public Public 필름 / 비디오테이프라이브러리 방송 / 케이블영업관리 SAP 기반 Billing 저작권, DW 방송국지원계열사독립제작사멀티미디어사광고주 독립제작사멀티미디어사 방송국직원계열사 광고주 20
계속되는데이터베이스보안고민들? 접근통제, 암호화만이능사인가? 관리효율성은? 응용프로그램에서의요청은믿어도되는가?? Ad Hoc Query 업무상관리자가너무많다. 이들을효율적으로통제할수있는방법은? 보다효율적인감사방법은? Accuracy 21
데이터베이스접근통제의문제점 DB 관리자 실무자 APP 사용자 A APP 사용자 B Apps/ERP [SYS 계정으로의직접접근 ] [SQLPLUS, EM, TOAD 등다양한접근툴 ] [Application 계정으로의직접접근 ] [Ad Hoc Tools, 사용자프로그램 ] [ 데이터이관작업등 ] [DB Link 또는 ETL 툴 ] 공유세션 통제 어려움 전용세션 통제 용이?! 접근제어, 감사증적이무의미 같은 IP에서접근 같은툴에서접속 같은사용자에접속 같은권한을가짐 SQL 패턴확인불가접근제어, 감사증적이용이 IP 별접근제어 사용자별접근제어 접속툴별접근제어 관리자의접근제어 접근제어, 감사증적이용이함 연동시스템 DB Session 에설정된정보에따라접근제어가가능함 22
Oracle 세션정보에따른접근제어방법 사용자세션정보 USERENV Application Context 사용자세션분석 VPD Policy 데이터베이스접근통제 세션별사설데이터베이스구축 Virtual 조건에맞는레코드들만접근가능 Private Null Column Masking : 조건에많지 Database 않은세션에게 NULL 반환 기본세션정보 접속 IP DB 사용자 접속툴 Label Policy Label Security 레코드별접근제어 다중보안레벨설정 레이블권한을가진레코드만접근가능 Custom Application Context Audit Policy Fine- Grained Auditing 조건에맞는것만감사 지정된 SQL 조건또는세션정보에대해서만감사 사용자지정정보 특정권한 APP 사용자정보 DV Rulesets Database Vault 내부자접근통제 (SYS 포함 ) 보호영역에대한접근통제 SQL 명령어에대한접근통제 23
Oracle 세션정보설정과정 사용자 Databas e 로그인 자동설정 USERENV Application Context 오라클데이터베이스접근통제 Virtual Private Database 사용자별로필요한데이터만접근가능 로그인후필요시수행 App Context Mgmt. Package 로그인트리거 기본세션정보 접속 IP DB 사용자 접속툴 Custom Application Context Oracle Label Security Fine-Grained Auditing 레코드별접근제어 조건에맞는것만 Audit 사용자에따른테이블정보참조 사용자지정정보 특정권한 APP 사용자정보 Oracle Database Vault 내부자에대한접근통제및 SQL 제어 (Optional) Reference Tables 특정사용자및 IP로통한접속에대한 DB 접근차단또는 SQL 명령어실행불허 사용자정의 Application Context의값이 PRESIDENT 인경우에만전권허용 24
Oracle 세션정보활용예제 VPD(Virtual Private Database) 사용자 Databas e 로그인 자동설정 USERENV Application Context 기본세션정보 접속 IP DB 사용자 접속툴 Policy Function returns predicate 로그인후필요시수행 App Context Mgmt. Package 로그인트리거 Custom Application Context VPD Policy 접근 SQL 에 Predicate 추가 사용자에따른테이블정보참조 (Optional) Reference Tables 사용자지정정보 특정권한 APP 사용자정보 대상테이블 접근제어 SQL 수행 SQL 25
APP 사용자와 DB 세션의일치방법 Application Context 설정변경 APP 사용자별 DB 세션정보설정 DB 접근을 APP 사용자별로제어 DB 접속풀획득및해제시DB 세션변수설정및해제 APPICATION 시스템 APP 사용자계정정보 JSP Servlet DB 공통작업모듈 SELECT UPDATE DELETE BATCH 2PC 세션획득 APP 사용자정보설정 세션반환 APP 사용자정보해제 DB Connection Pool s s s s s s DB 세션 APP 사용자정보확인가능 오라클데이터베이스 26
APP 사용자와 DB 세션의일치방법 Pool 분리 APP 사용자별 DB Pool 의분리 DB 접근을 Session Pool 별로제어 DB Pool 에맞는세션변수값을미리설정 APPICATION 시스템 APP 사용자계정정보 ( 지역정보 ) DB 공통작업모듈 세션 POOL 선택 APP 접속자의지역정보에따라선택 POOL_KR POOL_JP DB 세션 APP 사용자의지역정보확인가능 JSP Servlet SELECT UPDATE DELETE BATCH 2PC POOL_CA POOL_IN 오라클데이터베이스 27
APP 사용자와 DB 세션의일치 사용자세션정보 USERENV Application Context 기본세션정보 접속 IP DB 사용자 접속툴! 이제실제 SQL 을수행하는사용자가누구인지알수있구나! 사용자세션분석 VPD Policy Label Policy Audit Policy Custom Application Context 사용자지정정보 특정권한 APP 사용자정보 이에맞는접근통제방법을쓰고, 실제수행된 SQL 및사용자를감사하면되겠군! DV Rulesets 28
Case : 패키지제품계정관리문제 현업에서 SQL을직접돌리지않으면결산이안된다. 패키지에서기능이않되는걸어떡하라고? 패키지특성상모든정보에접근할수있어야한다. 보안과관련된 DB 작업의대행요청너무많다! 현업부서 2 패키지관리자 현업부서 1 DB 관리자 현업의요구에의해직접적인 DB 접근을허용할수밖에없다. 패키지계정의권한은? DBA와다를바가없다. 패키지제품과의인증으로아무보안솔루션이나사용할수없다. 패키지특성상계정분리로관리하기힘들다. 패키지계정에누가들어와서어떤작업을하는지모르겠다! 29
Database Vault 응용예관리자의이중인증 관리자의작업통제 : 신원이확인된관리자만업무수행가능 관리자의작업감시 : 비즈니스데이터에수행한 SQL 추적 계정로그인후, 별도의인증절차가수행되어야만 DV에의해보호되는주요데이터에접근허용 기본인증 : 접근불허 CRM User ID/PSWD 로만접근불허 SQL> connect crm/passwd0@erp Connected. SQL> select * from crm_sys.crm_user; ERROR at line 1 : ORA-01032 : Insufficient privileges 감사대상 관리자신원확인후접근허용 SQL> connect crm/passwd0@erp Connected. SQL> exec SSO.DBA_AUTH( SMITH, ******); PL/SQL procedure successfully completed. SQL> select session_id from crm_sys.crm_sessions; SESSION_ID ---------------- 864113074 Apps User ID/PSWD 에 EP 정보추가관리 30
Database Vault 응용예관리자의이중인증 관리자 A 2 차인증 2 차인증 DBA_AUTH X 관리자정보설정 X Application Context 감사 관리자 B 인증확인 X SYS X 인증 O X 비인증 관리자그룹 Provisioning 누가, 언제, 어떤 SQL 을수행했는가? SSO 인증서버 관리자암호보호영역 DV 보호대상 smith,20090905,sqlplus, l select session_id... 31
Database Vault 의필요성안전한보안관리구조 DB 레벨의보호영역생성 Mandatory Access Control : 예외상황불허 설정된보안정책은관리자라도피할수없음 강력한업무분리기능 계정, 보안정책, 감사, 시스템관리등을위한정보보호영역설정 계정관리자보안관리자보안감사자시스템관리자응용프로그램관리자 보안정책 권한및롤 감사정보 시스템정보 사용자데이터 영역구분에의한내부정책 / 권한 / 감시정보보호 32
Database Vault 의필요성 SaaS 환경의 Multi-tenancy 에대한보안 DB 3 PURCHASE Realm Orders App DB 2 DB 1 Logistics Realm Invent. App Purchas e Schema Logistic s Schema Inventor y Schema Schema Schema Schema INVENTORY Realm Select * from INVENTORY where tenant_id=10 Tenant where tenant_id=15 Tenant 33
Database Vault의필요성입주형전자상거래 OLS Label Product 테이블데이터접근제어 ID Name Stock Label 1 A 2 B 보안관리자 3 A 4 C Customer 테이블 ID Name Phone Label Audit Vault 감사기록 tenant A 1 A 2 B 3 A 4 C tenant B Order 테이블 ID Name Qnt Label DB Vault DBA 접근제어 DBA 1 A 2 B tenant C 3 A 4 C 34
보안침해유형별오라클대응방안 Audit Vault Data Masking 데이터의암호화 네트워크 Packet 의암호화 대응방안 강력한인증및접근제어와감사활동을통한침입의사전감시 사용자의업무데이터를 SYS 와같은강력한계정으로부터보호 효율적인감사실시 접근경로 / 유형 / 시간대에적절하지않은 Command 의사전차단 개인정보변조후데이터공급 효과적인행수준접근제어제공 Advanced Security Database Vault Label Security 내부자에의한정보유출 아웃소싱에의한정보유출 개발시스템을통한정보유출 네트워크정보도용및위변조 미디어를통한정보유출 35
결론 정보보호를위한보안강화방안 가능한모든보안솔루션의도입이필요 <Insert Picture Here> 네트워크, PC, 시스템보안 Application, 데이터베이스보안 반입 / 반출통제 보안관리체계강화 효과적인내부통제를위한방법 업무별로완벽한접근제어 관리자에게꼭필요한권한만허용 관리자에의한데이터유출최소화 강력한내부감사및모니터링 각티어에가장적합한보안체계구축 36
37
38