Security

5 Posts authored by: Julius von dem Bussche

At SAP TechEd10 in Berlin I presented an Expert Lounge session on Security. Some "repeat offenders" turned up from last year and a little crowd of frustrated BPXers looking for hacks gathered over time as well :-) People again asked me to share the presentation information and notes to solutions. Here they are.

1st topic: Introduction to Security on SDN….

There is nothing new in the security area this year, except the content on SCN gathered during the time lapse and if you used it as an information source. For those not yet familiar with SDN: Within the Security & Identity Management category you can find a wealth of security related information and usefull tools, such as:

 

2nd topic: New object S_TABU_NAM > See SAP Note 1434284 : New information about table access concept.

New authorization object S_TABU_NAM controls via the name of the table.
- Requires that S_TABU_DIS (auth group) first fails.
- Performed centrally in FM VIEW_AUTHORITY_CHECK (only..)
- Does not affect redundantly coded authority-checks.

Gotchas:
- SU53 will produce “red herrings” in the last failed check.
- SU24 proposals based on S_TABU_DIS
- Entries in table TSTCA will “auto correct” SU24 in lower release levels.

Guru note:

- Keep an eye out for the "package concept" implications for tables which belong to packages (and might have interfaces!). The developer trace warnings will help you further to heed these warnings...

 

3rd topic) Security zones via S_ICF… see SAP Note 1281504 : Authorization check for SICF services (and RFC destinations).


- Authorization object S_ICF implemented as a client side access to call a target destination, regardless of the function being called.
- Service and RFC connections can be grouped into security zones for client side access to call the destination, regardless of the application used (e.g. CUA, eCATT, CCMS, BPM, SE37, etc...)

- Use case for SolMans is obvious...

 

4th topic) New trace features-> see Trace

SAP Note 1373111: Improvements to authorization trace.
- Reason codes are provided for sy-subrc.
- Application object disabled for transaction in SU24.
- Application object globally disabled in TOBJ.
- Success against FOR USER construct shown.

SAP Note 543164: Special tracing feature in SAP.
- Population of SU24 via “original data”.
- Application objects and values recorded with context.
- Tip: Use a clean “QAS” system and transfer to DEV.
- Note: This is a guru tool and you must first read the documentation and understand SU24.

 

5th topic) Patch Tuesday and custom code… New initiative from SAP to plan security related patching on a monthly basis.

- Check your emails for the term "Patch Tuesday"
- Covers SAP code and indirectly customer coding using documented and released SAP API functions.

What about the “black hole” of customer and partner products "in the wild"...?

- QA procedures: Typically only formal checks for signatures.
- Manual reviews: Cumbersome and time consuming.
- Code Inspector: Standard tool with static rules.
- Code Profiler: Guru tool used by SAP on their own code with security focus (commercial product).

Matt Billingham’s recommendations in his Virtual Community Day session from 2009 on The ancient and noble art of code reviews are still worth gold here for sustainability of code quality (beyond security boundaries). A good tool makes developers even better (or less worse from the security perspective of good software... :-)

