SlideShare a Scribd company logo
1 of 56
Download to read offline
Does Your IBM i Security
Meet the Bar for GDPR?
Jeff Uehling, Product Management Director
Guy Marmorat, Sales Engineering Director
Becky Hjellming, Product Marketing Director
1
Agenda
1. Identifying personal data
2. Identifying ways data is accessed
3. Securing data at the object level
4. Auditing changes to data at the object level
5. Auditing changes to data at the record level
6. Auditing data access
7. Protecting data at the record level
8. Protecting data at the object level
9. Advanced functions
10.How Syncsort can help
GDPR: Putting Effective Compliance Measures in Place
Identifying
Personal Data
3
You are using an ERP?
Ask the ISV!
You are using Tools?
Cross-reference,
Versioning,
Database modernization?
Do you maintain your
home-grown application?
Ask your developers!
DB Admin?
Ask them!
How do you collect
information on
DB2
IFS
Identifying Data
How to search for names of fields and tables?
SELECT SYSTEM_TABLE_SCHEMA library, SYSTEM_TABLE_NAME table, SYSTEM_COLUMN_NAME field, length,
data_type, column_text,column_heading FROM qsys2.syscolumns
WHERE length >= 20 and (lower(column_text) like '%name%' or lower(column_heading) like '%name%') and
table_schema in (‘LIB1’,’LIB2’,’LIB3’)
ORDER BY library,table,field ;
select * from qsys2.systables where (lower(table_text) like '%client%' or lower(table_text) like '%customer%') and
table_schema in (‘LIB1’,’LIB2’,’LIB3’) ;
How to search for names in the IFS?
cl: RTVDIRINF DIR('/') INFFILEPFX(RTVDIRINF) INFLIB(IJRNDEMOEX) OMIT('/QSYS.LIB' '/QIBM' '/QOPT' '/QOpenSys'
'/QTCPTMM' '/QJRN400');
SELECT * from ijrndemoex.rtvdirinfd where lower(qezdirnam1) like '%client%' or lower(qezdirnam1) like '%customer%' ;
SELECT * from ijrndemoex.rtvdirinfo where lower(qezobjnam) like '%client%' or lower(qezobjnam) like '%customer%' ;
DB2
IFS
Do It Yourself
Identifying Data
How to search for names of fields and tables using a dictionnary?
SELECT SYSTEM_TABLE_SCHEMA library, SYSTEM_TABLE_NAME table,
SYSTEM_COLUMN_NAME field, length, data_type, column_text,column_heading
FROM qsys2.syscolumns
Join gm.gdprdic
dic1 on lower(column_text concat column_heading) like '%' concat dic1.searchfor
concat '%' and length >= dic1.len
where table_schema in (‘LIB1’,’LIB2’,’LIB3’) ORDER BY library,table,field ;
DB2
SEARCHFOR LEN
name 20
address 20
zip 10
mail 20
city 20
country 20
tel 15
size of shoes 2
favorite chocolate 20
customer 8
client 6
Do It Yourself
Identifying Data
How to search for names in the IFS using a dictionnary?
SELECT
QEZDIRNAM1,QEZOBJNAM,QEZOBJTYPE,QEZDTASIZE,QEZOWN,QEZCRTTIM,QEZA
CCTIM,QEZCHGTIMD FROM ijrndemoex.rtvdirinfo o
left join ijrndemoex.rtvdirinfd d on o.QEZDIRIDX = d.QEZDIRIDX
join gm.gdprdic dic1 on lower(QEZDIRNAM1 concat QEZOBJNAM) like '%' concat
dic1.searchfor concat '%' ;
IFS
SEARCHFOR LEN
name 20
address 20
zip 10
mail 20
city 20
country 20
tel 15
size of shoes 2
favorite chocolate 20
customer 8
client 6
Do It Yourself
Identifying Ways
Data Is Accessed
8
Identifying Processes
DB2
IFS
How to analyze cross references ?
Static way:
cl: DSPPGMREF PGM(ERPPGM/*ALL) OUTPUT(*OUTFILE) OBJTYPE(*ALL) OUTFILE(QTEMP/PGMREF);
select * from qtemp.pgmref where WHSNAM = 'GLFCLIEN‘;
Limitations/traps: override, dynamic SQL, client server, logical files, …
Dynamic way: using QAUDJRN, for files with auditing value *ALL (triggered by commande CHGOBJAUD/CHGAUD)
select current_user current_user, job_name, program_library, program_name, remote_address, count(*) count from
table(qsys2.Display_Journal('QSYS','QAUDJRN', Journal_Codes => 'T')) as x
where object like '%GLFCLIEN%' and JOURNAL_ENTRY_TYPE in ('ZC', 'ZR')
group by current_user, job_name, program_library, program_name, remote_address
order by current_user, job_name, program_library, program_name, remote_address;
select current_user current_user, job_name, program_library, program_name, remote_address, count(*) count from
table(qsys2.Display_Journal('QSYS','QAUDJRN', Journal_Codes => 'T')) as x
where path_name like '/Customer_Info/%' and JOURNAL_ENTRY_TYPE in ('ZC', 'ZR')
group by current_user, job_name, program_library, program_name, remote_address
order by current_user, job_name, program_library, program_name, remote_address;
DB2
Do It Yourself
Securing Data
at the Object Level
10
Securing Data (Object Level)
Verify authorizations assigned to objects
DSPOBJD OBJ(ERPFILE/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(QTEMP/OBJ) OUTMBR(*FIRST *ADD)
Loop: DSPOBJAUT OBJ(ERPFILE/&ODOBNM) OBJTYPE(*FILE) OUTPUT(*OUTFILE) OUTFILE(QTEMP/AUT) OUTMBR(*FIRST *ADD)
SELECT oaname, oausr,oaobja,oaown,oaanam FROM aut
where oaown <> 'ERPOWNER' or oaanam <> 'ERPAUTL' or (oausr = '*PUBLIC' and oaobja <> '*EXCLUDE') or oausr not in
('ERPOWNER','*PUBLIC')
Do It Yourself
Securing Data (Object Level)
Verify authorizations assigned to objects (alternative)
api QUSLOBJ or SELECT * FROM TABLE(QSYS2.OBJECT_STATISTICS('ERPFILE', '*FILE')) as x
then, api QSYRTVUA "Retrieve Users Authorized to an Object"
SELECT oaname, oausr,oaobja,oaown,oaanam FROM aut
where oaown <> 'ERPOWNER' or oaanam <> 'ERPAUTL'
or (oausr = '*PUBLIC' and oaobja <> '*EXCLUDE')
or oausr not in ('ERPOWNER','*PUBLIC')
From IBM 7.3 TR2 and 7.2 TR6
SELECT priv.OBJECT_SCHEMA,priv.OBJECT_NAME,AUTHORIZATION_NAME,AUTHORIZATION_LIST,OBJECT_AUTHORITY FROM
QSYS2.OBJECT_PRIVILEGES priv
left join QSYS2.AUTHORIZATION_LIST_INFO autl on priv.SYSTEM_OBJECT_SCHEMA = autl.SYSTEM_OBJECT_SCHEMA and
priv.SYSTEM_OBJECT_NAME = autl.SYSTEM_OBJECT_NAME
WHERE priv.SYSTEM_OBJECT_SCHEMA = 'ERPFILE' and priv.SYSTEM_OBJECT_NAME in ('GLFCLIEN','GLFCUENTA') and
priv.OBJECT_TYPE = '*FILE';
QAUDJRN – related entry types
CA Authority changes
OW Object ownership changed
Do It Yourself
Securing Data (Object Level)
Verify programs that can obtain powerful authority
Using adopted authority:
DSPPGMADP USRPRF(QSECOFR) OUTPUT(*OUTFILE) OUTFILE(QTEMP/PGMADP)
Using swapping:
DSPPGMREF PGM(ERPPGM/*ALL) OUTPUT(*OUTFILE) OBJTYPE(*ALL) OUTFILE(QTEMP/PGMREF)
SELECT * FROM pgmref where whfnam in ('QSYGETPH','QWTSETP','QSYRLSPH')
QAUDJRN – related entry types
AP Obtaining adopted authority
PA Program changed to adopt authority
PS Profile swap
Do It Yourself
Securing Data (Object Level)
Verify user profiles
Review *ALLOBJ users
SELECT AUTHORIZATION_NAME, STATUS, NO_PASSWORD_INDICATOR, PREVIOUS_SIGNON,
TEXT_DESCRIPTION
FROM QSYS2.USER_INFO
WHERE SPECIAL_AUTHORITIES LIKE '%*ALLOBJ%‘ OR AUTHORIZATION_NAME IN (SELECT USER_PROFILE_NAME
FROM QSYS2.GROUP_PROFILE_ENTRIES
WHERE GROUP_PROFILE_NAME IN (
SELECT AUTHORIZATION_NAME
FROM QSYS2.USER_INFO
WHERE SPECIAL_AUTHORITIES like '%*ALLOBJ%'))
ORDER BY AUTHORIZATION_NAME;
Supplemental group profiles added to USER_INFO
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20
i%20Technology%20Updates/page/QSYS2.USER_INFO%20catalog
Review default passwords
Select authorization_name from user_info
where USER_DEFAULT_PASSWORD = 'YES'
Review group profiles and associated users
SELECT CAST(GROUPNAME AS CHAR(10)) AS GROUP,
CAST(USERNAME AS CHAR(10)) AS USER
FROM QSYS2.GROUP_PROFILE_ENTRIES
Checks inheritance from groups
(PRTUSRPRF does not work)
ANZDFTPWD
- Requires *SECADM and *ALLOBJ
- produces file QASECPWD that includes any user
- has an action option *DISABLE / *PWDEXP
User_info
Only *USRPRF objects that the user has *OBJOPR and
*READ authority to will be returned.
Do It Yourself
Securing Data (Object Level)
Verify user profiles
PLEASE REMEMBER
PuTTY, RmtCmd, ODBC allows running commands
even for limited users
Can be solved using Exit Programs
CHGUSRAUD USRPRF(XX) AUDLVL(*CMD)
Review users without limited capabilities
Select * from qsys2.user_info where LIMIT_CAPABILITIES = '*YES'
Review users with Password attempts
SELECT * FROM QSYS2.USER_INFO WHERE SIGN_ON_ATTEMPTS_NOT_VALID > 0
Review users not used within 90 days
SELECT AUTHORIZATION_NAME, STATUS, LAST_USED_TIMESTAMP
FROM QSYS2.USER_INFO
WHERE LAST_USED_TIMESTAMP < CURRENT TIMESTAMP – 90 DAYS
AND AUTHORIZATION_NAME <> 'QSECOFR'
AND STATUS <> '*DISABLED'
AND AUTHORIZATION_NAME NOT LIKE 'Q%'
ORDER BY 3 DESC;
Review users with command auditing
Select * from QSYS2.user_info where USER_ACTION_AUDIT_LEVEL like '%*CMD %'
Review objects *USRPRF that can be used by other users
SELECT * FROM QSYS2.OBJECT_PRIVILEGES
where OBJECT_TYPE = '*USRPRF' and
((AUTHORIZATION_NAME = '*PUBLIC' and OBJECT_AUTHORITY <> '*EXCLUDE')
or (AUTHORIZATION_NAME <> owner and AUTHORIZATION_NAME <>
System_object_name and AUTHORIZATION_NAME <> '*PUBLIC' and owner <> 'QSYS' ))
Submitting commands under other users
Do It Yourself
Auditing Changes to Data
at the Object Level
16
COMMAND & KEYWORD
CRTJRN, CHGJRN
Fixed length data . . . . . .FIXLENDTA
CRTJRN, CHGJRN
Manage receivers . . . . . . MNGRCV
CRTJRN, CHGJRN
Delete receivers . . . . . . . . DLTRCV
POSSIBLE VALUES
Single Values
*SAME *JOBUSRPGM
Other Values
*JOB *USR *PGM *PGMLIB *SYSSEQ *RMTADR
*THD *LUW *XID
*SYSTEM *USER
*NO *YES
Auditing Changes to Data
(Object Level) – Journals
HA solutions are able to keep a specific
amount of receivers online based on
the size, the number, the date, etc.
Your minimum retention period is at
least 3 days so you can investigate
any situation that happened
during the weekend on Monday.
Detachment based on the journal
receiver threshold and at each IPL
*JOBUSRPGM still the default value -
not allowed for QAUDJRN
*RMTADR and *PGMLIB are useful;
Auditing Changes to Data
(Object Level) – System Journal
How to find journal codes
and journal entry types?
Security Reference Guide, Appendix “Layout of audit journal entries” (only for Journal
Code = T)
Model files in QSYS (example : QASYCPJ5 for entry type CP)
(only for Journal Code = T)
Fields you may encounter in many entries for Journal Code T
XXETYP Type of Entry A 1
XXONAM Object Name A 10
XXOLIB Library name A 10
XXOTYP Object type A 8
XXPNM Path name A 5000
Are ZC entry types still
used for replication?
Very common to see ZC entries occupying a huge portion of the journal receivers.
ZC are triggered by changing the auditing value of an object to *CHANGE
CHGOBJAUD OBJ(ERPFILE/GLFCLIEN) OBJTYPE(*FILE) OBJAUD(*CHANGE)
Back before V5R2, there was no other way to detect a change in the file structure.
An entry ZC can correspond to different events for a file:
- Simply opening the file in update mode
- Alter table
- CHGPF
- RGZPFM
- ADDPFCST
- …..
Using the entries D in the database journal
don't cause this pollution and generate
dedicated entry types.
Website:
http://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_7
2/rzaru/rzarufinder.htm
Being more specific with what
event has to be recorded
Recording full commands?
What's new in 7.2?
What's new in 7.3?
QAUDLVL/2 Security auditing level
2 ways:
Record all commands for a specific user:
CHGUSRAUD USRPRF(XXX) AUDLVL(*CMD)
Record specific commands for any user:
CHGOBJAUD OBJ(QSYS/UPDDTA) OBJTYPE(*CMD)
OBJAUD(*ALL)
The CP (User Profile Changes) security audit
journal entry contains fields for all the
Create User Profile (CRTUSRPRF) command
parameters except TEXT and AUT and all
the Change User Profile (CHGUSRPRF)
command parameters except TEXT.
Auditing Changes to Data
(Object Level) – System Journal
*JOBDTA ==> *JOBBAS *JOBCHGUSR
*NETCMN ==> *NETBAS *NETCLU *NETFAIL *NETSCK
*SECURITY ==> *SECCFG *SECDIRSRV *SECIPC *SECNAS
*SECRUN *SECSCKD *SECVFY *SECVLDL
One CD entry is generated in QAUDJRN per
command run
An additional entry may be recorded for the
proxy command.
Another way is to register a program to
the exit point
QIBM_QCA_RTV_COMMAND
with the qualified command as a
parameter
Auditing Changes to Data (Object Level)
Better than DSPJRN
Querying the System Audit Journal
select JOURNAL_ENTRY_TYPE, current_user current_user, job_name, program_library, program_name,
remote_address, count(*) count from table(qsys2.Display_Journal('QSYS','QAUDJRN', Journal_Codes => 'T')) as x
where object like '%GLFCLIEN%'
group by JOURNAL_ENTRY_TYPE, current_user, job_name, program_library, program_name, remote_address
order by JOURNAL_ENTRY_TYPE, current_user, job_name, program_library, program_name, remote_address;
7.2+
Do It Yourself
Auditing Changes to Data
at the Record Level
21
Auditing Changes to Data (Record Level) –
Database Journal
C o m m a n d & Ke y w o r d
CRTJRN, CHGJRN
Minimize entry specific data . .
MINENTDTA
P o s s i b l e Va l u e s
Single Values *SAME *NONE
Other Values *FILE *FLDBDY *DTAARA
*FILE cannot be used for auditing,
everybody agrees.
IBM promotes *FLDBDY but…look at
these screen shots.
Only the changed values are displayed. To
get values of additional fields, you have to
create an SQL index and journalize it.
Not so easy…
Secure Journals and receivers
STRJRN,STRJRNPF, STRJRNLIB
Record images . . . . . . . . . IMAGES
STRJRN,STRJRNPF, STRJRNLIB
Journal entries to be omitted . OMTJRNE
CHGJRNOBJ OBJ((ERPFILE/GLFCLIEN
*FILE)) ATR(*IMAGES) IMAGES(*BOTH)
Correct Authorities on journals &
receivers
*AFTER *BOTH
*NONE *OPNCLO
Auditing Changes to Data (Record Level) –
Database Journal
*BOTH for important files
*NONE for files that require open auditing
Changes journaling attributes without the
need to end and restart journaling for the
object. Introduced in V5R3 !
Protecting the file while leaving the journal
data exposed
DISPLAY _JOURNAL() handles correctly RCAC
rules. Not the case for DSPJRN
IBM i 7.3 SF99703 Level 3 and IBM i 7.2
SF99702 Level 14
(https://www.ibm.com/developerworks/community
/wikis/home?lang=en#!/wiki/IBM%20i%20Technolo
gy%20Updates/page/DISPLAY_JOURNAL%20%28eas
ier%20searches%20of%20Audit%20Journal%29)
Auditing Changes to Data (Record Level)
Better than DSPJRN
Querying the Database Journal
Select entry_timestamp, JOURNAL_ENTRY_TYPE, current_user current_user, job_name, program_library,
program_name, remote_address, cast(entry_data as char(200)) Data
from table(Display_Journal('IJRNDTA','ERPJRN', starting_receiver_name => '*CURCHAIN')) as x
where object like '% GLFCLIEN %' and journal_code = 'R';
7.2+
Do It Yourself
Auditing Data Access
25
Auditing Data Access
Object level
• System audit journal - Auditing value *ALL generates ZC &
ZR entries
• Database journal - Parameter OMTJRNE(*NONE)
generates OP entries
• (exit point) QIBM_QDB_OPEN intercepts the openings of
files under audit in real time
Record level
• Application (ex: send “user entries” to a journal for specific
reads)  incomplete
• Field procedures (7.1)  gives the value of the field, not
the entire record
• Read triggers  it works, with limitations (not compatible
with RCAC)
At the object level – Who opened this file?
At the record level – Who read this record?
Impact on performance is a major concern
Alternative options : tokenization,
encryption, and RCAC (from IBM i 7.2)
Auditing Data Access
System Journal
select entry_timestamp, JOURNAL_ENTRY_TYPE,
current_user current_user, job_name, program_library,
program_name, remote_address from
table(qsys2.Display_Journal('QSYS','QAUDJRN',
Journal_Codes => 'T')) as x
where object like '%GLFCLIEN%' and
journal_entry_type in ('ZC','ZR');
DB2: CHGOBJAUD OBJ(erpfile/glfclien) OBJTYPE(*file) OBJAUD(*ALL)
IFS: CHGAUD OBJ('/customer_info/*') OBJAUD(*ALL) SUBTREE(*ALL)
Do It Yourself
DB2: STRJRNPF FILE(ERPFILE/GLFCLIEN) JRN(IJRNDTA/ERPJRN) IMAGES(*BOTH) OMTJRNE(*NONE)
CHGJRNOBJ OBJ((ERPFILE/GLFCLIEN *FILE)) ATR(*OMTJRNE) OMTJRNE(*NONE)
select entry_timestamp, JOURNAL_ENTRY_TYPE, current_user current_user, job_name, program_library,
program_name, remote_address from table(qsys2.Display_Journal('IJRNDTA','ERPJRN', Journal_Codes => 'F')) as x
where object like '%GLFCLIEN%' and journal_entry_type = 'OP';
Auditing Data Access
Database Journal
Do It Yourself
Protecting Data
at the Record Level
29
Protecting Data (Record Level) –
RCAC
• Fully data-centric, not dependent upon specific interfaces, not only
for SQL
• Works for any row operation (read, update, delete, insert). These SQL
statements transparently contain the condition exactly like a WHERE
clause.
• Relatively easy to implement
• “Silent” mechanism (no messages indicating rows are not permitted)
• Once activated, access to the rows is denied by default. Default
permission with condition 0=1
• Operations on permissions and ALTER TABLE require an exclusive lock
on the table.
• RCAC is processed after the object level security. But RCAC prevents a
user with authority on the table (even *ALLOBJ) to see a specific
subset of data.
• RCAC can impact performance; it has to be tested.
Limitations:
• Apply only to externally described files
• Read triggers not supported
• Legacy QRY/400 queries may have a
different behavior
How to do an inventory:
select * from syscontrols  dedicated view
for RCAC
select * from syscontrolsdep  dedicated
view for RCAC dependencies like functions
Protecting Data (Record Level) - RCAC
Separation of duties helps businesses comply with government regulations and simplifies the
management of authorities. It provides the ability for administrative functions to be divided across
individuals without overlapping responsibilities, so that one user does not possess unlimited authority,
such as with *ALLOBJ authority. The function, QIBM_DB_SECADM, provides a user with the ability to
grant authority, revoke authority, change ownership, or change primary group, but without giving
access to the object or, in the case of a database table, to the data that is in the table or allowing other
operations on the table.
QIBM_DB_SECADM function usage can be given only by a user with *SECADM special authority and can
be given to a user or a group.
QIBM_DB_SECADM is also responsible for administering Row and Column Access Control.
http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzarl/rzarlseparationofduties.htm
Official IBM presentation
HOW TO VERIFY?
select * from function_usage
where function_id =
'QIBM_DB_SECADM'
 list the registered users
select * from function_info
where function_id =
'QIBM_DB_SECADM'
 check the Default Authority and
*ALLOBJ special authority
HOW TO AUDIT?
Changes to Function Usage 
QAUDJRN/GR Action = ZC
Failures in Function Usage 
QAUDJRN/GR Field1 = *USAGEFAILURE
Changes to RCAC Functions 
QAUDJRN/AX
Changes to RCAC Functions  Exit
points & Database Monitor
Protecting Data (Record Level) –
RCAC
It is very important
to audit/protect
the changes to this
function ID and
usage
WRKFCNUSG
Protecting Data (Record Level) - RCAC
RCAC - Permissions
create permission erpfile.compidnot003 on erpfile.glfclien for rows where clicomp <> 003 enforced
for all access enable ;
create permission erpfile.user_gm on erpfile.glfclien for rows where current_user = 'GM' enforced
for all access enable ;
alter table erpfile.glfclien activate row access control ;
RCAC - Masks
create mask erpfile.mask_fax on erpfile.glfclien for column clifax2
return case
when current_user = 'GM' then clifax2
else '(Masked)'
end enable ;
alter table erpfile.glfclien activate column access control ;
Protecting Data
at the Object Level
Protecting Data
(Object Level)
Standard object level security model:
• A user who has *USE authority on a critical file can
download it using any method or protocol
• A user who has *CHANGE authority can change records
in a critical file using any method or protocol
Adopted authority model:
- We have to trust the programs
- Does not work with the IFS
Things to remember:
- *ALLOBJ profiles are not controlled
- A limited user can still run commands in remote mode
- No visibility for non-5250 access, no standard log
- There is a need for contextual security
Why do we need to reinforce object security?
And not replace it!
Ideal: Standard object level
security + access control
Protecting Data – Exit Points
Traditional exit points
• They are connected to Host and TCP/IP servers
• They cannot be unplugged for active jobs, with the exception of
TELNET
• They generally allow just one program per point
• They are unaware of port numbers
• They must reside in *SYSBAS
• They are different from each other
• Things to consider: IP Address, CCSID, authorities, activation group
• QIBM_QZDA_SQL2 is the most difficult one (potential impact on
performance)
• Limitations : carefully read the documentation
Command exit points
• One entry per command & timing (before or after options)
Other exit points
• Open database file
• Sockets
Protecting Data – Exit Points
http://www.ibm.com/support/
knowledgecenter/ssw_ibm_i_7
3/rzajr/rzajrmst35.htm
Access Methods and Exit Points
IFS QSYS.LIB
data
Access Methods and Exit Points
IFS QSYS.LIB
data
OTHERS
CLI QSQSRVR PHP, XML Service, …
QSQPRCED XDA, XDN, …
Sockets Socket programs
Open Source
Node.js, Python, Ruby
GCC, GIT, Orion, Perl…
OTHERS
CLI QSQSRVR PHP, XML Service, …
QSQPRCED XDA, XDN, …
Sockets Socket programs
Open Source
Node.js, Python, Ruby
GCC, GIT, Orion, Perl…
Access Methods and Exit Points
IFS QSYS.LIB
data
Access Methods and Exit Points
Real life situation & thoughts to share :
• Gap between the growing number of ways to access data and the
traditional exit points
• Gap between the typical IBM i administrators and the young IT people
• IBM promotes open source, which introduces new ways to access
data
• SQL is growing in term of it’s utilisation, power and complexity
• Exit programs add overhead and risk to production environments
• Database Monitor cannot block access and can also add overhead; it
is not a tool designed for security
• There are no exit points for the Unix space, this is still based on Syslog
files
• If you rely on RCAC, you still have to fully audit SQL and commands
- alter table … deactivate row access control ; drop
permission;
- CHGFCNUSG FCNID(QIBM_DB_SECADM)
This way of protecting data is
not efficient on today’s
systems with today’s
workloads.
We have to keep in mind that
more than 70% of fraudulent
acts are internal, which adds
a huge challenge.
Advanced Functions
Advanced Functions
GOAL/CONCERN ANSWER
Changes to System values QAUD* QAUDJRN- entry type SV
Changes to object auditing values QAUDJRN - entry type AD
Changes to user auditing values QAUDJRN - entry type AD
Changes to authority & ownership on
journals and receivers
QAUDJRN - entry type CA & OW
Deleting receivers outside of the normal
process
QAUDJRN - entry type DO with selection on
program/program library
Changes to journal attributes (FIXLENDTA,
MINENTDTA, DLTRCV)
QAUDJRN - entry type CD on command CHGJRN
(CRTJRN/CHGJRN must be audited with *ALL
before)
Stopping/starting journaling on DB2 files DB Journal - code F & types EJ/JM
Changing journaling on DB2 files (IMAGES,
OMTJRNE)
DB Journal - code D & types DJ
Stopping/starting journaling on IFS objects DB Journal - code B & types ET/JT
Changing journaling on IFS objects (IMAGES,
OMTJRNE)
DB Journal - code B & types JA
Commands RMVJRNCHG & APYJRNCHG
DB Journal - code D & type SR + code F & type RC
…(these commands should also be audited)
Changes to the security applications QAUDJRN & DB Journal
Other alternatives:
- audit these commands using
CHGOBJAUD
- Block these commands using
command exit point
How to audit changes in auditing
mechanism? Or in other words,
how to guarantee the integrity
of the audit trail itself?
How Syncsort
Can Help
Introducing
Syncsort
>7,000 customers
84 of the Fortune 100
Customers in >100 countries
Headquarters: Pearl River, NY
U . S . L O C AT I O N S
• Burlington, MA; Irvine, CA;
Oakbrook Terrace, IL; Rochester, MN
G L O B A L P R E S E N C E
• U.K., France, Germany, Netherlands,
Israel, Hong Kong & Japan
Big Iron to Big Data is a fast-growing
market segment composed of solutions
that optimize traditional data systems
and deliver mission-critical data from
these systems to next-generation
analytic environments.
Global leader in
Big Iron to Big Data
45
Optimize IntegrateAssure
Making Critical Data Useful
Improve performance
and control costs across
the full IT environment,
from legacy systems to
the cloud
Connect today’s data
infrastructure with
tomorrow’s technology –
and ensure data quality
– powering machine
learning, AI and
predictive analytics
Increase data availability
and provide security as
the world moves to
accessing data in 24x7
timeframes and data
protection becomes
mission critical
46
Take control of your IBM i
server security &
compliance requirements
to mitigate exposure
Experience near zero-
downtime hardware
migrations
Keep your data safe and
operations running
smoothly
Improve data availability to
virtually eliminate
downtime and data loss
Syncsort’s
Assure
Portfolio
47
Alliance
EnforciveCilasoft
Syncsort’s
Security
Solutions
Bring together industry leading
IBM i Security brands that
serve businesses of all sizes
worldwide
Quick
48
Sensitive Data Protection
Protect the privacy of sensitive
data by ensuring that it cannot be
read by unauthorized persons
Intrusion
Detection/Prevention
Ensure comprehensive control of
unauthorized access and the
ability to trace any activity,
suspicious or otherwise
Security & Compliance
Assessments
Assess your security risks or
regulatory complianceSyncsort Security
solutions address
issues that are on
every security officer
and administrator’s
radar screen Auditing and Monitoring
Gain visibility into all security
activity on your IBM i and
optionally feed it to an
enterprise console
49
Compliance Assessment
Identify deviations from
regulatory requirements to help
you achieve compliance and
maintain it
Security Risk
Assessment Service
Let Syncsort’s team of security
experts conduct a thorough risk
assessment and provide a report
with remediation guidance
Security Risk
Assessment Tool
Thoroughly check all aspects of
IBM i security and obtain detailed
reports and recommendations
Risk and
Compliance
Assessment
50
Multi-Factor
Authentication
Strengthen login security by
requiring multiple forms of
authentication
Elevated Authority
Management
Automatically elevate user
authority as-needed and on a
limited basis
Access Control
Secure all points of entry into to
your system including network
access, database access,
command line access and more
Password
Self-Service
Allow users to securely manage
their own passwords without
administrative support
Intrusion
Prevention and
Detection
51
Anonymization
Permanently replace sensitive
data with substitute values in test
or development environments or
when data is sent to 3rd parties
Tokenization
Remove sensitive data from a
server by replacing it with
substitute values that can be used
to retrieve the original data
Encryption
Transform human-readable
database fields into unreadable
cypher text using industry-
certified encryption & key
management solutions
Secure File Transfer
Securely transfer files across
internal or external networks
using encryption
Sensitive Data
Protection
52
ITOA Integration
Integrate IBM i security and
machine data with data from
other platforms to perform IT
operations analytics
SIEM Integration
Integrate IBM i security data with
data from other platforms by
transferring it to a Security
Information and Event
Management console
System & Database
Auditing
Simplify analysis of IBM i journals
to monitor for security incidents
and generate reports and alerts
Auditing and
Monitoring
53
54
Syncsort Can Help!
✓ Syncsort’s Security portfolio has grown rapidly through
acquisition
✓ Syncsort is a market leader in comprehensive solutions for
compliance, intrusion prevention and detection, sensitive
data protection, auditing and monitoring
✓ Global Professional Services add value to your investment
✓ Let’s explore how Syncsort can help keep your business
systems and data secure!
Learn more at
www.syncsort.com/en/assure
Q&A
Does Your IBM i Security Meet the Bar for GDPR?

More Related Content

What's hot

GreenDao Introduction
GreenDao IntroductionGreenDao Introduction
GreenDao IntroductionBooch Lin
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling rogerbodamer
 
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Oliver Gierke
 
Visualization of Supervised Learning with {arules} + {arulesViz}
Visualization of Supervised Learning with {arules} + {arulesViz}Visualization of Supervised Learning with {arules} + {arulesViz}
Visualization of Supervised Learning with {arules} + {arulesViz}Takashi J OZAKI
 
MongoDB and Indexes - MUG Denver - 20160329
MongoDB and Indexes - MUG Denver - 20160329MongoDB and Indexes - MUG Denver - 20160329
MongoDB and Indexes - MUG Denver - 20160329Douglas Duncan
 
Rapid and Scalable Development with MongoDB, PyMongo, and Ming
Rapid and Scalable Development with MongoDB, PyMongo, and MingRapid and Scalable Development with MongoDB, PyMongo, and Ming
Rapid and Scalable Development with MongoDB, PyMongo, and MingRick Copeland
 
Reading the .explain() Output
Reading the .explain() OutputReading the .explain() Output
Reading the .explain() OutputMongoDB
 
Fast querying indexing for performance (4)
Fast querying   indexing for performance (4)Fast querying   indexing for performance (4)
Fast querying indexing for performance (4)MongoDB
 
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard LibraryHidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Librarydoughellmann
 
ETL for Pros: Getting Data Into MongoDB
ETL for Pros: Getting Data Into MongoDBETL for Pros: Getting Data Into MongoDB
ETL for Pros: Getting Data Into MongoDBMongoDB
 
Create a Customized GMF DnD Framework
Create a Customized GMF DnD FrameworkCreate a Customized GMF DnD Framework
Create a Customized GMF DnD FrameworkKaniska Mandal
 
Mongo db readingdocumentusecases
Mongo db readingdocumentusecasesMongo db readingdocumentusecases
Mongo db readingdocumentusecaseszarigatongy
 
Zend Framework 1 + Doctrine 2
Zend Framework 1 + Doctrine 2Zend Framework 1 + Doctrine 2
Zend Framework 1 + Doctrine 2Ralph Schindler
 
JDBC - JPA - Spring Data
JDBC - JPA - Spring DataJDBC - JPA - Spring Data
JDBC - JPA - Spring DataArturs Drozdovs
 

What's hot (20)

GreenDao Introduction
GreenDao IntroductionGreenDao Introduction
GreenDao Introduction
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
 
Drupal7 dbtng
Drupal7  dbtngDrupal7  dbtng
Drupal7 dbtng
 
MongoDB-SESSION03
MongoDB-SESSION03MongoDB-SESSION03
MongoDB-SESSION03
 
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!
 
Web2py
Web2pyWeb2py
Web2py
 
Visualization of Supervised Learning with {arules} + {arulesViz}
Visualization of Supervised Learning with {arules} + {arulesViz}Visualization of Supervised Learning with {arules} + {arulesViz}
Visualization of Supervised Learning with {arules} + {arulesViz}
 
MongoDB and Indexes - MUG Denver - 20160329
MongoDB and Indexes - MUG Denver - 20160329MongoDB and Indexes - MUG Denver - 20160329
MongoDB and Indexes - MUG Denver - 20160329
 
Rapid and Scalable Development with MongoDB, PyMongo, and Ming
Rapid and Scalable Development with MongoDB, PyMongo, and MingRapid and Scalable Development with MongoDB, PyMongo, and Ming
Rapid and Scalable Development with MongoDB, PyMongo, and Ming
 
Sequelize
SequelizeSequelize
Sequelize
 
Reading the .explain() Output
Reading the .explain() OutputReading the .explain() Output
Reading the .explain() Output
 
Fast querying indexing for performance (4)
Fast querying   indexing for performance (4)Fast querying   indexing for performance (4)
Fast querying indexing for performance (4)
 
IT6801-Service Oriented Architecture-Unit-2-notes
IT6801-Service Oriented Architecture-Unit-2-notesIT6801-Service Oriented Architecture-Unit-2-notes
IT6801-Service Oriented Architecture-Unit-2-notes
 
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard LibraryHidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
 
ETL for Pros: Getting Data Into MongoDB
ETL for Pros: Getting Data Into MongoDBETL for Pros: Getting Data Into MongoDB
ETL for Pros: Getting Data Into MongoDB
 
Create a Customized GMF DnD Framework
Create a Customized GMF DnD FrameworkCreate a Customized GMF DnD Framework
Create a Customized GMF DnD Framework
 
Postgresql Server Programming
Postgresql Server ProgrammingPostgresql Server Programming
Postgresql Server Programming
 
Mongo db readingdocumentusecases
Mongo db readingdocumentusecasesMongo db readingdocumentusecases
Mongo db readingdocumentusecases
 
Zend Framework 1 + Doctrine 2
Zend Framework 1 + Doctrine 2Zend Framework 1 + Doctrine 2
Zend Framework 1 + Doctrine 2
 
JDBC - JPA - Spring Data
JDBC - JPA - Spring DataJDBC - JPA - Spring Data
JDBC - JPA - Spring Data
 

Similar to Does Your IBM i Security Meet the Bar for GDPR?

Odv oracle customer_demo
Odv oracle customer_demoOdv oracle customer_demo
Odv oracle customer_demoViaggio Italia
 
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...Big Data Spain
 
SequoiaDB Distributed Relational Database
SequoiaDB Distributed Relational DatabaseSequoiaDB Distributed Relational Database
SequoiaDB Distributed Relational Databasewangzhonnew
 
Kerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastKerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastJorge Lopez-Malla
 
Distributed Queries in IDS: New features.
Distributed Queries in IDS: New features.Distributed Queries in IDS: New features.
Distributed Queries in IDS: New features.Keshav Murthy
 
Data Tracking: On the Hunt for Information about Your Database
Data Tracking: On the Hunt for Information about Your DatabaseData Tracking: On the Hunt for Information about Your Database
Data Tracking: On the Hunt for Information about Your DatabaseMichael Rosenblum
 
Big Data: Getting off to a fast start with Big SQL (World of Watson 2016 sess...
Big Data: Getting off to a fast start with Big SQL (World of Watson 2016 sess...Big Data: Getting off to a fast start with Big SQL (World of Watson 2016 sess...
Big Data: Getting off to a fast start with Big SQL (World of Watson 2016 sess...Cynthia Saracco
 
Top Ten Settings that Leave your IBM i Vulnerable
Top Ten Settings that Leave your IBM i VulnerableTop Ten Settings that Leave your IBM i Vulnerable
Top Ten Settings that Leave your IBM i VulnerablePrecisely
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
 
Firebird Security (in English): The Past and The Future
Firebird Security (in English): The Past and The FutureFirebird Security (in English): The Past and The Future
Firebird Security (in English): The Past and The FutureAlexey Kovyazin
 
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법GangSeok Lee
 
Innovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and MonitoringInnovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and MonitoringCary Millsap
 
監査ログをもっと身近に!〜統合監査のすすめ〜
監査ログをもっと身近に!〜統合監査のすすめ〜監査ログをもっと身近に!〜統合監査のすすめ〜
監査ログをもっと身近に!〜統合監査のすすめ〜Michitoshi Yoshida
 
Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Stamatis Zampetakis
 
Micro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateMicro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateKiev ALT.NET
 
Data Exploration with Apache Drill: Day 1
Data Exploration with Apache Drill:  Day 1Data Exploration with Apache Drill:  Day 1
Data Exploration with Apache Drill: Day 1Charles Givre
 
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeBoost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeMarco Gralike
 

Similar to Does Your IBM i Security Meet the Bar for GDPR? (20)

Overview of RedDatabase 2.5
Overview of RedDatabase 2.5Overview of RedDatabase 2.5
Overview of RedDatabase 2.5
 
Odv oracle customer_demo
Odv oracle customer_demoOdv oracle customer_demo
Odv oracle customer_demo
 
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...
 
SequoiaDB Distributed Relational Database
SequoiaDB Distributed Relational DatabaseSequoiaDB Distributed Relational Database
SequoiaDB Distributed Relational Database
 
Kerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastKerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit east
 
Distributed Queries in IDS: New features.
Distributed Queries in IDS: New features.Distributed Queries in IDS: New features.
Distributed Queries in IDS: New features.
 
Data Tracking: On the Hunt for Information about Your Database
Data Tracking: On the Hunt for Information about Your DatabaseData Tracking: On the Hunt for Information about Your Database
Data Tracking: On the Hunt for Information about Your Database
 
Big Data: Getting off to a fast start with Big SQL (World of Watson 2016 sess...
Big Data: Getting off to a fast start with Big SQL (World of Watson 2016 sess...Big Data: Getting off to a fast start with Big SQL (World of Watson 2016 sess...
Big Data: Getting off to a fast start with Big SQL (World of Watson 2016 sess...
 
Top Ten Settings that Leave your IBM i Vulnerable
Top Ten Settings that Leave your IBM i VulnerableTop Ten Settings that Leave your IBM i Vulnerable
Top Ten Settings that Leave your IBM i Vulnerable
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
Firebird Security (in English): The Past and The Future
Firebird Security (in English): The Past and The FutureFirebird Security (in English): The Past and The Future
Firebird Security (in English): The Past and The Future
 
Firebird
FirebirdFirebird
Firebird
 
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
 
Innovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and MonitoringInnovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and Monitoring
 
監査ログをもっと身近に!〜統合監査のすすめ〜
監査ログをもっと身近に!〜統合監査のすすめ〜監査ログをもっと身近に!〜統合監査のすすめ〜
監査ログをもっと身近に!〜統合監査のすすめ〜
 
Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21
 
Micro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateMicro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicate
 
Data Exploration with Apache Drill: Day 1
Data Exploration with Apache Drill:  Day 1Data Exploration with Apache Drill:  Day 1
Data Exploration with Apache Drill: Day 1
 
Oracle training in hyderabad
Oracle training in hyderabadOracle training in hyderabad
Oracle training in hyderabad
 
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeBoost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
 

More from Precisely

Navigating the Cloud: Best Practices for Successful Migration
Navigating the Cloud: Best Practices for Successful MigrationNavigating the Cloud: Best Practices for Successful Migration
Navigating the Cloud: Best Practices for Successful MigrationPrecisely
 
Unlocking the Power of Your IBM i and Z Security Data with Google Chronicle
Unlocking the Power of Your IBM i and Z Security Data with Google ChronicleUnlocking the Power of Your IBM i and Z Security Data with Google Chronicle
Unlocking the Power of Your IBM i and Z Security Data with Google ChroniclePrecisely
 
How to Build Data Governance Programs That Last - A Business-First Approach.pdf
How to Build Data Governance Programs That Last - A Business-First Approach.pdfHow to Build Data Governance Programs That Last - A Business-First Approach.pdf
How to Build Data Governance Programs That Last - A Business-First Approach.pdfPrecisely
 
Zukuntssichere SAP Prozesse dank automatisierter Massendaten
Zukuntssichere SAP Prozesse dank automatisierter MassendatenZukuntssichere SAP Prozesse dank automatisierter Massendaten
Zukuntssichere SAP Prozesse dank automatisierter MassendatenPrecisely
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Crucial Considerations for AI-ready Data.pdf
Crucial Considerations for AI-ready Data.pdfCrucial Considerations for AI-ready Data.pdf
Crucial Considerations for AI-ready Data.pdfPrecisely
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Justifying Capacity Managment Webinar 4/10
Justifying Capacity Managment Webinar 4/10Justifying Capacity Managment Webinar 4/10
Justifying Capacity Managment Webinar 4/10Precisely
 
Automate Studio Training: Materials Maintenance Tips for Efficiency and Ease ...
Automate Studio Training: Materials Maintenance Tips for Efficiency and Ease ...Automate Studio Training: Materials Maintenance Tips for Efficiency and Ease ...
Automate Studio Training: Materials Maintenance Tips for Efficiency and Ease ...Precisely
 
Leveraging Mainframe Data in Near Real Time to Unleash Innovation With Cloud:...
Leveraging Mainframe Data in Near Real Time to Unleash Innovation With Cloud:...Leveraging Mainframe Data in Near Real Time to Unleash Innovation With Cloud:...
Leveraging Mainframe Data in Near Real Time to Unleash Innovation With Cloud:...Precisely
 
Testjrjnejrvnorno4rno3nrfnfjnrfnournfou3nfou3f
Testjrjnejrvnorno4rno3nrfnfjnrfnournfou3nfou3fTestjrjnejrvnorno4rno3nrfnfjnrfnournfou3nfou3f
Testjrjnejrvnorno4rno3nrfnfjnrfnournfou3nfou3fPrecisely
 
Data Innovation Summit: Data Integrity Trends
Data Innovation Summit: Data Integrity TrendsData Innovation Summit: Data Integrity Trends
Data Innovation Summit: Data Integrity TrendsPrecisely
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Optimisez la fonction financière en automatisant vos processus SAP
Optimisez la fonction financière en automatisant vos processus SAPOptimisez la fonction financière en automatisant vos processus SAP
Optimisez la fonction financière en automatisant vos processus SAPPrecisely
 
SAPS/4HANA Migration - Transformation-Management + nachhaltige Investitionen
SAPS/4HANA Migration - Transformation-Management + nachhaltige InvestitionenSAPS/4HANA Migration - Transformation-Management + nachhaltige Investitionen
SAPS/4HANA Migration - Transformation-Management + nachhaltige InvestitionenPrecisely
 
Automatisierte SAP Prozesse mit Hilfe von APIs
Automatisierte SAP Prozesse mit Hilfe von APIsAutomatisierte SAP Prozesse mit Hilfe von APIs
Automatisierte SAP Prozesse mit Hilfe von APIsPrecisely
 
Moving IBM i Applications to the Cloud with AWS and Precisely
Moving IBM i Applications to the Cloud with AWS and PreciselyMoving IBM i Applications to the Cloud with AWS and Precisely
Moving IBM i Applications to the Cloud with AWS and PreciselyPrecisely
 
Effective Security Monitoring for IBM i: What You Need to Know
Effective Security Monitoring for IBM i: What You Need to KnowEffective Security Monitoring for IBM i: What You Need to Know
Effective Security Monitoring for IBM i: What You Need to KnowPrecisely
 
Automate Your Master Data Processes for Shared Service Center Excellence
Automate Your Master Data Processes for Shared Service Center ExcellenceAutomate Your Master Data Processes for Shared Service Center Excellence
Automate Your Master Data Processes for Shared Service Center ExcellencePrecisely
 
5 Keys to Improved IT Operation Management
5 Keys to Improved IT Operation Management5 Keys to Improved IT Operation Management
5 Keys to Improved IT Operation ManagementPrecisely
 

More from Precisely (20)

Navigating the Cloud: Best Practices for Successful Migration
Navigating the Cloud: Best Practices for Successful MigrationNavigating the Cloud: Best Practices for Successful Migration
Navigating the Cloud: Best Practices for Successful Migration
 
Unlocking the Power of Your IBM i and Z Security Data with Google Chronicle
Unlocking the Power of Your IBM i and Z Security Data with Google ChronicleUnlocking the Power of Your IBM i and Z Security Data with Google Chronicle
Unlocking the Power of Your IBM i and Z Security Data with Google Chronicle
 
How to Build Data Governance Programs That Last - A Business-First Approach.pdf
How to Build Data Governance Programs That Last - A Business-First Approach.pdfHow to Build Data Governance Programs That Last - A Business-First Approach.pdf
How to Build Data Governance Programs That Last - A Business-First Approach.pdf
 
Zukuntssichere SAP Prozesse dank automatisierter Massendaten
Zukuntssichere SAP Prozesse dank automatisierter MassendatenZukuntssichere SAP Prozesse dank automatisierter Massendaten
Zukuntssichere SAP Prozesse dank automatisierter Massendaten
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Crucial Considerations for AI-ready Data.pdf
Crucial Considerations for AI-ready Data.pdfCrucial Considerations for AI-ready Data.pdf
Crucial Considerations for AI-ready Data.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Justifying Capacity Managment Webinar 4/10
Justifying Capacity Managment Webinar 4/10Justifying Capacity Managment Webinar 4/10
Justifying Capacity Managment Webinar 4/10
 
Automate Studio Training: Materials Maintenance Tips for Efficiency and Ease ...
Automate Studio Training: Materials Maintenance Tips for Efficiency and Ease ...Automate Studio Training: Materials Maintenance Tips for Efficiency and Ease ...
Automate Studio Training: Materials Maintenance Tips for Efficiency and Ease ...
 
Leveraging Mainframe Data in Near Real Time to Unleash Innovation With Cloud:...
Leveraging Mainframe Data in Near Real Time to Unleash Innovation With Cloud:...Leveraging Mainframe Data in Near Real Time to Unleash Innovation With Cloud:...
Leveraging Mainframe Data in Near Real Time to Unleash Innovation With Cloud:...
 
Testjrjnejrvnorno4rno3nrfnfjnrfnournfou3nfou3f
Testjrjnejrvnorno4rno3nrfnfjnrfnournfou3nfou3fTestjrjnejrvnorno4rno3nrfnfjnrfnournfou3nfou3f
Testjrjnejrvnorno4rno3nrfnfjnrfnournfou3nfou3f
 
Data Innovation Summit: Data Integrity Trends
Data Innovation Summit: Data Integrity TrendsData Innovation Summit: Data Integrity Trends
Data Innovation Summit: Data Integrity Trends
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Optimisez la fonction financière en automatisant vos processus SAP
Optimisez la fonction financière en automatisant vos processus SAPOptimisez la fonction financière en automatisant vos processus SAP
Optimisez la fonction financière en automatisant vos processus SAP
 
SAPS/4HANA Migration - Transformation-Management + nachhaltige Investitionen
SAPS/4HANA Migration - Transformation-Management + nachhaltige InvestitionenSAPS/4HANA Migration - Transformation-Management + nachhaltige Investitionen
SAPS/4HANA Migration - Transformation-Management + nachhaltige Investitionen
 
Automatisierte SAP Prozesse mit Hilfe von APIs
Automatisierte SAP Prozesse mit Hilfe von APIsAutomatisierte SAP Prozesse mit Hilfe von APIs
Automatisierte SAP Prozesse mit Hilfe von APIs
 
Moving IBM i Applications to the Cloud with AWS and Precisely
Moving IBM i Applications to the Cloud with AWS and PreciselyMoving IBM i Applications to the Cloud with AWS and Precisely
Moving IBM i Applications to the Cloud with AWS and Precisely
 
Effective Security Monitoring for IBM i: What You Need to Know
Effective Security Monitoring for IBM i: What You Need to KnowEffective Security Monitoring for IBM i: What You Need to Know
Effective Security Monitoring for IBM i: What You Need to Know
 
Automate Your Master Data Processes for Shared Service Center Excellence
Automate Your Master Data Processes for Shared Service Center ExcellenceAutomate Your Master Data Processes for Shared Service Center Excellence
Automate Your Master Data Processes for Shared Service Center Excellence
 
5 Keys to Improved IT Operation Management
5 Keys to Improved IT Operation Management5 Keys to Improved IT Operation Management
5 Keys to Improved IT Operation Management
 

Recently uploaded

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingWSO2
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....rightmanforbloodline
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxMarkSteadman7
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governanceWSO2
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Recently uploaded (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Does Your IBM i Security Meet the Bar for GDPR?

  • 1. Does Your IBM i Security Meet the Bar for GDPR? Jeff Uehling, Product Management Director Guy Marmorat, Sales Engineering Director Becky Hjellming, Product Marketing Director 1
  • 2. Agenda 1. Identifying personal data 2. Identifying ways data is accessed 3. Securing data at the object level 4. Auditing changes to data at the object level 5. Auditing changes to data at the record level 6. Auditing data access 7. Protecting data at the record level 8. Protecting data at the object level 9. Advanced functions 10.How Syncsort can help GDPR: Putting Effective Compliance Measures in Place
  • 4. You are using an ERP? Ask the ISV! You are using Tools? Cross-reference, Versioning, Database modernization? Do you maintain your home-grown application? Ask your developers! DB Admin? Ask them! How do you collect information on DB2 IFS
  • 5. Identifying Data How to search for names of fields and tables? SELECT SYSTEM_TABLE_SCHEMA library, SYSTEM_TABLE_NAME table, SYSTEM_COLUMN_NAME field, length, data_type, column_text,column_heading FROM qsys2.syscolumns WHERE length >= 20 and (lower(column_text) like '%name%' or lower(column_heading) like '%name%') and table_schema in (‘LIB1’,’LIB2’,’LIB3’) ORDER BY library,table,field ; select * from qsys2.systables where (lower(table_text) like '%client%' or lower(table_text) like '%customer%') and table_schema in (‘LIB1’,’LIB2’,’LIB3’) ; How to search for names in the IFS? cl: RTVDIRINF DIR('/') INFFILEPFX(RTVDIRINF) INFLIB(IJRNDEMOEX) OMIT('/QSYS.LIB' '/QIBM' '/QOPT' '/QOpenSys' '/QTCPTMM' '/QJRN400'); SELECT * from ijrndemoex.rtvdirinfd where lower(qezdirnam1) like '%client%' or lower(qezdirnam1) like '%customer%' ; SELECT * from ijrndemoex.rtvdirinfo where lower(qezobjnam) like '%client%' or lower(qezobjnam) like '%customer%' ; DB2 IFS Do It Yourself
  • 6. Identifying Data How to search for names of fields and tables using a dictionnary? SELECT SYSTEM_TABLE_SCHEMA library, SYSTEM_TABLE_NAME table, SYSTEM_COLUMN_NAME field, length, data_type, column_text,column_heading FROM qsys2.syscolumns Join gm.gdprdic dic1 on lower(column_text concat column_heading) like '%' concat dic1.searchfor concat '%' and length >= dic1.len where table_schema in (‘LIB1’,’LIB2’,’LIB3’) ORDER BY library,table,field ; DB2 SEARCHFOR LEN name 20 address 20 zip 10 mail 20 city 20 country 20 tel 15 size of shoes 2 favorite chocolate 20 customer 8 client 6 Do It Yourself
  • 7. Identifying Data How to search for names in the IFS using a dictionnary? SELECT QEZDIRNAM1,QEZOBJNAM,QEZOBJTYPE,QEZDTASIZE,QEZOWN,QEZCRTTIM,QEZA CCTIM,QEZCHGTIMD FROM ijrndemoex.rtvdirinfo o left join ijrndemoex.rtvdirinfd d on o.QEZDIRIDX = d.QEZDIRIDX join gm.gdprdic dic1 on lower(QEZDIRNAM1 concat QEZOBJNAM) like '%' concat dic1.searchfor concat '%' ; IFS SEARCHFOR LEN name 20 address 20 zip 10 mail 20 city 20 country 20 tel 15 size of shoes 2 favorite chocolate 20 customer 8 client 6 Do It Yourself
  • 9. Identifying Processes DB2 IFS How to analyze cross references ? Static way: cl: DSPPGMREF PGM(ERPPGM/*ALL) OUTPUT(*OUTFILE) OBJTYPE(*ALL) OUTFILE(QTEMP/PGMREF); select * from qtemp.pgmref where WHSNAM = 'GLFCLIEN‘; Limitations/traps: override, dynamic SQL, client server, logical files, … Dynamic way: using QAUDJRN, for files with auditing value *ALL (triggered by commande CHGOBJAUD/CHGAUD) select current_user current_user, job_name, program_library, program_name, remote_address, count(*) count from table(qsys2.Display_Journal('QSYS','QAUDJRN', Journal_Codes => 'T')) as x where object like '%GLFCLIEN%' and JOURNAL_ENTRY_TYPE in ('ZC', 'ZR') group by current_user, job_name, program_library, program_name, remote_address order by current_user, job_name, program_library, program_name, remote_address; select current_user current_user, job_name, program_library, program_name, remote_address, count(*) count from table(qsys2.Display_Journal('QSYS','QAUDJRN', Journal_Codes => 'T')) as x where path_name like '/Customer_Info/%' and JOURNAL_ENTRY_TYPE in ('ZC', 'ZR') group by current_user, job_name, program_library, program_name, remote_address order by current_user, job_name, program_library, program_name, remote_address; DB2 Do It Yourself
  • 10. Securing Data at the Object Level 10
  • 11. Securing Data (Object Level) Verify authorizations assigned to objects DSPOBJD OBJ(ERPFILE/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(QTEMP/OBJ) OUTMBR(*FIRST *ADD) Loop: DSPOBJAUT OBJ(ERPFILE/&ODOBNM) OBJTYPE(*FILE) OUTPUT(*OUTFILE) OUTFILE(QTEMP/AUT) OUTMBR(*FIRST *ADD) SELECT oaname, oausr,oaobja,oaown,oaanam FROM aut where oaown <> 'ERPOWNER' or oaanam <> 'ERPAUTL' or (oausr = '*PUBLIC' and oaobja <> '*EXCLUDE') or oausr not in ('ERPOWNER','*PUBLIC') Do It Yourself
  • 12. Securing Data (Object Level) Verify authorizations assigned to objects (alternative) api QUSLOBJ or SELECT * FROM TABLE(QSYS2.OBJECT_STATISTICS('ERPFILE', '*FILE')) as x then, api QSYRTVUA "Retrieve Users Authorized to an Object" SELECT oaname, oausr,oaobja,oaown,oaanam FROM aut where oaown <> 'ERPOWNER' or oaanam <> 'ERPAUTL' or (oausr = '*PUBLIC' and oaobja <> '*EXCLUDE') or oausr not in ('ERPOWNER','*PUBLIC') From IBM 7.3 TR2 and 7.2 TR6 SELECT priv.OBJECT_SCHEMA,priv.OBJECT_NAME,AUTHORIZATION_NAME,AUTHORIZATION_LIST,OBJECT_AUTHORITY FROM QSYS2.OBJECT_PRIVILEGES priv left join QSYS2.AUTHORIZATION_LIST_INFO autl on priv.SYSTEM_OBJECT_SCHEMA = autl.SYSTEM_OBJECT_SCHEMA and priv.SYSTEM_OBJECT_NAME = autl.SYSTEM_OBJECT_NAME WHERE priv.SYSTEM_OBJECT_SCHEMA = 'ERPFILE' and priv.SYSTEM_OBJECT_NAME in ('GLFCLIEN','GLFCUENTA') and priv.OBJECT_TYPE = '*FILE'; QAUDJRN – related entry types CA Authority changes OW Object ownership changed Do It Yourself
  • 13. Securing Data (Object Level) Verify programs that can obtain powerful authority Using adopted authority: DSPPGMADP USRPRF(QSECOFR) OUTPUT(*OUTFILE) OUTFILE(QTEMP/PGMADP) Using swapping: DSPPGMREF PGM(ERPPGM/*ALL) OUTPUT(*OUTFILE) OBJTYPE(*ALL) OUTFILE(QTEMP/PGMREF) SELECT * FROM pgmref where whfnam in ('QSYGETPH','QWTSETP','QSYRLSPH') QAUDJRN – related entry types AP Obtaining adopted authority PA Program changed to adopt authority PS Profile swap Do It Yourself
  • 14. Securing Data (Object Level) Verify user profiles Review *ALLOBJ users SELECT AUTHORIZATION_NAME, STATUS, NO_PASSWORD_INDICATOR, PREVIOUS_SIGNON, TEXT_DESCRIPTION FROM QSYS2.USER_INFO WHERE SPECIAL_AUTHORITIES LIKE '%*ALLOBJ%‘ OR AUTHORIZATION_NAME IN (SELECT USER_PROFILE_NAME FROM QSYS2.GROUP_PROFILE_ENTRIES WHERE GROUP_PROFILE_NAME IN ( SELECT AUTHORIZATION_NAME FROM QSYS2.USER_INFO WHERE SPECIAL_AUTHORITIES like '%*ALLOBJ%')) ORDER BY AUTHORIZATION_NAME; Supplemental group profiles added to USER_INFO https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20 i%20Technology%20Updates/page/QSYS2.USER_INFO%20catalog Review default passwords Select authorization_name from user_info where USER_DEFAULT_PASSWORD = 'YES' Review group profiles and associated users SELECT CAST(GROUPNAME AS CHAR(10)) AS GROUP, CAST(USERNAME AS CHAR(10)) AS USER FROM QSYS2.GROUP_PROFILE_ENTRIES Checks inheritance from groups (PRTUSRPRF does not work) ANZDFTPWD - Requires *SECADM and *ALLOBJ - produces file QASECPWD that includes any user - has an action option *DISABLE / *PWDEXP User_info Only *USRPRF objects that the user has *OBJOPR and *READ authority to will be returned. Do It Yourself
  • 15. Securing Data (Object Level) Verify user profiles PLEASE REMEMBER PuTTY, RmtCmd, ODBC allows running commands even for limited users Can be solved using Exit Programs CHGUSRAUD USRPRF(XX) AUDLVL(*CMD) Review users without limited capabilities Select * from qsys2.user_info where LIMIT_CAPABILITIES = '*YES' Review users with Password attempts SELECT * FROM QSYS2.USER_INFO WHERE SIGN_ON_ATTEMPTS_NOT_VALID > 0 Review users not used within 90 days SELECT AUTHORIZATION_NAME, STATUS, LAST_USED_TIMESTAMP FROM QSYS2.USER_INFO WHERE LAST_USED_TIMESTAMP < CURRENT TIMESTAMP – 90 DAYS AND AUTHORIZATION_NAME <> 'QSECOFR' AND STATUS <> '*DISABLED' AND AUTHORIZATION_NAME NOT LIKE 'Q%' ORDER BY 3 DESC; Review users with command auditing Select * from QSYS2.user_info where USER_ACTION_AUDIT_LEVEL like '%*CMD %' Review objects *USRPRF that can be used by other users SELECT * FROM QSYS2.OBJECT_PRIVILEGES where OBJECT_TYPE = '*USRPRF' and ((AUTHORIZATION_NAME = '*PUBLIC' and OBJECT_AUTHORITY <> '*EXCLUDE') or (AUTHORIZATION_NAME <> owner and AUTHORIZATION_NAME <> System_object_name and AUTHORIZATION_NAME <> '*PUBLIC' and owner <> 'QSYS' )) Submitting commands under other users Do It Yourself
  • 16. Auditing Changes to Data at the Object Level 16
  • 17. COMMAND & KEYWORD CRTJRN, CHGJRN Fixed length data . . . . . .FIXLENDTA CRTJRN, CHGJRN Manage receivers . . . . . . MNGRCV CRTJRN, CHGJRN Delete receivers . . . . . . . . DLTRCV POSSIBLE VALUES Single Values *SAME *JOBUSRPGM Other Values *JOB *USR *PGM *PGMLIB *SYSSEQ *RMTADR *THD *LUW *XID *SYSTEM *USER *NO *YES Auditing Changes to Data (Object Level) – Journals HA solutions are able to keep a specific amount of receivers online based on the size, the number, the date, etc. Your minimum retention period is at least 3 days so you can investigate any situation that happened during the weekend on Monday. Detachment based on the journal receiver threshold and at each IPL *JOBUSRPGM still the default value - not allowed for QAUDJRN *RMTADR and *PGMLIB are useful;
  • 18. Auditing Changes to Data (Object Level) – System Journal How to find journal codes and journal entry types? Security Reference Guide, Appendix “Layout of audit journal entries” (only for Journal Code = T) Model files in QSYS (example : QASYCPJ5 for entry type CP) (only for Journal Code = T) Fields you may encounter in many entries for Journal Code T XXETYP Type of Entry A 1 XXONAM Object Name A 10 XXOLIB Library name A 10 XXOTYP Object type A 8 XXPNM Path name A 5000 Are ZC entry types still used for replication? Very common to see ZC entries occupying a huge portion of the journal receivers. ZC are triggered by changing the auditing value of an object to *CHANGE CHGOBJAUD OBJ(ERPFILE/GLFCLIEN) OBJTYPE(*FILE) OBJAUD(*CHANGE) Back before V5R2, there was no other way to detect a change in the file structure. An entry ZC can correspond to different events for a file: - Simply opening the file in update mode - Alter table - CHGPF - RGZPFM - ADDPFCST - ….. Using the entries D in the database journal don't cause this pollution and generate dedicated entry types. Website: http://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_7 2/rzaru/rzarufinder.htm
  • 19. Being more specific with what event has to be recorded Recording full commands? What's new in 7.2? What's new in 7.3? QAUDLVL/2 Security auditing level 2 ways: Record all commands for a specific user: CHGUSRAUD USRPRF(XXX) AUDLVL(*CMD) Record specific commands for any user: CHGOBJAUD OBJ(QSYS/UPDDTA) OBJTYPE(*CMD) OBJAUD(*ALL) The CP (User Profile Changes) security audit journal entry contains fields for all the Create User Profile (CRTUSRPRF) command parameters except TEXT and AUT and all the Change User Profile (CHGUSRPRF) command parameters except TEXT. Auditing Changes to Data (Object Level) – System Journal *JOBDTA ==> *JOBBAS *JOBCHGUSR *NETCMN ==> *NETBAS *NETCLU *NETFAIL *NETSCK *SECURITY ==> *SECCFG *SECDIRSRV *SECIPC *SECNAS *SECRUN *SECSCKD *SECVFY *SECVLDL One CD entry is generated in QAUDJRN per command run An additional entry may be recorded for the proxy command. Another way is to register a program to the exit point QIBM_QCA_RTV_COMMAND with the qualified command as a parameter
  • 20. Auditing Changes to Data (Object Level) Better than DSPJRN Querying the System Audit Journal select JOURNAL_ENTRY_TYPE, current_user current_user, job_name, program_library, program_name, remote_address, count(*) count from table(qsys2.Display_Journal('QSYS','QAUDJRN', Journal_Codes => 'T')) as x where object like '%GLFCLIEN%' group by JOURNAL_ENTRY_TYPE, current_user, job_name, program_library, program_name, remote_address order by JOURNAL_ENTRY_TYPE, current_user, job_name, program_library, program_name, remote_address; 7.2+ Do It Yourself
  • 21. Auditing Changes to Data at the Record Level 21
  • 22. Auditing Changes to Data (Record Level) – Database Journal C o m m a n d & Ke y w o r d CRTJRN, CHGJRN Minimize entry specific data . . MINENTDTA P o s s i b l e Va l u e s Single Values *SAME *NONE Other Values *FILE *FLDBDY *DTAARA *FILE cannot be used for auditing, everybody agrees. IBM promotes *FLDBDY but…look at these screen shots. Only the changed values are displayed. To get values of additional fields, you have to create an SQL index and journalize it. Not so easy…
  • 23. Secure Journals and receivers STRJRN,STRJRNPF, STRJRNLIB Record images . . . . . . . . . IMAGES STRJRN,STRJRNPF, STRJRNLIB Journal entries to be omitted . OMTJRNE CHGJRNOBJ OBJ((ERPFILE/GLFCLIEN *FILE)) ATR(*IMAGES) IMAGES(*BOTH) Correct Authorities on journals & receivers *AFTER *BOTH *NONE *OPNCLO Auditing Changes to Data (Record Level) – Database Journal *BOTH for important files *NONE for files that require open auditing Changes journaling attributes without the need to end and restart journaling for the object. Introduced in V5R3 ! Protecting the file while leaving the journal data exposed DISPLAY _JOURNAL() handles correctly RCAC rules. Not the case for DSPJRN IBM i 7.3 SF99703 Level 3 and IBM i 7.2 SF99702 Level 14 (https://www.ibm.com/developerworks/community /wikis/home?lang=en#!/wiki/IBM%20i%20Technolo gy%20Updates/page/DISPLAY_JOURNAL%20%28eas ier%20searches%20of%20Audit%20Journal%29)
  • 24. Auditing Changes to Data (Record Level) Better than DSPJRN Querying the Database Journal Select entry_timestamp, JOURNAL_ENTRY_TYPE, current_user current_user, job_name, program_library, program_name, remote_address, cast(entry_data as char(200)) Data from table(Display_Journal('IJRNDTA','ERPJRN', starting_receiver_name => '*CURCHAIN')) as x where object like '% GLFCLIEN %' and journal_code = 'R'; 7.2+ Do It Yourself
  • 26. Auditing Data Access Object level • System audit journal - Auditing value *ALL generates ZC & ZR entries • Database journal - Parameter OMTJRNE(*NONE) generates OP entries • (exit point) QIBM_QDB_OPEN intercepts the openings of files under audit in real time Record level • Application (ex: send “user entries” to a journal for specific reads)  incomplete • Field procedures (7.1)  gives the value of the field, not the entire record • Read triggers  it works, with limitations (not compatible with RCAC) At the object level – Who opened this file? At the record level – Who read this record? Impact on performance is a major concern Alternative options : tokenization, encryption, and RCAC (from IBM i 7.2)
  • 27. Auditing Data Access System Journal select entry_timestamp, JOURNAL_ENTRY_TYPE, current_user current_user, job_name, program_library, program_name, remote_address from table(qsys2.Display_Journal('QSYS','QAUDJRN', Journal_Codes => 'T')) as x where object like '%GLFCLIEN%' and journal_entry_type in ('ZC','ZR'); DB2: CHGOBJAUD OBJ(erpfile/glfclien) OBJTYPE(*file) OBJAUD(*ALL) IFS: CHGAUD OBJ('/customer_info/*') OBJAUD(*ALL) SUBTREE(*ALL) Do It Yourself
  • 28. DB2: STRJRNPF FILE(ERPFILE/GLFCLIEN) JRN(IJRNDTA/ERPJRN) IMAGES(*BOTH) OMTJRNE(*NONE) CHGJRNOBJ OBJ((ERPFILE/GLFCLIEN *FILE)) ATR(*OMTJRNE) OMTJRNE(*NONE) select entry_timestamp, JOURNAL_ENTRY_TYPE, current_user current_user, job_name, program_library, program_name, remote_address from table(qsys2.Display_Journal('IJRNDTA','ERPJRN', Journal_Codes => 'F')) as x where object like '%GLFCLIEN%' and journal_entry_type = 'OP'; Auditing Data Access Database Journal Do It Yourself
  • 29. Protecting Data at the Record Level 29
  • 30. Protecting Data (Record Level) – RCAC • Fully data-centric, not dependent upon specific interfaces, not only for SQL • Works for any row operation (read, update, delete, insert). These SQL statements transparently contain the condition exactly like a WHERE clause. • Relatively easy to implement • “Silent” mechanism (no messages indicating rows are not permitted) • Once activated, access to the rows is denied by default. Default permission with condition 0=1 • Operations on permissions and ALTER TABLE require an exclusive lock on the table. • RCAC is processed after the object level security. But RCAC prevents a user with authority on the table (even *ALLOBJ) to see a specific subset of data. • RCAC can impact performance; it has to be tested. Limitations: • Apply only to externally described files • Read triggers not supported • Legacy QRY/400 queries may have a different behavior How to do an inventory: select * from syscontrols  dedicated view for RCAC select * from syscontrolsdep  dedicated view for RCAC dependencies like functions
  • 31. Protecting Data (Record Level) - RCAC Separation of duties helps businesses comply with government regulations and simplifies the management of authorities. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with *ALLOBJ authority. The function, QIBM_DB_SECADM, provides a user with the ability to grant authority, revoke authority, change ownership, or change primary group, but without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table. QIBM_DB_SECADM function usage can be given only by a user with *SECADM special authority and can be given to a user or a group. QIBM_DB_SECADM is also responsible for administering Row and Column Access Control. http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzarl/rzarlseparationofduties.htm Official IBM presentation
  • 32. HOW TO VERIFY? select * from function_usage where function_id = 'QIBM_DB_SECADM'  list the registered users select * from function_info where function_id = 'QIBM_DB_SECADM'  check the Default Authority and *ALLOBJ special authority HOW TO AUDIT? Changes to Function Usage  QAUDJRN/GR Action = ZC Failures in Function Usage  QAUDJRN/GR Field1 = *USAGEFAILURE Changes to RCAC Functions  QAUDJRN/AX Changes to RCAC Functions  Exit points & Database Monitor Protecting Data (Record Level) – RCAC It is very important to audit/protect the changes to this function ID and usage WRKFCNUSG
  • 33. Protecting Data (Record Level) - RCAC RCAC - Permissions create permission erpfile.compidnot003 on erpfile.glfclien for rows where clicomp <> 003 enforced for all access enable ; create permission erpfile.user_gm on erpfile.glfclien for rows where current_user = 'GM' enforced for all access enable ; alter table erpfile.glfclien activate row access control ; RCAC - Masks create mask erpfile.mask_fax on erpfile.glfclien for column clifax2 return case when current_user = 'GM' then clifax2 else '(Masked)' end enable ; alter table erpfile.glfclien activate column access control ;
  • 34. Protecting Data at the Object Level
  • 35. Protecting Data (Object Level) Standard object level security model: • A user who has *USE authority on a critical file can download it using any method or protocol • A user who has *CHANGE authority can change records in a critical file using any method or protocol Adopted authority model: - We have to trust the programs - Does not work with the IFS Things to remember: - *ALLOBJ profiles are not controlled - A limited user can still run commands in remote mode - No visibility for non-5250 access, no standard log - There is a need for contextual security Why do we need to reinforce object security? And not replace it! Ideal: Standard object level security + access control
  • 36. Protecting Data – Exit Points
  • 37. Traditional exit points • They are connected to Host and TCP/IP servers • They cannot be unplugged for active jobs, with the exception of TELNET • They generally allow just one program per point • They are unaware of port numbers • They must reside in *SYSBAS • They are different from each other • Things to consider: IP Address, CCSID, authorities, activation group • QIBM_QZDA_SQL2 is the most difficult one (potential impact on performance) • Limitations : carefully read the documentation Command exit points • One entry per command & timing (before or after options) Other exit points • Open database file • Sockets Protecting Data – Exit Points http://www.ibm.com/support/ knowledgecenter/ssw_ibm_i_7 3/rzajr/rzajrmst35.htm
  • 38. Access Methods and Exit Points IFS QSYS.LIB data
  • 39. Access Methods and Exit Points IFS QSYS.LIB data OTHERS CLI QSQSRVR PHP, XML Service, … QSQPRCED XDA, XDN, … Sockets Socket programs Open Source Node.js, Python, Ruby GCC, GIT, Orion, Perl…
  • 40. OTHERS CLI QSQSRVR PHP, XML Service, … QSQPRCED XDA, XDN, … Sockets Socket programs Open Source Node.js, Python, Ruby GCC, GIT, Orion, Perl… Access Methods and Exit Points IFS QSYS.LIB data
  • 41. Access Methods and Exit Points Real life situation & thoughts to share : • Gap between the growing number of ways to access data and the traditional exit points • Gap between the typical IBM i administrators and the young IT people • IBM promotes open source, which introduces new ways to access data • SQL is growing in term of it’s utilisation, power and complexity • Exit programs add overhead and risk to production environments • Database Monitor cannot block access and can also add overhead; it is not a tool designed for security • There are no exit points for the Unix space, this is still based on Syslog files • If you rely on RCAC, you still have to fully audit SQL and commands - alter table … deactivate row access control ; drop permission; - CHGFCNUSG FCNID(QIBM_DB_SECADM) This way of protecting data is not efficient on today’s systems with today’s workloads. We have to keep in mind that more than 70% of fraudulent acts are internal, which adds a huge challenge.
  • 43. Advanced Functions GOAL/CONCERN ANSWER Changes to System values QAUD* QAUDJRN- entry type SV Changes to object auditing values QAUDJRN - entry type AD Changes to user auditing values QAUDJRN - entry type AD Changes to authority & ownership on journals and receivers QAUDJRN - entry type CA & OW Deleting receivers outside of the normal process QAUDJRN - entry type DO with selection on program/program library Changes to journal attributes (FIXLENDTA, MINENTDTA, DLTRCV) QAUDJRN - entry type CD on command CHGJRN (CRTJRN/CHGJRN must be audited with *ALL before) Stopping/starting journaling on DB2 files DB Journal - code F & types EJ/JM Changing journaling on DB2 files (IMAGES, OMTJRNE) DB Journal - code D & types DJ Stopping/starting journaling on IFS objects DB Journal - code B & types ET/JT Changing journaling on IFS objects (IMAGES, OMTJRNE) DB Journal - code B & types JA Commands RMVJRNCHG & APYJRNCHG DB Journal - code D & type SR + code F & type RC …(these commands should also be audited) Changes to the security applications QAUDJRN & DB Journal Other alternatives: - audit these commands using CHGOBJAUD - Block these commands using command exit point How to audit changes in auditing mechanism? Or in other words, how to guarantee the integrity of the audit trail itself?
  • 45. Introducing Syncsort >7,000 customers 84 of the Fortune 100 Customers in >100 countries Headquarters: Pearl River, NY U . S . L O C AT I O N S • Burlington, MA; Irvine, CA; Oakbrook Terrace, IL; Rochester, MN G L O B A L P R E S E N C E • U.K., France, Germany, Netherlands, Israel, Hong Kong & Japan Big Iron to Big Data is a fast-growing market segment composed of solutions that optimize traditional data systems and deliver mission-critical data from these systems to next-generation analytic environments. Global leader in Big Iron to Big Data 45
  • 46. Optimize IntegrateAssure Making Critical Data Useful Improve performance and control costs across the full IT environment, from legacy systems to the cloud Connect today’s data infrastructure with tomorrow’s technology – and ensure data quality – powering machine learning, AI and predictive analytics Increase data availability and provide security as the world moves to accessing data in 24x7 timeframes and data protection becomes mission critical 46
  • 47. Take control of your IBM i server security & compliance requirements to mitigate exposure Experience near zero- downtime hardware migrations Keep your data safe and operations running smoothly Improve data availability to virtually eliminate downtime and data loss Syncsort’s Assure Portfolio 47
  • 48. Alliance EnforciveCilasoft Syncsort’s Security Solutions Bring together industry leading IBM i Security brands that serve businesses of all sizes worldwide Quick 48
  • 49. Sensitive Data Protection Protect the privacy of sensitive data by ensuring that it cannot be read by unauthorized persons Intrusion Detection/Prevention Ensure comprehensive control of unauthorized access and the ability to trace any activity, suspicious or otherwise Security & Compliance Assessments Assess your security risks or regulatory complianceSyncsort Security solutions address issues that are on every security officer and administrator’s radar screen Auditing and Monitoring Gain visibility into all security activity on your IBM i and optionally feed it to an enterprise console 49
  • 50. Compliance Assessment Identify deviations from regulatory requirements to help you achieve compliance and maintain it Security Risk Assessment Service Let Syncsort’s team of security experts conduct a thorough risk assessment and provide a report with remediation guidance Security Risk Assessment Tool Thoroughly check all aspects of IBM i security and obtain detailed reports and recommendations Risk and Compliance Assessment 50
  • 51. Multi-Factor Authentication Strengthen login security by requiring multiple forms of authentication Elevated Authority Management Automatically elevate user authority as-needed and on a limited basis Access Control Secure all points of entry into to your system including network access, database access, command line access and more Password Self-Service Allow users to securely manage their own passwords without administrative support Intrusion Prevention and Detection 51
  • 52. Anonymization Permanently replace sensitive data with substitute values in test or development environments or when data is sent to 3rd parties Tokenization Remove sensitive data from a server by replacing it with substitute values that can be used to retrieve the original data Encryption Transform human-readable database fields into unreadable cypher text using industry- certified encryption & key management solutions Secure File Transfer Securely transfer files across internal or external networks using encryption Sensitive Data Protection 52
  • 53. ITOA Integration Integrate IBM i security and machine data with data from other platforms to perform IT operations analytics SIEM Integration Integrate IBM i security data with data from other platforms by transferring it to a Security Information and Event Management console System & Database Auditing Simplify analysis of IBM i journals to monitor for security incidents and generate reports and alerts Auditing and Monitoring 53
  • 54. 54 Syncsort Can Help! ✓ Syncsort’s Security portfolio has grown rapidly through acquisition ✓ Syncsort is a market leader in comprehensive solutions for compliance, intrusion prevention and detection, sensitive data protection, auditing and monitoring ✓ Global Professional Services add value to your investment ✓ Let’s explore how Syncsort can help keep your business systems and data secure! Learn more at www.syncsort.com/en/assure
  • 55. Q&A