pat bonser product readiness auditing in openedge ® pug norway lillehammer march 16th & 17th

74
Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

Upload: elena-attridge

Post on 15-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

Pat BonserProduct Readiness

Auditing in OpenEdge®

PUG Norway

Lillehammer

March 16th & 17th

Page 2: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation2March 2006, PUG Norway

Auditing in OpenEdge

Overview Getting started Audit Policy Maintenance Authentication Events

• Database

• Application

• Internal

Archiving Audit Data

Page 3: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation3March 2006, PUG Norway

Auditing

Regulatory compliance• Sarbanes-Oxley Act, CFR Part 11, HIPAA,

European Union’s Annex 11, European

Union Data Protection Directive, etc

Non-repudiation of Audit data Consistency

• 4GL, SQL, database utilities

Immediacy of Audit data

Driving factors

Page 4: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation4March 2006, PUG Norway

Provide an auditing framework that can supply an

uninterrupted trail of an application client’s access to its

operations and data.

Auditing Overview

Goal

Page 5: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation5March 2006, PUG Norway

Auditing

Provide an audit trail of• Application operations

• Context

• Data

Performance, scalability, storage size Secure, tamper-resistant General purpose audit logging

• Code coverage, debugging / tracing, event analysis

Key features

Page 6: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation6March 2006, PUG Norway

Auditing Capabilities

Database Auditing• Record level events

– Create, update, delete (CUD) operations

Application Auditing• Contextual, event groups, operations

Internal auditing• Tools, utilities, connections, schema changes

Page 7: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation7March 2006, PUG Norway

Authentication

Audit trails can tell you who did what, when, where and how

Must reflect the verifiable identity of the real application user

Must be complete, accurate and non-refutable• Prove audit policy and data has not been

tampered with

Secure Auditing is key to compliance

Page 8: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation8March 2006, PUG Norway

Security of Audit Data

Separation of duty• Audit administrator

• Application audit event inserter

• Audit data archiver

• Audit data reporter

No updates to audit data No deletion of defined events Audit data is sealed to prevent tampering

• Within and outside of the database

Page 9: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation9March 2006, PUG Norway

Auditing

Common built-in auditing for both SQL/4GL clients Flexible audit policy management Secure audit data, policy and utilities

• Separation of duty• Purposed audit permissions• Verified user identity• Secure utilities and sealed data

Internal audit events (utilities, schema changes, etc.) Performance, performance, performance High performance archiving Multi-database, multi-platform, multi-application

Why use it in place of your own solution?

Page 10: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation10March 2006, PUG Norway

Auditing in OpenEdge

Overview Getting started Audit Policy Maintenance Authentication Events

• Database

• Application

• Internal

Archiving Audit Data

Page 11: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation11March 2006, PUG Norway

Before You Start

Consider your reporting needs• Database operations

• Application operations

How much information to record• Table and field level

• Contextual information

Which fields constitute unique identifier What changes cause event to be recorded

Decide what to audit

Page 12: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation12March 2006, PUG Norway

Auditing - Getting Started

Disabled by default

Upgrade client & database to 10.1A Create storage area(s) for audit data

• Must be Type II storage area

Enable auditing

Proutil dbname –C enableauditing area Data_Area [indexarea Index_Area] [deactivateidx]

Enabling auditing

Page 13: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation13March 2006, PUG Norway

Auditing - Getting Started

Connect to database as the DBA Set up database security key via Data

Administration tool Edit audit permissions for users

• Not tied to _User

Optionally load / enable shipped policies Create your own events and policies

Events & Policies

Page 14: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation14March 2006, PUG Norway

Create Audit Users

Separation of Duty

User Description

Audit Administrator Manage audit policies

Grant auditing privileges

Audit Event Inserter Can generate application audit events

Audit Data Archiver Can archive & load audit data

Audit Data Reporter Query and report on audit data

Page 15: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation15March 2006, PUG Norway

Manage Audit Permissions

Admin -> Security -> Edit Audit Permissions…

Page 16: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation16March 2006, PUG Norway

Auditing – Getting Started

Disabling auditing

Does not remove anything• Policies, data, schema all remain

Must be audit admin to disable• Event is audited

Proutil dbname –C disableauditing

Disabling auditing

Page 17: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation17March 2006, PUG Norway

Auditing in OpenEdge

Overview Getting started Audit Policies & Audit Policy Maintenance Authentication Events

