In response to "Since when does MODESET turn on the JSCBAUTH bit? Just how do you propose that IBM prevent key zero code from setting it? Why do think that turning on JSCBAUTH lets key zero code do anything that it couldn't do anyways? If the installation doesn't control what goes into its authorized libraries then the vulnerability is in management, not in the platform."

You are correct - MODESET does not set JSBCAUTH. What I meant to say is:

Some of the vulnerabilities I have discovered in the wild will do the following:

 * As part of a APF authorized product there is a SVC or PC routine
   that when called will turn on the JSBCAUTH bit
 * Product application code (psw key 8 problem state not-apf
   authorized) will issue the SVC or PC to turn on JSCBAUTH bit
 * After control returns from SVC or PC routine the application program
   then issues MODESET KEY=ZERO or MODESET MODE=SUP - Since JSCBAUTH
   bit is on this does not ABEND with S047 - MODESET works.
 * Application code will do "authorized stuff"
 * Application will invoke the SVC or PC routine to turn off the
   JSBCAUTH bit

By dynamically turning on the JSCBAUTH bit allows the application to dynamically elevate its z/OS authority (ability to MODESET) which it would not normally be allowed to do. Disallowing this type of dynamic elevation of z/OS authority would make this kind of code logic unusable. It would force those that use this technique to adopt a different, more secure approach.


On 5/31/2019 12:21 PM, Seymour J Metz wrote:
The security code path can be modified (if it is non-rent), frontended by using 
content supervision functions (ex - task lib), or bypassed.
Sure, a user can front end parts of the application, he won't have access to 
the production data. Of course, if installation management lets everybody and 
his buddy alter the production JCL, then all bets are off, but then the 
crackers don't need to front end the application.

   *   I don't know who Schiller is. Can you clarify? Thanks.
https://en.wikipedia.org/wiki/Friedrich_Schiller
https://en.wikipedia.org/wiki/The_Maid_of_Orleans_(play)

   * As an example - The platform could make a new integrity rule such
    as: Only SVC 107 can turn on JSCBAUTH bit.
Since when does MODESET turn on the JSCBAUTH bit? Just how do you propose that 
IBM prevent key zero code from setting it? Why do think that turning on 
JSCBAUTH lets key zero code do anything that it couldn't do anyways? If the 
installation doesn't control what goes into its authorized libraries then the 
vulnerability is in management, not in the platform.



--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of Jesse 1 
Robinson <[email protected]>
Sent: Thursday, May 30, 2019 5:48 PM
To: [email protected]
Subject: Re: Just how secure are mainframes? | Trevor Eddolls

It must be Friday somewhere. I put 'against stupidity' into Google. Schiller's 
exact quote popped up first. Just sayin'.

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
[email protected]

-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of Ray 
Overby
Sent: Thursday, May 30, 2019 11:45 AM
To: [email protected]
Subject: (External):Re: Fwd: Just how secure are mainframes? | Trevor Eddolls

In response to "Please note that an unprivileged application can still have a 
dangerous back door that compromises, e.g., privacy, by giving a user authorized to 
access the application access more data than he is authorized to see."

As a developer of security interfaces for applications: It is extremely 
difficult to design an unprivileged application security interface in code that 
runs in PSW Key 8 problem state not apf-authorized. The security code path can 
be modified (if it is non-rent), frontended by using content supervision 
functions (ex - task lib), or bypassed. In addition, application storage areas 
+ ESM (external security manager) credentials cannot be in key 8 storage as the 
application code could accidentally or maliciously modify them.

A properly designed z/OS application would have separate application and system 
level programs and memory objects. These programs would be invoked differently 
(ex - EXEC PGM= vs a SVC or PC routine). The application code would call the 
system level programs whenever an application function needs to be performed 
that requires security checks. In this way the system level code + memory 
objects they reference cannot be accidentally or maliciously compromised by the 
application code or other programs running on the platform.

So called unprivileged application security code is really just application code.  
Important (really). But I do not like calling it security code as it does not meet the 
due diligence required for system level security code. Calling application code 
"Unprivileged application security code" leads people to assume that the code 
has integrity and therefore is secure. In most cases, this is not true. It spreads a 
false sense of security.

In response to "It can if you don't install the broken application."

   * Must of the code vulnerabilities I find are zero day
     vulnerabilities. This means there is no fix. If there is no fix then
     it is almost 100% certain that the client installing and/or running
     the product would have no idea that they are installing/running a
     back door on their system.
   * Before you install a product (how often does that happen these
     days?) do you ensure that all maintenance is applied or just hipers?
     What about integrity fix's? You probably have a different answer
     depending upon which vendor it is........

In response to "To quote Schiller, "Against stupidity the gods themselves contend in 
vain." The OS can prevent am unauthorized application from accessing unauthorized data or 
elevating its privileges; it cannot prevent the application from violating its own specifications. 
The OS also cannot protect against malicious modifications; it's a management responsibility to vet 
personnel and 3rd party providing OS changes and other privileged code."

   *   I don't know who Schiller is. Can you clarify? Thanks.
   * As an example - The platform could make a new integrity rule such
     as: Only SVC 107 can turn on JSCBAUTH bit. Any other SVC or any PC
     routine that does it will abend with S047-98 (yes, I just created a
     new abend code for integrity - Byte me!). This would render useless
     most of the currently implemented "magic SVC or PC routines" that
     turn on JSCBAUTH bit that are running in the wild today (FYI - this
     is another sub-category of a TRAP DOOR vulnerability). There are
     ways to get around this (several come to mind as I write this)
     however I would ague that a change like this would benefit all users
     of the platform. The same business arguments that were used to
     eliminate Key 8 common storage usage could be used for this change.
     With similar benefits.

