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