At SAP TechEd09 in Vienna I presented an Expert Lounge session on Security. 57 folks signed up for the "Hacker's Lunch" and a little crowd of innocent bystanders gathered over time as well. It went 40 minutes overtime with the Q&A’s at the end and several people asked me to share the presentation and notes. Here they are. h4. 1st topic: Introduction to Security on SDN….  In this case, if you are reading this and follow the link then you already are on the inside ->  so there is nothing left to hack here ;) For those not yet familiar with SDN  (https://sdn.sap.com): Within the Security & Identity Management category you can find a wealth of security related information and usefull tools, such as:       •   Moderated forums, wikis, blogs, articles, workspaces, partner information in the          EcoHub and the SAP Career Center which is a new job board focusing exclusively          on SAP related employment. There is a dedicated category for security jobs.     •    FAQs, memorable discussions and insights from SAP subject matter experts          which you won’t find elsewhere in the internet.     •   Can be used as a benchmark for „in the wild“ security by customers, consultants          and SAP as well. A functionality wishlist for developments can be supported too. h4. 2nd topic: The new SAP Security Note Service > See SAP Note 888889  (https://service.sap.com/sap/support/notes/888889) for a general overview. Within the Security and Identity Management stream at SAP TechEd09, the reasoning behind the service and how to use it was presented. In my session, I took a closer look at the trends in these notes and an analysis of selected recent examples and recommendations how to go about securing them. h5. 2.1) SAP Gateway => See SAP Note 1298433  (https://service.sap.com/sap/support/notes/1298433) for the latest entry point into this topic. Many folks believe there is some secret in SAP security. Something basis folks don't talk about. A magic trick in the remote RFC area? This is it!  Before you panic: With a relatively small effort it is easy to secure this (particularly if you are not doing it for the first time...), but if you don't take care of this issue then a critical security vulnerability is left open… See the old but release independent SAP Note 110612  (https://service.sap.com/sap/support/notes/110612) for the context.    Okay, now the bugger here is that typical security parameters used when starting server programs on an SAP instance via the gateway (so… remotely) cannot be known to SAP when rolling out default settings (e.g. USER, HOST, program name, PASSWORD, etc). So your instances have an RFC gateway control possibility, but the restrictions don’t exist by default (ACL files secinfo and reginfo). Calls to ABAP RFC enabled function modules have historically requested a user to pass an ABAP authorization check (against object S_RFC to *start* the function module) which by implication requests authentication because the ABAP system needs to know which user ID this check should be performed against. This is why you don’t normally notice this risk if you only code in ABAP, calling ABAP RFCs.Please see 1167258  (https://service.sap.com/sap/support/notes/1167258) and 6 of the patches included in note 1394093  (https://service.sap.com/sap/support/notes/1394093) for the context.   As the ABAP Editors (SE38 etc) and even the debugger (/h) are themselves written in ABAP, it stands to reason that the ABAP programming language has the capability for a programmer to create their own ABAP Editors. Some programs can even change themselves at runtime by using the same keyword statements which the SAP ABAP Editor use. Now in the case of SE38 for example, the system checks whether you have the required developer authorizations (object S_DEVELOP) and the system’s change settings permit these critical statements to be reached (SCC4 and SE06 changeability settings) and react to them if you are not. Here a developer can be lured into the trap of thinking that the checks are within the ABAP statements themselves (sometimes, ST01 traces might even lead you to believe this…) and assume that authority-checks are not required or standard function modules called do not need to be reacted to by the calling programs. Unfortunately, this is seldom true. If no checks are made, anyone can run the program and use it! Although SAP has quality gates and tools to scan their own code, such errors can still slip through… as was the case with the report RS_REPAIR_SOURCE. Standard insert report without a check   *Note:* There is no namespace check either, so do not test this on any existing programs! You can seriously damage your system!   So, what to do about finding such errors and preventing them? SAP delivers within transaction SCI (the SAP CodeInspector) a variant for security related scans of custom code. The scans are static and do not do the interpretation of the coding context for you, but are a massive improvement compared to doing nothing as they will find such statements. Examples of the checks performed by the CodeInspector are:Code Inspector variants  Additionally, BADIs are available within the STMS which can check for the presence of a ”code inspection” before the release of the transport request. You can also blacklist certain object types in combination with object names. You can find more information about this in the online SAP Help documentation of the TMS. For more advanced checks against a commercially available pattern database, you can also consider using the CodeProfiler. This also automates the interpretation of the found code further by evaluating an authority-check statement and of course the big question is… where is the inserted code coming from?? If it is unvalidated and the user can define the path or enter it in a field or parameter then your production system and data is toasted. Here is an example of a simple source scan finding the above mentioned SAP standard code in an unpatched system. Standard code insert without checks  As an experiment, we scanned Z* objects for the same coding pattern in a development system… From experience, these types of vulnerabilities typically originate from migration programs, auditor tools and “utilities” downloaded from the internet during the implementation phase of the system.Customer insert hit list

A few months ago I blogged about “The importance of being trained...” after attending an ABAP training course with SAP’s Education Department which left me regretting not having done it earlier. Different opinions about the cost : benefit ratios of training approaches were voiced in the resulting discussions, and I would like to follow-up with another positive experience of a similar nature which is also not for free – but in my books well worth it if you have made serious investments in your business and SAP technologies to support it. 

I have since attended three specialized customer security workshops as part of the MaxAttention contract option – two of them together with the customer to meet with experts from SAP on an annual basis for information exchange and one representing SAP with a customer wanting specific release dependent upgrade information not included in the standard ADM education scopes.

From the feedback, the SAP experts benefitted from the information gained from these focused workshops as much as the customer did. I can also vouch for the same: discussing customer specific implementation aspects “in the wild”, doing demos of new and improved standard functionality, finding solutions during the sessions which were previously not known and even producing a few SAP note corrections to the standard system. All with a lot of support from the SAP “backbone” behind MaxAttention services. 

There were three aspects to these MaxAttention workshops which I would like to mention in a bit more detail, as they were key ingredients for me: 

 

  • The audience: Including security folks (authorization & user administrators as well as infrastructure security) together with development members, system administrators, solution architects and compliance officers makes a good workshop. Not everyone can go into the same level of detail and others need to be moderated a bit, but certain common denominators start forming for the security aspects of implementing and running good software solutions. For example the “basis folks” were at times impressed with what is possible (or even what should be a baseline policy for them to have) which they were not aware of or did not know the background of and therefore did not pay sufficient attention to. Likewise “compliance folks” gained a better understanding of some constraints and the reasons for them. 

 

  • Sustainable implementations: MaxAttention is not about project Go-Live on time and within budget. It is about doing it consistently in running SAP system landscapes. Although one can use user and role provisioning with an IdM to bring down operational security costs, there is still some tricky security work to be done and important decisions to be made on a day-to-day basis. SAP’s Security Product Management is also focusing on being a part of the “RunSAP methodology” for post Go-Live system support after Elvis has left the building… :-) An example of this is the new transaction RSECNOTE (see SAP Note 888889) which automatically scans the systems for important security corrections not included in your patch levels and is integrated into the EarlyWatch service and SolMan. There are many more. 

 

  • Close interaction with SAP: Existing implementations using functionality which is in “maintenance mode” or even custom developments which are encountering previously unthought-of constraints are always tricky. You might need to adjust your concept and possibly even change the code more often than you hoped for. Or it simply does not work and there is no other visible option. You can try the SAP Note 11 route, but that takes time and effort and involves other people’s problems as well (I think this is an intended feature of the note :-). In selected cases where the “spanner in the works” was well thought out and presented by the customer, the direct access to experts from SAP who can be accessed via the MaxAttention contract option can make that little difference you need. As one SAP developer said during a (working) lunch session: “Okay… it has just gone “click” for me now.” Actually, the existing customer modification was requested as a basis for a standard SAP development. 