• Database

• Application

• Internal

Archiving Audit Data

Page 18: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation18March 2006, PUG Norway

Audit Policies

An Audit Policy is• A named collection of audit configuration settings• Required for all audit operations

– Database, Application and Internal• Applied at run time

Multiple audit policies are supported Activate/deactivate required policies Manage event records

Definition

Page 19: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation19March 2006, PUG Norway

includes

includes

includes

record reads on

record deletes on

record updates onrecord creates on

is controlled by

_aud-audit-policy

_Audit-policy-guid

_Audit-policy-name (AK1.1)_Audit-policy-description (IE1.1)_Audit-data-security-level_Audit-custom-detail-level_Audit-policy-active (IE2.1)

_aud-file-policy

_Audit-policy-guid (FK)_File-Name (IE1.1)_Owner (IE1.2)

_Audit-create-level_Audit-create-criteria_Audit-update-level_Audit-update-criteria_Audit-delete-level_Audit-delete-criteria_Audit-read-level_Audit-read-criteria_Create-event-id (FK) (IE2.1)_Update-event-id (FK) (IE3.1)_Delete-event-id (FK) (IE4.1)_Read-event-id (FK) (IE5.1)

_aud-field-policy

_Audit-policy-guid (FK)_File-Name (FK) (IE1.1)_Owner (FK) (IE1.2)_Field-Name (IE1.3)

_Audit-create-level_Audit-update-level_Audit-delete-level_Audit-read-level_Audit-identifying-field

_aud-event-policy

_Audit-policy-guid (FK)_Event-id (FK) (IE1.1)

_Event-level_Event-criteria

_aud-event

_Event-id

_Event-type (IE1.1)_Event-name (IE1.2)_Event-description (IE2.1)

Audit Policy MetaSchema

AuditPolicy

FilePolicy Field

Policy

EventPolicy

AuditEvent

Page 20: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation20March 2006, PUG Norway

includes

includes

includes

record reads on

record deletes on

record updates onrecord creates on

is controlled by

_aud-audit-policy

_Audit-policy-guid

_Audit-policy-name (AK1.1)_Audit-policy-description (IE1.1)_Audit-data-security-level_Audit-custom-detail-level_Audit-policy-active (IE2.1)

_aud-file-policy

_Audit-policy-guid (FK)_File-Name (IE1.1)_Owner (IE1.2)

_Audit-create-level_Audit-create-criteria_Audit-update-level_Audit-update-criteria_Audit-delete-level_Audit-delete-criteria_Audit-read-level_Audit-read-criteria_Create-event-id (FK) (IE2.1)_Update-event-id (FK) (IE3.1)_Delete-event-id (FK) (IE4.1)_Read-event-id (FK) (IE5.1)

_aud-field-policy

_Audit-policy-guid (FK)_File-Name (FK) (IE1.1)_Owner (FK) (IE1.2)_Field-Name (IE1.3)

_Audit-create-level_Audit-update-level_Audit-delete-level_Audit-read-level_Audit-identifying-field

_aud-event-policy

_Audit-policy-guid (FK)_Event-id (FK) (IE1.1)

_Event-level_Event-criteria

_aud-event

_Event-id

_Event-type (IE1.1)_Event-name (IE1.2)_Event-description (IE2.1)

Multiple active policies

Audit Policy MetaSchema

FilePolicy Field

Policy

EventPolicy

AuditEvent

Page 21: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation21March 2006, PUG Norway

includes

includes

includes

record reads on

record deletes on

record updates onrecord creates on

is controlled by

_aud-audit-policy

_Audit-policy-guid

_Audit-policy-name (AK1.1)_Audit-policy-description (IE1.1)_Audit-data-security-level_Audit-custom-detail-level_Audit-policy-active (IE2.1)

_aud-file-policy

_Audit-policy-guid (FK)_File-Name (IE1.1)_Owner (IE1.2)

_Audit-create-level_Audit-create-criteria_Audit-update-level_Audit-update-criteria_Audit-delete-level_Audit-delete-criteria_Audit-read-level_Audit-read-criteria_Create-event-id (FK) (IE2.1)_Update-event-id (FK) (IE3.1)_Delete-event-id (FK) (IE4.1)_Read-event-id (FK) (IE5.1)

_aud-field-policy

_Audit-policy-guid (FK)_File-Name (FK) (IE1.1)_Owner (FK) (IE1.2)_Field-Name (IE1.3)

