Git Product home page Git Product logo

mcw-security-baseline-on-azure's Introduction

This workshop is archived and is no longer being maintained. Content is read-only.

Security baseline on Azure

Contoso Ltd is a multinational corporation, headquartered in the United States that provides insurance solutions worldwide. Its products include accident and health insurance, life insurance, travel, home, and auto coverage. Contoso manages data collection services by sending mobile agents directly to the insured to gather information as part of the data collection process for claims from an insured individual. These mobile agents are based all over the world and are residents of the region in which they work. Mobile agents are managed remotely through regional corporate offices.

They are exploring a lift and shift strategy to Azure, but have a large focus on Azure Security and Privacy features.

July 2020

Target audience

  • Cloud Administrators
  • Cloud Architects
  • Security Analysts
  • Security Architects

Abstracts

Workshop

In this workshop, you will learn how to design an implementation of Azure Security Center and Microsoft Compliance Manager tools to ensure a secure and privacy-focused Azure cloud-based architecture.

At the end of this workshop, you will be better able to secure your cloud-based applications and services, while ensuring privacy standards are followed and your architecture is compliant.

Whiteboard design session

In this whiteboard design session, you will work with a group to design an end-to-end solution that leverages many of Microsoft Azure’s security features.

At the end of this session, you will be better able to design and recommend solutions that help organizations properly secure their cloud-based applications while protecting their sensitive data.

Hands-on lab

In this hands-on lab, you will implement many of the Azure Security Center features to secure their cloud-based Azure infrastructure (IaaS) and applications (PaaS). Specifically, you will ensure that any internet exposed resources have been properly secured and any non-required internet access disabled. Additionally, you will implement a “jump machine” for admins with Application Security enabled to prevent admins from installing non-approved software and potentially exposing cloud resources. You will then utilize custom alerts to monitor for TCP/IP Port Scans and then fire alerts and run books based on those attacks.

At the end of this hands-on lab, you will be better able to design and build secure cloud-based architectures, and to improve the security of existing applications hosted within Azure.

Azure services and related products

  • Azure Virtual Machines and Networks with Network Security Groups
  • Virtual Private Networks (Point to Point, Site to Site)
  • Azure Web Apps
  • Azure SQL DB and corresponding security features (Threat Detection, TDE, Column Level Encryption, etc.)
  • Azure Storage Encryption
  • SQL Server Virtual Machines
  • Azure IAM
  • Azure Monitor and Log Analytics
  • Azure Sentinel
  • Azure Policy
  • Power BI
  • Azure Security Center
  • Secure Score
  • Azure Key Vault Integrations
  • Microsoft Azure Active Directory
  • Microsoft Intune
  • Conditional Access controls

Azure solutions

Security and Management

Related References

mcw-security-baseline-on-azure's People

Contributors

cassiejones444 avatar codingbandit avatar dawnmariedesjardins avatar givenscj avatar hopero929 avatar joelhulen avatar ldaneliukas avatar manuinnz avatar microsoftopensource avatar msftgits avatar mwasham avatar timahenning avatar waltermyersiii 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  avatar  avatar  avatar  avatar

Watchers

 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

mcw-security-baseline-on-azure's Issues

Before the Hands-On Lab- Task 2. deploy template error

Error: An invalid value was provided for 'accessPolicies'

{ "id": "/subscriptions/6618f5bd-7a40-4584-8a49-653c870e835c/resourceGroups/azsecurity-dr/providers/Microsoft.Resources/deployments/Microsoft.Template/operations/712FE71A26BC9911", "operationId": "712FE71A26BC9911", "properties": { "provisioningOperation": "Create", "provisioningState": "Failed", "timestamp": "2019-05-22T00:45:10.9057516Z", "duration": "PT0.655914S", "trackingId": "9b0b8e89-e127-4a03-acee-9bedf62fd50d", "serviceRequestId": "570ed2c2-d888-49e0-ac75-46765e070273", "statusCode": "BadRequest", "statusMessage": { "error": { "code": "BadRequest", "message": "An invalid value was provided for 'accessPolicies'." } }, "targetResource": { "id": "/subscriptions/6618f5bd-7a40-4584-8a49-653c870e835c/resourceGroups/azsecurity-dr/providers/Microsoft.KeyVault/vaults/kvpbclh5l2bei34", "resourceType": "Microsoft.KeyVault/vaults", "resourceName": "kvpbclh5l2bei34" }, "response": { "content": { "error": { "code": "BadRequest", "message": "An invalid value was provided for 'accessPolicies'." } } } }}

Error in execution of Jupyter Notebooks

In Exercise 5:- task:-5 step 7 in Jupiter notebook Getting started.ipynb while running following query getting the parsing error:

Query:

%kql search in ({selected_table.value}) {selected_columns.value[0]}: '*local service' | take 5"

Error Message :

query execution error:
{
    "error": {
        "code": "BadArgumentError",
        "innererror": {
            "code": "SyntaxError",
            "innererror": {
                "code": "SYN0002",
                "line": 1,
                "message": "Query could not be parsed at ')' on line [1,48]",
                "pos": 48,
                "token": ")"
            },
            "message": "A recognition error occurred in the query."
        },
        "message": "The request had some invalid properties"
    }
}

Please take a look to the screenshot
error

Issue facing while performing Exercise 2 task 2

Hi ,

While performing this particular task (link is mentioned below)

https://github.com/microsoft/MCW-Security-baseline-on-Azure/blob/master/Hands-on%20lab/HOL%20step-by%20step%20-%20Security%20baseline%20on%20Azure.md#task-2-test-the-web-application-solution

We provided the correct value for the connection string and but we were facing issue while running the solution.

Could you please check this?

Also ,it would be really helpful if you could be more specific with the instructions for example, where to substitute the connection string in the web config file so that it could avoid confusion and also which value to be provided. It would be great if screenshots are provided.

Thanks
Bony

Issues faced while performing this workshop

Since there is many UI/UX changes in azure portal, there are many confusions on how to perform some steps so can you please check on that.

https://github.com/microsoft/MCW-Security-baseline-on-Azure/blob/master/Hands-on%20lab/HOL%20step-by%20step%20-%20Security%20baseline%20on%20Azure.md#task-3-test-network-security-group-rules-2

in this particular task it is mentioned -> Port scan for port 1433 (SQL) to db-1 is successful, and web-1 is unsuccessful from the paw-1 machine.

but this didnt work for me.

https://github.com/microsoft/MCW-Security-baseline-on-Azure/blob/master/Hands-on%20lab/HOL%20step-by%20step%20-%20Security%20baseline%20on%20Azure.md#task-5-execute-jupyter-notebooks

in this particular task , it is specifying to search for Getting Started with Azure Sentinel Notebooks but it does show any rsults image for reference

image

https://github.com/microsoft/MCW-Security-baseline-on-Azure/blob/master/Hands-on%20lab/HOL%20step-by%20step%20-%20Security%20baseline%20on%20Azure.md#task-2-review-and-create-azure-blueprints

here in mentioned task -> step 12 , it is specifying to select this particular option -> Audit unrestricted network access to storage accounts

but that option is no longer available.

Can you please check into this.

thanks & regards
Bony

HOL step-by-step

Lines 306 - 309 show **/ & **
Are we missing an image? Extra code?

Lab broken (Ex 2)

Exercise 2, Task 2, Step 5
Application doesn't work! See image below. Cleaning/re-building doesn't help.
Am fairly sure it's not a mistake I made since I have a classroom full of students experiencing the same issue.

image

UI/UX changes

Hi All,

This issue is regarding that there are some UI/UX changes in azure and due to which it could cause confusions for the users to perform this particular workshop.

So we have forked the repo and made the changes in our repo. we have kept it for reference below :-

https://github.com/sumitmalik51/MCW-Security-baseline-on-Azure/blob/master/Hands-on%20lab/HOL%20step-by%20step%20-%20Security%20baseline%20on%20Azure.md

Is it possible to make the changes in Microsoft repo with new screenshots and also with all the steps updated according to the new UI/UX of azure ?

It would be great, if you can run through the whole lab and check from your end.

Thanks
Bony

Exercise 3 confusing/incomplete

This exercise covers two kinds of Key Vault usage - column encryption, and storing the connection string.

At the end of the exercise, I'd expect to see the app working. But it doesn't! Task 5 step 5 just says "Because you encrypted the column in the previous exercise, EntityFramework is not able to retrieve the value. You would need to...."

It's as if the lab is incomplete.

It would be MUCH better if the exercise was split in two, and fully implemented / validated at each step. E.g.

  • Do the column encryption, get the app working, validate it
  • Move the connection string to KeyVault, get the app working again, validate it.

Ex 2 Task 3
Nice to show data masking. But should also show how an app that needs the data can still get the unmasked data

WDS trainer guide

Please review formatting in the Aug. test/fix - lines 525 - 559.
Comparing the Design section of the student guide with the design section of the trainer guide, 1) Questions asked in the student guide are not included in the trainer portion & 2) the answers are in a grey box...there's something off in the coding I think.
Thanks - Dawnmarie

Exercise 2: Task 1 : step 11

There is no option fro adding the new firewall rule.
Exercise 2: Task 2 : step 2
in the packages.config there is an unwanted symbol "+" which is the reason for the error .

ReadMe page

Please update ReadMe page with intro, target audience, and products & services.
Verify that WDS abstract is on the correct documents and HOL abstract is on the lab abstracts.

Needs LabVM

Lab requires user to have access to

  • Visual Studio 2019
  • SQL Management Studio
  • Power BI Desktop

That's simply not realistic. Some users are unwilling or unable to install these services. and some use MacOS.

The lab should instead provide a LabVM with all the necessary SW pre-installed.

lab issues

Ex 2 Task 1 Step 9
Need to explain how to open New Firewall Rule dialog, it's not obvious and doesn't open automaticaly.

Ex 3 Task 4
Refers to Client ID from Task 2. But Task 2 doesn't mention a Client ID. It only mentions an Application ID. Confusing.

Issues in Exercise 5

1.In Exercise 5 Task 1 : In Step 3 we are asked to select the Log Analytics resource but we don't have one. So we have to create a LogAnalytics Workspace 1st which is not mentioned in the lab guide.
2.Exercise 5 Task 2 : Was not able to complete since Set Alert Query given is wrong
image
3.Exercise 5 Task 4 : In step 7 we are asked to sign in to O365 account for receiving email Azure Security Center, but I don't receive any mails. Is an O365 account really required for this lab.
4.Exercise 5 Task 6 : In step 3 we are asked to open AzureDiagnostics which is not available in the list.

Lab needs to revalidate.

This lab guide needs to revalidate as many places the instruction was not clear because of Azure updates, some of the steps need to removed from the lab guide. Most of the screenshots need to update as the Azure UI is changing regularly.

Enabling JIT Manually

In exercise 1 task 2 step 3 when we are enabling jit Manually i am able to see only 1 port
image

portscanner.ps1 is failing

in exercise 4 task1 when we run the script it is failing and throwing error as the requested url does not exist on the server

image

March 2019 - Scheduled content update

@joelhulen @kylebunting
Solliance team -
This workshop is scheduled for an update in March. We will be combining this workshop with the Azure security and management workshop. Please update this issue with suggested content changes. Once done, we'll assign to our SME team for review and additional feedback.

Not able to add packet capture.

Hi,
While testing the workshop I am not able to add the packet capture in network watcher, I have tried reinstalling the extension multiple times. Getting this issue.
image

Azure Sentinel section broken

Couldn't get AzureSentinel part of lab to work at all. Needs accurate instructions, more screenshots, and needs to be fixed. Any timing sensitive issues (e.g. time for log data to appear) need to be called out.

Azure Pass issue

Received this issue via email. Please review & advise:

The Security Baseline on Azure lab does not work with the Azure Passes anymore and needs a few minor changes in the Before HOL template: (link to arm template)

Annotation 1

  1. The schema should be HTTPS not HTTP

"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",

  1. The virtual machine types are not suitable and available for all subscriptions:

Annotation 2

"virtualMachineSize": "Standard_D2_v2"
"vmSize": "Standard_DS1_v2"
"vmSize": "Standard_DS2_v2"
"vmSize": "Standard_DS1_v2"

I had to run the PowerShell command:

Get-AzComputeResourceSku | where {$_.Locations -icontains "eastus2"}

and find available types for my partners and change the template (I used Standard_E2_v3 as they are available for the subscriptions)
Annotation 3

Wanted to let you know as many partners use the Azure Passes to run these labs 😊

Best regards,

Exercise 5 (task 5)

Error in the jupyter notebook 's command
Below is the attached screenshot.

2019-10-25_19-06-15

Potential security vulnerability

Please review and fix at next scheduled test/fix.

1 microsoft.identitymodel.clients.activedirectory vulnerability found in …/InsuranceAPI/packages.config 4 days ago
Remediation
Upgrade microsoft.identitymodel.clients.activedirectory to version 5.2.0 or later. For example:

Always verify the validity and compatibility of suggestions with your codebase.

Details
CVE-2019-1258
More information
moderate severity
Vulnerable versions: < 5.2.0
Patched version: 5.2.0
An elevation of privilege vulnerability exists in Azure Active Directory Authentication Library On-Behalf-Of flow, in the way the library caches tokens, aka 'Azure Active Directory Authentication Library Elevation of Privilege Vulnerability'.

Example Analytics Query doesn't trigger

The example analytics Kusto query doesn't ever seem to fire.

AzureDiagnostics | where Type != 'AzureMetric' and OperationName == 'NetworkSecurityGroupCounters' and type_s == 'block' and direction_s == 'In' and Resource == 'WEBTRAFFICONLY'

I don't think this query is doing what we want in the HOL. We need to check for any results where a rule counter is triggers higher than usual. The above query will always return the same number of results regardless of scanning activity.

Out of date info in WDS trainer guide

Trainer Guide includes:

Alternately, an Azure Web App could be used to host the data collection web site, but not the corporate website (because Azure Web Apps does not offer any configuration that provides private, virtual network only endpoints, at least until App Service Environments leave preview). Cloud Services were ruled out so that Contoso could avoid changes to their development and deployment experience

That's very out of date! Please review rest of WDS materials similarly

Warning: Unique name on resource

Suggestion: add a note on the lab to ensure that the workspace name is unique and modify it on the template before provisioning:

{
"error": {
"code": "Conflict",
"message": "The workspace name 'azsecuritylogging' is not unique",
"target": "name"
}
}

On the template - \Hands-on lab\Scripts\template.json- line 38:

"resources": [
{
"type": "microsoft.operationalinsights/workspaces",
"name": "azsecuritylogging",
"apiVersion": "2015-11-01-preview",
"location": "eastus",
"scale": null,
"properties": {
"sku": {
"name": "standalone"
},
"retentionInDays": 31
},

Issue with Exercise 5: Azure Sentinel Logging and Reporting - Task 3: Investigate a custom alert incident

I was recently testing the MCW-Security-baseline-on-Azure workshop. Everything was proceeding as expected until I got to Exercise 5: Azure Sentinel Logging and Reporting. I first ran into an issue with Task 1: Create a dashboard. During this Task; the instructions state "In the list of workbooks, select Azure Network Watcher, choose Save.". During this process; I noticed that the Azure Network Watcher workbook had a red circle with an x for the Required data types: AzureNetworkAnalytics_CL. I was able to "resolve" this issue by updating my Log Analytics configuration.

However, as I continued the workshop to Task 3: Investigate a custom alert incident I am now having another issues that I have not been able to resolve. Specifically, I cannot get any Incidents to appear as documented in Task 3: Investigate a custom alert incident. I am reviewing the Rule Query syntax provided in Task 2: Create an Analytics alert (since I assume this is the query that will generate the Incidents). I did notice that by using the "View query results" in the "Set Rule Login" setting that I received a "NO RESULTS FOUND" message. I was able to "correct" this by inserting the following argument into the query statement:" | where TimeGenerated > ago(48h)". This this added argument; I was able to get a single output result:
10.2.0.4 | UserRule_DenyAll | 10.2.0.4 | 31,014-- | -- | -- | --
but I still do not have any Incidents to view in the Sentinel Threat management | Incident view.

Can someone help understand how to resolve this issue? I plan to use this workshop for a training in mid-June, if possible.

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.