I left these workshops with a similar feeling as I had at the time after attending my first (and regrettably late) formal ABAP training: Do yourself and your important systems a favour by recognizing the importance of being supported appropriately. 

 

Disclaimer: This blog is in no way a criticism of SAP’s standard support offered via the SMP global support or even the platform enabled by SCN communities, both of which I have very positive knowledge sharing experiences as well. If you know me, then you will know that there is no doubt about that. But for very focused and specialized security support condensed into a three day workshop, you get what you pay for with the MaxAttention contract option. 

Disclosure: SAP is a customer.

In part 1, Alex Ayers and Julius Bussche wrote about using transaction SU24 and how it documents and reproduces “authorization use cases” for specific entry points which are maintained via the role menu (transactions, RFC and services). Based on some feedback and subsequent discussions in the SDN Security Forum, I decided to give a more concrete example of such a “use case”; one which is not obvious to the naked eye...

In ABAP systems, access to operations on the file system of the application server are often performed using DATASET commands to create, read, transfer, delete, etc files from ABAP programs.

From the F1 key on ABAP statement DATASET.

Invisible (but documented) authority-checks.

Even if you do not check the authority of the user in your ABAP program (AUTHORITY-CHECK object ‘S_DATASET’), the authority-checks are still performed by the kernel anyway, and the program will dump if the user is not authorized (runtime error OPEN_DATASET_NO_AUTHORITY).

 

How to find and check the authority in ABAP.

 

Now obviously, if authority is going to be checked anyway beyond the ABAP program coding itself, then it makes sense to check that authority in the program before it dumps… 

 

For this purpose, SAP provides function module AUTHORITY_CHECK_DATASET into which the calling parameters can be exported for the check on S_DATASET invoked by the subsequent commands. This gives the developer an opportunity to react to it first… In a development system, these field values can be found (if not known already) using the ST01 authorization trace on that application server, or single testing AUTHORITY_CHECK_DATASET using that the intended role.

 

 

Concentrate on the program and activity first.

 

