On Fri, 23 Apr 2010 11:37:28 -0500 Chris Craddock <[email protected]>
wrote:

:>Actually I am not sure that the intent is understood. Peter is correct.
:>Unauthorized code MUST NEVER be allowed to run within an authorized address
:>space. *ALL* of the schemes being thrown around that involving turning off
:>JSCBAUTH and SYNCHing or ATTACHing the unauthorized code will DEFINITELY
:>fail the integrity rules. 

So you believe that CICS fails the integrity rules?

:>                          There is no way to dance around it or pretend
:>otherwise. The only way you could avoid the exposure would be to guarantee
:>that no authorized code code could ever run within the address space after
:>you have allowed the unauthorized code to run. There is no way to guarantee
:>that in general and in any case, it would effectively eliminate the value of
:>that address space as a server for hosting this function.

Why this requirement?

:>The only case that leaves open is a garden variety key 8 APF authorized
:>address space. If you turn off JSCBAUTH before invoking the unauthorized
:>code, then it is true that code would NOT be able to MODESET to a system key
:>or get into supervisor state while it is running, however that isn't the
:>only exposure. While they are running, they can easily diddle with the data
:>belonging to the other tasks providing the privileged application
:>functionality in that space. Most of the system owned data areas will be key
:>0, 1 or 5 (and thus whey would be safe) but most of the areas owned by the
:>worker tasks will be in key 8. All of those areas would be susceptible to
:>modification by your unauthorized code when it runs. If such a modification
:>occurred and ANY privileged code continued to run, their data would
:>potentially be invalid and that is an integrity violation in and of itself.
:>Beyond that, a little creativity would get your unauthorized code back in
:>control in a privileged condition - thus violating integrity.

Why must the authorized work areas be in key 8?

:>Removing authorization must therefore be a complete one-way trip
:>because other tasks in the address space may have already switched into
:>supervisor state and be running independently of your unauthorized code. I
:>am deadly serious about this. If you (knew enough to) "do the thought
:>experiment" you would soon realize that there is literally no way to prevent
:>these exposures. Abandon hope.

False.

:>                 Abandon hope.

It won't be easy.

:>> Now a question about TCB creation.  After control is returned from the
:>> problem state program to the caller, it should be possible to see if it
:>> ATTACHed any new TCBs.  If new TCBs were created, I could abend the entire
:>> process instead of flipping the JSCBAUTH bit back on.  This would ensure
:>> that when the user exit returned to the caller, none of the problem state
:>> program code was running.

:>> If this was true, would it be acceptable to turn the JSCBAUTH bit back on?

:>No. Not ever. Just abandon hope. This idea is just wrong. All of the
:>integrity corner cases have been studied for decades. There is just no way
:>to do it safely without making a one-way trip and guaranteeing that no
:>privileged code ever runs again.

That I agree with. You cannot safely reenable APF (and there should never be a
reason to).

--
Binyamin Dissen <[email protected]>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

----------------------------------------------------------------------
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