IBM Security Z Security

Security for Z

Join this online user group to communicate across Z Security product users and IBM experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
  • 1.  Overriding a RACF_ZOS_STIG V8.10

    Posted Mon July 10, 2023 03:18 AM

    Hi,

    I require some assitance with ooverriding the RACF_ZOS_STIG V8.10 rule RACF-US-000150 (BPXPRMxx sec params) and replace a couple of tests with "local" variants. Previously the same overrides and tests were done for RACF_ZOS_STIG V6.43 rule ZUSS0012 (BPXPRMxx sec params).

    Using option AU.R.E, selecting z/OS RACF STIG v6 and z/OS RACF STIG v8, the STDGOALS output for each of the above rules produced the expected result. However the STDRULES output for the RACF-US-000150 rule was not as expected. There were two entries for RACF-US-000150, one for the "local" tests and the other for the existing rule. I expected that there would be one entry.

    The imbed for the member is 

    The se@@u150 member is

    TIA

    Brian



    ------------------------------
    Brian Mills
    ------------------------------


  • 2.  RE: Overriding a RACF_ZOS_STIG V8.10

    Posted Thu July 20, 2023 11:40 AM
    Edited by Tom Zeehandelaar Thu July 20, 2023 11:42 AM

    Hi Brian, 

    I am trying to reproduce the issue that you reported here. But I am not certain that I understand what your setup for this customization is.
    It looks to me like both the original and customized version of STIGv8 control RACF-US-000150 are processed simultaneously. That causes the duplicate output in the STDRULES report that you mention.

                     Standard control compliance summary               Line 1 of 2
    Command ===>                                                   Scroll===> CSR 
                                                    19 Jul 2023 23:45             
       Complex  Ver     Pr Standards                                              
       NMPIPL87         20         2                                              
       Standard         Pr Controls  Version                                      
       RACF_zOS_STIG    20         2 8.10                                         
       Control          Pr Cm% NS ObjGoal Comply NonCom Unkn Caption              
       RACF-US-000150   20  50          4      2      2    0 BPXPRMxx sec params  
       RACF-US-000150   20  59        244    146     98    0 BPXPRMxx sec params   

    When I just add the statement "I m=SE@@U150" in the original member C2RHU150 and do not comment out the original control, the above sample shows my output. 
    Commenting out the original RULE_SET, only produces output for the customized control. 
    But I am not quite certain that this is what you expect to see. 

    I might also be that your STIGv6 setup cannot just be copied to the equivalent STIGv8 control as that uses Multi-standard syntax whereas the STIGv6 control uses the Single-standard syntax. 

    Please let me know if this information is of any help to you.



    ------------------------------
    Tom Zeehandelaar
    z/OS Security Enablement Specialist - zSecure developer
    IBM
    ------------------------------



  • 3.  RE: Overriding a RACF_ZOS_STIG V8.10

    Posted Fri July 21, 2023 01:03 AM
    Edited by Rob van Hoboken Fri July 21, 2023 09:08 AM

    Hi Tom, the syntax documentation of STANDARD tells us that the name defined on a RULE_SET must be unique within its context, but can be duplicated within different STANDARDs or VERSIONs. 

    In the new syntax (2022), all names defined for DEF_REF, DEF_STD, DOMAIN, RULE, CONTROL or RULE_TEST, and GOAL or TEST must be unique within their context.

    • A CONTROL/RULE_SET name can be part of multiple STANDARD and VERSION statements.

    The Summary line in Brian's screen shot shows that the STANDARD and VERSION are identical, so it should be impossible for the RULE_SET to be shown twice.

    It looks like the new syntax parser does not detect the first specification of the RULE_SET, and does not merge the 2nd specification into the 1st (which would be my preferred behavior), or flag the new specification down as syntax error (which would prevent local customization of goals/tests).

    ------------------------------
    Rob van Hoboken
    ------------------------------



  • 4.  RE: Overriding a RACF_ZOS_STIG V8.10

    Posted Mon July 24, 2023 11:32 PM

    Tom and Ron

    Thanks for your replies. Would it be best to open a case with support?

    For completeness I will include the equivalent V6 details for Control ZUSS0012. The V6 result is what I was expecting for the V8 control RACF-US-000150.

    STDRULES

    STDGOALS - The results for each version is what I expected to see.

    SE@@ZU12

    sese@@u150

    Regards



    ------------------------------
    Brian Mills
    ------------------------------



  • 5.  RE: Overriding a RACF_ZOS_STIG V8.10

    Posted Wed July 26, 2023 02:37 AM

    Hi Brian,

    Rob demonstrated that there is a bug in the current processing, and development has opened a Bug ZSEC-14450 for it. Without further action, that will probably get fixed sometime, but the thread above shows that there can be discussion as to what the most appropriate fix would be. Rob thinks merging the controls would be preferable. To have the program behave as documented, a syntax error would be appropriate. I think that you want the original functionality back of suppressing the supplied rule and replacing it with a local one. Overall, my current thinking is that merging is the thing that absolutely should not happen to avoid confusion as to what is being tested and that a syntax error is appropriate when the specification is ambiguous like that as a first-order improvement, and that we should see how to restore the option of replacing a rule on the next level (assuming for now that that was intended behavior, I did not verify that yet; if not, that would be a discussion point).

    [I am positive we had an intended facility for suppressing rules from a standard, and also an option for you to add new rules; what I don't immediately recall is if we would allow the same name, and when I think about it I am not convinced it is particularly desirable.]

    By default a fix would make it into our main release level at some point. If you would want to be sure of a fix on your current release level, it would be appropriate to request an APAR for that purpose via a Case. That also tells us that this really bugs you and that we should give this Bug priority. (Furthermore, the APAR would tell other clients that looked for known problems that this one exists.) It would also give us a clear formal communication path. :-)

    Regards,



    ------------------------------
    Jeroen Tiggelman
    IBM - Software Development and Level 3 Support Manager IBM Security zSecure Suite
    Delft
    ------------------------------



  • 6.  RE: Overriding a RACF_ZOS_STIG V8.10

    Posted Wed July 26, 2023 04:12 AM

    Hi Jeroen,

    I had created approximately 20 overrides over the last couple of years. These were mainly related to rules in what is (now) the z/OS RACF STIG v6 standard. I was attempting to apply the same override logic to the equivalent rule in the z/OS RACF STIG v8 standard. 

    I expected that it would be possible with a few tweaks to align with the changes I could see in V8 rule definitions. I picked one rule, with the intention to convert others, and made some slight changes to get the result I've documented previously.

    My expectation is what I had previously done to override a rule and replace it with a new local test should be possible. Perhaps I will need to do something different to achieve It. That is OK as long as the conversion process is documented.

    Regads

    (BTW I am unavailable for the next fortnight)

     

     

     



    ------------------------------
    Brian Mills
    ------------------------------



  • 7.  RE: Overriding a RACF_ZOS_STIG V8.10

    Posted Wed July 26, 2023 12:49 PM

    In the previous syntax, RULE_SET was a simple declarative command.  Subsequent RULE commands used the SET(rule_set) parameter to group themselves into a rule_set, or control.  The installation could make a control more restrictive by coding RULE xxx SET(rule_set) commands after the rule_set was declared, as long as the new rule (xxx) was not defined before.  And installation could also use SUPPRESS RULE=yyy to disable parts of a control.  We used this extensively to tailor the zSecure STIG implementation to an installations naming (or otherwise) convention.

    In the new syntax, RULE_SET / END_RULE_SET creates a context that provides parameters for RULE commands in the context.  Jeroen's design would preclude installations from adding RULEs to zSecure's standard CONTROLs, thus limiting the ability for installations to tailor these CONTROLs to their conventions.  As a consequence, customers would have to modify SCKRCARL members and lose improvements to those members in zSecure's maintenance.

    Jeroen's proposale to deny a second RULE_SET command with the same name (as the syntax manual could interpreted) is possible iff the RULE SET() parameter is respected for RULE commands that are issued outside of a CONTROL / END_CONTROL block.  This used to be the way to link a RULE into a RULE_SET, and could be explicitly supported (again) to add installation defined rules into a CONTROL.  The current syntax does not explicitly allow or deny this parameter for the new syntax, so I suggest to document its use.



    ------------------------------
    Rob van Hoboken
    ------------------------------



  • 8.  RE: Overriding a RACF_ZOS_STIG V8.10

    Posted Wed July 26, 2023 12:50 PM

    In the previous syntax you could add a RULE (with a new name) to an existing RULE_SET, potentially making the RULE_SET more restrictive.  The link  was enable by specifying SET(rule_set) on the user specified RULE command.  Subsequently you could use SUPPRESS to take out the original RULE name.

    In the new syntax you must write a CONTROL / ENDCONTROL block, and only within the block you can write RULEs.  Can you suggest a way to augment an existing CONTROL after it has been defined, in the new syntax, for example by respecting the RULE xxx SET(control) parameter on a RULE command that is not enclosed by a CONTROL / ENDCONTROL block?



    ------------------------------
    Rob van Hoboken
    ------------------------------