The S_DATASET object (checked by the FM and the ABAP statement) will check the name of the program (field ‘PROGRAM’) from which the DATASET file activity (field ‘ACTVT’) is performed. So by restricting the program names in the user’s S_DATASET authority, the functional scope is restricted to only that which the application program was programmed to do. This is an easy and big security gain. 

 

Of course, the program should ideally perform further application data related checks using the appropriate application authorization objects, as well as differentiating between the activities which the program is capable of.

 

 

 

Note that if the ‘PROGRAM’ parameter of the FM is initial, then FM will determine the name of the calling program itself. In fact, the “pattern painter” in the ABAP Editor will comment it by default. This is recommended for ease of reusability (to some extent :-)

 

SU24 - Don’t reinvent the wheel each time.

 

The above described checks are subject to the authority of the user for S_DATASET authorization object. As the programs of many transactions can be expected to perform file system operations, transaction SU24 can be used to document the proposals for the activity (READ, OPEN, DELETE, etc) and program context (name) such that any subsequent use of the functionality (which will require appropriate authority) does not have to be re-traced, re-investigated, re-dumped, re-debugged... or just plain old *…

 

When adding the transaction etc to the menu tab of the role in PFCG, the system will then pull in the required S_DATASET object with the field values already populated as "standard" authorizations for that transaction.

 

 

 

 

“Hooking” the directory paths to protect groups of them.

 

Some programs might expose the application server path as an input parameter for a screen which the user can control. This is potentially subject to directory traversal attacks, particularly if the program does not make any subsequent application related authority-checks and/or depend on configuration (e.g. some RFC’s call themselves again using the application server specific configuration, such as the domain controller check in the TMS). Therefore the application developer should be carefull (as well as the role developer) which fields are passed through as input parameters without being “sanitized” first or checked for authority.

 

 

 

So what do you do if you have users who can influence the directory path or you want them to influence the directory path but restrict the input fields to exclude certain (groups of) directory paths?

 

Where are all these invoices coming from?

 

If function module AUTHORITY_CHECK_DATASET is used to check the authority of the user before the file operation is performed, then the possibility exists to activate an additional check on authorization object S_PATH for a so-called “path hook”. This is done by assigning authorization groups to specific directory paths as a protective mechanism, even if the user can influence the path input and attempt to read from or write to a directory of their choice. The platform specific paths can also be grouped together into authorization groups (see the documentation on S_PATH in transaction SU21).

 

 

 

Looping back to SU24 – a “my life would have been much easier” moment.

 

It is sometimes a tough call to write cool applications which are then subsequently also used in the manner were designed. Adding authority-checks is sometimes even counter-productive (it might seem…) as the added complexity will confuse the authorization administrators even more… and there are timelines and deadlines as well… the file system access for example is sometimes neglected in favour of (weaker) restricted transaction code entry points (the cool applications).

 

But with ~ 3 million programs in an ABAP system and an untold number of directory paths on the file systems, how could one (or a team of people) build sustainably secure roles without documenting which objects the transaction has the capability of using (check indicator only) and which proposals should always be reused (Check and Maintain indicator) from SU24?

 

Those timelines, deadlines, counter-productive tasks and cool (other) things to do remain after go-live as well, and chances are fairly good that someone working on some role will someday just pop a * into the fields of S_DATASET if they have no information to work with from SU24 when the intended use of the application was being developed. 

 

A (bad) example, and potential consequence of not maintaining SU24:

 

 

 

Conclusion of Part 2.

 

Writing ABAP applications which use file system access can be made much easier (and secure) by calling FM AUTHORITY_CHECK_DATASET and maintaining transaction SU24 for the intended use-cases (particularly the program names, and grouping the paths if required), as the folks who build the roles do not need to reinvent the whole concept (and find all the detailed program, activity and path information) when working on roles for it. It will be proposed to them each time, so they have no excuse. 

 

The responsibility here is primarily on the side of the developer, preferably working together with security.

 

PS: The authoritative SAP Note on these specific objects is 177702 - Files: Authorization objects S_PATH & S_DATASET

Alex Ayers (Turnkey Consulting) and Julius Bussche (SDN Security Forum Moderator) have participated in many discussions around authorization concepts and administration in the SDN security forum, so we got together to write a joint-blog about some of the available solutions - the intention being that we could spar against each other before being flamed by the SDN community :-) This is part 1.

