audit-labs/audit-tools

clone: git clone https://gitbay.org/audit-labs/audit-tools.git

main: README.org · raw

  1* Audit Tools
  2
  3*Audit Tools* is a collection of open-source Python scripts and related resources
  4intended to support auditors, risk professionals, and data analysts in
  5automating common audit procedures and analyses.
  6
  7This repository includes practical examples that can be used as-is or adapted to
  8specific audit environments.
  9
 10It also ships an interactive terminal UI (=audit_tui.py=) that walks you through
 11running an audit against GitHub, GitLab, or AWS — pick a platform, enter
 12connection details, choose which checks to run, and watch live progress.
 13
 14[[./docs/screenshots/menu.png]]
 15
 16** Contents
 17
 18| Directory            | Description                                                                  |
 19|----------------------+------------------------------------------------------------------------------|
 20| =applications/aws/=    | AWS IAM users, account/root security, password policy, S3 public access, open security groups, CloudTrail, Config, SSO |
 21| =applications/github/= | GitHub admin enumeration, org security settings, webhooks, deploy keys, secret-scanning/Dependabot alerts, audit log, branch protections, commits |
 22| =applications/gitlab/= | GitLab group/project members, branch protections, approvals, pipelines, audit events |
 23| =databases/mongo/=     | MongoDB admin enumeration                                                    |
 24| =databases/mysql/=     | MySQL admin and password queries                                             |
 25| =databases/oracle/=    | Oracle admin queries                                                         |
 26| =databases/postgres/=  | PostgreSQL admin and password queries                                        |
 27| =databases/sql/=       | Generic SQL admin queries and password analysis                              |
 28| =os/linux/=            | Linux OS reporting, password file analysis, and SSH root login checks        |
 29| =project_management/=  | Audit project tracking dashboards (Alteryx, Dash, Power BI)                  |
 30| =sampling/=            | Random and stratified sampling tools                                         |
 31| =tui/=                 | Interactive terminal UI that walks you through running an audit              |
 32
 33** Getting Started
 34
 35*Clone the Repository*
 36
 37#+begin_src bash
 38git clone https://github.com/audit-labs/audit-tools
 39cd audit-tools
 40#+end_src
 41
 42#+RESULTS:
 43
 44*Install Dependencies*
 45
 46Dependencies are optional /extras/, so you install only what a procedure needs
 47(a locked-down laptop never has to pull pandas/dash/plotly it won't run):
 48
 49#+begin_src bash
 50pip install ".[analysis]"     # sampling + data analysis (pandas, Excel)
 51pip install ".[aws]"          # AWS collectors (boto3)
 52pip install ".[collectors]"   # GitHub / GitLab collectors (requests)
 53pip install ".[dashboards]"   # dash + plotly dashboards
 54pip install ".[tui]"          # the terminal UI runner
 55pip install ".[all]"          # everything
 56#+end_src
 57
 58=~pip install -r requirements.txt~= still works and installs everything.
 59
 60*Run a Script*
 61
 62For example, to run the Linux OS report tool:
 63
 64#+begin_src bash
 65./os/linux/report/linux.sh
 66#+end_src
 67
 68Or to run a Python script:
 69
 70#+begin_src bash
 71python sampling/sample.py
 72#+end_src
 73
 74Output will be shown in the terminal or saved to a file, depending on the
 75script.
 76
 77*Interactive TUI*
 78
 79To pick a platform and be walked through an audit interactively:
 80
 81#+begin_src bash
 82python audit_tui.py
 83#+end_src
 84
 85Each run writes the same package the platform's =audit.py= produces — one CSV per
 86check plus a summary — with a progress bar and per-check results:
 87
 88[[./docs/screenshots/run.png]]
 89
 90See =tui/README.md= for details. GitHub, GitLab, and AWS are supported.
 91
 92** Stability
 93
 94*Audit Tools* is stable as of *v1.0.0*. It is a curated collection of runnable
 95scripts and an interactive TUI rather than an importable library, so each release
 96is tagged to give an engagement an exact revision to pin to.
 97
 98** Contributing
 99
100Contributions are welcome. You can contribute by:
101
102- Adding new audit-related scripts
103- Suggesting improvements or feature ideas
104- Enhancing documentation
105- Testing the tools on additional datasets and reporting any issues
106
107To contribute:
108
1091. Fork the repository
1102. Create a new branch:
111   #+begin_src bash
112   git checkout -b my-feature
113   #+end_src
1143. Commit your changes:
115   #+begin_src bash
116   git commit -m 'Added new audit test'
117   #+end_src
1184. Push your branch:
119   #+begin_src bash
120   git push origin my-feature
121   #+end_src
1225. Open a pull request