_Audit-create-level_Audit-update-level_Audit-delete-level_Audit-read-level_Audit-identifying-field

_aud-event-policy

_Audit-policy-guid (FK)_Event-id (FK) (IE1.1)

_Event-level_Event-criteria

_aud-event

_Event-id

_Event-type (IE1.1)_Event-name (IE1.2)_Event-description (IE2.1)

Multiple active policies

Control by table / CUD operation

Audit Policy MetaSchema

FieldPolicy

EventPolicy

AuditEvent

Page 22: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation22March 2006, PUG Norway

includes

includes

includes

record reads on

record deletes on

record updates onrecord creates on

is controlled by

_aud-audit-policy

_Audit-policy-guid

_Audit-policy-name (AK1.1)_Audit-policy-description (IE1.1)_Audit-data-security-level_Audit-custom-detail-level_Audit-policy-active (IE2.1)

_aud-file-policy

_Audit-policy-guid (FK)_File-Name (IE1.1)_Owner (IE1.2)

_Audit-create-level_Audit-create-criteria_Audit-update-level_Audit-update-criteria_Audit-delete-level_Audit-delete-criteria_Audit-read-level_Audit-read-criteria_Create-event-id (FK) (IE2.1)_Update-event-id (FK) (IE3.1)_Delete-event-id (FK) (IE4.1)_Read-event-id (FK) (IE5.1)

_aud-field-policy

_Audit-policy-guid (FK)_File-Name (FK) (IE1.1)_Owner (FK) (IE1.2)_Field-Name (IE1.3)

_Audit-create-level_Audit-update-level_Audit-delete-level_Audit-read-level_Audit-identifying-field

_aud-event-policy

_Audit-policy-guid (FK)_Event-id (FK) (IE1.1)

_Event-level_Event-criteria

_aud-event

_Event-id

_Event-type (IE1.1)_Event-name (IE1.2)_Event-description (IE2.1)

Multiple active policies

Control by table / CUD operation

Audit Policy MetaSchema

Override individual fields

EventPolicy

AuditEvent

Page 23: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation23March 2006, PUG Norway

includes

includes

includes

record reads on

record deletes on

record updates onrecord creates on

is controlled by

_aud-audit-policy

_Audit-policy-guid

_Audit-policy-name (AK1.1)_Audit-policy-description (IE1.1)_Audit-data-security-level_Audit-custom-detail-level_Audit-policy-active (IE2.1)

_aud-file-policy

_Audit-policy-guid (FK)_File-Name (IE1.1)_Owner (IE1.2)

_Audit-create-level_Audit-create-criteria_Audit-update-level_Audit-update-criteria_Audit-delete-level_Audit-delete-criteria_Audit-read-level_Audit-read-criteria_Create-event-id (FK) (IE2.1)_Update-event-id (FK) (IE3.1)_Delete-event-id (FK) (IE4.1)_Read-event-id (FK) (IE5.1)

_aud-field-policy

_Audit-policy-guid (FK)_File-Name (FK) (IE1.1)_Owner (FK) (IE1.2)_Field-Name (IE1.3)

_Audit-create-level_Audit-update-level_Audit-delete-level_Audit-read-level_Audit-identifying-field

_aud-event-policy

_Audit-policy-guid (FK)_Event-id (FK) (IE1.1)

_Event-level_Event-criteria

_aud-event

_Event-id

_Event-type (IE1.1)_Event-name (IE1.2)_Event-description (IE2.1)

Multiple active policies

Control by table / CUD operation

Audit Policy MetaSchema

Override individual fieldsAudit events

EventPolicy

Page 24: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation24March 2006, PUG Norway

includes

includes

includes

record reads on

record deletes on

record updates onrecord creates on

is controlled by

_aud-audit-policy

_Audit-policy-guid

_Audit-policy-name (AK1.1)_Audit-policy-description (IE1.1)_Audit-data-security-level_Audit-custom-detail-level_Audit-policy-active (IE2.1)

_aud-file-policy

_Audit-policy-guid (FK)_File-Name (IE1.1)_Owner (IE1.2)

_Audit-create-level_Audit-create-criteria_Audit-update-level_Audit-update-criteria_Audit-delete-level_Audit-delete-criteria_Audit-read-level_Audit-read-criteria_Create-event-id (FK) (IE2.1)_Update-event-id (FK) (IE3.1)_Delete-event-id (FK) (IE4.1)_Read-event-id (FK) (IE5.1)

