
ElectricEyeは、資産管理、セキュリティ態勢管理、攻撃対象領域監視を実現するマルチクラウド、マルチSaaS対応のPython CLIツールです。数百のサービスと評価をサポートし、20以上の業界、規制、ベストプラクティスのコントロールフレームワークにマッピングされたコントロールにより、CSPおよびSaaS環境を堅牢化します。
ElectricEyeは、マルチクラウド・マルチSaaS向けのPython CLIツールで、アセット管理、セキュリティ態勢管理、攻撃対象領域監視を提供します。数百のサービスと評価をサポートし、CSPおよびSaaS環境を強化するための制御を、20以上の業界、規制、ベストプラクティスの制御フレームワークにマッピングしています。
宇宙のここから
君を見下ろしている
俺のレーザーが追跡する
君のすべてを
ジューダス・プリースト、1982年

ElectricEyeは、Python CLIツールであり、クロスアカウント、クロスリージョン、マルチクラウド&SaaSのアセット管理、セキュリティ態勢管理、攻撃対象領域監視機能を提供します。対応環境:AWS(全パーティション対応)、GCP、Oracle Cloud Infrastructure (OCI)、ServiceNow、Microsoft 365 Enterprise (M365)、Salesforce (SFDC)、Azure。
ElectricEyeは、100以上のCSPおよびSaaSサービスにわたって、セキュリティ、回復性、パフォーマンス、財務のベストプラクティスに対する1000以上のチェックを提供します。これには、CSP/SaaSネイティブのアセット管理ツール/ビューや主流のCSPM/CNAPPツールではサポートされていない異例のサービスも含まれます。
すべてのチェックは、一般的なベストプラクティス、規制、業界固有、法的なフレームワークをカバーする20以上の制御フレームワークにマッピングされています。例:NIST CSF、AICPA TSCs(SOC 2用)、HIPAA Security Rule、NIST 800-171 Rev. 2、CMMC V2.0、欧州中央銀行のCROEセクション2、PCI-DSS V4.0、CIS Foundations Benchmarksなど。
多面的な攻撃対象領域監視は、VirusTotal、Nmap、Shodan.io、Detect-Secrets、CISAのKEVなどのツールを使用して、インターネット上にインデックスされたアセットの特定、露出したサービスの発見、悪用可能な脆弱性の特定、成果物リポジトリ内の悪意のあるパッケージの発見をそれぞれ行います。
出力先:AWS Security Hub、JSON形式のOpen Cyber Security Framework (OCSF) V1.1.0、AWS DocumentDB、JSON、CSV、HTMLレポート、MongoDB、Amazon SQS、PostgreSQL、Slack(Slackアプリボット経由)、FireMon Cloud Defense。
ElectricEyeの核となる概念はAuditorであり、Assessment Targetと呼ばれる特定のSaaSベンダーまたはパブリッククラウドサービスプロバイダに特化した、サービスごとにChecksを実行するPythonスクリプトのセットです。Assessment Target全体、特定のAuditor、またはAuditor内の特定のCheckを実行できます。ElectricEyeが評価を完了した後、HTMLエグゼクティブレポートからAWS DocumentDBクラスターまで、12種類以上のOutputsをサポートします。必要に応じて複数のOutputを実行できます。
ElectricEyeはまた、Shodan.io、Yelpのdetect-secrets、VirusTotal、米国サイバー・重要インフラストラクチャ安全保障庁 (CISA)の既知の悪用された脆弱性 (KEV)カタログ、NMAPなどのツールを利用して、チェックを実行し、その結果を充実させています。
まず、このリポジトリをクローンし、pip3を使用して要件をインストールします:pip3 install -r requirements.txt。
ローカルのAWSアカウント以外を評価する場合は、ElectricEye/eeauditor/external_providers.tomlにあるTOML設定を変更するか、--toml-pathを使用して独自のパスを指定します。TOMLファイルは、マルチアカウント、マルチリージョン、認証情報、出力の詳細を指定します。
最後に、Controllerを実行して、さまざまなCheck、Auditor、Assessment Target、Outputについて学習します。``` python3 eeauditor/controller.py --help Usage: controller.py [OPTIONS]
Options: -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. 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] -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 of ElectricEye/eeauditor/external_providers. toml is used. --help Show this message and exit.
詳細については[こちら](#configuring-electriceye)を参照してください。[FAQはこちら](https://github.com/jonrau1/electriceye/blob/HEAD/docs/faq/FAQ.md)、[出力についてはこちら](https://github.com/jonrau1/electriceye/blob/HEAD/docs/outputs/OUTPUTS.md)をご覧いただけます。また、制御フローと概念の詳細な分析が必要な場合は、[開発者ガイド](https://github.com/jonrau1/electriceye/blob/HEAD/docs/new_checks/DEVELOPER_GUIDE.md)をご確認ください。
## ElectricEyeの設定
各CSPまたはSaaSの設定手順については、サブ見出しを参照してください。出力と例については、[Outputs](https://github.com/jonrau1/electriceye/blob/HEAD/docs/outputs/OUTPUTS.md)をご覧ください。
### パブリッククラウドサービスプロバイダ
- [Amazon Web Services (AWS)用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_AWS.md)
- [Google Cloud Platform (GCP)用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_GCP.md)
- [Oracle Cloud Infrastructure用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_OCI.md)
- [Microsoft Azure用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_Azure.md)
以下のクラウドサービスプロバイダはロードマップにあります。
- [Alibaba Cloud (*近日公開*)用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_AlibabaCloud.md)
### Software-as-a-Service (SaaS) プロバイダ
- [ServiceNow用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_ServiceNow.md)
- [Microsoft M365用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_M365.md)
- [Salesforce用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_Salesforce.md)
- [Snowflake用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_Snowflake.md)
以下のSaaSプロバイダはロードマップにあります。
- [Google Workspaces (*近日公開*)用](https://github.com/jonrau1/electriceye/blob/HEAD/docs/setup/Setup_Google_Workspaces.md)
## クラウドアセットマネジメント (CAM)
ElectricEyeのCAM運用概念とスキーマの詳細については、[資産管理ドキュメント](https://github.com/jonrau1/electriceye/blob/HEAD/docs/asset_management/ASSET_MANAGEMENT.md)を参照してください。
## サポート対象サービスとチェック
合計で以下があります:
- **4** サポート対象のパブリックCSP: `AWS`, `GCP`, `OCI`, `Azure`
- **4** サポート対象のSaaSプロバイダ: `ServiceNow`, `M365`, `Salesforce`, `Snowflake`
- **1196** ElectricEyeチェック
- **179** 全サービスにわたるサポート対象CSPおよびSaaS資産コンポーネント
- **135** ElectricEyeオーディター
サポート対象のサービスとチェックの表は、上記の[ElectricEyeの設定](#configuring-electriceye)でリンクされている各プロバイダのセットアップドキュメントに移行されました。
## Docker上のElectricEye
[TOML設定](https://github.com/jonrau1/electriceye/blob/HEAD/eeauditor/external_providers.toml)を使用して環境に合わせてElectricEyeを設定した後、Dockerを使用してElectricEyeを実行できます。イメージはECR Public、Oracle Cloud Container Registry (OCR)、Docker Hubで維持されています。セキュリティ保証活動の詳細は[こちら](#repository-security)をご覧ください。将来的には、さらに多くのレジストリとイメージ署名が利用される予定です。
### イメージのビルド
独自のイメージをビルドする場合は、以下のコマンドを使用してください。システムに`docker`ユーザーが適切に設定されていない場合は、`sudo`を追加してください。```bash
git clone https://github.com/jonrau1/ElectricEye.git
cd ElectricEye
docker build -t electriceye:local .
ここから、任意のリポジトリにプッシュできます。タグを local から、リポジトリが期待するタグ、またはお好きなタグに変更してください。もしかしたら、デカビリオネア・シグマ・グラインドセット・ギガチャドのように、単に latest にするのも良いでしょう?
また、各種リポジトリから ElectricEye イメージをプルすることもできます。latest イメージタグは、SHAハッシュ ${{ github.sha }} のタグと常に一緒にプッシュされ、各 GitHub Action Workflow の Print Image ステップで確認できます。
各リポジトリからプルするには、以下のコマンドを使用してください。必要に応じて latest を置き換えて構いません。ElectricEye の依存関係は、新しいクラウドやメジャーな統合機能が追加されるまで比較的安定しています。詳細はPull Requestsをご確認ください。
Amazon Elastic Container Registry (ECR) Public: docker pull public.ecr.aws/t4o3u7t2/electriceye:latest
Oracle Cloud Infrastructure Registry (OCIR): docker pull iad.ocir.io/idudmagprsdi/electriceye:latest
Docker Hub: docker pull electriceye/electriceye
AWS Systems Manager、AWS Secrets Manager などの AWS 認証情報ストア、および AWS Security などの出力と、TOML パラメータ aws_electric_eye_iam_role_name で指定されたロールへのロール引き受けを行う場合、ElectricEye は資格情報から派生した現在の(デフォルトの)Boto3 セッションを使用します。
アタッチされたロールを持つ AWS インフラストラクチャから ElectricEye を実行する場合、または aws cli 認証情報が既に設定されている場所から実行する場合、これは透過的に処理されます。
Docker を使用する場合は、環境変数 をコンテナに直接提供する必要があります。
AWS SSM (ssm:GetParameter)、AWS Secrets Manager (secretsmanager:GetSecretValue)、AWS Security Hub (securityhub:BatchImportFindings)、Amazon SQS (sqs:SendMessage)、および/または Amazon DynamoDB (dynamodb:PutItem) を認証情報と出力に使用する予定がある場合は、適切な権限があることを確認してください!また、シークレット/パラメータの暗号化にAWS Key Management Service (KMS) のカスタマーマネージドキー (CMK) を使用している場合は、kms:Decrypt も必要になる可能性があります。
TOML パラメータ aws_electric_eye_iam_role_name で指定されたロールを引き受けるには、sts:AssumeRole が必要です。
AWS リージョン、AWS Access Key、AWS Secret Access Key を渡す必要があります。アクセスキーを持つ AWS IAM ユーザーを使用していない場合は、IAM ロールや EC2 インスタンスプロファイルなどの一時的な認証情報によって生成される AWS Session Token も提供する必要があります。
ユーザーを使用している場合は、次のステップに進みます。認証情報をコピーできるように準備してください。EC2 インスタンスプロファイルまたは引き受ける追加の IAM ロールを使用している場合は、jq がインストールされていることを確認してください: apt install -y jq または yum install jq。
- IAM ロールを引き受け、一時的な認証情報を取得するには```bash AWS_ACCOUNT_ID=$(aws sts get-caller-identity | jq -r '.Account') MY_ROLE_NAME='iam-role-name' TEMP_CREDS=$(aws sts assume-role --role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$MY_ROLE_NAME --role-session-name ElectriceyeForDocker) AWS_ACCESS_KEY=$(echo $TEMP_CREDS | jq -r '.Credentials.AccessKeyId') AWS_SECRET_KEY=$(echo $TEMP_CREDS | jq -r '.Credentials.SecretAccessKey') AWS_SESSION_TOKEN=$(echo $TEMP_CREDS | jq -r '.Credentials.SessionToken') MY_REGION='aws-region-here'
> - EC2 Instance Profileの一時的な認証情報をInstance Metadata Service Version 1を使用して取得するため```bash
MY_INSTANCE_PROFILE_ROLE_NAME="my_ec2_role_name"
IMDS_SECURITY_CREDENTIALS=$(curl http://169.254.169.254/latest/meta-data/iam/security-credentials/$MY_INSTANCE_PROFILE_ROLE_NAME)
MY_REGION='my_aws_region'
AWS_ACCESS_KEY=$(echo $IMDS_SECURITY_CREDENTIALS | jq -r '.AccessKeyId')
AWS_SECRET_KEY=$(echo $IMDS_SECURITY_CREDENTIALS | jq -r '.SecretAccessKey')
AWS_SESSION_TOKEN=$(echo $IMDS_SECURITY_CREDENTIALS | jq -r '.Token')
- EC2 Instance Profileの一時認証情報をInstance Metadata Service Version 2を使用して取得するには```bash MY_INSTANCE_PROFILE_ROLE_NAME="my_ec2_role_name" TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 300") IMDSV2_SECURITY_CREDENTIALS=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/$MY_INSTANCE_PROFILE_ROLE_NAME) MY_REGION='my_aws_region' AWS_ACCESS_KEY=$(echo $IMDSV2_SECURITY_CREDENTIALS | jq -r '.AccessKeyId') AWS_SECRET_KEY=$(echo $IMDSV2_SECURITY_CREDENTIALS | jq -r '.SecretAccessKey') AWS_SESSION_TOKEN=$(echo $IMDSV2_SECURITY_CREDENTIALS | jq -r '.Token')
You can also retrieve temporary credentials from Federated identities, read more at the links for [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) or [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) or refer to the larger temporary credential documentation [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerole).
### ElectricEyeコンテナの実行
以下のコマンドを使用してElectricEyeを実行し、セッション認証情報を渡します。コンテナ内のコマンドを変更して、ElectricEyeで異なる環境を評価します。`/path/to/my/external_providers.toml` の値を実際のパス(例:`~/electriceye-docker/external_providers.toml`)に変更します。
**重要事項** AWS IAMユーザーとアクセスキーを使用している場合は、値をハードコードし、`AWS_SESSION_TOKEN`の値を省略してください!!このコンテナをAWSコンテナ/Kubernetesサービスで実行している場合、これらの値を指定する必要はありません。```bash
sudo docker run \
--user eeuser:eeuser \
-e AWS_DEFAULT_REGION=$MY_REGION \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY \
-e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
-v /path/to/my/external_providers.toml:/eeauditor/external_providers.toml \
electriceye /bin/bash -c "python3 eeauditor/controller.py --help"
ローカルファイルの出力(-o json、-o cam-json、-o csv、-o html など)を保存するには、ファイル名を /eeauditor/ で始めるように指定してください。Docker Image内の eeuser はそのディレクトリ内にのみパーミッションを持つためです。
ファイルを削除するために docker cp を使用することはできませんが、制御下にあるリモートAPIに出力を base64 エンコードして送信するか、AWS S3権限を持つセッションを使用してS3にアップロードすることができます。
Oracle Cloud または Google Cloud Platform を評価している場合、認証情報はローカルにロードされており、それぞれ Oracle Object Storage または Google Cloud Storage バケットにアップロードできます。```bash
BUCKET_NAME="your_s3_bucket_you_have_access_to"
sudo docker run
--user eeuser:eeuser
-e AWS_DEFAULT_REGION=$MY_REGION
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY
-e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
-v /path/to/my/external_providers.toml:/eeauditor/external_providers.toml
electriceye /bin/bash -c "python3 eeauditor/controller.py -t AWS -o json --output-file /eeauditor/my-aws-findings
&& aws s3 cp /eeauditor/my-aws-findings.json s3://$BUCKET_NAME/eefindings.json"
設定の詳細については、各プロバイダーの設定手順を参照してください。
## コントリビューション
新しいチェックの作成方法については、[デベロッパーガイド](https://github.com/jonrau1/electriceye/blob/HEAD/docs/new_checks/DEVELOPER_GUIDE.md)を参照してください。新しいSaaSやCSPのサポートについては、Issueを開いてください。
コードベースで構文、文法、実装のエラーが見つかった場合は、PRやIssueを自由に提出してください。
### ElectricEyeは販売中です
`[email protected]`(実際にはSaaSツールはありません)までご連絡いただければ、このリポジトリの権利を喜んで販売し、削除し、裏方で使用しているすべてのドメインやAWSアカウントもお譲りします。
### 初期の協力者
ElectricEyeをテストし、「駄作ではない」ものにすることに早い段階で応えてくれた方々に簡単に感謝を。
##### アルファテスト:
- [Mark Yancey](https://www.linkedin.com/in/mark-yancey-jr-aspiring-cloud-security-professional-a52bb9126/)
##### ベータテスト:
- [Martin Klie](https://www.linkedin.com/in/martin-klie-0600845/)
- [Joel Castillo](https://www.linkedin.com/in/joelbcastillo/)
- [Juhi Gupta](https://www.linkedin.com/in/juhi-gupta-09/)
- [Bulent Yidliz](https://www.linkedin.com/in/bulent-yildiz/)
- [Guillermo Ojeda](https://www.linkedin.com/in/guillermoojeda/)
- [Dhilip Anand Shivaji](https://www.linkedin.com/in/dhilipanand/)
- [Arek Bar](https://www.linkedin.com/in/arkadiuszbar/)
- [Ryan Russel](https://www.linkedin.com/in/pioneerrussell/)
- [Jonathan Nguyen](https://www.linkedin.com/in/jonanguyen/)
- [Jody Brazil](https://www.linkedin.com/in/jodybrazil/)
- [Dylan Shields](https://www.linkedin.com/in/dylan-shields-6802b1168/)
- [Manuel Leos Rivas](https://www.linkedin.com/in/manuel-lr/)
- [Andrew Alaniz](https://www.linkedin.com/in/andrewdalaniz/)
- [Christopher Childers](https://www.linkedin.com/in/christopher-childers-28950537/)
## FAQ
これはAmazon流です。つまり、これらの質問のどれも頻繁に尋ねられるものではなく、プロダクトマネージャーが自分のアイデアが良いかどうかを判断するのに役立つはずです。
とはいえ、これらの質問の中には実際に尋ねられるものもあります。どういたしまして。
### 1. ElectricEyeとは何ですか?
ElectricEyeは、エージェントレスのPythonコマンドラインインターフェース(CLI)ツールであり、クラウドサービスプロバイダー(CSP)およびサービスとしてのソフトウェア(SaaS)ベンダーのサービスレベル設定をスキャンおよび評価します。ElectricEyeは、セキュリティ態勢管理のベストプラクティスに加え、復元性、リカバリ、パフォーマンス最適化、モニタリングなどの衛生チェックに沿った複数のチェックにわたって、リソースごとに合格または不合格の検出結果を生成します。ElectricEyeは、AWS、GCP、ServiceNowなどの人気のあるプロバイダーをカバーしています。
### 2. 誰がElectricEyeを使うべきですか?
ElectricEyeは、クラウド組織内のセキュリティまたはIT機能に属するすべてのペルソナ(セキュリティエンジニア、Dev(Sec)Opsエンジニア、SRE/プラットフォームエンジニア、アーキテクト(各種)、ガバナンス/リスク/コンプライアンスアナリスト、SOC/SecOpsアナリスト、クラウドアドバイザー、オフェンシブセキュリティ(レッド/ブルー/パープル)チーム、サードパーティリスク管理アナリストなど)が使用できます。また、IT運用、テクノロジービジネス管理/ITFMアナリスト、事業継続アナリスト、資産管理担当者も使用できます。ElectricEyeはネイティブのクラウド資産管理機能を提供しています。
### 3. なぜElectricEyeを使うべきですか?
ElectricEyeは、クラウドベンダーとその全範囲のサービスが最高のセキュリティ衛生を確保するように設定されていることを確認したいすべての人が使用するべきです。ElectricEyeは最も広範なサービスカバレッジを提供し、クラウドセキュリティ態勢管理(CSPM)とSaaSセキュリティ態勢管理(SSPM)の両方のために無料で提供される唯一のデュアルユースのセキュリティ態勢管理(SPM)ツールです。また、ElectricEyeには組み込みの機密情報検出、外部攻撃面管理(EASM)機能、およびクロスクラウド・クロスバウンダリーの資産管理とレポートをサポートする独自の階層を持つクラウド資産管理(CAM)も備わっています。
### 4. ElectricEyeはCSPMですか?
はい、ElectricEyeはクラウドセキュリティ態勢管理(CSPM)ツールです。APIベース(エージェントレス)のクラウドインフラストラクチャのスキャンを提供し、サービスがベストプラクティスに従って設定されていることを確認します。
### 5. ElectricEyeはSSPMですか?
はい、ElectricEyeはSaaSセキュリティ態勢管理(SSPM)ツールです。APIベース(エージェントレス)のSaaSベンダーAPIのスキャンを提供し、ユーザーとサービスがベストプラクティスに従って設定されていることを確認します。
### 6. ElectricEyeはCIEMですか?
いいえ、ElectricEyeはクラウドインフラストラクチャエンタイトルメント管理(CIEM)ツールではありません。ElectricEyeはいくつかのIDおよびアクセス管理チェックを提供し、MFA、パスワードローテーション、権限最小化のためのユーザーごとの評価を行いますが、CIEMではありません。ElectricEyeは、複数のIDブローカー、プロバイダー、境界にわたる広範なポリシー評価を持たず、また、修復やJust In Time(JIT)エンタイトルメント管理機能も提供しません。
### 7. ElectricEyeはSIEMですか?
いいえ、ElectricEyeはセキュリティ情報およびイベント管理(SIEM)ツールではありません。SIEMツールは、ログ、セキュリティイベント、その他の半構造化・構造化データを収集、インデックス化、相関させ、セキュリティ運用のユースケースに使用します。ElectricEyeの検出結果をSIEMに送信することは可能ですが、ElectricEye自体はSIEMではありません。
### 8. ElectricEyeは監査/コンプライアンスツールですか?
いいえ、ElectricEyeは直接的に監査またはコンプライアンスツールではありません。すべての検出結果は、NIST CSF v1.1やAICPA 2020 TSCなどの一般的でよく使用されるセキュリティコンプライアンス制度にマッピングされていますが、ElectricEyeは制御のベストエフォートのマッピングのみを提供し、環境を監査する監査人やその他の適格な評価者と同じではありません。ElectricEyeは監査準備または準備態勢ツールとして使用できます。クラウドインフラストラクチャの制御が全体的なセキュリティプログラムにとって重要な場合、検出結果のサンプルを取得できます。制御とは、セキュリティまたはプライバシープログラムの望ましい結果を保護するために設計された技術的または管理的(すなわち、ポリシーまたは手順)な対抗手段です。制御は情報システムの機密性、完全性、可用性を保護します。ElectricEyeは、クラウドインフラストラクチャの設定が制御の「精神」を満たしているかどうかを判断するのに役立ちますが、**これは**証明書、認証、またはその他のオカルト儀式と同じではありません。
### 9. 「監査準備態勢」とは何ですか?
ElectricEyeは、コントロールフレームワークマッピングの意図されたユースケースを伝える際に「監査準備態勢」(Audit Readiness)という用語を使用します。ElectricEyeは適格な評価者が環境を評価するために使用したり、評価者への証拠として提供するために使用したりできますが、最も適したユースケースは監査のための準備や自分の準備態勢を確認することです。ただし、制御を実装する際には、すでに自分自身の内部制御を定義し、独自の構成管理戦略を持っている必要があります。たとえば、すべてのSQSキューをAWS KMS CMKで暗号化するにはコストがかかりすぎ、セキュリティ上の利点があまりないと判断するかもしれません。そのような「下準備」は、ElectricEyeを使用して内部のGRCプロセスをサポートする前に行う必要があります。
### 10. ElectricEyeはどのコントロールフレームワークをサポートしていますか?
ElectricEyeがサポートするコントロールフレームワークは、新しいバージョンとマッピングが利用可能になるにつれて常に更新されています。2024年6月21日現在、以下の標準、フレームワーク、法的要件がサポートされています。
- NIST Cybersecurity Framework Version 1.1
- NIST Special Publication 800-53 Revision 4
- NIST Special Publication 800-53 Revision 5
- NIST Special Publication 800-171 Revision 2
- American Institute of Certified Public Accountants (AICPA) Trust Service Criteria (TSC) 2017/2020 for SOC 2
- ISO/IEC 27001:2013/2017 Annex A
- ISO/IEC 27001:2022 Annex A
- Center for Internet Security (CIS) Critical Security Controls Version 8
- Cloud Security Alliance (CSA) Cloud Controls Matrix (CCM) Version 4.0
- United States Department of Defense Cybersecurity Maturity Model Certification (CMMC) Version 2.0
- United States Federal Bureau of Investigation (FBI) Criminal Justice Information System (CJIS) Security Policy Version 5.9
- United Kingdom National Cybercrime Security Center (NCSC) Cyber Essentials Version 2.2
- United Kingdom National Cybercrime Security Center (NCSC) Assessment Framework Version 3.1
- HIPAA "Security Rule" U.S. Code 45 CFR Part 164 Subpart C
- Federal Financial Institutions Examination Council (FFIEC) Cybersecurity Assessment Tool (CAT)
- North American Electric Reliability Corporation (NERC) Critical Infrastructure Protection (CIP) Standard
- New Zealand Information Security Manual Version 3.5
- New York Department of Financial Services (NYDFS) Series 23 NYCRR Part 500; AKA NYDFS500
- Critical Risk Institue (CRI) Critical Risk Profile Version 1.2
- European Central Bank (ECB) Cyber Resilience Oversight Expectations (CROEs)
- Equifax Security Controls Framework Version 1.0
- Payment Card Industry (PCI) Data Security Standard (DSS) Version 4.0
- MITRE ATT&CK Enterprise Framework
- CIS AWS Database Services Benchmark V1.0
- CIS Amazon Web Services Foundations Benchmark V1.5
- CIS Amazon Web Services Foundations Benchmark V2.0
- CIS Amazon Web Services Foundations Benchmark V3.0
- CIS Microsoft Azure Foundations Benchmark V2.0.0
- CIS Snowflake Foundations Benchmark V1.0.0
- CIS Google Cloud Platform Foundation Benchmark V2.0
## リポジトリのセキュリティ
ElectricEyeはセキュリティツールであるため、コンポーネントの高いセキュリティレベルを維持することは当然です。そのために、以下のツールが設定されています。各実行の詳細については、ビルドバッジとアクションを参照してください。
#### [`Syft`](https://github.com/anchore/syft)
[結果はこちら](https://github.com/jonrau1/ElectricEye/actions/workflows/sbom-vulns.yml)を参照してください。
コンテナイメージとファイルシステムからソフトウェア部品表(SBOM)を生成するためのCLIツールおよびGoライブラリです。
ElectricEyeはSyftを使用して、ビルドされたElectricEye DockerイメージからCycloneDX形式でSBOMを構築し、成功したGitHub Actionの実行ごとに成果物としてアップロードします。
#### [`Grype`](https://github.com/anchore/grype)
[結果はこちら](https://github.com/jonrau1/ElectricEye/actions/workflows/sbom-vulns.yml)を参照してください。
コンテナイメージとファイルシステム用の脆弱性スキャナーです。バイナリを簡単にインストールしてお試しください。Syft(コンテナイメージとファイルシステム用の強力なSBOMツール)と連携します。
ElectricEyeは、`Syft` からのCycloneDX SBOMを `Grype` に渡して、ビルドされたDockerイメージの脆弱性スキャンを実行します。このイメージは、ElectricEyeが使用する `alpine` Dockerイメージの親に含まれるすべてのPython依存関係と組み込みメソッドを結合したものです。クリティカルな脆弱性があるビルドは自動的に失敗します。結果はGitHub Actionに投稿され、GitHub Securityに `sarif` としてアップロードされます。
#### [`Dependabot`](https://github.com/dependabot)
Dependabotアラートは、コードが安全でないパッケージに依存していることを通知します。コードがセキュリティ脆弱性のあるパッケージに依存している場合、プロジェクトやそのユーザーに様々な問題を引き起こす可能性があります。できるだけ早くパッケージを安全なバージョンにアップグレードする必要があります。コードがマルウェアを使用している場合は、パッケージを安全な代替品に置き換える必要があります。
ElectricEyeは、Dependabotをソフトウェア構成分析(SCA)ツールとして使用し、毎日スキャンを実行し、Docker、Python、またはGitHub Actionsの依存関係にセキュリティパッチが必要な場合にプルリクエストを開きます。
#### [`CodeQL`](https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql)
[結果はこちら](https://github.com/jonrau1/ElectricEye/actions/workflows/codeql-analysis.yml)を参照してください。
CodeQLは、GitHubがセキュリティチェックを自動化するために開発したコード分析エンジンです。CodeQLを使用してコードを分析し、結果をコードスキャンアラートとして表示できます。
ElectricEyeは、`codeql` を静的アプリケーションセキュリティテスト(SAST)ツールとして使用し、Pythonで書かれたすべてのオーディターをスキャンします。また、`codeql` はコード内のシークレットも検出します。プッシュ時とスケジュールに基づいて実行されます。
## ライセンス
このライブラリはApache-2.0ライセンスの下で提供されています。LICENSEファイルを参照してください。