On Thu, 23 Jun 2011 11:01:56 -0400, Andy Coburn <[email protected]> wrote:

>I question Walt's statement above in one case and one case only. The quote
>below is from the z/OS V1R11 manual Using Data Sets SC26-74410-09:
>
><quote>
>...snipped (by Walt)...
>
>Note: VSAM OPEN routines bypass RACF security checking if the program
>issuing OPEN is in supervisor state or protection key 0."
>
></quote>
>
>I call your attention to the last paragraph. I have been hoping that IBM
>will find a way to eliminate this restriction so I won't have to do my own
>RACROUTE REQUEST=AUTH for every VSAM data set I open when I'm in supervisor
>state or key zero.
>
>I would imagine that not very many COBOL programs run in supervisor state or
>key zero, but Walt Farrell put on his security hat (his words) so I thought
>it might be proper to continue his line of thought. I apologize in advance
>if I am out of line here.

You're not out of line at all, Andy, and that's one point I sometimes forget
about. Thanks. But as you note, it should affect very few applications (not
just COBOL, but I expect that few programs using VSAM are running in
supervisor state or key 0.

I also wish VSAM processing would provide a way of doing that check for you.
I considered it a major breakthrough a number of years ago just getting them
to document that point so people would know about it.

Note that it's difficult for you to do the check correctly, as:
(a) You need to know that you have to use the cluster name, not the data or
index component name

(b) You need to know the volser of the catalog (not of the component you're
opening) so you can specify it on the RACROUTE REQUEST=AUTH.  Of course,
this means you need to find out the name of the catalog so you can then find
its volser.

(c) You need to know whether the RACF indicator in the cluster's sphere
record is on or off, so you can properly specify RACFIND on the RACROUTE
REQUEST=AUTH. So you need to retrieve that information from the catalog, too.

Luckily, now that they've provided and documented the catalog search
interface you can get all that info. In the good old days you had to use
undocumented SVC 26 features before you had any hope of doing the
authorization check correctly yourself.

But still, they should at least provide an option (an ACB flag, or
something) to allow you to ask OPEN to do the check for you.

However (getting back to the original question I responded to) what I
usually see when someone thinks their application should do the check is an
attempt to avoid adding recovery for a possible S913 ABEND that they'll get
if they just do an OPEN when the user isn't authorized.  But unfortunately
there are a number of ways that can go wrong, depending on how the
administrators have decided to protect the data set, and on how well the
application programmer implemented the check. And I've seen it go wrong both
ways, with the application either incorrectly deciding the user would have
access, or incorrectly deciding the user would not have access.

-- 
Walt Farrell
IBM STSM, z/OS Security Design

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to