mbble mbble.com

통합 감사

실사용자, WAS 세션, SQL, 오브젝트를 한 감사 이벤트로 묶습니다.

PLATE 03

지정한 대상만, 칼럼은 FGA

미리 지정한 오브젝트와 칼럼만 감사합니다. Oracle에서 Unified Audit가 칼럼을 다루지 못하는 구간은 DBMS_FGA가 같은 감사 흐름으로 보완합니다.

공통 계정 뒤에서 사람이 사라집니다

웹 사용자는 WAS에서 인증되지만, 커넥션 풀을 지난 데이터베이스 세션은 APP_USER 같은 공통 계정만 봅니다. 사고가 나면 감사 로그의 시각과 WAS 로그를 손으로 맞춰 사람을 추정하게 됩니다.

한 이벤트에 붙이는 것

WAS 인증이 끝나면 실사용자와 WAS 세션 식별자를 데이터베이스 세션에 바인딩합니다. 감사 기록은 그 컨텍스트와 SQL, 오브젝트, 칼럼을 한 건으로 남깁니다.

  • 감사 대상은 미리 지정한 오브젝트와 칼럼입니다. 모든 SQL을 따로 걷어 정규식으로 판별하지 않습니다.
  • Oracle에서 Unified Audit가 칼럼을 다루지 못하는 구간은 DBMS_FGA 정책으로 보완하고, 정책을 만든 이력을 남깁니다.
  • WAS를 통한 접속과 직접 접속을 같은 사용자, 같은 오브젝트로 찾습니다.
  • 승인 없이 실행된 SQL을 감사 기록 옆에서 볼 수 있습니다.

Oracle 감사 로그와 Gate 메타데이터는 함께 검색할 수 있게 모아 둡니다. 실사용자, WAS 세션, DB 세션, SQL은 한 이벤트로 Syslog 또는 표준 API를 통해 SIEM에 넘길 수 있습니다.

기존 접근통제, 계정관리, 감사, 로그 관리를 걷어내지 않습니다. AUDIGATE는 그 기록에 실사용자와 승인 시각을 잇는 층입니다.

기존 DAM·JIT와 다른 점

PNP·WV·SW는 국내 DB 접근제어 제품군의 약칭입니다. 표는 패킷·문장 분석형 DAM과 계정 대여형 JIT의 일반적인 한계를 적습니다. 특정 제품의 모든 옵션을 단정하지는 않습니다.

항목 기존 DAM (PNP·WV·SW) AUDIGATE 비고
View, Synonym, DB Link, Stored Program을 통한 접근 감사 패킷이나 SQL 문장에 드러난 이름만 봅니다. 뷰·동의어·DB Link·프로시저 안에서 실제로 닿은 객체는 문장 밖으로 나오지 않으면 빠집니다. 데이터베이스가 이름을 해석한 뒤의 객체와 칼럼을 감사합니다. 동의어·뷰·PL/SQL을 거친 접근도 지정한 대상이면 남습니다. 계정이나 비밀번호를 시간만큼 빌려 주는 JIT는 해석된 객체를 감사하지 않습니다.
칼럼 단위 감사 SQL 텍스트에서 칼럼 이름을 추정합니다. SELECT * 이거나 뷰 뒤의 칼럼은 이력에 남지 않는 경우가 많습니다. 미리 지정한 칼럼을 DBMS_FGA로 감사합니다. Oracle Unified Audit가 칼럼을 다루지 못하는 구간을 이 정책으로 보완합니다. JIT에는 칼럼 감사 축이 없습니다.
칼럼 가공 감지. substr(주민번호, 7) 문장에 함수와 칼럼 문자가 같이 있을 때만 패턴으로 추정합니다. 뷰나 프로시저 안이면 놓칩니다. 칼럼을 함수로 감싸도 그 칼럼을 읽으면 지정 칼럼 감사에 남습니다. JIT는 SQL 식 자체를 보지 않습니다.
칼럼 단위 사용 이력 로깅과 차단 문장 패턴으로 막고 남깁니다. 어떤 칼럼을 읽었는지는 SQL 원문에 의존합니다. 지정 칼럼 접근은 감사 이력으로 남고, 승인되지 않은 세션의 SQL은 Dynamic Role이 없으면 데이터베이스가 거부합니다. JIT는 로그인할 수 있는 시간만 닫습니다. 칼럼 이력과 세션 안 차단은 없습니다.
세션별 개별 권한 통제 계정과 IP 기준입니다. 권한은 계정에 남아 있고, 세션마다 다른 Role을 올리지 않습니다. apply_my_roles로 그 세션에만 Dynamic Role이 켜집니다. AUTH-KEY는 다른 세션에서 쓸 수 없습니다. JIT는 공유 계정을 시간만큼 여는 경우가 많아, 세션 하나와 칼럼 감사가 한 건으로 묶이지 않습니다.
저장 방식 지나간 SQL을 전체 로깅합니다. 중요 칼럼이 아닌 문장까지 쌓입니다. 주요 테이블과 칼럼만 100% 로깅합니다. 지정하지 않은 SQL을 전부 쌓지 않습니다. JIT는 SQL 본문 저장이 아니라 접속·승인 이력이 중심입니다.
벤더 NNE, TLS 불가. 패킷이 벤더 NNE나 TLS로 암호화되면 SQL을 볼 수 없습니다. 가능. 암호 구간 안이 아니라 데이터베이스 세션에서 지정 테이블·칼럼을 남깁니다. JIT도 암호문 안의 SQL은 보지 못합니다.