{ "info": { "author": "kesten broughton, tanner harper", "author_email": "kesten.broughton@praetorian.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3.6" ], "description": "\n.. role:: raw-html-m2r(raw)\n :format: html\n\n\n\nazure_cis_scanner\n=================\n\nSecurity Compliance Scanning tool for CIS Azure Benchmark 1.0\n\nThe purpose of this scanner is to assist organizations in locking down their Azure environments following best practices in the Center for Internet Security Benchmark release Feb 20, 2018. This repo was inspired by a similar scanner for AWS called Scout2.\n\nThis project is not yet production ready and should only be run from a local machine not exposed to untrusted networks.\n\nThe scanner can generate reports that mirror the CIS sections.\n--------------------------------------------------------------\n\n.. image:: images/cis_test_vm_section.png?raw=true\n :target: images/cis_test_vm_section.png?raw=true\n :alt: azure cis scanner homet\n\n\n\nThis scanner also allows tracking progress over time\n----------------------------------------------------\n\n.. image:: images/cis_test_secure_transfer_graph.png?raw=true\n :target: images/cis_test_secure_transfer_graph.png?raw=true\n :alt: Azure Storage: Secure Transfer not Enabled\n\n\n\nRaw data will have the format as returned by the Azure Api in json format.\nRaw data will be per major CIS section in files based on the name.\n\n.. code-block::\n\n Identity and Access Management Logging and Monitoring \n Security Center Networking\n Storage Virtual Machines\n SQL Services Other Miscellaneous Items\n\n\nFiltered data will be in files named by the finding and have the following format\n\n.. code-block::\n\n {\n \"threat_detection_should_be_turned_on\": {\n \"metadata\": { \"columns\": ['region', 'server', database' ],\n \"finding\": 'threat_detection_should_be_turned_on'}\n \"stats\": {\"items_checked\": 10, \"items_flagged\": 4},\n \"items\": [\n ('us-west-1', 'server01', 'db011')\n ('us-west-2', 'server02', 'db021')\n ('us-west-2', 'server02', 'db023')\n ('us-west-2', 'server02', 'db024')\n ]\n }\n \"another_finding_in_this_section\": ...\n }\n\n\nGetting Started\n---------------\n\nBest practice is to work inside a docker container to avoid any issues that would arise from a multi-tenant environment.\nIf running from the native command-line, take care that multi-subscription calls like permissions.sh only see the right target\nsubscriptions in the ``~/.azure/ directory``. \n\nThe container is currently a base of pshchelo/alpine-jupyter-sci-py3 with microsoft/azure-cli Dockerfile layered on top.\nWe will replace the pshchelo base with a more official (nbgallery or jupyter) docker image and tune the image in the future.\n\nWe assume you have already created an azure account or have been granted credentials with privileges sufficient to run the scanner.\nWe will login once outside of the container (merges creds with anything in ~/.azure) to get the correct subscription id, and then\nagain inside the container to restrict ourselves to the correct creds only.\n\nConfigure\n^^^^^^^^^\n\nGet the repo (until it is public)\n\n.. code-block::\n\n $ git clone git@github.com:praetorian-inc/azure_cis_scanner.git && cd azure_cis_scanner\n\n\nGet the repo (public)\n\n.. code-block::\n\n $ git clone https://github.com/praetorian-inc/azure_cis_scanner.git && cd azure_cis_scanner\n\n\nCopy azure_cis_scanner/.env-sample to .env. This is a special filename that controls docker-compose and is in .gitignore.\n\n.. code-block::\n\n azure_cis_scanner$ cp .env-sample .env\n\n\nEdit the azure_cis_scanner/.env file as needed.\nIf you are going to be developing, open docker-compose.yml and uncomment the lines marked with # DEVELOPMENT MODE\n\nRun the container and exec into it\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block::\n\n azure_cis_scanner$ docker-compose up\n\n\nIn another terminal get the container id and exec into it\n\n.. code-block::\n\n azure_cis_scanner$ docker ps\n azure_cis_scanner$ docker exec -it /bin/bash\n\n\nLogin inside the container\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe docker-compose creates (on first run) a .azure folder to hold the creds and maps it to /root/.azure.\nThis allows you to stop and start the container without having to re login for the lifetime of your tokens.\n\n.. code-block::\n\n bash-4.4$ az login\n bash-4.4$ az account list\n bash-4.4$ az account set --subscription \n\n\nEdit report/settings.py for your active_subscription_dir. This can be anything, but convention is the friendly name and the first 8 chars \nfrom the correct ``id`` in ``account list`` above. Since it is mounted into the container, it will change inside and outside the container.\n\nSample deploy (optional)\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nIf you have no resource or just want to test the scanner on fresh resources, try some of the automated deployment resources.\nCurrently, sample-deploy/terraform-azure is working the best. First we need to add terraform to the container.\n\n.. code-block::\n\n apk add terraform\n\n\nFor each folder, cd into it and run\n\n.. code-block::\n\n terraform init\n terraform apply\n\n\nYou will likely have to re-login as terraform has short timeouts on tokens.\nREMEMBER TO DESTROY YOUR RESOURCES WHEN FINISHED\n\n.. code-block::\n\n terraform destroy\n\n\nIt is best practice to create automated billing alerts via the UI to avoid unpleasant surprises.\n\nRun the scanner\n^^^^^^^^^^^^^^^\n\nChange to the scanner directory inside the container and run the scanner using a run_jnb command which \nsets variables in the jupyter notebook and runs it. Alternatively, on your first run, you can use the url \noutput from ``docker-compose up`` to login to the notebook and step through the calls. Edit the line below\nwith appropriate arguments for subscription_id and base_dir.\n\n.. code-block::\n\n bash-4.4$ cd /praetorian-tools/azure_cis_scanner/scanner\n scanner$ run_jnb -a '{\"subscription_id\": \"510f92e0-xxxx-yyyy-zzzz-095d37e6a299\", \"base_dir\": \"/engagements/cis_test\"}' -v azure_cis_scanner.ipynb -t 500\n\n\nIf the terminal prompt gets messed up, try modifying the above in an editor and pasting in its entirety into the shell.\nThere is currently no progress report, but if you open sublime you can watch the files as they are created in base_dir.\nIf the files are not created as expected, search for clues in the _run_jnb output or, better, go to the jupyter notebook in your browser\nand step through the cells until an error occurs.\n\nNote that running the scanner a second time on the same day will clobber the old result. A new folder is created when the scanner is \nrun on a new day.\n\nBrowse the report\n^^^^^^^^^^^^^^^^^\n\nAt this point your base_dir should have been populated with files as shown below\n\n.. image:: images/cis_test_azure_scanner_files.png?raw=true\n :target: images/cis_test_azure_scanner_files.png?raw=true\n :alt: raw and filtered generated files\n\n\n\nInside the container we now run a flask app to server generated html pages with the reports.\n\n.. code-block::\n\n bash-4.4 scanner$ cd ../report\n bash-4.4 report$ python3 app.py\n\n\nBrowse to 127.0.0.1:5000 to view the report. The subscription switching via the UI does not work yet.\n\nCurrently, graphs will not display until there are two days of data.\n\nRequesting credentials with the correct RBACs to run the scanner\n----------------------------------------------------------------\n\nIf you need to run the scanner on someone else's Azure environment, you should ask for the minimum possible\npermissions.\n\nOwner Generates Minimal Permissions Role Definition and Temporary Keys\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe following steps should be performed by someone with Owner permissions to generate minimal creds for the tester.\nGet the minimal_tester_role.json and permissions.sh scripts used to generate a custom role definition and temporary storage access keys.\n\n.. code-block::\n\n $ git clone https://github.com/praetorian-inc/azure_cis_scanner.git\n\n\nFetch the official microsoft container\n\n.. code-block::\n\n $ docker pull microsoft/azure-cli\n\n\nIf you are going to be working over many days and shutting down the container between runs, you may want to create a project-directory\n.azure folder which you will mount into the container. Persisting creds with local mount ``-v .azure/:~/.azure`` is optional.\n\n.. code-block::\n\n $ cd /path/to/working-project\n $ cp /path/to/azure_cis_scanner/{permissions.sh,minimal_tester_role.sh} .\n working-project$ docker run -it -v .azure/:~/.azure -v .:/workdir\n bash-4.3#\n\n\nWe are now inside the container at the bash-4.3# prompt. Time to log in.\n\n.. code-block::\n\n bash-4.3# az login\n\n\nComplete sign-in via the web UI login.\n\nModify minimal_tester_role.json with the correct subscription(s)\n\nModify the permissions.sh with positional variables $1=start_date, $2=end_date, $3=ip_whitelist for the generated storage keys\n\n.. code-block::\n\n bash-4.3# /workdir/permissions.sh\n\n\nThe script creates a AzureSecurityScanner role definition. The Owner now associates that role to the \nusers and can copy the generated (resource_group, account, SAS keys) tuples and send them securely to the pen-tester.\n\nConstraints\n-----------\n\nAn attempt was made to convert to json everywhere, but the current raw/filtered data used key tuples - eg (resource_group, server, database) -\nwhich only supported in yaml. An attempt to use safe_yaml was made, but the tuples caused errors. The intention is to have ``raw`` data pulled\nas infrequently as possible from the cloud API, stored as close as possible to the delivered format.\\ :raw-html-m2r:`
`\nWe may switch from tuple to nested dict in the future.\n\nRoadmap\n-------\n\n\n* Further development of automation for deployment of an insecure test environment.\n* Add to remediation scripts in the ``remediations`` folder to automatically resolve many simple \"switch on\" issues.\n* Use the python sdk instead of bash.\n* Wrap the flask project with praetorian-flask for security. Only run on a local network until this is complete.\n* Remove manual steps by generating minimal_tester_role.json with correct subscriptions/resource_group paths.\n* The container is currently a base of pshchelo/alpine-jupyter-sci-py3 with microsoft/azure-cli Dockerfile layered on top.\n* Replace the pshchelo base with a more official (nbgallery or jupyter) docker image and tune the image in the future.\n* Add git hooks to automatically remove cell output of azure_cis_scanner.ipynb to avoid checking in sensitive info\n\nDigging Deeper\n--------------\n\nA Scanner is a good first tool for securing a cloud environment to ensure best practices and secure configuration settings are employed.\nHowever, this scanner does not assess the health of your IAM policies and roles or network security groups beyond some basic known-bad settings. Azure is constantly evolving and part of the challenge of a SecOps team is keeping up with best practices in an environment where new tools are released on a monthly basis.\n\nMore advanced SecOps teams should consider leveraging automation tools, policy configurations, Azure Quick Templates, EventGrid and many other advanced features.\n\nNeed manual penetration testing? Praetorian has expertise in the Cloud, IOT, NetSec and more.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/praetorian-inc/azure_cis_scanner", "keywords": "", "license": "GNU General Public License v2 (GPLv2)", "maintainer": "", "maintainer_email": "", "name": "azure_cis_scanner", "package_url": "https://pypi.org/project/azure_cis_scanner/", "platform": "", "project_url": "https://pypi.org/project/azure_cis_scanner/", "project_urls": { "Homepage": "https://github.com/praetorian-inc/azure_cis_scanner" }, "release_url": "https://pypi.org/project/azure_cis_scanner/0.3.5/", "requires_dist": null, "requires_python": "", "summary": "Azure CIS Scanner for security", "version": "0.3.5" }, "last_serial": 4955965, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "a8c64feb8ef78566f9183ebc8550ec65", "sha256": "8a206bc724b2cb7bf1d56c0504e847254859e361da2e53ff4885494f61816c52" }, "downloads": -1, "filename": "azure_cis_scanner-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a8c64feb8ef78566f9183ebc8550ec65", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 46316, "upload_time": "2018-08-17T16:23:38", "url": "https://files.pythonhosted.org/packages/0e/c7/b790f412a4527bd618ada0001b65d1ecdaf8fca60fdda7b7a191ead58c47/azure_cis_scanner-0.2-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ece621a84eb73bda711116d476c361b0", "sha256": "11cf95ff11901af1c924f82f902310ed161546e440bdbd7e51c5e7e05a254d90" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ece621a84eb73bda711116d476c361b0", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 46372, "upload_time": "2018-08-18T21:03:45", "url": "https://files.pythonhosted.org/packages/9a/fd/2516dc8a272e05c79af637548e11a2570a81f8eefd79f05efea582215453/azure_cis_scanner-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d37a97f3114f88495c4807b1d79e7fc", "sha256": "d85eb93af36c2e04f7b7232a986b49201af227edff0789acd7d3b8747d38f839" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4d37a97f3114f88495c4807b1d79e7fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45300, "upload_time": "2018-08-18T21:03:29", "url": "https://files.pythonhosted.org/packages/5d/af/02f211ea3108a63c4580f42e5a1cdcd943400b1d5f40906e678b2861f97d/azure_cis_scanner-0.2.1.tar.gz" } ], "0.2.10": [ { "comment_text": "", "digests": { "md5": "caf36d02d8b145c35d2f88fb48174a5e", "sha256": "9096632af93a1ad87e9fe251883b243480dca66b5ebf164c5e8cea377042c3c3" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.10-py3-none-any.whl", "has_sig": false, "md5_digest": "caf36d02d8b145c35d2f88fb48174a5e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 82001, "upload_time": "2018-09-04T01:46:15", "url": "https://files.pythonhosted.org/packages/2c/a6/832bbf87c5ac730ac88ed43b7fcbf8917d52fc76652ae070796cb900fa4c/azure_cis_scanner-0.2.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a74002d808874ed4e18fd14ba48bf5c", "sha256": "f40c962094ad99446eb6e85613ddc32b68290b968a3e4cae713a3115aa39b8a2" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.10.tar.gz", "has_sig": false, "md5_digest": "9a74002d808874ed4e18fd14ba48bf5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72096, "upload_time": "2018-09-04T01:46:03", "url": "https://files.pythonhosted.org/packages/c7/b9/6f4c818dba90d38e7d034ac55b48cbcd97f432351f00d880e09ae6d6038d/azure_cis_scanner-0.2.10.tar.gz" } ], "0.2.11": [ { "comment_text": "", "digests": { "md5": "1e3250d75dd48dfe13c9f004e69d5a00", "sha256": "86366748afc1ceaefdee64750567ea33e19e1e84dca3290a6737228d91a70a9d" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.11-py3-none-any.whl", "has_sig": false, "md5_digest": "1e3250d75dd48dfe13c9f004e69d5a00", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 82038, "upload_time": "2018-09-09T16:15:29", "url": "https://files.pythonhosted.org/packages/ae/34/71797a759fbf88bb0e7e1be78f3e7b2752bfcb59e58141a111e5ede9a210/azure_cis_scanner-0.2.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e67067afe79f89703fb1e729ff0b7ac", "sha256": "dcab9065224af8e1269c99d6d4cc1c8c9bc819b5b41397455776ff2163de0992" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.11.tar.gz", "has_sig": false, "md5_digest": "2e67067afe79f89703fb1e729ff0b7ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72110, "upload_time": "2018-09-09T16:15:27", "url": "https://files.pythonhosted.org/packages/fe/d1/1591d9a497c31f0ab11ef060be4ccaab1c37f0401a95b686af115391848e/azure_cis_scanner-0.2.11.tar.gz" } ], "0.2.12": [ { "comment_text": "", "digests": { "md5": "f2ca913466cb1d835865897ba43b1e9e", "sha256": "b662faf128b0b1358a704046f7bcd61bc4ef133019c9a5375f35c830e42bb6b0" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.12-py3-none-any.whl", "has_sig": false, "md5_digest": "f2ca913466cb1d835865897ba43b1e9e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 82054, "upload_time": "2018-09-09T22:45:31", "url": "https://files.pythonhosted.org/packages/a2/c0/f050a74839ecbbd1a5c46b3d010baabb29bfa953b41f60ae09c6edb0bbc2/azure_cis_scanner-0.2.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4ebe138ca5caf986384433c43959adf", "sha256": "daffdeb537b2e232721aadd9cf8fd6bbf2803a29f6a6f62dfb5790d1882d6a8b" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.12.tar.gz", "has_sig": false, "md5_digest": "a4ebe138ca5caf986384433c43959adf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72136, "upload_time": "2018-09-09T22:45:28", "url": "https://files.pythonhosted.org/packages/a9/2b/dd40fb9bd685aae524bfb7e6632de6052a1030f3e598ae3a16ecb7f3c9ee/azure_cis_scanner-0.2.12.tar.gz" } ], "0.2.13": [ { "comment_text": "", "digests": { "md5": "a1c6dc9bed62219060bf9327874b8615", "sha256": "3e262455476c2a3ccad10edd9d522248cb75c7d9f667c66a0d9f74fc46b81677" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.13-py3-none-any.whl", "has_sig": false, "md5_digest": "a1c6dc9bed62219060bf9327874b8615", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 82064, "upload_time": "2018-09-10T16:19:29", "url": "https://files.pythonhosted.org/packages/90/f8/aed62108820574f1e3d767a0b437907c0ee51d43bebc60f3b5347914e439/azure_cis_scanner-0.2.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5bc69e8362977651a58dd11709fc494d", "sha256": "6ec41c78ad15c84f0c66036fdf942e70935169cfb9535862e0af3c2050e4d7e2" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.13.tar.gz", "has_sig": false, "md5_digest": "5bc69e8362977651a58dd11709fc494d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72577, "upload_time": "2018-09-10T16:19:25", "url": "https://files.pythonhosted.org/packages/d5/71/30f547df93f74b6667efe5b82bad4995c3aed379e8ea971872c86a930e0f/azure_cis_scanner-0.2.13.tar.gz" } ], "0.2.14": [ { "comment_text": "", "digests": { "md5": "c5a24864df1c49861ee81f814baa8f8e", "sha256": "e058aecfc266081456d76303a883e692c879ba04fc6345b6520c70c2ba9bca3d" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.14-py3-none-any.whl", "has_sig": false, "md5_digest": "c5a24864df1c49861ee81f814baa8f8e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 82098, "upload_time": "2018-09-10T17:01:31", "url": "https://files.pythonhosted.org/packages/15/e9/3313d82c4c563e6df3e2a0d8f962933148dc8d499712142c7beb6a811de4/azure_cis_scanner-0.2.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ccd9344e6a4290309aea241c1d3abcc", "sha256": "abb5ef99814fb1ebf36ae2fcf72ae90ed142f6e745c9263fd71a6bf0bef24003" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.14.tar.gz", "has_sig": false, "md5_digest": "9ccd9344e6a4290309aea241c1d3abcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72580, "upload_time": "2018-09-10T17:01:27", "url": "https://files.pythonhosted.org/packages/7e/2d/096eb9eff5c5b3b1f5ae4dea90f919be191dd0a0175df518cc7d92f10675/azure_cis_scanner-0.2.14.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "4eb6dada56ba9ed56aeb3dcf9aedc0d8", "sha256": "1fb7902e99707c5a9b8f04ca4a12444836b346a0c784c26aa89ca65765ae3e86" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4eb6dada56ba9ed56aeb3dcf9aedc0d8", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 77096, "upload_time": "2018-08-20T03:45:09", "url": "https://files.pythonhosted.org/packages/89/aa/17c206a16d6ef48a8997b23b0566578a259b941651d2363858b5fadd63c7/azure_cis_scanner-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ed6adbc8d340cb093230b85e315dd7c", "sha256": "7dadb79ba6b391270151b4e04a3632c50da0fbfd654014280f667062b6cf271a" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.2.tar.gz", "has_sig": false, "md5_digest": "2ed6adbc8d340cb093230b85e315dd7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70630, "upload_time": "2018-08-20T03:44:29", "url": "https://files.pythonhosted.org/packages/7d/9c/1c52c85f6e211dfb6f4a3518bfd4d3fb491bbf3af00cea0ab7b92b62fcf9/azure_cis_scanner-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "94d489d62208af3a021b147bb9fae8c4", "sha256": "03bcdb692e6f12fa9b8b6fcf2f60018a2f53f6594882729c28530da71970df8f" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "94d489d62208af3a021b147bb9fae8c4", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 77140, "upload_time": "2018-08-20T05:39:57", "url": "https://files.pythonhosted.org/packages/0b/ec/4a68c54586dd2540160ddfc991e0584e8c82eecf429c6bc55a202e4c7305/azure_cis_scanner-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7272d5f3d067a0911b022d480a246e7c", "sha256": "5d992af1a82eeff52038fedb2f57547e2598b148d0088f64f05a32fcd2f255ef" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.3.tar.gz", "has_sig": false, "md5_digest": "7272d5f3d067a0911b022d480a246e7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70675, "upload_time": "2018-08-20T05:39:29", "url": "https://files.pythonhosted.org/packages/a7/87/45e3e83e8cff34546fab9989501873b69d7725ed9095c2c876c76b0afe82/azure_cis_scanner-0.2.3.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "3594326f8608ba76a166309ac2d3c3b4", "sha256": "b868bdb632e262300599a9bd45c590d9c360c4c412a77f719debc2ef6580310b" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "3594326f8608ba76a166309ac2d3c3b4", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 82658, "upload_time": "2018-08-21T15:33:33", "url": "https://files.pythonhosted.org/packages/f2/c7/a81f005cf9cff4c02bf959b15215203d447e58a5b4f9017c59a07f8afd97/azure_cis_scanner-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc75c247291f73cf093c0645d219b696", "sha256": "6ad384f7e75852dcd2833ab781913a94676550bd1e6bec7984a1a4973329e758" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.5.tar.gz", "has_sig": false, "md5_digest": "bc75c247291f73cf093c0645d219b696", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70846, "upload_time": "2018-08-21T15:33:16", "url": "https://files.pythonhosted.org/packages/e9/27/352c309abbd15e9da6fdfe3916a91dcd57b174c1b2fdd92d3bf59460814a/azure_cis_scanner-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "4fe886c764ed4e313220e075a7b6cb81", "sha256": "b75f525cdd72ccc2068fb77d5af2c360de135154d0e62a56398f5b6617dc77d9" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.6-py3-none-any.whl", "has_sig": false, "md5_digest": "4fe886c764ed4e313220e075a7b6cb81", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 82245, "upload_time": "2018-08-22T15:24:58", "url": "https://files.pythonhosted.org/packages/b0/e0/b67a1c67f7a2eee3cf6560c1b4d0a7dfad2d779a3c61a5efc8dd4cf427a3/azure_cis_scanner-0.2.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5ad4f87acd4bf128bc6f3e74467f2f1", "sha256": "f2f44c61315a2edbd2e859c08c27176e2ca9f2029f76f4840c8d721e2e0fa9da" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.6.tar.gz", "has_sig": false, "md5_digest": "e5ad4f87acd4bf128bc6f3e74467f2f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71049, "upload_time": "2018-08-22T15:24:10", "url": "https://files.pythonhosted.org/packages/0f/4c/ce9a2647f1fb39e888db6fbde1ec5b066ccd9ba7dbcd7b5ef32c7fd1398b/azure_cis_scanner-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "395de1798cde16185a2b85e6157745a0", "sha256": "25ffa7b18788234e16cb1147c4ee8d6854fd3090049a197c81603daded88a828" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "395de1798cde16185a2b85e6157745a0", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 82556, "upload_time": "2018-08-23T13:26:25", "url": "https://files.pythonhosted.org/packages/f7/c5/4da8b5ff525e1afa66108e146cc06c320d6659528b6d297d6a3e5c210ca6/azure_cis_scanner-0.2.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b354afcad6dfec99aee2535574246a4e", "sha256": "674e81a4d873d9ac0edb90099e755ab52d253771a1582d393dc565ebb649b47d" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.7.tar.gz", "has_sig": false, "md5_digest": "b354afcad6dfec99aee2535574246a4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71474, "upload_time": "2018-08-23T13:26:22", "url": "https://files.pythonhosted.org/packages/70/8d/19bf05f9e2f58b37faffefb5a57b04e5ca20185278eb4d0d7ffaf70af8a5/azure_cis_scanner-0.2.7.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "9e86da0b373d749a99dd1169084bdab6", "sha256": "7aae3525b425b24e682e8af02aad2a6e07b29947f1c4ad261a2383502a8d3274" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.9-py3-none-any.whl", "has_sig": false, "md5_digest": "9e86da0b373d749a99dd1169084bdab6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 82232, "upload_time": "2018-08-23T14:29:36", "url": "https://files.pythonhosted.org/packages/17/5f/753c326cbcac65545858cc4f34651ee7bb479233cf190201de954b278426/azure_cis_scanner-0.2.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9766a9002d6a223bf2d87e5156d9209", "sha256": "b1dd0c5aa7321c79f757b731789fbc7c77e31cb14395cec877ec55561e8d149d" }, "downloads": -1, "filename": "azure_cis_scanner-0.2.9.tar.gz", "has_sig": false, "md5_digest": "b9766a9002d6a223bf2d87e5156d9209", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71162, "upload_time": "2018-08-23T14:29:34", "url": "https://files.pythonhosted.org/packages/fc/d0/7d571b1073cfb9ae479ad84d3121d24772c1430331a4786a3de5381829f0/azure_cis_scanner-0.2.9.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "0f47f8de2e11ef0550f95b01927b808c", "sha256": "fd65d0c7a03c31c77c9eed94fbd2e8a404fddce7c491100be7db6ce67e2261e3" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f47f8de2e11ef0550f95b01927b808c", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 82102, "upload_time": "2018-09-11T14:56:19", "url": "https://files.pythonhosted.org/packages/82/26/84506b99b33a6c3a1ca92d7ad45f9a676ad13ba224d0fc8809ba6d689e10/azure_cis_scanner-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45b529e09b844572769cb48464ea428d", "sha256": "d14f3d8f9e30803287bc5f79197fa32363dec26d60d599a7873e7642438fe09b" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.0.tar.gz", "has_sig": false, "md5_digest": "45b529e09b844572769cb48464ea428d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72843, "upload_time": "2018-09-11T14:56:11", "url": "https://files.pythonhosted.org/packages/82/d3/e1e759a78c5ea93dea90b711cb45b3d9b73744d32f668b28de625c810eff/azure_cis_scanner-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "5c20534faabc72b50180da5a67dd1278", "sha256": "a64eae8889f0b544c1028ba944039d05d95f3105d1fe9700325b76f6657c4e21" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5c20534faabc72b50180da5a67dd1278", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 82106, "upload_time": "2018-09-11T15:29:47", "url": "https://files.pythonhosted.org/packages/a8/a7/3debac8d22e46fc51c49f962fd896348a7e3e3821a1f5ae7a8cc978125d8/azure_cis_scanner-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cac36bcd048db71dbf39c3fc023b4548", "sha256": "99bf8de35571ca0c8987a80e4eddb2d32dccf2eb38cd493173f0d90ec3938be6" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.1.tar.gz", "has_sig": false, "md5_digest": "cac36bcd048db71dbf39c3fc023b4548", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72961, "upload_time": "2018-09-11T15:29:44", "url": "https://files.pythonhosted.org/packages/55/ff/c1f34f0fe2edef93cdad5fd7a7c4ba7dcac26bb8cd89be3e2489bfe6dddf/azure_cis_scanner-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "f286670162bf91d0a47b7c5e6897afe2", "sha256": "31fd24ee60cff30f680741afafae319330f0e88f7792f3939cc24a3bf27058f7" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f286670162bf91d0a47b7c5e6897afe2", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 86081, "upload_time": "2019-03-18T17:35:36", "url": "https://files.pythonhosted.org/packages/a7/69/ecb8cdfaaee309873b03f411367018695ef47375590d1d8681888ddbeb5f/azure_cis_scanner-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b7ada9bc595a3f62ce4677484a39ff7", "sha256": "1b71ddda96bae31a9f649b24cc79781ff25fcb606698f2de16ed8d913d3d083c" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.2.tar.gz", "has_sig": false, "md5_digest": "7b7ada9bc595a3f62ce4677484a39ff7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77207, "upload_time": "2019-03-18T17:35:31", "url": "https://files.pythonhosted.org/packages/67/b5/0159e4eba6186627cced7631f2a32319de1c8815ce1914937af1cb883a50/azure_cis_scanner-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "d27f51543c4abdf2015fef70d655725d", "sha256": "2b0cf40db89335e86df88fb122fb4a9620a17fca87093441824b1753ad4c5c3a" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d27f51543c4abdf2015fef70d655725d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 86102, "upload_time": "2019-03-18T19:41:48", "url": "https://files.pythonhosted.org/packages/48/47/353f50b3383672f5e4367593d67f966b309615a1355282203d85489ad245/azure_cis_scanner-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "837ea3c068a0d43f6d2d2f823882f903", "sha256": "b9d55393be51677a17251c695d0b03d30747a875166adf7f2730d47e6cbb86dd" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.3.tar.gz", "has_sig": false, "md5_digest": "837ea3c068a0d43f6d2d2f823882f903", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77252, "upload_time": "2019-03-18T19:41:43", "url": "https://files.pythonhosted.org/packages/05/cd/889b50ff288ace21c21532bffbf6d044749a493bc268532534bf50cded53/azure_cis_scanner-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "8b58010fdcb72f41b541b007a7a43ad5", "sha256": "259abcfb210597682cd2644f376463dc750c74178e8121a1e53c41818630f02b" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8b58010fdcb72f41b541b007a7a43ad5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 86193, "upload_time": "2019-03-18T20:22:58", "url": "https://files.pythonhosted.org/packages/62/3f/4399d50e409b6e04a5a25bf8e85170380bf88ac0bd47c534a27ad3d760e2/azure_cis_scanner-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca4617f6fce5ccb6bf24f543211272a8", "sha256": "31a7298e07a622e1c1d9526196961223aadfe4a79354efc72822c6475ff886e0" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.4.tar.gz", "has_sig": false, "md5_digest": "ca4617f6fce5ccb6bf24f543211272a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77321, "upload_time": "2019-03-18T20:22:54", "url": "https://files.pythonhosted.org/packages/a9/74/81aa5c95f6a3afd210ee3be2f73f407d883589740fb9a8561357f43e6c94/azure_cis_scanner-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "d2de303401f177a4b640243924382837", "sha256": "876d6c08d52a39eee5384d5a2045632f1acb052578f57624837c198391e78569" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d2de303401f177a4b640243924382837", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 86326, "upload_time": "2019-03-18T21:20:12", "url": "https://files.pythonhosted.org/packages/85/78/03a1279dc5ffa1fe64e78b7a745c6bb0e9ef1e6d96b3acaada94af5a7af7/azure_cis_scanner-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48cb7465cf05cff172c6e8b635e28526", "sha256": "6cd6a845ced46166401db3eaa454a592540594f482f993a2349b73e5f0d2e9c7" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.5.tar.gz", "has_sig": false, "md5_digest": "48cb7465cf05cff172c6e8b635e28526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77474, "upload_time": "2019-03-18T21:20:08", "url": "https://files.pythonhosted.org/packages/96/b6/95a7062e2deec424b883853deafc1b17fcbf7bfee90d4fcb0ab2bbc1693f/azure_cis_scanner-0.3.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d2de303401f177a4b640243924382837", "sha256": "876d6c08d52a39eee5384d5a2045632f1acb052578f57624837c198391e78569" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d2de303401f177a4b640243924382837", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 86326, "upload_time": "2019-03-18T21:20:12", "url": "https://files.pythonhosted.org/packages/85/78/03a1279dc5ffa1fe64e78b7a745c6bb0e9ef1e6d96b3acaada94af5a7af7/azure_cis_scanner-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48cb7465cf05cff172c6e8b635e28526", "sha256": "6cd6a845ced46166401db3eaa454a592540594f482f993a2349b73e5f0d2e9c7" }, "downloads": -1, "filename": "azure_cis_scanner-0.3.5.tar.gz", "has_sig": false, "md5_digest": "48cb7465cf05cff172c6e8b635e28526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77474, "upload_time": "2019-03-18T21:20:08", "url": "https://files.pythonhosted.org/packages/96/b6/95a7062e2deec424b883853deafc1b17fcbf7bfee90d4fcb0ab2bbc1693f/azure_cis_scanner-0.3.5.tar.gz" } ] }