Giter VIP home page Giter VIP logo

mcca's Introduction

Overview

Microsoft Compliance Configuration Analyzer (MCCA) is a tool which, on execution, generates a report highlighting known issues in your compliance configurations in achieving data protection guidelines and recommends best practices to follow.

What is Microsoft Compliance Configuration Analyzer (MCCA)?

It is a PowerShell-based utility that will fetch your tenant’s current configurations & validate these configurations against Microsoft 365 recommended best practices. These best practices are based on a set of controls that include key regulations and standards for data protection and general data governance. MCCA then provides you with an actionable status report for improving your compliance posture.

Why should I use it?

Often tenants face challenges in diagnosing their compliance posture & ensuring that they have the right configurations in place to protect their environment completely. These are largely manual processes which tend to be time consuming & allow for human error. Furthermore, with the evolving compliance landscape the risk of blind spots also increases. MCCA is a diagnostic tool that will report the status of your current configurations. This allows you to focus efforts more on making the right configurations.

What is in scope?

This version will provide you recommendations for the M365 Compliance solutions listed below. We will keep adding more solutions & richer recommendations in future versions of this tool.

    1.	Microsoft Information Protection
        a. 	Data Loss Prevention
        b.	Information Protection
    2.	Microsoft Information Governance
        a.	Information Governance
        b.	Records Management
    3.	Insider Risk
        a.	Communication Compliance
        b.	Insider Risk Management
    4.	Discovery & Response
        a.	Audit
        b.	eDiscovery

That is awesome! How do I run it?

Pre-Requisites

Before running the tool, you should confirm your Microsoft 365 subscription and any add-ons. To access and use MCCA, your organization must have one of the following subscriptions or add-ons:

•	Microsoft 365 E5 subscription (paid or trial version)
•	Microsoft 365 E3 subscription + the Microsoft 365 E5 Compliance add-on

You will be able to run this tool without an E5 subscription or M365 E5 Compliance add-on, but MCCA will still report statuses for E5 workloads & capabilities.

For running the tool:

  1. You must have PowerShell version 5.1 or above to run this tool.

  2. You must have Exchange Online PowerShell module (You can follow either of the following 2 methods to download the same)

    • Exchange Online PowerShell V2 module that is available via the PowerShell gallery:

    Install-Module -Name ExchangeOnlineManagement

  3. You must have appropriate role/user permissions to be able to run this tool. The following table provides details of which roles will have access to which sections of the report.

Other roles within the organisation (not listed in the table below) may not be able to run the tool or they may be able to run the tool with limited information in the final report.

User Role MIP MIG Insider Risk Discovery & Response
DLP IP IG RM IRM CC Audit eDiscovery
Azure Information Protection admin No No1 No No No No No 4 No
Compliance admin Yes Yes Yes Yes Yes Yes Yes Yes
Compliance Data Admin Yes Yes2 Yes Yes Yes Yes3 Yes5 No
Customer Lockbox access approver No No No No No No No No
Exchange Admin No No1 No No No No No4 No
Global admin Yes Yes Yes Yes Yes Yes Yes Yes
Global reader Yes Yes Yes Yes No No Yes No
Helpdesk admin No No1 No No No No No4 No
Non-Admin User No No No No No No No No
Reports reader No No No No No No No No
Security admin Yes Yes2 No No No No Yes5 No
Security operator Yes No No No No No Yes5 No
Security reader Yes Yes2 No No No No Yes5 No
Service support admin No No No No No No No No
SharePoint admin No No No No No No No No
Teams service admin No No No No No No No No
User admin No No No No No No No No

Exceptions:

1 User will not be able generate report for IP apart from "Use IRM for Exchange Online" section.

2 User will be able generate report for IP apart from "Use IRM for Exchange Online" section.

3 User will be able generate report for IP apart from "Enable Communication Compliance in O365" section.

4 User will not be able generate report for IP apart from "Enable Auditing in Office 365" section.

5 User will be able generate report for IP apart from "Enable Auditing in Office 365" section.

Install Guide

Step 1: Open PowerShell in administrator mode

Step 2: Install MCCA

Install-Module -Name MCCAPreview

Step 3: Generate MCCA Report

Use the following cmdlet to generate the MCCA report.
Get-MCCAReport

This will generate a report based on the geolocation of your tenant. If an error occurs while fetching your tenant’s geolocation, you will get a report covering all supported geolocations.

You can learn more about this cmdlet by running the following.

Get-Help Get-MCCAReport

Input Parameters You can also get a tailored report based on specific input parameters listed below.

  1. Geolocation
 Get-MCCAReport -Geo @(1,7)
        This will generate a report based on the geolocations entered by you.You need to input appropriate numbers from the following list corresponding to the regions. 
        Input	Region
            1	Asia-Pacific
            2	Australia
            3	Canada
            4	Europe (excl. France) / Middle East / Africa
            5	France
            6	India
            7	Japan
            8	Korea
            9	North America (excl. Canada)
            10	South America
            11	South Africa
            12	Switzerland
            13	United Arab Emirates
            14	United Kingdom

