Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Snowflake support, update OCSF, bug fixes & experiments #293

Merged
merged 55 commits into from
Sep 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
f022dfc
new ocsf mappings!
jonrau1 Aug 27, 2024
bb21138
bump ocsf stdout to 1.4.0
jonrau1 Aug 27, 2024
7cdd454
add Snowflake to TOML, bump SQS batches
jonrau1 Aug 27, 2024
8dc025d
only use `boto3` when needed
jonrau1 Aug 27, 2024
649eab3
fix missing func
jonrau1 Aug 27, 2024
2332340
wireframe Snowflake in `CloudUtils`
jonrau1 Aug 28, 2024
f57eadd
build snowflake cursor/connector
jonrau1 Aug 28, 2024
3bbf9c3
wire up snowflake to eeauditor
jonrau1 Aug 28, 2024
45918a2
add `snowflake-connector-python>=3.12.1` to reqs
jonrau1 Aug 28, 2024
ffac7dd
override aws-global for OCSF
jonrau1 Aug 28, 2024
f5b0ae0
bump OCSF KDF to 1.4.0 changes
jonrau1 Aug 28, 2024
f897f5a
fix OCSF `status_id` mapping
jonrau1 Aug 28, 2024
3ac2477
Update output_base.py
jonrau1 Aug 28, 2024
b27f0e3
Update output_base.py
jonrau1 Aug 28, 2024
b431472
fix up formatting of control objectives
jonrau1 Aug 28, 2024
738c36a
add Snowflake CIS controls
jonrau1 Aug 28, 2024
dcca114
lol didnt forget the standard!
jonrau1 Aug 28, 2024
45c011f
Snowflake types and logging for EEAuditor
jonrau1 Aug 29, 2024
6e48965
wireframe snowflake user auditor
jonrau1 Aug 29, 2024
d3603b6
better logging in this MF'er!
jonrau1 Aug 29, 2024
73cbcf4
finish staging first snowflake check
jonrau1 Aug 29, 2024
293af00
instrument Snowflake you moron
jonrau1 Aug 29, 2024
faf416c
fucking hell...
jonrau1 Aug 29, 2024
9a193fb
`DictCursor` and args fix
jonrau1 Aug 29, 2024
e1995b7
svc acct rsa keypair check
jonrau1 Aug 29, 2024
05f44f4
last 90 day login check
jonrau1 Aug 29, 2024
4fe47a5
Fix logging and Sflake logic
jonrau1 Aug 31, 2024
aa7c3d8
fix placeholder processing, standards
jonrau1 Aug 31, 2024
234aa07
add 2 more snowflake user checks
jonrau1 Aug 31, 2024
1f6c2ee
guess what...more checks MF'er!
jonrau1 Aug 31, 2024
0fbd4f4
finish our snowflake user auditor
jonrau1 Aug 31, 2024
8793080
total admin check, minor bug fixes
jonrau1 Aug 31, 2024
606250b
Stage SNOW Acct auditor
jonrau1 Sep 1, 2024
210f857
add more snowflake account checs
jonrau1 Sep 1, 2024
3262b7c
add task/stored proc admin owner checks
jonrau1 Sep 1, 2024
2ae87fb
add final password policy checks
jonrau1 Sep 1, 2024
b2dcc56
add final checks to snowflake acct auditor
jonrau1 Sep 1, 2024
59b6427
typing changes, doc start
jonrau1 Sep 1, 2024
2730058
doc updates, retire Firemon output
jonrau1 Sep 1, 2024
2c7ffef
retire firemon output
jonrau1 Sep 1, 2024
d377b07
icons and control objective updates
jonrau1 Sep 1, 2024
d8881de
architecture update
jonrau1 Sep 1, 2024
5f07bbe
finish SNOW docs
jonrau1 Sep 2, 2024
1788e5e
Testing svc account exemptions
jonrau1 Sep 2, 2024
53796e0
fix exemption logic, update docs
jonrau1 Sep 2, 2024
9e6039a
deprecate SH insights, fix list controls
jonrau1 Sep 2, 2024
d6018e7
update controller descriptions, add more shorthand
jonrau1 Sep 2, 2024
4339003
experimenting with use_toml
jonrau1 Sep 2, 2024
4f38408
setup external args experiment
jonrau1 Sep 2, 2024
001599d
Support `--args` for AWS, fix old ass bugs
jonrau1 Sep 3, 2024
e139891
fixing some old ass AWS bugs
jonrau1 Sep 3, 2024
e07afe3
doc experimental --args
jonrau1 Sep 3, 2024
b67ce72
architecture changes
jonrau1 Sep 3, 2024
fb08bf8
AWS ECR perf improvements
jonrau1 Sep 3, 2024
19ee1c6
fuck here we go with dockershit
jonrau1 Sep 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@
eeauditor/processor/outputs/*.svg
eeauditor/processor/outputs/*.html
LOCAL_external_providers.toml
output.json
output_ocsf_v1-4-0_events.json
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ COPY requirements-docker.txt /tmp/requirements-docker.txt
RUN \
apk update && \
apk add --no-cache python3 postgresql-libs && \
apk add --no-cache --virtual .build-deps gcc zlib-dev python3-dev musl-dev postgresql-dev && \
apk add --no-cache --virtual .build-deps g++ gcc zlib-dev python3-dev musl-dev postgresql-dev && \
python3 -m venv /opt/venv && \
source /opt/venv/bin/activate && \
python3 -m ensurepip && \
Expand Down
72 changes: 37 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ ElectricEye is a multi-cloud, multi-SaaS Python CLI tool for Asset Management, S

## Workflow

![Architecture](./screenshots/ElectricEyeAnimated.gif)
![Architecture](./screenshots/electrice_eye_architecture.jpg)

## Quick Run Down :running: :running:

Expand Down Expand Up @@ -74,37 +74,39 @@ python3 eeauditor/controller.py --help
Usage: controller.py [OPTIONS]

Options:
-t, --target-provider [AWS|Azure|OCI|GCP|Servicenow|M365|Salesforce]
CSP or SaaS Vendor Assessment Target, ensure
that any -a or -c arg maps to your target
provider e.g., -t AWS -a
Amazon_APGIW_Auditor
-a, --auditor-name TEXT Specify which Auditor you want to run by
using its name NOT INCLUDING .py. Defaults
to ALL Auditors
-c, --check-name TEXT A specific Check in a specific Auditor you
-t, --target-provider [AWS|Azure|OCI|GCP|Servicenow|M365|Salesforce|Snowflake]
Public cloud or SaaS assessment target,
ensure that any -a or -c arg maps to your
target provider to avoid any errors. e.g.,
-t AWS -a Amazon_APGIW_Auditor
-a, --auditor-name TEXT Specify which Auditor you want to run by
using its name NOT INCLUDING .py. . Use the
--list-checks arg to receive a list.
Defaults to ALL Auditors
-c, --check-name TEXT A specific Check in a specific Auditor you
want to run, this correlates to the function
name. Defaults to ALL Checks
-d, --delay INTEGER Time in seconds to sleep between Auditors
being ran, defaults to 0
-o, --outputs TEXT A list of Outputs (files, APIs, databases,
ChatOps) to send ElectricEye Findings,
specify multiple with additional arguments:
-o csv -o postgresql -o slack [default:
stdout]
--output-file TEXT For file outputs such as JSON and CSV, the
name of the file, DO NOT SPECIFY .file_type
name. Use the --list-checks arg to receive a
list. Defaults to ALL Checks
-d, --delay INTEGER Time in seconds to sleep between Auditors
being ran, defaults to 0. Use this argument
to avoid rate limiting
-o, --outputs TEXT A list of Outputs (files, APIs, databases,
ChatOps) to send ElectricEye Findings,
specify multiple with additional arguments:
-o csv -o postgresql -o slack [default:
ocsf_stdout]
-of, --output-file TEXT For file outputs such as JSON and CSV, the
name of the file, DO NOT SPECIFY .file_type
[default: output]
--list-options Lists all valid Output options
--list-checks Prints a table of Auditors, Checks, and
Check descriptions to stdout - use this for
-a or -c args
--create-insights Create AWS Security Hub Insights for
ElectricEye. This only needs to be done once
per Account per Region for Security Hub
--list-controls Lists all ElectricEye Controls (e.g. Check
Titles) for an Assessment Target
--toml-path TEXT The full path to the TOML file used for
-lo, --list-options Lists all valid Output options
-lch, --list-checks Prints a table of Auditors, Checks, and
Check descriptions to stdout - use this
command for help with populating -a (Auditor
selection) or -c (Check selection) args
-lco, --list-controls Lists all ElectricEye controls - that is to
say: the Check Titles - for an Assessment
Target
-tp, --toml-path TEXT The full path to the TOML file used for
configure e.g.,
~/path/to/mydir/external_providers.toml. If
this value is not provided the default path
Expand Down Expand Up @@ -135,11 +137,11 @@ The following Cloud Service Providers are on the Roadmap
- [For ServiceNow](./docs/setup/Setup_ServiceNow.md)
- [For Microsoft M365](./docs/setup/Setup_M365.md)
- [For Salesforce](./docs/setup/Setup_Salesforce.md)
- [For Snowflake](./docs/setup/Setup_Snowflake.md)

The following SaaS Providers are on the Roadmap

- [For Google Workspaces (*Coming Soon*)](./docs/setup/Setup_Google_Workspaces.md)
- [For Snowflake (*Coming Soon*)](./docs/setup/Setup_Snowflake.md)

## Cloud Asset Management (CAM)

Expand All @@ -150,10 +152,10 @@ For more information on ElectricEye's CAM concept of operations and schema, refe
In total there are:

- **4** Supported Public CSPs: `AWS`, `GCP`, `OCI`, and `Azure`
- **3** Supported SaaS Providers: `ServiceNow`, `M365`, and `Salesforce`
- **1172** ElectricEye Checks
- **174** Supported CSP & SaaS Asset Components across all Services
- **131** ElectricEye Auditors
- **4** Supported SaaS Providers: `ServiceNow`, `M365`, `Salesforce`, and `Snowflake`
- **1193** ElectricEye Checks
- **177** Supported CSP & SaaS Asset Components across all Services
- **133** ElectricEye Auditors

The tables of supported Services and Checks have been migrated to the respective per-Provider setup documentation linked above in [Configuring ElectricEye](#configuring-electriceye).

Expand Down
Loading
Loading