IBM Security Verify

 View Only
Expand all | Collapse all

ISIM: Non-compliant attributes report

  • 1.  ISIM: Non-compliant attributes report

    Posted Tue June 09, 2020 09:27 AM
    Hello,

    In our production environment the provisioning policy enforcement behavior is currently on "Mark". We would like to generate a report that shows the current non-compliant accounts and the attributes of them which are causing the compliance issues. The default "Non-compliant accounts" report shows the non compliant accounts but not their non-compliant attributes.

    IBM Support tells me that the non-compliant attributes are generated at runtime as an XML and cannot be obtained either from LDAP or DB, and that the only way to check on them is one-by-one on directly on the console (not a nice task while having more than 2000 non-compliant accounts across all services). But I wonder if there is some option to do this either from SDI, an external script or somewhere else.

    Does anyone know if there a way to generate a report like this?

    Thanks.

    ------------------------------
    Camilo Zamora
    ------------------------------


  • 2.  RE: ISIM: Non-compliant attributes report

    Posted Tue June 09, 2020 10:26 AM
    There are basically 2 ways to get the desired result - the first is probably the most quick and handy - but also the most ugly one. The second is to use ISIM APIs to perform the validation (e.g. from SDI) and is of course the best way compared to the first method :
    1. The first method is to run a provisioning policy review on the accounts you want to evaluate - this means that the persons must be member of one of more roles associated with a policy - in most cases you already have that - else it is very easy to build - you do not even need to save it - just a preview is the purpose. When the preview is performed the result is stored in the RDBMS - check the schema documentation here to find the relevant table : https://www.ibm.com/support/knowledgecenter/SSRMWJ_6.0.0.22/com.ibm.isim.doc/landing/dbschema_landing.html (I do not remember it out of my head - sorry). Next step is to export the data out of the table to something you can work with - use SDI/QMF or built-in tools - and when the export is done you can close the preview and the data will be cleaned from the table...
    2. The second method is to perform an account validation using the ISIM Java APIs - this can be done workflow or from an external application e.g. SDI. I have performed that stunt in the operational workflow some time ago - I will have to dig up the relevant piece of code later - pleas let me come back to you on that....
    3. While writing I actually got an idea on a third method - when you run a reconciliation (with policy evaluation performed) the PROCESSLOG table will actually contain a record of the evaluation - you can see that in the reconciliation request as "Noncompliant Accounts" under each "Enforce Compliance" entry. This is probably a little too complex as you will want to convert the embedded XML strings to something more workable (the format is not documented but is very generic and simple) - you can do this in SDI or using some very complex DB2 conversion to convert it to a rows in e.g. a new view (I hope I will be able to show how to do this some time - it is really nifty...)
    I will be back - probably tomorrow with a little piece of Java api code (in JavaScript) that shows the second method...

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------



  • 3.  RE: ISIM: Non-compliant attributes report

    Posted Tue June 09, 2020 10:37 AM
    In addition to the suggestions Franz posted, there is another option:

    You could set your Services' enforcement type to "Alert".  When this is done the non-compliant attribute details are persisted in the Database...at which point you could query those...but just as Franz stated with the PROCESSLOG above, the data is stored in XML and not easily parsed for standard reporting.

    I know there have been some customers asking for similar capabilities in the past, but not sure if any submitted an official Request For Enhancement to our Product Management team.  
    If you would like this data persisted in an accessible format and/or included in out of the box reports (regardless of enforcement type)...you may want to open a Request For Enhancement here: https://www.ibm.com/developerworks/rfe/

    ------------------------------
    Grey Thrasher
    IBM
    ------------------------------



  • 4.  RE: ISIM: Non-compliant attributes report

    Posted Tue June 09, 2020 10:43 AM
    Here is my advice for an RFE - in the policy preview add an option to download the result as a CSV file - this is a relatively simple solution that does not require a lot of new ISIM development - and also this is very useful when testing Provisioning Policies in general - what's not to like ;-)

    But there may b even better ideas - but KISS is a good thing...

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------



  • 5.  RE: ISIM: Non-compliant attributes report

    Posted Tue June 09, 2020 11:25 AM
    Brilliant!

    ------------------------------
    Grey Thrasher
    IBM
    ------------------------------



  • 6.  RE: ISIM: Non-compliant attributes report

    Posted Thu July 02, 2020 12:10 PM
    Hello, I want you all to know that I just created this RFE.

    Also, the quickest and more consistent way was actually through the ATTR_CHANGE and ACCT_CHANGE tables.

    Thanks and regards.

    ------------------------------
    Camilo Zamora
    ------------------------------



  • 7.  RE: ISIM: Non-compliant attributes report

    Posted Fri July 03, 2020 02:21 AM
    Let us hope the best - it would really be nice to have this "export result to csv" in the policy preview. That said there a lot of RFEs in the queue, so if you publish the RFE number it should be possible for other client to vote for the RFE.

    I personally (for a couple of my clients) I have opened an RFE to support using the same preview as for Provisioning Policies for changes to Dynamic Roles which basically is in the same problem domain - we can hope that it could be added in the same development cycle...

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------



  • 8.  RE: ISIM: Non-compliant attributes report

    Posted Tue June 09, 2020 01:53 PM
    Hello and thank you Franz and Grey,

    Tried Franz's third method and it worked perfectly!

    Exported the appropiate records from PROCESSLOG as a CSV file with a basic query and IBM DataStudio, and parsed the XML output with a small(-ish) python script.

    I might still open the RFE, would be a nice feature.

    Thanks!

    ------------------------------
    Camilo Zamora
    ------------------------------



  • 9.  RE: ISIM: Non-compliant attributes report

    Posted Tue June 09, 2020 02:22 PM
    Well - I suppose you are not needing the input to my second method then....

    But here is the important steps (this is copied from an operational account workflow script - so it will need some small changes to run in SDI) - you will need to login into ISIM first and then these steps will calculate non-compliant attributes for an account :
    myPersonMO = new PersonMO(platform,subject,new DistinguishedName(owner.get().dn))
    myServiceMO = new ServiceMO(platform,subject,new DistinguishedName(service.get().dn))
    myAccountMO = new AccountMO(platform,subject,new DistinguishedName(account.get().dn))
    myAccountMgr = new AccountManager(platform,subject);
    myAttrVals = myAccountMO.getData().getAttributes();
    activity.auditEvent("Account has following attributeValues : \n" + myAttrVals.toString());
    myCompliance = myAccountMgr.checkAccountCompliance(myPersonMO,myServiceMO,myAttrVals);
    activity.auditEvent("Account has following non-compliant attributeValues : \n" + myCompliance.requiredChangesToString(myAttrVals));
    This is quite simple - in SDI you can basically just search your non-compliant accounts and do the above directly using the account attributes...

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------



  • 10.  RE: ISIM: Non-compliant attributes report

    Posted Wed June 10, 2020 12:46 PM
    Thank you Franz!

    I do not have much experience working with the ISIM Java API and this will give me some idea of it.

    Regards

    ------------------------------
    Camilo Zamora
    ------------------------------



  • 11.  RE: ISIM: Non-compliant attributes report

    Posted Thu June 11, 2020 02:19 AM
    There are some good examples in the ISIM home examples folder (<isim_home>\itim\extensions\6.0\examples on my 6.0 system) there is a lot of goodies - for the external Java Apps api checkout <isim_home>\extensions\6.0\examples\apps\Readme.html
    If you have an ISIM 7 VA you can download the examples folder from the LMI.
    HTH

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------



  • 12.  RE: ISIM: Non-compliant attributes report

    Posted Mon June 15, 2020 06:40 AM
    Here you have my little contribution to this interesting discussion.

    Regarding the option 1.

    I run next query from an Excel worksheet when I want to analyze the impact of a provisioning policy modification. It is so easy to work with it, instead of surfing in the results by means of the UI.

    SELECT acct_change.POLICY_ANALYSIS_ID, acct_change.ACCT_UID, acct_change.SERVICE_NAME, acct_change.OWNER_NAME, acct_change.OPERATION_TYPE, acct_change.REASON, acct_change.REVOKE_CHANGE, acct_change.STATUS, attr_change.ATTR_NAME, attr_change.ATTR_VALUE, attr_change.OPERATION_TYPE, attr_change.PRIVILEGE_ACTION_TYPE, attr_change.ATTR_VALUE_PRESENCE FROM enrole.acct_change LEFT JOIN enrole.attr_change ON acct_change.change_id = attr_change.acct_change_id

    ------------------------------
    Felipe Risalde Serrano
    Security Expert
    Banco de España
    ------------------------------



  • 13.  RE: ISIM: Non-compliant attributes report

    Posted Tue June 16, 2020 02:04 AM
    Well - that is another nifty trick - moving the query directly to Excel....

    I will although raise a warning here - you should create a specific read-only user in your DB for this purpose (and maybe also use a specific view) and limit the access rights accordingly - reusing the standard database account this way is a risk...

    ------------------------------
    Franz Wolfhagen
    IAM Technical Architect for Europe - Certified Consulting IT Specialist
    IBM Security Expert Labs
    ------------------------------