© 2010 Botz & Associates, Inc. All Rights Reserved. E-mail: [email protected] Case Study:...

39
© 2010 Botz & Associates, Inc. All Rights Reserved. www.botzandassociates.com E-mail: [email protected] Case Study: Case Study: A Step by Step Approach to Object A Step by Step Approach to Object Level Security Level Security
  • date post

    15-Jan-2016
  • Category

    Documents

  • view

    213
  • download

    0

Transcript of © 2010 Botz & Associates, Inc. All Rights Reserved. E-mail: [email protected] Case Study:...

Page 1: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

www.botzandassociates.com

E-mail: [email protected]

Case Study: Case Study: A Step by Step Approach to Object Level A Step by Step Approach to Object Level SecuritySecurity

Page 2: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

AgendaAgenda Getting started

Popular application security schemes and why

they’re a problem

Secure security schemes

Making changes

Avoiding breakage

2

Page 3: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

What type of data does the file or application contain? Private data (SSNs, SINs, bank account numbers, salary

information, HIPAA data, etc) Credit card numbers Company proprietary General information

Type of data Determines what part of your security policy must be followed Drives regulatory compliance requirements

Determine your policy requirementsDetermine your policy requirements

3

Page 4: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

What is your data access policy? Driven by the classification of the data Who should be allowed to see this data outside of the

application? No one unless they are coming through the application that

manages the data – “deny by default” Only employees with a direct job requirement Anyone in the company

Should anyone be allowed to modify the data outside of the application? Perhaps some processes or a handful of users

Determine your data access policyDetermine your data access policy

4

Page 5: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.5

FTP, ODBC, DDM, SocketsAccounting Menu

1. Accts Receivable

2. Accts Payable

3. Check Requests

Users with legitimate command line access,

Operators, DBA, Analysts, Developers

Data access is more than menus

How should data be accessible from outside of the protection of the application logic?

Access to data from menus is tightly controlled

Processes that allow downloads to a PC

Query / SQL

Page 6: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.6

Record profile making the access and type of access – read or update

Files to be Secured -

(they are partof Application

ABC)

ABC Applicationprograms

MNO Application

XYZApplication

Batch processing

Queries

ODBC connections

WebSphereJDBC connections

DDMconnections

ScheduledJobs

Others

FTPconnections to other

systems or PCs

Page 7: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

The profile accessing the data and whether it is a read, update or both Only within the application

To download into a spreadsheet

To use as input to another application

For batch processing

To populate a data warehouse

The interface being used to access the data EDI

Web applications

Other host-based applications

ODBC / JDBC

FTP (record whether it’s a put or get)

DDM

Make a chart and record Make a chart and record

7

Page 8: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

*ALLOBJ

Group ownership

*PUBLIC authority

Popular implementations for Popular implementations for menu “security”menu “security”

8

Page 9: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Requires application users to have Requires application users to have *ALLOBJ*ALLOBJ

9

Database Files

ProgramsCommands

*ALLOBJ

*ALL access to all application objects

Plus … everything else on the system

Page 10: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Requires users to be a member of Requires users to be a member of owning profileowning profile

10

Database Files

ProgramsCommands

Group profileowns

owns

Application Users’ access = *ALL

Page 11: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

11

*PUBLIC authority is wide open*PUBLIC authority is wide open

Database Files

ProgramsCommands

Application profile owns

*PUBLIC(*CHANGE or *ALL)

authorized

Page 12: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Adopted authority – “Application only access”

Swap profile APIs (QSYGETPH and QWTSETP) Process profile and its groups change and run as a

different profile and its groups Best used for accessing the IFS

qsysetgid() API Process’s first group profile is changed for that process

only Best used for accessing the IFS or providing

emergency access to developers

Authorization methods for Authorization methods for secure applicationssecure applications

12

Page 13: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Application only accessApplication only access

13

Database Files

ProgramsCommands

Application profile owns

*PUBLIC(*EXCLUDE)

authorized to Initial program only

Issues you’ll encounter: Lots of breakage without further changes!!!

