220 likes | 336 Views
Introduction to z/OS Security Lesson 8: Application Security. Objectives. At the completion of this chapter you should have a basic understanding of: Database and transaction managers ACID concepts Different zSeries based managers the concepts of data management security database security
E N D
Objectives • At the completion of this chapter you should have a basic understanding of: • Database and transaction managers • ACID concepts • Different zSeries based managers • the concepts of data management security • database security • the application of user repositories • transactions and their need to be secure • describe the functions a transaction manager performs • understand the basics of transaction manager security
Transaction Manager Atomicity Consistency Isolation Durability JES DB2 CICS IMS Key Terms
Introduction • The ability to secure a system is inversely proportional to the amount of work being processed on that system. • Work is introduced into the system by the Resource Managers – • JES2 and JES3 • TSO/E • Unix for z/OS Kernel – Unix System Services • IMS • DB2 • CICS • Users logon to System z in order to use resources provided by the resource managers. • Most of the protections we have seen are to protect the OS from unwanted inquiry. The rest is to protect application resources for unwanted use. • This discussion focuses on the security elements surrounding these application resource managers
Transaction Manager Security • A transaction is a set of tasks or functions that must succeed or fail as an entire group. • For example, when you move money from your savings account to your checking account, you are really doing a withdrawal from one and a deposit to the other. These are two functions, from the bank’s perspective, but only one transaction from your viewpoint. If one or the other function fails, the money is not properly moved and can become lost. • A transaction manager marshals the functions together based on the input request. You request to transfer money, so the transaction manager queues up both the withdrawal and deposit functions as one transaction. • The transaction manager has the additional responsibility to authenticate your identity and prove your authorization to perform all the functions within the transaction. • The transaction manager guarantees the integrity of transactions by applying the • ACID concepts. • Atomicity, • Consistency, • Isolation, and • Durability.
Atomicity • Atomicity is the ability to guarantee that all of the tasks that make up the transaction successfully complete, or the entire transaction is voided. The transfer of funds can fail for any number of reasons. System failures, may occur anywhere between you and your bank’s System z system. These failures could interrupt the withdrawal to deposit function. Atomicity guarantees an all or nothing transaction. It is just as unwanted you to lose the money as it is for the bank to deposit money without the preceding withdrawal.
Consistency • Consistency means that the transaction must maintain the integrity of the data at all times. If any failure occurs, the data must be returned to its state before the transaction started. An example of this would be if the bank doesn’t allow negative balances, the withdrawal function of the transaction would not be able to take more money out than your balance indicates is available. If this is the case, the entire transaction must be aborted and the balance should show the same amount as before you attempted to transfer money.
Isolation • Isolation means that the transaction will not show data in its intermediate steps. In our example, you transferred funds. You didn’t request a withdrawal and a deposit, although that’s what happened behind the scenes. You, or anyone else authorized to look, should not be able to see the savings account withdrawal without also seeing the checking account deposit. This is most often done by the transaction manager locking the accounts and working with copies of the data. Once the arithmetic computation is completed, the live database is updated with both results (the withdrawal and deposit occur concurrently).
Durability • Durability is the guarantee that once the transaction completes, the results will remain in the database ready for the next transaction. If, for some reason, the system fails or the database crashes, the content of the database can be regenerated correctly without loss of data. Contrast this with data back-ups where you can get your data from the system in an earlier state. Durability means that the latest real-time state can be retrieved if necessary.
Transaction Managers on z/OS • The transaction managers which have the ACID concept implemented and we concentrate on are well known in the System z environment. These are: • JES Job Entry Subsystem • CICS Customer Information Control System • IMS Information Management System
JES • JES is that component of the operating system that provides the necessary functions to get jobs into, and output out of the system. It is designed to provide efficient spooling, scheduling, and job management facilities for z/OS. • JES provides a basic level of security for resources through initialization statements. That control can be broadened by implementing several exits available for this purpose. A more complete security policy can be implemented with System Security Facility (SAF) and an external security manager
Securing jobs with an ESM • The external security manager (ESM) maintains several classes of profiles directly related to the Job Entry Subsystem: • JESINPUT Conditional access support for commands or jobs entered into the system through a JES input device. • JESJOBS Controlling the submission and cancellation of jobs by job name. • JESSPOOL Controlling access to job data sets on the JES spool. • NODES Controlling whether jobs are allowed to enter the system from other nodes, and whether jobs that enter the system from other nodes have to pass user identification and password verification checks. • Security may be extended to the job output itself based on the owning user ID of the job, the security labeling of the data, and other constraints.
CICS security • As an online transaction processing system (often supporting many thousands of users), CICS clearly needs the protection of a security system to ensure that the resources to which it manages access are protected, and are secure from unauthorized access. • To provide the necessary security for your CICS system, CICS uses the z/OS system authorization facility (SAF) interface to route authorization requests to an external security manager, such as RACF, at appropriate points within CICS transaction processing. • In a CICS environment, the assets you want to protect are the application programs, the application data, and the application output. To prevent disclosure, destruction, or corruption of these assets, you must first safeguard the CICS system components themselves.
CICS Security • CICS provides a variety of security and control mechanisms. These can limit the activities of a CICS user to only those functions that the user is authorized to use: • Transaction security • ensures that users who attempt to run a transaction are entitled to do so. Transaction profiles will have to be defined to the external security manager for all transactions that need to be protected from unauthorized access • Resource security • ensures that users who use CICS resources are entitled to do so. Resource security provides a further level of security by controlling access to the resources used by the CICS transactions. • Command security • ensures that users who use CICS system programming commands are entitled to do so. Security checking is performed for these commands when they are issued from CICS application programs. • Surrogate security • a surrogate user is a RACF defined user who is authorized to act on behalf of another user. A surrogate user is authorized to act for that user without knowing the other user’s password
IMS • Access to IMS resources can be secured by either IMS itself or by an external security product, like RACF. • IMS internal security modules may be used to implement access to IMS transactions, commands, and other IMS resources. The facility that is used to define the IMS resources that will be secured is called the security maintenance utility (SMU). SMU does not actually enforce the security choices made by the installation. Although IMS security modules actually implement the security specifications defined using SMU, IMS internally provided security is commonly referred to as SMU security. IMS internal security can: • Be used to restrict the entry of secured commands and transactions to specific terminals (LTERMs). • Be used to assign a password to a command and/or transaction and require that the valid password be supplied with command and/or transaction entry. • Require a password be supplied on the /LOCK and/or /UNLOCK commands to lock/unlock a database, program, physical terminal and/or logical terminal. • Require that sign-on be performed from some or all terminals. • Secure a program specification block (PSB) by restricting where the PSB can be scheduled • Determine whether IMS commands can be issued from automated operator (AO) programs and which AO transactions can enter IMS commands.
IMS Internal Security • IMS internal security, or SMU security, may be used only for IMS resources that have been statically defined. The installation identifies the resources that are secured (such as transactions and commands) and the type of protection (such as password protection and/or LTERMs where the command and/or transaction may be entered) by providing input statements to SMU. The SMU generation process results in the security specifications being written to tables (IMS.MATRIXx) that are loaded and used by IMS to enforce the security specifications. In IMS V9 it is possible to convert completely from using the SMU to using an external security manager.
Data management security • Data management is the part of the operating system that organizes, identifies, stores, catalogs, and retrieves all the information (including programs) that your installation uses. Data management does these main tasks: • Sets aside (allocates) space on DASD volumes. • Automatically retrieves cataloged data sets by name. • Mounts magnetic tape volumes in the drive. • Establishes a logical connection between the application program and the medium. • Transfers data between the application program and the medium. • Controls access to data. • It is the last item that is matter of our concern. Data is physically resident on magnetic tapes (cartridges) or DASD device types in the form of files, data sets or databases.
DB2 • Several database systems are available and offered in the zSeries environment. In the z/OS operating system environment databases like • DB2 UDB for z/OS • IMS • ORACLE • ADABAS • and others are available. • A security plan for the database manager should always be developed independent of which database manager is actually implemented. This security plan should set objectives for a security system determining who has access to what and under which circumstances. The security plan also should describe how to meet the objectives set by using functions of the database manager, functions of other programs or systems, and also by using administrative procedures. • We will not discuss the specific security mechanisms in all of these database managers. Since DB2 UDB for z/OS probably is the most well known database manager on the zSeries platform we will look at some of the security mechanisms offered by this database manager.
DB2 Database Security • To protect data and resources associated with the database system, DB2 uses a combination of external security services and internal access control information. • Within the DB2 database system, access control is based on the use of one or more identifiers (IDs). These IDs represent the process. • DB2 allows you a wide range of granularity when you grant privileges to an ID. You can grant all of the privileges over a table to an ID or you can grant individual privileges to an ID. By granting or not granting privileges, you can determine exactly what an ID can do down to the granularity of specific fields.
DB2 Security through RACF • RACF and DB2 can work together to secure the database and its functions. • An installation exit is shipped by DB2 in SYS1.SAMPLIB(IRR@XACS) which will check RACF profiles in a number of classes on behalf of DB2. • If the class is active when DB2 initializes, the profiles in that class will be used to protect resources, otherwise “normal” DB2 security processing will be used.
DB2 protection classes • MDSNBP • Member class for DB2 buffer pool privileges. • MDSNCL • Member class for DB2 collection privileges. • MDSNDB • Member class for DB2 database privileges. • MDSNJR • Member class for Java archive files (JARs). • MDSNPK • Member class for DB2 package privileges. • MDSNPN • Member class for DB2 plan privileges. • MDSNSC • Member class for DB2 schema privileges. • MDSNSG • Member class for DB2 storage group privileges. DB2 resources are categorized under the following ESM Classes • MDSNSM • Member class for DB2 system privileges. • MDSNSP • Member class for DB2 stored procedure privileges. • MDSNSQ • Member class for DB2 sequences. • MDSNTB • Member class for DB2 table, index, or view privileges. • MDSNTS • Member class for DB2 tablespace privileges. • MDSNUF • Member class for DB2 user-defined function privileges. • MDSNUT • Member class for DB2 user-defined distinct type privileges.
Summary • Transactions are a clearly defined concept that must obey the ACID rules. • There are many application resources on the system that must be protected. • SAF and the ESM work together to provide that security • It is up to the resource managers to determine how they will utilize the security services on System z