Oracle/Admin2009. 12. 4. 10:34
● 개요

- 보안에 대한 DBA의 책임을 기술할 수 있다.
- 최소 권한의 원리를 적용할 수 있다.
- audit 옵션을 명시할 수 있다.
- audit 정보를 검토할 수 있다.
- audit trail을 유지할 수 있다.
- user들이 날리는 쿼리문의 기록을 어떻게 남길까?


● 데이터베이스 보안
    - 법률적으로 정의되어 있다.
    - 보안사고 : 내부자의 소행이 많음.
    - DBA책임은 공유되어야 한다.: 실수방지, 상호감시
    - 계정은 다르게 한다.
    - DBA와 시스템 관리자는 다른 사람이어야 한다.

● 최소 권한의 원칙
    ◎ 정의
        - 컴퓨터에 꼭 필요한 최소한의 소프트웨어만 설치
        - 루트, 관리자 계정에 접근을 제한
        - SYSDBA, SYSOPER 계정에 접근을 제한
        - 일에 필요한 만큼만 유저의 접근을 제한

    ◎ 적용방법

SQL> 07_dictionary_accessibility=false                -- 데이터 딕셔너리를 보호
SQL> revoke execute on utl_smtp, utl_tcp, utl_http, utl_file   -- 필요없는 권한 뺏기
         from public; 

   ※ EM의 All Policy Violations를 클릭하면 HAA의 기준대로 하지 않고 있는 것들의 목록이 나오고, 쉽게 수정할 수 있다.

● 감시(auditing)
    ◎ 정의
        - 

    ◎ 분류
        - Mandatory :
             주기적으로 아래의 파일들을 보는 것
            ?/rdbms/audit, alert_sid.log

        - DB Auditing : 
             Audit_trail이란 파라미터에 값을 준다.(static parameter이므로 재기동 필요) -> 확인
             유저가 insert, update의 명령을 수정한 기록은 남기나, 구체적인 값은 기록되지 않음.(9i까지, 10g부터는 기록가능)
             파라미터(audit_trail)를 설정한다.
             sp파라미터 파일에도 적용하고 싶을 경우에는 scope=both를 추가적으로 지정한다.

SQL> alter system set audit_trail = db scope=both;    -- db내부에 쌓임
SQL> alter system set audit_trail = os scope=both;    -- os내부에 쌓임
SQL> startup force                                                -- shutdown후 startup       

SQL> audit table;                                                  -- table이 대한 명령을 전부 auditing
SQL> audit select any table by session;                 -- table에 대한 모든 select는 auditing
                                                                              세션에서  한번만 남김
SQL> audit select on phil.emp by access;              -- phil.emp에 대한 모든 select 를 auditing 
                                                                              접근 할때마다 남김

감사한 기록을 보자.(audit_trail = db로 설정시)

SQL> select * from dba_audit_trail;

audit_file_dest에 지정된 경로에 audit된 기록이 남는다.
audit_file_dest 확인 방법은 다음과 같다.

SQL> show parameter audit_file_dest

감사 해제하는 방법

SQL> noaudit all by <유저명>;

        - Value-Based Auditing
           : Trigger를 이용하여 구체적인 값을 남김(new와 old를 이용)

        - FGA (Fine-grained auditing)
           : 특정 컨텐츠를 볼 경우에만 auditing 하는 것 -> SQL문이 남는다.
             정책을 설정 sal>3000  -> 조건에 맞을 경우 SQL문이 남는다.
             DBMS_FGA 패키지를 이용하여 정책을 설정한다.
             dba_fga_audit_trail의 경로에 저장된다.

        - DBA auditing 
           : SYS유저가 하는 일을 auditing
             audit된 기록은 반드시 OS에 남는다.(sys는 idle instance, nomount, mount에서도 작업을 하기 때문에)
             audit_sys_operation=true : 일 경우 남는다.
             audit_file_dest에 정의된 경로에 남는다.

기타참고사항


- audting은 가능한한 포커스를 좁히는 것이 중요하다.

- 감사기록은 aud$에 남는다.(system tablespace)

- audit 조건이 이상해 에러가 발생하면 그에 관한 쿼리문도 에러발생

참고 : 오라클 교재 
         

'Oracle > Admin' 카테고리의 다른 글

Proactive Maintenance  (0) 2009.12.07
Configuring the Oracle Network Environment  (0) 2009.12.04
Managing Undo Data  (0) 2009.12.03
Lock의 종류  (0) 2009.12.03
Managing Schema Objects-2  (0) 2009.12.02
Posted by 자수성가한 부자