{ "info": { "author": "Nightwatch Cybersecurity", "author_email": "research@nightwatchcybersecurity.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# airflowscan\n[![PyPI version](https://badge.fury.io/py/airflowscan.svg)](https://badge.fury.io/py/airflowscan)\n[![Build Status](https://travis-ci.org/nightwatchcybersecurity/airflowscan.svg?branch=master)](https://travis-ci.org/nightwatchcybersecurity/airflowscan)\n[![codecov](https://codecov.io/gh/nightwatchcybersecurity/airflowscan/branch/master/graph/badge.svg)](https://codecov.io/gh/nightwatchcybersecurity/airflowscan)\n![GitHub](https://img.shields.io/github/license/nightwatchcybersecurity/airflowscan.svg)\n\nChecklist and tools for increasing security of Apache Airflow.\n\n## DISCLAIMER\nThis project NOT AFFILIATED with the Apache Foundation and the Airflow project,\nand is not endorsed by them. \n\n## Contents\nThe purpose of this project is provide tools to increase security of\n[Apache Airflow](https://airflow.apache.org/). \ninstallations. This projects provides the following tools:\n- Configuration file with hardened settings - see [hardened_airflow.cfg](data/hardened_airflow.cfg).\n- Security checklist for hardening default installations - see [CHECKLIST.MD](data/CHECKLIST.md).\n- Static analysis tool to check Airflow configuration files for insecure settings.\n- JSON schema document used for validation by the static analysis tool - see [airflow_cfg.schema](data/airflow_cfg.schema) \n\n# Information for the Static Analysis Tool (airflowscan)\nThe static analysis tool can check an Airflow configuration file for settings related to security. The tool\nconvers the config file to JSON, and then uses a JSON Schema to do the validation.\n\n## Requirements\nPython 3 is required and you can find all required modules in the **requirements.txt** file.\nOnly tested on Python 3.7 but should work on other 3.x releases. No plans to 2.x support at\nthis time.\n\n## Installation\nYou can install this via PIP as follows:\n```\npip install airflowscan\nairflowscan\n```\nTo download and run manually, do the following:\n```\ngit clone https://github.com/nightwatchcybersecurity/airflowscan.git\ncd airflowscan\npip -r requirements.txt\npython -m airflowscan.cli\n```\n\n## How to use \nTo scan a configuration file, do the following command:\n```\nairflowscan scan some_airflow.cfg\n```\n\n# Reporting bugs and feature requests\nPlease use the GitHub issue tracker to report issues or suggest features:\nhttps://github.com/nightwatchcybersecurity/airflowscan\n\nYou can also send emai to ***research /at/ nightwatchcybersecurity [dot] com***\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nightwatchcybersecurity/airflowscan", "keywords": "", "license": "GNU", "maintainer": "", "maintainer_email": "", "name": "airflowscan", "package_url": "https://pypi.org/project/airflowscan/", "platform": "", "project_url": "https://pypi.org/project/airflowscan/", "project_urls": { "Bug Reports": "https://github.com/nightwatchcybersecurity/airflowscan/issues", "Homepage": "https://github.com/nightwatchcybersecurity/airflowscan", "Source": "https://github.com/nightwatchcybersecurity/airflowscan" }, "release_url": "https://pypi.org/project/airflowscan/0.1.2/", "requires_dist": [ "anymarkup (>=0.7.0)", "click (>=7.0)", "configobj (>=5.0.6)", "jsonschema (>=3.0.1)", "pytest (>=5.0.0)", "pytest-cov (>=2.7.1)" ], "requires_python": ">=3.5", "summary": "Static analysis tool to check Airflow configuration files for insecure settings", "version": "0.1.2" }, "last_serial": 5553312, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7bd87ee5cad64c5b5f9423f10dab8ef7", "sha256": "8f93e09491506f4d9ae72d4d8a71f24f1e1f88da4307207ad988b50f89ccb140" }, "downloads": -1, "filename": "airflowscan-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7bd87ee5cad64c5b5f9423f10dab8ef7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9464, "upload_time": "2019-07-15T01:19:38", "url": "https://files.pythonhosted.org/packages/f4/68/08fc338527375c91f6158ed3a85454e4648e59a6d53e7ff64955937513ee/airflowscan-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90e73ac44f22b46d874c69291b704866", "sha256": "72a561deb9ddf1c3c9d438e8538d06539950cac3fa635dfcb6969a759e8115cc" }, "downloads": -1, "filename": "airflowscan-0.1.0.tar.gz", "has_sig": false, "md5_digest": "90e73ac44f22b46d874c69291b704866", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4337, "upload_time": "2019-07-15T01:19:40", "url": "https://files.pythonhosted.org/packages/53/3c/edbfbce2bfcdba86cad44bd0e56d8778a2fc52696821327a49504bf9165b/airflowscan-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "80b0682efd43a519c16fcc1c0c9923df", "sha256": "09c0bfeccb7aee42db6ddba630c1b64997727425c2612a9e898a642ff9558ab6" }, "downloads": -1, "filename": "airflowscan-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "80b0682efd43a519c16fcc1c0c9923df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9462, "upload_time": "2019-07-18T20:56:53", "url": "https://files.pythonhosted.org/packages/09/c6/a9895b7260e8e59b5e709aa58d6a07111627d628afed07ede3d82226a52a/airflowscan-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de5a83890c1fa9d98d6c2d8fa4dffc4a", "sha256": "2fa4beca43e1263140a2ec757c82c97e6703feea1039ea944dd758007abafcaf" }, "downloads": -1, "filename": "airflowscan-0.1.1.tar.gz", "has_sig": false, "md5_digest": "de5a83890c1fa9d98d6c2d8fa4dffc4a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4344, "upload_time": "2019-07-18T20:56:55", "url": "https://files.pythonhosted.org/packages/48/d9/41b3c7ec3f84617eb434c47dcb6368d7086235ea03f7bf8fbfe31b76afcd/airflowscan-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2333dc7f52e5539e44721e6282025e9c", "sha256": "d02ad0082153ee7db1affb0343b5652c7b44bf0abcd228adbb6fad2ffc72ca82" }, "downloads": -1, "filename": "airflowscan-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2333dc7f52e5539e44721e6282025e9c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9464, "upload_time": "2019-07-18T21:06:09", "url": "https://files.pythonhosted.org/packages/d8/13/364578f0bed64e78d9b5ccf0cb9c74f1a0fc4b700be61e8b7deb852d27eb/airflowscan-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4b2a4598c4f59324184a85f608e2868", "sha256": "71a6205c8c141ec6499eb1658bdb45e22b0562826f84049bee994e562583b44e" }, "downloads": -1, "filename": "airflowscan-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a4b2a4598c4f59324184a85f608e2868", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4342, "upload_time": "2019-07-18T21:06:11", "url": "https://files.pythonhosted.org/packages/20/0c/15b81513b590c3eec8fb05297e4c725f9bfe6284133a7e42c63ea2d875d4/airflowscan-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2333dc7f52e5539e44721e6282025e9c", "sha256": "d02ad0082153ee7db1affb0343b5652c7b44bf0abcd228adbb6fad2ffc72ca82" }, "downloads": -1, "filename": "airflowscan-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2333dc7f52e5539e44721e6282025e9c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9464, "upload_time": "2019-07-18T21:06:09", "url": "https://files.pythonhosted.org/packages/d8/13/364578f0bed64e78d9b5ccf0cb9c74f1a0fc4b700be61e8b7deb852d27eb/airflowscan-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4b2a4598c4f59324184a85f608e2868", "sha256": "71a6205c8c141ec6499eb1658bdb45e22b0562826f84049bee994e562583b44e" }, "downloads": -1, "filename": "airflowscan-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a4b2a4598c4f59324184a85f608e2868", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4342, "upload_time": "2019-07-18T21:06:11", "url": "https://files.pythonhosted.org/packages/20/0c/15b81513b590c3eec8fb05297e4c725f9bfe6284133a7e42c63ea2d875d4/airflowscan-0.1.2.tar.gz" } ] }