Programs are changed to adopt authority (User Profile = *OWNER

Profile that owns the programs owns all application objects

*PUBLIC authority of all objects - *EXCLUDE

Page 14: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Variation on application only accessVariation on application only access

14

Database Files

ProgramsCommandsApplication profile owns

*PUBLIC(*EXCLUDE)

Programs - *OWNERauthorized to Initial program

Other application profiles, individuals, groups or processes are authorized (*USE) to selected libraries or files to allow access via FTP or ODBC

On occasion may have to give *CHANGE to selected processes

Page 15: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Used to temporarily give authority

When a program with USRPRF(*OWNER) runs, the authority in effect is the user plus the owner of the program

Both special authorities and private authorities are adopted (the program owner’s groups are not included)

Additional authority is in effect for as long as the program is in the call stack

Adopted authorityAdopted authority

15

Page 16: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Configuring a program to adoptConfiguring a program to adopt

16

Page 17: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

17

Adopted Authority ExampleAdopted Authority ExampleScenario:Program needs to open file ABC for updateABC *FILE Owner: APP_OWNER*PUBLIC: *EXCLUDE

PSB then APP_OWNER

PSB

PSB then APP_OWNER then QSECOFR

PGM_AOwner: APP_OWNERUser Profile: *OWNER

PGM_BOwner: QSECOFRUser Profile: *OWNER

CMD_LINEOwner: APP_OWNERUse Adopted Authority: *NOUser Profile: *USER

Program Call StackAuthorities in Effect

PGM_COwner: APP_OWNERUser Profile: *OWNER*PUBLIC: *EXCLUDE

New stack – PSB only

B submits a job to run C

Submit job fails – why?

Page 18: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Command Change Exit Point Program

Changes arguments to SBMJOB command before it is executed

Two components Utility CL program (RUNWADP)

1. Accepts an arbitrary command string as a parameter2. Adopts application owner!3. CMDEXEC’s the command string

SBMJOB exit point program

Changes SBMJOB CMD argument to:

RUNWADP CMD(ORIGINAL command string) PRF(APP_OWNER)

Fix for Adopted Authority & SBMJOB Fix for Adopted Authority & SBMJOB

18

Page 19: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Fix for Adopted Authority & SBMJOB Fix for Adopted Authority & SBMJOB

19

Scenario:MYAPP uses SBMJOB to run MYSBJMYSBJB must run with APP_OWNERBut MYSBJ does NOT adopt APP_OWNER

SBMJOB CMD(MYSBJ PARM1 PARM2 PARM3)

SBMJOB CMD( RUNWADPRUNWADP STR(MYSBJ PARM1 PARM2 PARM3) (MYSBJ PARM1 PARM2 PARM3) )

As submitted by MYAPP

SBMJOB Command Change Exit Point Program

As executed

SBMJOBCCEP (sbmjob cmd chg exit pgm)

RUNWADP STR(char 1000)Owner: APP_OWNER*PUBLIC: *EXCLUDE

Page 20: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Authorization ListsAuthorization Lists

20

JAN_RCV

*PUBLIC *AUTL

FEB_RCV

*PUBLIC *AUTL

MAR_RCV

*PUBLIC *AUTL

AR_AUTL

Grant private authorities to the autl:

AR_BATCH *CHANGE

GRP_ACCTNG *USE

JOHNV *USE

*PUBLIC(*EXCLUDE)

Way to group similar objects and only have to manage authority once

An object can be secured with only one authorization list

Page 21: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

The following can generally be set to *PUBLIC *USE

Libraries where the general public can use the objects Directories –

root “/” DTAAUT(*RX) OBJAUT(*NONE) Programs, service programs Display files Message files

The following may need to be *PUBLIC *CHANGE Libraries where temporary objects are being created (e.g., queries) OUTQs, MSGQs DEVDs

The following applies to *FILES:

Files containing confidential or private data - *EXCLUDE Files containing data anyone can see - *USE Files containing data anyone can update - *CHANGE <- this is rare

To know for sure, check iSeries Security Reference, Appendix D

Determine the appropriate *PUBLIC Determine the appropriate *PUBLIC authorityauthority

21

Page 22: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Make sure all application objects are owned by the application profile or have the programs owned by the application profile and authorize the

application profile to the rest of the application objects (e.g., files)

Determine what programs need to be changed to adopt authority or to use one of the APIs to change the process processes and individuals identified in the “big picture” to the

authorization lists

Set *PUBLIC authority

Test !

When changing the application When changing the application implementationimplementation

22

Page 23: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Minimize risk of authority changes!

Create GRPPRF = ALTPUBLIC Make all users a member of this group

Grant ALTPUBLIC same authority as *PUBLIC currently has to library and all objects in it

Change *PUBLIC authority to *EXCLUDE for library and all objects in it *EXCLUDE

Remove one user profile from ALTPUB

Test application or authority changes with this user

Test Trick – Alternative Public AuthorityTest Trick – Alternative Public Authority

23

Page 24: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

1. Change ownership CHGOWN (‘/qsys.lib/name.lib/*.*’)

2. Change programs to adopt CHGPGM

3. Secure files with authorization list Consider setting to a wide-open *PUBLIC authority)

4. Authorize outside processes Note: Up to this point end users have not been affected – only outside processes

5. Set appropriate *PUBLIC authority Note: Any outside process not accommodated will fail at this time

6. Create a user profile that does not have *ALLOBJ (or not a member of the owning group)

7. Test

8. Remove *ALLOBJ special authority (or assign a new group) for application users1. Note: At this point the end users will be affected.

Hint: Write a program or use a vendor product to make authority changes so you can repeat the process when upgrading.

Steps to change from Steps to change from *ALLOBJ or Group ownership*ALLOBJ or Group ownership

24

Page 25: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

1. If you must test in production environment TEMPORARILY make users members of application owning profile

2. Change ownership CHGOWN

3. Change programs to adopt CHGPGM

4. Secure files with authorization list Consider setting to a wide-open *PUBLIC authority)

5. Authorize outside processes Note: Up to this point end users have not been affected – only outside processes

6. Set new *PUBLIC authority Note: Any outside process not accommodated will fail at this time

7. Create a user profile that is not a member of the application owning profile

8. Test

9. Remove users from application owning profile group Note: At this point the end users will be affected.

Hint: Write a program or use a product or utility to make authority changes so you can repeat the process when upgrading.

Steps to change from wide-open *PUBLIC Steps to change from wide-open *PUBLIC authorityauthority

25

Page 26: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Analyze what interfaces need to access the data – big picture needs to be complete! ODBC FTP DDM

Are there individuals who need additional authorities? For queries Uploading files

Map out all job scheduled entries for General idea of the job User under which the job runs Job description Library list

Look for programs with dynamic SQL Need to set Dynamic user profile to *OWNER Must re-compile to set

Note: “Outside” processes are more likely to break than end user access – using authorization lists reduces downtime.

Preventing breakagePreventing breakage

26

Page 27: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Contact the vendor May already have an architected solution May choose to no longer support your installation of you

make authorization changes

Requirements if changing to use adopted authority: Prior to V5R1-compiled code:

Source or Observability

Can always re-translate V5R1 and later code

Before changing a vendor applicationBefore changing a vendor application

27

Page 28: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Use DSPAUDJRNE orCRTDUPOBJ of QSYS/QASYxxJ5 then DSPJRN JRN(QSYS/QAUDJRN) RCVRNG(*CURCHAIN)

FROMTIME('08/18/2007' '08:00:00') JRNCDE((T)) ENTTYP(AF) OUTPUT(*OUTFILE) OUTFILFMT(*TYPE5) OUTFILE(SKYVIEW/QASYAFJ5)

At V5R4, run CPYAUDJRNE

Hint: Look at these entries BEFORE you start making changes!

Can be used as a method for discovering what processes are using an object

Detecting breakageDetecting breakage

28

Page 29: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Batch process fails with “Not authorized” message Look in audit journal to determine exact object not

authorized to DSPOBJAUT on object

Who owns the file? Is file secured with an autl?

Is it the right one? Is the profile authorized to the autl? Is there a private authority that overrides the authority on the

autl?

Scenario #1Scenario #1

29

Page 30: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

End user takes a menu option and it gets a “failure”

Look in audit journal to determine if it’s an authority failure

DSPPGM What profile owns the program? Does it adopt? i.e., User profile set to *OWNER?

Scenario #2Scenario #2

30

Page 31: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Programmer access to update production data - in “emergencies” read production data – for debug read production source

Developer requests On-call users needing to view joblog of *ALLOBJ users

(use App Admin to provide function) On-call users needing to DSPUSRPRF (write a program

that adopts or give *READ to the profile)

AccommodationsAccommodations

31

Page 32: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Protecting private dataProtecting private data When private data resides in the same file as non-private

data, may need to: re-work structure of your files, moving the private data to another

file or create logical views over the physical file

Physical file - only give *PUBLIC data authorities – never *OBJOPR

Logical file – whatever authorities are appropriate – most likely *USE

32

Page 33: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Forgetting to look at the audit journal BEFORE making any changes

Making changes in the wrong order e.g., Making changes such that all users are affected at once

Forgetting to set the *PUBLIC authority of the autls to *EXCLUDE

Not understanding the order in which i5/OS checks security

Not understanding the flow of adopted authority

““Gotchas”Gotchas”

33

Page 34: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Forgetting to make the appropriate changes to change management software (objects will be promoted with old authorities)

Setting libraries to *PUBLIC *EXCLUDE and having the library specified in a library list (e.g., in a jobd)

Not realizing when adopted authority is flowing out to a command line

Dynamic SQL – need to set the Dynamic user profile attribute at compile Suggest that you change the command default on the CRTILExxx

commands

Queries

““Gotchas”Gotchas”

34

Page 35: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Once the security projectOnce the security project starts starts

35

You WILL be the target and accused of whatever is going wrong at the moment

You WILL become an expert in debugging problems that have nothing to do with security

Page 36: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Security Reference, SC41-5302 Appendix D Chapter 9 and Appendix E and F

IBM i and i5/OS Security & Compliance: A Practical Guide, Chapter 16 by Carol Woodbury, 29th Street Press, 2009, ISBN: 978-1-58304-124-6

For More InformationFor More Information

36

Page 37: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

Security is not a one-time eventSecurity is not a one-time event

37

It’s a lifestyle

Page 38: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

P.O. Box 7498 Rochester, MN 55903 Telephone: (507) 319-5206 www.botzandassociates.com

ABOUT THE SPEAKER

Patrick Botz is the founder and president of Botz & Associates, Inc.

Prior to starting Botz & Associates, Pat served as the Lead Security Architect and Team Leader for the IBM, working on some of the most widely used midrange servers is the business world with a focus on authentication, authorization, auditing, and ease of use. Following his work primary focus on helping customers meet various industry regulations such as SOX, PCI DSS, and SAS 70. He additionally worked to help customers improve the effectiveness and efficiency of their current security management processes, assisting them with moving to exclusionary access control models, eliminating passwords in various environments, managing User IDs, implementing encryption, and auditing on various platforms.

Pat is co-author of the book “Expert’s Guide to OS/400 and i5/OS Security”, and has published numerous articles in the trade press and IBM magazines. He is also a noted worldwide security conference speaker, presenting at various conferences and in webcasts including COMMON, IBM Technical Conference, various user groups, St. Cloud State University Security conference, and IBM Business Partner conferences.

Page 39: © 2010 Botz & Associates, Inc. All Rights Reserved.  E-mail: botz@botzandassociates.com Case Study: A Step by Step Approach to.

© 2010 Botz & Associates, Inc. All Rights Reserved.

P.O. Box 7498Rochester, MN 55903

Telephone: (507) 319-5206

www.botzandassociates.com

ABOUT Botz & Associates, Inc.

We specialize in helping customers understand and execute the business AND technical aspects of the security management process.