_aud-field-policy

_Audit-policy-guid (FK)_File-Name (FK) (IE1.1)_Owner (FK) (IE1.2)_Field-Name (IE1.3)

_Audit-create-level_Audit-update-level_Audit-delete-level_Audit-read-level_Audit-identifying-field

_aud-event-policy

_Audit-policy-guid (FK)_Event-id (FK) (IE1.1)

_Event-level_Event-criteria

_aud-event

_Event-id

_Event-type (IE1.1)_Event-name (IE1.2)_Event-description (IE2.1)

Multiple active policies

Control by table / CUD operation

Audit Policy MetaSchema

Override individual fields

Control by event Id

Audit events

Page 25: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation25March 2006, PUG Norway

Audit Policy Maintenance

Provides basic functionality A starting point to build your own

• Source code is provided

• Re-write as required

• APIs provided

Not translated Located in “DLC/auditing” directory Independent of other OpenEdge tools

Primarily a developers tool

Page 26: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation26March 2006, PUG Norway

Audit Policy Maintenance

Connected Databases

Audit Policy Browse

Single Toolbar

Policy Tabs

Page 27: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation27March 2006, PUG Norway

Audit Policy Maintenance - Policy Tab

Create, update, delete policy

Audit Policy Name

Description

Data Security Level

Custom Level

Activate / deactivate

Page 28: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation28March 2006, PUG Norway

Audit Policy Maintenance - Audit Tables Tab

View, configure auditing for tables

Table to audit

SQL owner

CUD audit levelsAudit Level

Event IDs Streaming settings

Page 29: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation29March 2006, PUG Norway

Audit Policy Maintenance - Audit Fields Tab

Table to audit

Field to audit

CUD audit levelsIdentifying field

Field level auditing – overrides table settings

Streaming values

Page 30: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation30March 2006, PUG Norway

Audit Policy Maintenance - Audit Events

Event level auditing

Event ID

Event name

Event Level

Criteria – futures

Page 31: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation31March 2006, PUG Norway

Audit Policy Maintenance Events MaintenanceFile -> Events Maintenance…

Cannot be deleted Can be renamed Copy allowed Changes committed

on Save Cannot edit events

below 32000

Page 32: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation32March 2006, PUG Norway

Audit Policy Maintenance

Import / export policies• As XML or dump files

Import / export events• User defined events

Also available from Data Admin tool• Supports multi-selection

Use Audit Policy Maintenance API’s to automate

Additional features

Page 33: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation33March 2006, PUG Norway

Auditing in OpenEdge

Overview Getting started Audit Policy Maintenance Authentication Events

• Database

• Application

• Internal

Archiving Audit Data

Page 34: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation34March 2006, PUG Norway

ProcessControl

Authentication and Authorization Process

Principal

AuthenticationSystem

UserAccounts

Authenticate

AuthenticationSystem

UserAccounts

AuthenticationSystem

User Accounts

Account Check

Get Account Data

Application ResourcesAccessControl

Data

AuthorizationManager

LoginCredentials

Application Server Agent

Client

AuthenticationManager

Page 35: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation35March 2006, PUG Norway

The Principal

CLIENT-PRINCIPALDomain: LDAPState: LoginUser-ID: JayneLogin-token: BW3G1&2G1836D872Login-date: 3/12/05 08:15:33.12Login-expires: 3/12/05 19:30.00.00Roles: AccountantApp-data: Company=Acme ...Seal: AC63Galx98wBwuuw2

AuthenticationSystem Data

User Account Information

User Account Restrictions

Application Defined Data

Data Integrity Seal

Login-SessionID

Page 36: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation36March 2006, PUG Norway

The OpenEdge User Identity Challenge

_User table is the only trusted user-id source Almost no 4GL applications use the _User table

• No way for 4GL application to tell OpenEdge that it is a trusted authentication source

• No way for OpenEdge to validate that a user-id came from a trusted 4GL application source

Solution• Allow a 4GL application to become a trusted

source of user authentication

Prior to 10.1A

Page 37: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation37March 2006, PUG Norway

10.1A - What Has Not Changed…

Can still connect to OpenEdge database using –U & –P• OpenEdge will require the _User table **

SETUSERID() **• Authenticate and set the user-id for a database

connection

OpenEdge SQL requires using the _User table

** Audited by OpenEdge auditing service

