
ElectricEye는 자산 관리, 보안 태세 관리 및 공격 표면 모니터링을 위한 멀티 클라우드, 멀티 SaaS Python CLI 도구로, 100여 개의 서비스 및 평가를 지원하여 CSP 및 SaaS 환경을 강화하며, 20개 이상의 산업, 규제 및 모범 사례 컨트롤 프레임워크에 매핑된 컨트롤을 제공합니다.
ElectricEye는 자산 관리, 보안 태세 관리 및 공격 표면 모니터링을 위한 멀티 클라우드, 멀티 SaaS Python CLI 도구로, CSP 및 SaaS 환경을 강화하기 위해 수백 개의 서비스와 평가를 지원하며, 20개 이상의 업계, 규제 및 모범 사례 통제 프레임워크에 매핑된 통제를 제공합니다.
우주 여기 위에서
나는 너를 내려다보고 있어
내 레이저가 추적해
네가 하는 모든 것을
유다스 프리스트, 1982

ElectricEye는 계정 간, 리전 간, 멀티 클라우드 및 SaaS 자산 관리, 보안 태세 관리 및 공격 표면 모니터링 기능을 제공하는 Python CLI 도구로, 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 TSC(SOC 2용), HIPAA 보안 규칙, 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, Open Cyber Security Framework (OCSF) V1.1.0 (JSON 형식), AWS DocumentDB, JSON, CSV, HTML 보고서, MongoDB, Amazon SQS, PostgreSQL, Slack(Slack 앱 봇을 통해), FireMon Cloud Defense로 전송됩니다.
ElectricEye의 핵심 개념은 Auditor로, 특정 SaaS 공급업체 또는 퍼블릭 클라우드 서비스 제공업체( Assessment Target이라고 함) 전용 서비스별로 점검(Checks) 을 실행하는 Python 스크립트 세트입니다. 전체 Assessment Target, 특정 Auditor 또는 Auditor 내의 특정 Check를 실행할 수 있습니다. ElectricEye가 평가를 완료하면 HTML 경영진 보고서부터 AWS DocumentDB 클러스터에 이르기까지 12가지 이상의 출력(Outputs) 유형을 지원하며, 필요에 따라 여러 출력을 실행할 수 있습니다.
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를 실행하여 다양한 점검(Checks), Auditor, Assessment Target 및 출력(Outputs)에 대해 알아보세요.``` 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-electricey)에서 확인할 수 있으며, [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별 설정 지침은 하위 제목을 참조하세요. [출력](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)
### 서비스형 소프트웨어 (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를 실행할 수 있습니다. 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 워크플로우 내 Print Image 단계에서 확인할 수 있습니다.
여러 리포지토리에서 가져오려면 다음 명령어를 사용하세요. latest는 원하는 대로 변경할 수 있습니다. ElectricEye 내의 종속성은 새로운 클라우드 또는 주요 통합이 추가될 때까지 비교적 안정적으로 유지됩니다. 자세한 내용은 Pull Request를 확인하세요.
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 등의 Output과 상호 작용하고 aws_electric_eye_iam_role_name TOML 매개변수에 지정된 역할을 수임할 때 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)를 자격 증명 및 Output에 사용하는 경우 적절한 권한이 있는지 확인하세요! 또한 비밀/매개변수 암호화에 AWS Key Management Service (KMS) 고객 관리 키 (CMK)를 사용하는 경우 kms:Decrypt가 필요할 가능성이 높습니다.
aws_electric_eye_iam_role_name TOML 매개변수에 지정된 역할을 수임하려면 sts:AssumeRole이 필요합니다.
AWS 리전, AWS 액세스 키 및 AWS 시크릿 액세스 키를 전달해야 합니다. 액세스 키가 있는 AWS IAM 사용자를 사용하지 않는 경우 IAM 역할 또는 EC2 인스턴스 프로파일과 같은 임시 자격 증명에 의해 생성된 AWS 세션 토큰도 제공해야 합니다.
사용자를 사용하는 경우 다음 단계로 진행하세요. 자격 증명을 복사할 준비가 되어 있어야 합니다. 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 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 인스턴스 프로필의 임시 자격 증명을 인스턴스 메타데이터 서비스 버전 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')
페더레이션 ID로 임시 자격 증명을 검색할 수도 있습니다. [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) 또는 [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)에 대한 자세한 내용은 링크를 참조하거나 더 큰 임시 자격 증명 문서는 [여기](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerole)에서 확인하세요.
### Running ElectricEye Container
세션 자격 증명을 전달하여 다음 명령어로 ElectricEye를 실행하세요. 컨테이너 내 명령어를 변경하여 ElectricEye로 다양한 환경을 평가할 수 있습니다. `~/electriceye-docker/external_providers.toml`과 같이 `/path/to/my/external_providers.toml` 값을 정확한 경로로 변경하세요.
**IMPORTANT NOTE** AWS 액세스 키를 가진 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 등)을 저장하려면, Docker 이미지 내의 eeuser가 해당 디렉토리 내에서만 권한을 가지므로 /eeauditor/로 시작하는 파일 이름을 지정해야 합니다.
파일을 제거하려면 docker cp를 사용할 수 없지만, 출력을 base64로 인코딩하여 제어하는 원격 API에 파일을 제출하거나, 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"
더 많은 구성 정보는 각 Provider별 설정 지침을 참조하세요.
## 기여하기
새로운 검사를 만드는 방법에 대한 지침은 [Developer Guide](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
이것은 아마존 스타일로 작성되었습니다. 즉, 이 질문들은 자주 묻는 질문이 아니며, 제품 관리자가 자신의 아이디어가 좋은지 판단하는 데 도움을 주기 위한 것입니다...
그럼에도 불구하고, 몇 가지 질문은 실제로 자주 묻습니다. 그래서 천만에요.
### 1. ElectricEye란 무엇인가요?
ElectricEye는 에이전트리스 Python 명령줄 인터페이스(CLI) 도구로, 클라우드 서비스 제공업체(CSP) 및 Software-as-a-Service(SaaS) 공급업체의 서비스 수준 구성을 스캔하고 평가합니다. ElectricEye는 보안 상태 관리 모범 사례와 복원력, 복구, 성능 최적화, 모니터링 같은 기타 위생 점검에 부합하는 여러 검사에서 리소스별로 통과 또는 실패 결과를 생성합니다. ElectricEye는 AWS, GCP, ServiceNow 등 인기 있는 제공업체를 지원합니다.
### 2. 누가 ElectricEye를 사용해야 하나요?
ElectricEye는 클라우드 조직 내 보안 또는 IT 기능의 모든 담당자(예: 보안 엔지니어, Dev(Sec)Ops 엔지니어, SRE/플랫폼 엔지니어, 아키텍트(다양한 분야), 거버넌스/위험/규정 준수 분석가, SOC/SecOps 분석가, 클라우드 컨설턴트, 공격 보안(레드/블루/퍼플) 팀, 제3자 위험 관리 분석가)가 사용할 수 있습니다. 또한 IT 운영, 기술 비즈니스 관리/ITFM 분석가, 비즈니스 연속성 분석가, 자산 관리자도 ElectricEye를 사용할 수 있습니다. 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는 제어 프레임워크 매핑의 의도된 사용 사례를 전달할 때 "감사 준비"라는 용어를 사용합니다. ElectricEye는 적격 평가자가 환경을 평가하는 데 사용할 수 있고, 귀하가 평가자에게 증거로 제공하는 데 사용할 수 있지만, 감사를 준비하거나 감사에 대한 준비 상태를 확인하는 데 가장 적합합니다. 그러나 컨트롤을 구현할 때는 이미 자체 내부 컨트롤이 정의되어 있고 자체 구성 관리 전략이 있어야 합니다. 예를 들어, 모든 SQS 대기열을 AWS KMS CMK로 암호화하는 데 비용이 너무 많이 들고 보안상 이점이 많지 않다고 결정할 수 있습니다. ElectricEye를 사용하여 내부 GRC 프로세스를 지원하기 전에 이러한 "기초 작업"을 수행해야 합니다.
### 10. ElectricEye는 어떤 컨트롤 프레임워크를 지원하나요?
ElectricEye가 지원하는 컨트롤 프레임워크는 최신 버전과 매핑이 가능해짐에 따라 지속적으로 업데이트됩니다. 2024년 6월 21일 기준으로 다음 표준, 프레임워크 및 법적 요구 사항이 지원됩니다.
- NIST 사이버 보안 프레임워크 버전 1.1
- NIST 특별 발행 800-53 개정 4
- NIST 특별 발행 800-53 개정 5
- NIST 특별 발행 800-171 개정 2
- 미국 공인회계사협회(AICPA) 신뢰 서비스 기준(TSC) 2017/2020 (SOC 2)
- ISO/IEC 27001:2013/2017 부속서 A
- ISO/IEC 27001:2022 부속서 A
- 인터넷 보안 센터(CIS) 중요 보안 컨트롤 버전 8
- 클라우드 보안 연합(CSA) 클라우드 컨트롤 매트릭스(CCM) 버전 4.0
- 미국 국방부 사이버 보안 성숙도 모델 인증(CMMC) 버전 2.0
- 미국 연방수사국(FBI) 형사 사법 정보 시스템(CJIS) 보안 정책 버전 5.9
- 영국 국가 사이버 범죄 보안 센터(NCSC) Cyber Essentials 버전 2.2
- 영국 국가 사이버 범죄 보안 센터(NCSC) 평가 프레임워크 버전 3.1
- HIPAA "보안 규칙" 미국 법전 45 CFR 파트 164 하위 파트 C
- 연방 금융 기관 심사 위원회(FFIEC) 사이버 보안 평가 도구(CAT)
- 북미 전력 신뢰성 공사(NERC) 중요 인프라 보호(CIP) 표준
- 뉴질랜드 정보 보안 매뉴얼 버전 3.5
- 뉴욕 금융 서비스국(NYDFS) 시리즈 23 NYCRR 파트 500 (일명 NYDFS500)
- 위험 연구소(CRI) 중요 위험 프로필 버전 1.2
- 유럽 중앙 은행(ECB) 사이버 복원력 감독 기대 사항(CROEs)
- Equifax 보안 컨트롤 프레임워크 버전 1.0
- 지불 카드 산업(PCI) 데이터 보안 표준(DSS) 버전 4.0
- MITRE ATT&CK 엔터프라이즈 프레임워크
- CIS AWS 데이터베이스 서비스 벤치마크 V1.0
- CIS Amazon Web Services 기초 벤치마크 V1.5
- CIS Amazon Web Services 기초 벤치마크 V2.0
- CIS Amazon Web Services 기초 벤치마크 V3.0
- CIS Microsoft Azure 기초 벤치마크 V2.0.0
- CIS Snowflake 기초 벤치마크 V1.0.0
- CIS Google Cloud Platform 기초 벤치마크 V2.0
## 저장소 보안
ElectricEye는 보안 도구이므로 구성 요소의 높은 수준의 보안을 유지하는 것이 당연합니다. 이를 위해 다음 도구가 사용되도록 구성되어 있습니다. 각 실행에 대한 자세한 정보는 빌드 배지 및 Actions를 참조하세요.
#### [`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 실행에 artifact로 업로드합니다.
#### [`Grype`](https://github.com/anchore/grype)
[결과는 여기에서 확인하세요](https://github.com/jonrau1/ElectricEye/actions/workflows/sbom-vulns.yml)!
컨테이너 이미지 및 파일 시스템을 위한 취약점 스캐너입니다. 바이너리를 쉽게 설치하여 사용해 볼 수 있습니다. 컨테이너 이미지 및 파일 시스템을 위한 강력한 SBOM(소프트웨어 자재 명세서) 도구인 Syft와 함께 작동합니다.
ElectricEye는 `Syft`의 CycloneDX SBOM을 `Grype`에 전달하여 빌드된 Docker 이미지에 대한 취약점 스캔을 수행합니다. 이 이미지는 ElectricEye가 사용하는 `alpine` Docker 이미지 부모 내의 모든 Python 종속성과 내장 메서드를 결합한 것입니다. 심각한 취약점이 있는 빌드는 자동으로 중단됩니다. 결과는 GitHub Action에 게시되고 `sarif`로 GitHub Security에 업로드됩니다.
#### [`Dependabot`](https://github.com/dependabot)
Dependabot 경고는 코드가 안전하지 않은 패키지에 의존하고 있음을 알려줍니다. 코드가 보안 취약점이 있는 패키지에 의존하는 경우, 프로젝트나 이를 사용하는 사람들에게 다양한 문제를 일으킬 수 있습니다. 가능한 한 빨리 패키지의 안전한 버전으로 업그레이드해야 합니다. 코드가 맬웨어를 사용하는 경우, 패키지를 안전한 대체품으로 교체해야 합니다.
ElectricEye는 Dependabot을 SCA(소프트웨어 구성 분석) 도구로 사용하여 매일 스캔을 실행하고 Docker, Python 또는 GitHub-Action 종속성에 보안 패치가 필요한 경우 Pull Request를 엽니다.
#### [`CodeQL`](https://docs.github.com/ko/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으로 작성된 모든 Auditor를 스캔합니다. `codeql`은 또한 코드 내의 비밀을 찾습니다. 푸시 시 및 예약에 따라 실행됩니다.
## 라이선스
이 라이브러리는 Apache-2.0 라이선스에 따라 라이선스가 부여됩니다. LICENSE 파일을 참조하세요.