On 5/30/2019 10:28 AM, Seymour J Metz wrote:
Does it really matter if an application vs z/OS has a trap door vulnerability?
Not if you don't care about security. If you care then you must investigate 
both. Please note that an unprivileged application can still have a dangerous 
back door that compromises, e.g., privacy, by giving a user authorized to 
access the application access more data than he is authorized to see.

In either case z/OS and the ESM's cannot function properly when the
TRAP DOOR vulnerability is exploited.
It can if you don't install the broken application.

Shouldn't z/OS be able to protect itself from accidental and/or malicious 
vulnerabilities?
To quote Schiller, "Against stupidity the gods themselves contend in vain." The 
OS can prevent am unauthorized application from accessing unauthorized data or elevating 
its privileges; it cannot prevent the application from violating its own specifications. 
The OS also cannot protect against malicious modifications; it's a management 
responsibility to vet personnel and 3rd party providing OS changes and other privileged 
code.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <[email protected]> on
behalf of Ray Overby <[email protected]>
Sent: Thursday, May 30, 2019 7:28 AM
To: [email protected]
Subject: Re: Fwd: Just how secure are mainframes? | Trevor Eddolls

In response to "An application with a trap door is an application
vulnerability. If there is a trap door in z/OS itself then that's a
platform vulnerability."

Does it really matter if an application vs z/OS has a trap door
vulnerability? In either case z/OS and the ESM's cannot function
properly when the TRAP DOOR vulnerability is exploited. Shouldn't z/OS
be able to protect itself from accidental and/or malicious
vulnerabilities? Isn't that what a platform is supposed to do? Isn't
that a requirement of a secure system?

Every program in z/OS has certain rules of the road it must abide by.
System level programs (PSW Key 0-7, Supervisor State, APF authorized)
regardless of whether they are in z/OS or an application have
additional rules they must adhere to (i.e. - they must not violate the
integrity of z/OS). These rules of the road are the responsibility of
and dictated by the platform. Integrity is a platform issue.

One of the reason's the mainframe is the most secure-able platform is
at least partially based on integrity. Integrity as implemented by the
platform is why security is possible. Without platform integrity
security is not possible. So all code (z/OS and application) that
operates at a system level (i.e. - PSW Key 0-7, Supervisor state, APF
authorized) must not violate the integrity rules. Failure of a single
program regardless of whether it is part of z/OS or an application
will allow a hacker to compromise that system and all data on it.

In response to "I'd be willing to bet a substantial amount that the
majority of penetrations in z/OS are application, configuration,
personnel and process vulnerabilities rather than z/OS vulnerabilities."

In terms of numbers of vulnerabilities there are fewer code based
vulnerabilities (TRAP DOOR is one example of a code based
vulnerabilities - there are others) vs configuration based
vulnerabilities. I would point out that a hacker only needs a single
TRAP DOOR  vulnerability to compromise the platform regardless of how
the platform is configured. So fewer code based vulnerabilities does
not help. All code based vulnerabilities have to be removed from the
system in order to secure the platform.

On 5/29/2019 2:57 PM, Seymour J Metz wrote:

    A single TRAP DOOR code vulnerability pierces the veil of
integrity and can be used to compromise the mainframe. Is this a platform 
weakness?
An application with a trap door is an application vulnerability. If there is a 
trap door in z/OS itself then that's a platform vulnerability. I'd be willing 
to bet a substantial amount that the majority of penetrations in z/OS are 
application, configuration, personnel and process vulnerabilities rather than 
z/OS vulnerabilities.

Would you say that the elimination of User Key Common storage is an
example of a z/OS change to address a mainframe platform weakness
Partially.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <[email protected]> on
behalf of Ray Overby <[email protected]>
Sent: Wednesday, May 29, 2019 11:11 AM
To: [email protected]
Subject: Re: Fwd: Just how secure are mainframes? | Trevor Eddolls

In response to "Mistakes, lack of time, lack of control, lack of skills.
Not a platform weakness." comment: The mainframe platform, z/OS, and
ESM's all rely on integrity to function. A single TRAP DOOR code
vulnerability pierces the veil of integrity and can be used to
compromise the mainframe. Is this a platform weakness? I think so.
The platform relies on all code it runs adhering to certain rules.
z/OS could be changed to better check and enforce those rules.

Would you say that the elimination of User Key Common storage is an
example of a z/OS change to address a mainframe platform weakness? I
think so.

An interesting observation. Thanks.

On 5/29/2019 5:25 AM, R.S. wrote:
That's classical FUD.
Frightening people.
"if an exploit", "if job reads you RACF db", "unintended consequences".
What exactly hacking scenario can provide RACF db to the hacker?
Yes, I saw APF libraries with UACC(ALTER), UID(0) as standard TSO
user attribute, even UPDATE to RACF db. But it's problem of people.
Mistakes, lack of time, lack of control, lack of skills. Not a
platform weakness.

It's typical that assurance/lock/gun salesmen tend to talk about
risks, threats and dangers. They create a vision.
My English is poor, but I can observe it for two of debaters here.
It's visible. I don't like social engineering.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to