Page 38: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation38March 2006, PUG Norway

New OpenEdge 10.1A Features

4GL-session can have a default user-id CLIENT-PRINCIPAL 4GL object Secure client identity validation and auditing

options Trusted Authentication Registry 4GL Language extensions AUDIT-CONTROL 4GL session handle AUDIT-POLICY 4GL session handle

Page 39: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation39March 2006, PUG Norway

4GL CLIENT-PRINCIPAL Object

Created and managed by 4GL application• After user account has been authenticated

Represents a single user login session Can be shared for single sign-on purposes

• Between application servers• Between application server agents• Transport cross-platform binary value

Set the current user-id for• The 4GL application (& all database connections)• Individual OpenEdge database connection

Automatically audits login-logout operations CLIENT-PRINCIPAL user-id can be used for run-time

permission checking

Page 40: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation40March 2006, PUG Norway

Trusted Authentication System Registry

Used to validate CLIENT-PRINCIPAL object• Originating from trusted 4GL user authentication

module• Checks integrity of user identity data• Validation uses symmetric key cryptography and

HMAC technologies Contents loaded from

• Application code using SECURITY-POLICY object• OpenEdge database tables

_sec-authentication-system_sec-authentication-domain

Page 41: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation41March 2006, PUG Norway

4GL Language Extensions

SECURITY-POLICY object extensions• SET-CLIENT (hClientPrincipal).

• LOAD-DOMAINS (dbAlias).

• REGISTER-DOMAIN (“domain-name”, … ).– LOCK-REGISTRATION ().

Page 42: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation42March 2006, PUG Norway

Auditing User-id Strategies

Custom application design & implementation OpenEdge Auditing service

• Use SETUSERID() to built-in _User tableNo changes needed if already in useCan use AUDIT-CONTROL objectNo extra configuration and deployment setupNo user login-logout or session informationReplicate _User table for multiple databases

• Use 10.1A CLIENT-PRINCIPAL identity extensionsUse existing 4GL authentication modulesUser login-logout and session informationSingle sign-on between 4GL productsRequires code additionsExtra configuration and deployment setup

Page 43: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation43March 2006, PUG Norway

User Identity Strategies

Define and deploy application supported user authentication system types and domains _sec-authentication-system table

Ex: 4GL procedure, LDAP, Kerberos, …

_sec-authentication-domain tableEx: Built-in, Default-LDAP, Default-Kerberos, …

Configure/enable domains at production site Define and deploy user identity and validation

options • Data Administration

Steps

Page 44: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation44March 2006, PUG Norway

Auditing in OpenEdge

Overview Getting started Audit Policy Maintenance Authentication Events

• Database

• Application

• Internal

Archiving Audit Data

Page 45: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation45March 2006, PUG Norway

Database events

Record level events• Create event

• Update event

• Delete event

Controlled through file / field policy Old/New values

• Stored as character

• American format dates and numeric values

What gets Audited?

Page 46: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation46March 2006, PUG Norway

Audit Data Schema

is the group for

supplies context to

consists of

has

created

resulted in

has

_aud-audit-data

_Audit-data-guid

_Database-connection-id (IE1.1)_Client-session-uuid (FK) (IE1.2)_User-id (IE2.1)_Audit-date-time (IE5.1)_Audit-event-group (FK) (IE3.1)_Db-guid (FK) (IE3.2)_Transaction-id (IE3.3)_Transaction-sequence (IE3.4)_Event-id (FK) (IE4.1)_Event-context (IE6.1)_Application-context-id (FK) (IE7.1)_Event-detail_Audit-custom-detail_Audit-data-security-level_Data-seal

_aud-audit-data-value

_Audit-data-guid (FK)_Field-name (IE1.1)_Continuation-sequence

_Data-type-code_Old-string-value_New-string-value_Old-blob-value_New-blob-value_Old-clob-value_New-clob-value_Audit-data-security-level_Data-seal

_aud-event

_Event-id

_Event-type (IE1.1)_Event-name (IE1.2)_Event-description (IE2.1)

_client-session

_Client-session-uuid

_Client-name_User-id (IE1.1)_Authentication-date-time (IE2.1)_Server-uuid_Authentication-domain-type_Authentication-domain-name_Db-guid (FK) (IE3.1)_Session-custom-detail_Audit-data-security-level_Data-seal

_db-detail

_Db-guid

_Db-description_Db-mac-key_Db-custom-detail