ABAP authorizations are nothing new to SAP... SU01 is still there, as are the user BAPI's, even SU02 still works, and the PFCG "Profile Generator" works as well... sometimes even as it was designed to work. The tools, features and even tables have changed over time; however a little gem still remains under-rated in our opinion: this series of blogs revolves around transaction SU24 - Proposed Authorization Check Indicators for PFCG, and the behaviour of authority-check statements when PFCG is activated via profile parameter auth/no_check_in_some_cases = ‘Y‘ (which is the default installation value).

Looking back to the "old days" there were no S_TCODE checks (except possibly the optional "additional" object check at transaction start - visible in transaction SE93) and authorizations were created and combined in manually created profiles. The skill of the security administrator was to work out which objects and values corresponded to which functions and data. Security was often dealt by (not) training the user. Later on we were given the S_TCODE check (later moved from the ABAP environment to the SAP kernel) to give a bit more granularity and "up front" restriction; and today we have the profile generator as a tool which has made the creation of profiles much easier.

The profile generator automatically creates the authorizations and profiles based on transaction codes and authorization object values we specify as data in the role. To help speed up this process, SAP provides a helping hand and if we enter a transaction into a role menu, SAP proposes some authorization object values which may or may not be relevant. These proposal values can range from very accurate to non-existent (as many working with S_ALR reports in the past will have experienced). Considering that the authorizations evaluated are dependent on data, configuration of the application, navigation path through transaction(s) etc, it is easy to see how the proposals can't be right 100% of the time! Perhaps the choice of transaction for the business process is not right 100% of the time either!

During an SAP implementation, it is often challenging to identify the choice of transaction codes a certain function in the organization should be able to execute; and once successfully executed, what the folks equipped with a successfully executed transaction should, or would be able to do while using and completing the transaction (and subsequent ones, or user exits).

Once we think we have done a good job, the project is live, users aren't complaining too much, the greater challenges arise (sometimes soon) afterwards: an SP or release upgrade, an audit, or perhaps business functions bring their security concerns about each other (?).

Increasingly, we are challenged when the authorizations in their respective roles become transparent to other "steakholders" via an analysis tool such as Compliance Calibrator or the SAP standard reports in transaction SUIM (e.g. RSUSR008_009_NEW) which look beyond just the name of a role; at which time changes to the roles are requested... => and the documentation of the activity, and which transaction context it originated from originally, is sometimes hard to track down. This might, case by case, be a vast understatement...

This is where transaction SU24 can become your best friend if you set it up correctly from the start and document all entry points into the system.

Image 1: An example of the check indicators for transaction SE38:

SU24 1_1

and the proposal indicator values for PFCG:

SAP delivers default generic settings for the customer SU24 settings, in transaction SU22. So that you do not have to reinvent the wheel, but rather just tune it to your requirements, these SAP defaults in SU22 are built during development of the transactions and applications based on intentions for the use of the transaction and assumptions about the choice of the transaction which the user will have, as well as defaults for certain released RFC enabled function modules, internal and external services.

In transaction SU25, you can (amongst other things in further steps) transfer the initial default settings from the SAP „owned" default values (SU22) to your implementation specific values (SU24), which can then be changed via SU24 as required. Important are the following types of „check indicator" values. Note that you should heed the warnings, and for certain objects (system critical, or HR related, etc) you cannot permit a "no check", which effectively sets sy-subrc = 0 for specific transaction sensitive context calls.

Image 2: Check indicator settings:

C = Check (if checked in the ABAP code!)
N = Do not check (even if checked directly in the ABAP code!)

"No check" indicators should be well documented (in the transaction!) so that reuse does not create unexpected additional security gaps. For optional and exceptional objects, it does generally not make sense.

Considering that a "normal" implementation (should there be such a thing) would seldom actually request the deactivation of an application specific authority-check for a transaction context... the PFCG proposals (to follow) are a second and even more useful SU24 gem which can be used.

In SU24, you have options to maintain proposals for authorizations when you add (or change) the transaction, RFC or service on the menu tab of PFCG.

Image 3: Proposal indicators:

Proposal "Yes" (or CM): If checked in the code and (independently) also will pull all maintained objects, their fields and values into the role when the transaction, function module or service is added to the „menu" tab in transaction PFCG.

Proposal "No" (or N) = Not proposed in PFCG, but will generally be checked even if not required for the transaction (often S_DEVELOP checks are found here, which are stronger than many others; hence not proposed).