Note: As an add-on, the report will always include MCCA supported international sensitive information types like SWIFT Code, Credit Card Number etc.
  1. Solutions
Get-MCCAReport -Solution @(1,7)
      This will generate a report only for the solutions entered by you. You need to input appropriate numbers from the following list corresponding to the solution. 
        Input	Solution
            1	Data Loss Prevention
            2	Information Protection
            3	Information Governance
            4	Records Management
            5	Communication Compliance
            6	Insider Risk Management
            7	Audit
            8	eDiscovery
  1. Multiple Parameters

    Get-MCCAReport -Solution @(1,7) -Geo @(9)
    

    This will generate a report only on for the solutions entered by you and based on the regions you have selected. In either of the cases, there will be a prompt to enter your credentials. Once you enter your credentials, MCCA will run for a while and an HTML report will be generated.

  2. ExchangeEnvironmentName

    This will generate MCCA report for Security & Compliance Center PowerShell in a Microsoft 365 DoD organization or Microsoft GCC High organization

    O365USGovDoD This will generate MCCA report for Security & Compliance Center PowerShell in a Microsoft 365 DoD organization.

     Get-MCCAReport -ExchangeEnvironmentName O365USGovDoD
    
    O365USGovGCCHigh
      This will generate MCCA report for Security & Compliance Center PowerShell in a Microsoft GCC High organization.
      
      Get-MCCAReport -ExchangeEnvironmentName O365USGovGCCHigh
    
  3. TurnOffDataCollection

     Get-MCCAReport -TurnOffDataCollection
    

    If you wish to switch off data collection use this parameter.

License

We use the following open source components in order to generate the report: • Bootstrap, MIT License - https://getbootstrap.com/docs/4.0/about/license/ • Fontawesome, CC BY 4.0 License - https://fontawesome.com/license/free • clipboard.js v1.5.3, MIT License - https://cdn.jsdelivr.net/clipboard.js/1.5.3/clipboard.min.js

Frequently Asked Questions (FAQ)

Will this tool make any changes to my existing settings, policies, etc.?

MCCA is a diagnostic tool that is "read-only". It fetches information about your current configurations to generate a report but will not alter any of your existing configurations.

What different sections do I see in my report?

The report provides you with:

  • Solutions summary: It provides a break-down of statuses at a solution level. Each solution has counters that tell you how many recommendations are informational, require improvement and are OK.

  • Solution drill-down: Following solutions summary, each solution has a separate section that provides detailed information about configurations & their status.

    • Each solution may have 1 or more improvement actions which will further be broken down into finer configurations. MCCA will provide you a status both at an improvement action level & also for finer configurations.

Can I generate report for specific sections within the report?

Yes, you can generate report for specific sections within the report. You can use the solution input parameter --solution <input solution number> to generate the report for a specific solution from the following list:

Input Solution
1 Data Loss Prevention
2 Information Protection
3 Information Governance
4 Records Management
5 Communication Compliance
6 Insider Risk Management
7 Audit
8 eDiscovery

For e.g. If you wanted to create report for the DLP solution only then you can run the following command:

Get-MCCAReport --solution @(1)

You can learn more about this input parameter in the Input Parameters section within the Install Guide above.

What does Recommendation, Informational, Improvement & OK messages mean?

All recommendations provided by MCCA report are categorized in 3 types of status:

  • Recommendations: These are best practices that your tenant should follow.
    Note: The support for these messages is limited in the current version so you may not see any recommendations in your report.

  • Informational: These messages/statuses represent information in your current environment & are non-actionable in nature.

  • Improvement: These messages/statuses highlight areas that need your attention & are actionable. Sections which are marked as "Improvement" would generally have 1 or more configurations marked as "Improvement".

  • OK: These messages/statuses indicate that a given area is configured efficiently to meet data protection baselines.

Why don't I see my tenant's name on the report?

Due to a technical error, the tool would not have been able to fetch your tenant's name. In the event of such error, you may not see your tenant name on the report. Please try running the tool again after some time. If the issue persists, please reach out to us at [email protected] and/or contact your Microsoft partner.

Why do I see "No active policy defined" when I already have policies defined?

The policies created by you may be protecting a subset of information, workloads, user groups and/or other criteria. "No active policy defined" highlights the areas that are not protected by your current policies and need an action on your part.

We provide "Remediation Scripts" which you can run from your PowerShell console & the required policies will automatically be set up.

Please refer to "Remarks" section in your report to understand why you are seeing "Improvement". If you still have concerns, please reach out to us at [email protected] or contact your Microsoft partner.

Why do I see "Policy defined but not protected on 1 or more workloads" when I already have policies defined?

Often there is a case where a given area (sensitive information, workloads, user groups and/or other criteria) may be protected in 1 or more policies in your environment but would not be protected across your entire environment.

E.g. Your current policy configurations may U.S. / U.K. Passport Number on SharePoint & Exchange but not on OneDrive & Teams. This puts you at risk.

To avoid such cases, MCCA will highlight all the affected areas. You will need to review these and either tweak your current policies and/or create new ones to accommodate these areas.

What are remediation scripts?

When MCCA identifies if your current policies have zero coverage for certain sensitive information types, it provides you with "Remediation Scripts" to help you avoid the hassle of manually setting up these policies. These policies will be created in Test mode and you will still have review & enable it manually.

You should review script parameters & then run these scripts from your Windows PowerShell ISE console. You would need to connect to Connect to Security & Compliance Center PowerShell or Connect to Exchange Online Center PowerShell to execute these scripts. On successful execution of the scripts, the required policies will automatically be set up.

Note: These scripts are pre-configured and may need tweaking to achieve best results for your organization. We are working on improving these scripts in future versions of this tool.

Why is the report asking me to protect Sensitive Information Types which I do not have in my environment?

This version of the tool aims to protect all possible sensitive information types across multiple geographies and/or industries.

Future versions of this tool will provide recommendations to you based on the nature of information you have in your environment.

Can I generate the report to get recommendations for Sensitive Information Types applicable to my tenant's geographic regions?

Yes, you can generate the report for specific geographic regions.

By default, the tool will generate a report based on the geolocation for your tenant. If you wish to run the report for specific geos then while running the Get-MCCAReport cmdlet, you can input an extra parameter by --Geo followed by 1 or more region numbers supported by MCCA.

Please refer the Install Guide section above for more detailed steps.

How can I add my organization's Logo in the report?

You can quickly add your organization's logo in the report by replacing the image file present in the Image folder with your logo's image with same name and file extension (i.e. logo.jpg). Please note that your logo image should be able to accurately fit within the width of 250px and height of 150px respectively.

How do I save my report?

Please use the "Print" button provided on top right corner of the report to export a PDF (subject to your browser and/or system support for printing as a PDF) or print a physical copy of your report.

This tool is awesome! How do I provide feedback and suggestions for future versions?

Please share your feedback & suggestions with us using this form. We are dying to hear from you. :)

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Trademark

Trademarks This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

mcca's People

Contributors

dgoldman-msft avatar f-bader avatar jongross4 avatar karashah1 avatar kritika1128 avatar microsoft-github-operations[bot] avatar microsoftopensource avatar nehavpandey avatar snehakishore21 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mcca's Issues

Improvement Dropdown does not expand

I really appreciate your awesome tool.
There is one point what is currently not working (at least for me)
The dropdown next to the improvement label doesn't do anything (at least for me) and I assume it should show additional information to the issues found (https://docs.microsoft.com/en-us/microsoft-365/compliance/compliance-manager-mcca?view=o365-worldwide#:~:text=Select%20the%20dropdown,and%20relevant%20documentation.).
I tried it in several different browsers (Edge, Chrome, Firefox).
In the HTML markup the quick summary is there but somehow it seems that my browsers don't expand the dropdown accordingly.

I updated to version 1.7 but the issue could be reproduced in an older version too.

Cannot create Log file

During the start of the script, I get the following message:

PowerShell 7.4.1 PS /Users/ADMIN> Get-MCCAReport mkdir: \Microsoft\MCCA: File exists Data Collection: The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. Do you accept(Y/N):Y New-Item: Could not find a part of the path '/Microsoft/MCCA/UserConsent.txt'. Set-Content: Could not find a part of the path '/Microsoft/MCCA/UserConsent.txt'. 02/23/2024 14:17:26 Log file cannot be created. 02/23/2024 14:17:26 The local machine information cannot be logged. 02/23/2024 14:17:26 A general event cannot be logged. 02/23/2024 14:17:26 A general event cannot be logged.

For some reason, it is not possible to create the logfiles. The script runs as admin, and should have enough rights to write the files. Also, If I delete the folder MCCA, it will re-create the file.

What is interesting, it does not create the folder MCCA within the folder Microsoft, but the folder has the actual name "Microsoft\MCCA"

I'm running Powershell on OSX. I did not have this issue last month. I do not remember if this MCCA script did contain a different version back then. I have tried running this exact same version on PowerShell on Windows, and did run into the same issue.

Last Update field in the body of the repo

A key aspect for users of the code is to known when the settings were last reviewed. We can see the changes time stamp in the GitHub, but having a text-based reference in the body ofr the repo, part of the description could help clarify this.

There was an issue in fetching Insider Risk Management information

Looks like something didn't load correctly? I installed MCCAPreview module 1.5 and ran Get-MCCAReport. It asked for my UPN and i am global admin.

The console says this error:
03/26/2021 11:16:52 Getting Insider Risk Management Settings
Error:03/26/2021 11:16:52 There was an issue in fetching Insider Risk Management information. Please try running the tool again after some time.

But the log says this error:
03/26/2021 11:16:52 INFO: Getting Insider Risk Management Settings
03/26/2021 11:16:52 ERROR: The term 'Get-InsiderRiskPolicy' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
TRACE: at Get-InsiderRiskManagementSettings, C:\Program Files\WindowsPowerShell\Modules\MCCAPreview\1.5\MCCA.psm1: line 764
at Get-MCCACollection, C:\Program Files\WindowsPowerShell\Modules\MCCAPreview\1.5\MCCA.psm1: line 965
at Invoke-MCCA, C:\Program Files\WindowsPowerShell\Modules\MCCAPreview\1.5\MCCA.psm1: line 1229
at Get-MCCAReport, C:\Program Files\WindowsPowerShell\Modules\MCCAPreview\1.5\MCCA.psm1: line 1159
at , : line 1

Closing of PS Sessions on exit

While I understand the need to close PowerShell sessions to clean up loose ends and all, but I would rather this not be built into a PowerShell module that could be executed as part of a larger script. Can this option be removed or added as a switch possibly? The ORCA script, of which the MCCA is very similar to, does not close sessions on exit, so I was surprised when a script I used to call MCCA and ORCA would fail post MCCA. I figured it was a timeout with the service, when apparently it was MCCA closing my sessions without asking or promoting. Thank you.

Unable to execute MCCA after install

Hi
There's something I didn't understand in how to use this great tool, but I don't manage to run it.
I succesfully installed it but then when I run Get-MCCAReport cmdlet, this is what happen. see screenshot below.
Can you provide some guidance ? thank you
image

Romain

Tell us more about your awesome experience using MCCA :)

image

It's great to hear that you enjoyed using our product! Please share your feedback on how we can further improve your MCCA experience.

NOTE: Please do not share any personal or sensitive information related to your organization and/or yourself.

Tell us about:

  • Why do you use MCCA?
  • What do you like about MCCA?
  • What do you want to see more of?
  • What role (admin, leadership, engineer, etc) do you belong to & which other stakeholders in your or use MCCA?
  • Any other feedback that you want us to work on.

Interested in discussing more?
Leave your email address and we will reach out to you or drop us an email at [email protected].

typo in check-IP101.ps1 line 70

same as title, in "check-IP101.ps1" line 70:

        $LabelAssociation = Get-LableCalssification -LogFile $LogFile

should probably read as
$LabelAssociation = Get-LableClassification -LogFile $LogFile

What about Global Admin

I notice that the Global Admin role is not included in the table. I'm assuming that this role can get all of the data, but I'd like this confirmed. Please update the table as appropriate.

Issue while accessing improvement actions via the report

Version 1.2

Improvement actions accessed via the report throw an error

Request: /apiproxy/stp/cmdata/complianceScore?$filter=Solution%20eq%20'Information%20protection'%20and%20Status%20eq%20'None%2CNotAssessed%2CPassed%2CFailedLowRisk%2CFailedMediumRisk%2CFailedHighRisk%2COutOfscope%2CToBeDetermined%2CCouldNotBeDetermined%2CPartiallyTested%2CSelect'%20and%20ControlType%20eq%20'CustomerManagedControl%2CCustomControl'&$top=1
Status code: 500
Diagnostic information: {Version:17.00.5515.008,Environment:SEAPROD,DeploymentId:757b444cc3f54ab8b1ff93b3b9aa9728,InstanceId:WebRole_IN_1,SID:fb91b1f9-360e-4531-b1ca-aa16e817d3f1,CID:9cdf8ebe-a4bb-488c-89c6-f35cffeaa106}
Time: Tue, 20 Oct 2020 05:37:48 GMT

This is possibly because of the query string used to filter improvement actions. "Outofscope" isn't a valid filter. It should be "NotInScope".

Thanks!

Tell us how we can improve MCCA!

image

It's never great hear that customers didn't like our product & we understand your perspective matters a lot! Please share your feedback on how we can improve your MCCA experience.

Tell us about:

  • Why do you use MCCA?
  • What do you not like about MCCA?
  • What do you want to see more of?
  • What role (admin, leadership, engineer, etc) do you belong to & which other stakeholders in your or use MCCA?
  • Any other feedback that you want us to work on.

Interested in discussing more?
Leave your email address and we will reach out to you or drop us an email at [email protected].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.