consists of

Record client session information

Configurable automated audit data with optional

context & grouping

Optional old/new value recordingStandard database tables for simplified querying

Page 47: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation47March 2006, PUG Norway

Overridden Audit Fields

File level policy is the default for fields• Set according to majority of fields

Individual fields may be overridden When explicitly auditing fields

• Consider schema changes

Page 48: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation48March 2006, PUG Norway

Field Value Recording

One record per field• Easy to report on individual field changes

• Resource intensive

Streamed• Pack as many field values into a single audit record

• Reduced number of database writes

Performance vs. field reporting

Page 49: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation49March 2006, PUG Norway

Streamed Field Values

Values stored in _aud-audit-data• _Event-detail field

Character format

• chr(8) delimits array elements

Must be enough space for field value• Otherwise written to _aud-audit-data-value

Order of fields is arbitrary

field-name + chr(6) + data-type + chr(6) +

[old-value] + chr(6) + new-value + chr(7)[…]

Page 50: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation50March 2006, PUG Norway

Streamed Values

Store large CHARACTER and RAW fields individually• Maximizes smaller fields being compressed

Reporting requirements• Individual fields

Consider

Page 51: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation51March 2006, PUG Norway

Auditing in OpenEdge

Overview Getting started Audit Policy Maintenance Authentication Events

• Database

• Application

• Internal

Archiving Audit Data

Page 52: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation52March 2006, PUG Norway

Application Defined Events

Events with no corresponding database operation Context describes why the data was audited

• Gives meaning to record level auditing

• Event ID >= 32000

Fully control granularity and detail• Example

– 1 audit record for dispatch of an order

Group into ranges to simplify reporting

Page 53: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation53March 2006, PUG Norway

Application Context

Provides contextual information• When, where and why of changes

Types of contextual information• Database transactions and sequence

• Client login sessions

• Application Context

• Application Event Groups (AEG)

Page 54: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation54March 2006, PUG Norway

Types of Scope and Auditing Context

Audit-event-record

Audit-event-record

Audit-event-record

Audit-event-record

Audit-event-record

Audit-event-record

Audit-event-record

Audit-event-record

Audit-event-record

Audit-event-record

Database

Transaction

Audit

Event

Group

Application

Context

Client

Login

Session

Page 55: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation55March 2006, PUG Norway

Log an Audit Event

Creates an application defined event• In all audit-enabled databases with the event

enabled

A supporting active policy must exist Can write directly to the long-term storage Can be used for read auditing

AUDIT-CONTROL:LOG-AUDIT-EVENT method

Page 56: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation56March 2006, PUG Norway

Log Audit Event - Example

Ctx-id = AUDIT-CONTROL:LOG-AUDIT-EVENT

(32530, "Starting Procedure: " +

PROGRAM-NAME(1), cDetail, cUserData).

/* READ auditing */

Ctx-id = AUDIT-CONTROL:LOG-AUDIT-EVENT

(32003, "Customer Enquiry",

{&FIELDS-IN-FRAME-{&FRAME-NAME}}).

Page 57: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation57March 2006, PUG Norway

Set Application Context

Sets application context• Sent to all audit-enabled databases

UUID used as context ID• Recorded with all subsequent audit events

– _aud-audit-data. _application-context-id

Event context cannot be unknown value Application context does not support nesting

AUDIT-CONTROL:SET-APPL-CONTEXT method

Page 58: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation58March 2006, PUG Norway

Clearing Application Context

Clears an application context event-id• For all audit enabled databases

• No context-id written in subsequent records

No audit event generated

AUDIT-CONTROL:CLEAR-APPL-CONTEXT

Page 59: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation59March 2006, PUG Norway

Application Context - Example

DEF VAR ctx-id as CHAR.

ctx-id = AUDIT-CONTROL:SET-APPL-CONTEXT

(PROGRAM-NAME(1) + " Context",

"Start Customer Enquiry Context").

AUDIT-CONTROL:CLEAR-APPL-CONTEXT.

Page 60: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation60March 2006, PUG Norway

Reporting on Event Context

Application context record (parent)• Event ID = 31998

• Unique guid in _Audit-data-guid

Audit data records within context• Secondary read required

• _Application-context-id = guid of parent

Recursive join on _aud-audit-data

AUDIT-CONTROL:SET-APPL-CONTEXT

Page 61: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation61March 2006, PUG Norway

Audit Event Groups

Indicates beginning of a sequence of ‘batched’ operations• Sent to all audit-enabled databases

• Can group multi-database transaction events

UUID used as context ID• Recorded with all subsequent audit events

– _aud-audit-data. _audit-event-group

Cannot be nested Event context argument cannot be unknown value

AUDIT-CONTROL:BEGIN-EVENT-GROUP method

Page 62: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation62March 2006, PUG Norway

End The Event Group

Ends an application event group• Sent to all audit-enabled databases

Does not generate an event

AUDIT-CONTROL:END-EVENT-GROUP method

Ctx-id = AUDIT-CONTROL:BEGIN-EVENT-GROUP

("Save Order Details-EVENT GROUP",

"Data-set SAVE-ROW-CHANGES",

cUserData).

AUDIT-CONTROL:END-EVENT-GROUP.

Page 63: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation63March 2006, PUG Norway

Reporting on Event Groups

Event group record (parent)• Event ID = 31999

• Unique guid in _Audit-data-guid

Audit data records within context• Secondary read required

• _Audit-event-group = guid of parent

Recursive join on _aud-audit-data

AUDIT-CONTROL:BEGIN-EVENT-GROUP

Page 64: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation64March 2006, PUG Norway

OpenEdge SQL Application Auditing

Log audit events

Set context and begin groups

AUDIT INSERT ( event_id,

[ event_context | NULL ],

[ event_detail | NULL ]);

AUDIT SET APPLICATION_CONTEXT | EVENT_GROUP

[ Context | NULL ];

Page 65: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation65March 2006, PUG Norway

Auditing in OpenEdge

Overview Getting started Audit Policy Maintenance Authentication Events

• Database

• Application

• Internal

Archiving Audit Data

Page 66: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation66March 2006, PUG Norway

What gets Audited?

Authentication (login) Database connections Schema changes Audit policy administration Security administration Database utilities Audit archiving

Internal events

Page 67: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation67March 2006, PUG Norway

What is NOT Audited?

Non record based utilities• Prolog, prostrct, …

Probkup, prorest, procopy Proutil

• Idxcheck, idxfix, index deactivate

Database utilities

Page 68: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation68March 2006, PUG Norway

Auditing in OpenEdge

Overview Getting started Audit Policy Maintenance Authentication Events

• Database

• Application

• Internal

Archiving Audit Data

Page 69: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation69March 2006, PUG Norway

Audit Archival Utility

Internal events

Short Term StoragePurposed, Long Term

Storage

ApplicationDB

Reporting

Audit Archiver

_proutil dbname –C auditarchive

Audit Data

.abd file

AuditArchive

_proutil dbname –C auditload

Audit ArchiveLoader

Audit Archive

DB

Page 70: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation70March 2006, PUG Norway

Audit Data Archival Utility

Must have Audit Archive privilege to run May be scheduled, e.g. CRON Fast binary dump / load using .abd file Optional delete of source audit data on dump Supports

• Multiple simultaneous invocation online

• Online operation

Is an auditable event

Archiving audit data

Page 71: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation71March 2006, PUG Norway

Audit Data Archival Utility

Date range format• “MM-DD-YYYY HH:MM:SS.SSS+HH:MM”

• Must be quoted

Records deleted num-recs at a time

_proutil <dbname> -C auditarchive

[date-range [date-range2]] [-recs num-recs]

[–nodelete] [-directory directory | /dev/null ]

[-userid userid –password password]

[-checkseal]

Audit Archive - command line syntax

Page 72: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation72March 2006, PUG Norway

Archive Load Operation

_proutil <dbname> -C auditload

audit-archive-file-name

[-userid userid –password password]

[-checkseal]

Records loaded num-recs at a time Duplicates are ignored

Loading audit data - command line syntax

Page 73: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation73March 2006, PUG Norway

Auditing in OpenEdge - Summary

10.1A provides uninterrupted trail of audit events• Database, application, internal

Secure, tamper resistant audit data and policies Flexible and scalable Built-in auditing for 4GL and SQL clients High performance

Page 74: Pat Bonser Product Readiness Auditing in OpenEdge ® PUG Norway Lillehammer March 16th & 17th

© 2006 Progress Software Corporation74March 2006, PUG Norway

Documentation and Education

OpenEdge • Getting Started: Core Business Services

Web papers Education

• What’s New 10.1 – Auditing