Proposal ‘ ‘ (or U): Unmaintained or unknown.

(before release 7.00 these indicators were named differently, particularly so if you have the habit of looking directly at the tables).

At first, this might sound scary => adding a transaction „pulls all objects and values..." means that adding a transaction to the role menu will add ALL objects and maintained SU24 fields with values at the same time!!! OMG! That is out of control! We only wanted to add or remove a transaction and not "really" influence the ability to use it!!... :-).

If you maintain the indicators carefully and take due care in the choice of transaction, then a little miracle can happen for sustainability and maintainability of the concept.

Imagine the following scenario: Your users can execute a given set of transaction codes (object S_TCODE) and can also use the transactions with create & change activities permitted for the application specific objects, regardless of which role those authorizations come from... They can however as a result change any field or perhaps even select any document to change, which is undesirable. You then discover that there are 10 other transactions which lead to the same screens or reports, and 20 other authorizations in their roles to use the transactions with the business object values in them. So where is the link between them, considering that there might be (at least) 200 combinations possible.

The reason for this, is sometimes the choice of transaction added to object S_TCODE (or via the menu) and additionally "Manually" inserted or "Changed" authorizations / field values to use the transaction which are not reflected in the SU24 check indicators.

By doing this, the relationship between the transaction (and also function modules and services) and the application specific objects required to use it are broken (this is a very important part of the blog), and any changes required need to be maintained manually, and individually, as well. Additionally, all changes (new checks, new objects, etc) coming from SAP with SP's and release changes, are likely to cause a few surprises during testing (or go-live) as the authorizations do not have a means to see these new, changed or removed values which relate to the transactions, RFC modules or other services - so they remain, or are not updated / deleted. The intact ones can be processed in transaction SU25 (upgrade steps) which will identify and propose the changes introduced.

This situation can to a certain extent be solved by a careful choice of entry transaction (do vendor invoices need to be entered via FB01? Not...), from which the user can only navigate via selection buttons or menus etc into further transaction contexts. Maintaining the required and desired authorization objects and their field values against the entry point transactions in SU24... (and eliminating peripheral manually entered transactions from S_TCODE) is however not just master data for the sake of master data...

Here is where the gem pays off as information value:

When you want to change a number of roles for a potentially large population of users by removing a specific object or activity type field for a specific context, you can remove it once from SU24 for that transaction, function module or service identified to have introduced it. The activity related fields maintained in SU24 will adjust the authorization values in the roles (except for those which you have inserted manually or changed directly!) when you select the „read old, merge new" option in PFCG.

Image 4: Merging the new SU24 data with the existing role data (if connected to the calling transaction, RFC or service):

This can only be done in "Expert mode", which is rather misleading... because "expert mode" is dependent on the choice of transaction and how SU24 is setup in the beginning. Sometimes being an expert is too late.... so perhaps unrealistic... but bloggable none the less... (see disclaimer below).

In some special cases, for example parameter transactions and variant transactions, it is possible (and recommended) to maintain SU24 for more than just activity type fields (there are at least 30 such fields, in addition to ACTVT). Generally OrgLevel field values are tied to organizational data, such as company code (field BUKRS), which should not normally be maintained directly in SU24, but in special cases intended only for specific orgs which are not necessarily controlled by the coding, this can be done if the transaction code (or set of them) are well documented, as maintaining the SU24 indicators of the core transaction would not make sense. These are mostly generic or DUMMY checks, which are only overwritten if SU24 & Co. are maintained for the calling transaction (the parameter transaction).

Conclusion of part 1: SU24 is intended for authorization objects, and primarily activity or action related fields, which have a defined and consistent relationship with the caller, which can be maintained in SU24 and distributed to the roles based on the tcode, RFC or service context (caller), without having to maintain the authorizations manually. This also includes customer transactions and objects.

Of course, SPRO comes to mind now, and multiple authorization instances of objects in the same role, and composite roles, etc... more about that and other tweaks in part 2 and beyond.

(Disclaimer: SAP does not recommend changing the delivered SU24 settings unless you are familiar with the implementation specific business processes and what the effect of the SU24 indicators will be on the roles in those business processes. The SU22 settings should not be changed, except by SAP and introduced via Support packages and Release upgrades).

Filter Blog

By author:
By date:
By tag: