Microsoft Azure Cloud Security Auditing: Azurite

2016-09-02T18:54:03
ID N0WHERE:112770
Type n0where
Reporter N0where
Modified 2016-09-02T18:54:03

Description

Microsoft Azure Cloud Security Auditing


Auditing Cloud services has become an essential task and significant effort is required to assess the security of the available resources. _ Azurite _ was developed to assist penetration testers and auditors during the enumeration and reconnaissance activities within the Microsoft Azure public Cloud environment. It consists of two helper scripts: Azurite Explorer and Azurite Visualizer. The scripts are used to collect, passively, verbose information of the main components within a deployment to be reviewed offline, and visualize the association between the resources using an interactive representation. One of the main features of the visual representation is to provide a quick way to identify insecure Network Security Groups (NSGs) in a subnet or Virtual Machine configuration.

Pre-requisites

  • Download and install the Azure PowerShell Cmdlets ( How to install and configure Azure PowerShell ).
  • Download and install Python 2.7.
  • Download and install Firefox.
  • Clone the repository:

    git clone https://github.com/mwrlabs/Azurite.git

  • Get the sub-module for netjsongraph.js:

    git submodule init git submodule update

Azurite Explorer & Azurite Visualizer


Azurite Explorer

_ Azurite Explorer _ implements functionality to retrieve the configuration of Azure-hosted deployments and export the output in structured JSON objects for offline review. Currently, Azurite Explorer supports only the resources deployed with the Azure Resource Manager deployment model.

Import the AzureRM module:

# PS> Import-Module AzureRM

Import Azurite Explorer module in PowerShell and retrieve the information for an Azure subscription.

# PS> Import-Module AzuriteExplorer.ps1
# PS> Review-CustomAzureRmSubscription

Provide credentials for the Azure subscription under review. The user should belong to one of the following roles:

  • Owner
  • Contributor
  • Reader

It is also required to know the ID of the target Azure subscription.

Azurite Explorer’s output will be saved in the following files:

  • azure-vms_<subscription-id>_<user-email>.json
  • azure-websites_<subscription-id>_<user-email>.json
  • azure-sqlservers_<subscription-id>_<user-email>.json
  • azure-key-vaults_<subscription-id>_<user-email>.json
  • azure-subscription_<subscription-id>_<user-email>.json

Azurite Visualizer

_ Azurite Visualizer _ will assist assessor to get a better understanding of the Azure deployment by visualizing the output exported by Azurite Explorer. It also allows to interactively collect information for the resources and it highlights any weak Network Security Groups (NSGs) associated with Subnets and Virtual Machines.

Retrieve the exported file azure-subscription_<subscription-id>_<user-email>.json from Azurite Explorer and use it as input to _ AzuriteVisualiser.py _ .

# python AzuriteVisualizer.py azure-subscription_&lt;subscription-id&gt;_&lt;user-email&gt;.json

The aforementioned operation will generate the file _ azure-subscription-nodes.json _ which contains the formatted JSON object. Finally, open _ AzuriteVisualizer.html _ in Firefox to view the graph representation of the Azure subscription’s topology of the resources.

Remarks

The Azurite Visualizer Graph is based on the netjsongraph.js and currently supports only the Firefox browser.

Development of Azurite is ongoing, and this first release provides support for mainstream Azure components, including:

  • Virtual Networks (VNets)
  • Subnets
  • Virtual Network Gateways
  • Azure SQL Servers
  • Azure SQL Databases
  • Azure Websites
  • Azure Key Vaults

Microsoft Azure Cloud Security Auditing: Azurite Download