Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cloud-audit — 자동 클라우드 보안 감사 도구로, 이상 탐지, 블랙리스트 규칙 및 기준 분석을 사용하여 Tencent Cloud 및 AWS의 클라우드 플랫폼 로그를 주기적으로 감사함으로써 AK/SK 자격 증명 오용을 탐지합니다. | Kitploit
도구/GitHubGitHub/al0ne/cloud-audit
Cloud SecurityThreat IntelligenceIncident ResponseAnomaly DetectionLog Analysis
GitHubal0ne/cloud-audit

cloud-audit

자동 클라우드 보안 감사 도구로, 이상 탐지, 블랙리스트 규칙 및 기준 분석을 사용하여 Tencent Cloud 및 AWS의 클라우드 플랫폼 로그를 주기적으로 감사함으로써 AK/SK 자격 증명 오용을 탐지합니다.

저장소 보기
4482년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

프로젝트 소개

cloud-audit(클라우드 보안 감사 도우미)는 퍼블릭 클라우드 제공업체의 AK/SK 유출 및 악용을 탐지하는 도구입니다. 정기적으로 클라우드 플랫폼 API를 호출하여 로그를 감사하고, 이상 행동/블랙 특성/베이스라인을 기반으로 의심스러운 침입 행위를 발견합니다.

현재는 Tencent Cloud와 AWS만 지원합니다.

특징

  • Tencent Cloud 플랫폼의 AK/SK 악용 경고 탐지 지원(이상 행동)
    • AK/SK를 호출하여 명령 생성/실행 모니터링
    • AK/SK를 호출하여 하위 계정 추가/삭제 모니터링
    • AK/SK를 호출하여 리전 간 DB 나열
    • AK/SK를 호출하여 리전 간 인스턴스 나열
  • AWS 클라우드 플랫폼의 AK/SK 악용 경고 탐지 지원(베이스라인 탐지)
    • AK/SK를 호출하여 사용자 생성 모니터링
    • AK/SK를 호출하여 사용자 나열 모니터링
    • AK/SK를 호출하여 S3 나열 모니터링
    • AK/SK를 호출하여 DB 나열 모니터링
    • AK/SK를 호출하여 권한 상승 모니터링
  • WeChat Work/Discord 경고 알림 지원

사용 설명

1단계: 명령어를 실행하여 의존성 설치

root@kitploit:~
cd /opt/ && git clone https://github.com/al0ne/cloud-audit
cd cloud-audit && pip3 install -r requirements.txt

2단계: .env 구성 파일 생성 및 수정

root@kitploit:~
cp .env.example .env

자신의 실제 설정에 따라 .env 파일에 입력하세요.

root@kitploit:~
# Tencent Cloud의 AK/SK 정보, 로그를 가져오기 위해 AK/SK로 API 호출 필요
TencentAccessKey="xxx"
TencentSecretKey="xxx"

# Tencent Cloud에서 모니터링할 AK/SK 목록
AccesskeyList="xxx,xxx,xxx"

# AWS의 AK/SK 정보
AWS_ACCESS_KEY_ID="xxx"
AWS_SECRET_ACCESS_KEY="xxx"

# Discord 알림 정보
discord_webhook_url=""

# WeChat Work 봇 알림
weixin_webhook_url=""

3단계: 프로그램 중요 설정

root@kitploit:~
# 신뢰할 수 있는 네트워크 세그먼트, 신뢰할 수 없는 네트워크 세그먼트에서 민감한 작업 호출 시 즉시 경고.
while_cidr = ["192.168.0.0/16", "172.16.0.0/12", "10.0.0.0/8"]

# AWS에서 주목할 리전, 해당 리전이 아닌 이벤트는 조회하지 않음
aws_region = [
    "us-east-1",
    "us-east-2",
    "ap-northeast-1",
    "ap-southeast-1"
]

실행

root@kitploit:~
python3 cloud-audit.py

프로그램은 15분마다 검색 결과를 실행합니다.

AWS 권한 문제 설명

AWS 로그는 AWS CloudTrail 서비스를 사용하여 로그를 읽고 감사하므로, 계정의 IAM 권한에 AWSCloudTrail_ReadOnlyAccess가 있어야 이 제품을 사용할 수 있습니다. 그렇지 않으면 다음과 같은 오류 메시지가 표시됩니다.

root@kitploit:~
botocore.exceptions.ClientError: An error occurred (AccessDeniedException) when calling the LookupEvents operation: User: arn:aws:iam::xxxxx:user/test is not authorized to perform: cloudtrail:LookupEvents because no identity-based policy allows the cloudtrail:LookupEvents action

AWS IAM 플랫폼에 접속하여 사용자 선택 --> 권한에서 권한을 추가하세요.

탐지 로직

클라우드 플랫폼 악용 탐지 로직

클라우드 플랫폼 악용 도구를 사용할 때, 이러한 도구의 일반적인 작업에는 모든 리전에서 RDS 인스턴스 존재 여부 스캔, 모든 리전에서 ECS 인스턴스 또는 컨테이너 존재 여부 스캔, 하위 계정 생성/삭제, 명령 실행 등이 포함됩니다. 이러한 작업 자체는 민감한 작업에 속하므로 각 클라우드 플랫폼의 로그 인터페이스를 통해 이러한 작업을 수집합니다.

또 다른 방법은 신뢰할 수 없는 네트워크 세그먼트에서의 민감한 작업을 기반으로 합니다. 일반적으로는 IDC 내부 네트워크 호출 또는 IDC 출구 IP 호출이지만, 기업 신뢰 네트워크 세그먼트가 아닌 곳에서 AK/SK 호출이 발생하고 고위험 작업인 경우 즉시 경고합니다.

일반적인 민감한 주요 작업 예시:

  • CreateUser
  • ListUsers
  • ListBuckets
  • DescribeInstances
  • DescribeDBInstances
  • AttachUserPolicy
  • RunCommand/CreateCommand(Tencent Cloud)

Tencent Cloud 탐지

Tencent Cloud와 AWS API 호출의 가장 큰 차이점은, Tencent Cloud는 API 인터페이스를 통해 특정 AK ID의 상세 동작을 조회할 수 있지만, AWS는 플랫폼에서만 검색할 수 있고 AK/SK로 인터페이스를 호출하여 특정 AK ID의 최근 실행 정보를 조회할 수 없다는 점입니다.

따라서 Tencent Cloud AK/SK 악용을 탐지하려면 온라인 비즈니스에서 사용하는 AK ID 목록을 입력하고, 정기적으로 특정 AK ID가 수행한 작업을 확인해야 합니다.

AWS 탐지

AWS는 리전과 작업에 따라 로그를 가져올 수 있으며, AK/SK로 CloudTrail 인터페이스를 호출하여 특정 리전에서 특정 작업의 로그 존재 여부를 확인합니다.

따라서 AWS는 주로 베이스라인을 기준으로 판단합니다.

root@kitploit:~
def DescribeInstances(CloudTrailEvent: dict):
    """
    AK/SK를 사용하여 EC2 정보 나열 탐지
    :param CloudTrailEvent:
    :return: None
    """
    accessKeyId = CloudTrailEvent.get('userIdentity').get('accessKeyId')
    arn = CloudTrailEvent.get('userIdentity').get('arn')
    eventTime = utc_to_china_tz(CloudTrailEvent.get('eventTime'))
    eventName = CloudTrailEvent.get('eventName')
    awsRegion = CloudTrailEvent.get('awsRegion')
    sourceIPAddress = CloudTrailEvent.get('sourceIPAddress')
    userAgent = CloudTrailEvent.get('userAgent')

    sip_verify = False

    for cidr in while_cidr:
        if ipaddress.ip_address(sourceIPAddress) in ipaddress.ip_network(cidr):
            sip_verify = True

    if not sip_verify and 'aws-internal' not in userAgent:
        message = f"{text_title}\n시간: {eventTime}\n계정 ID: {arn}\nRegion: {awsRegion}\nAccessKey ID:{accessKeyId}\n" \
                  f"실행 작업: {eventName}\nIP 주소: {sourceIPAddress}\nUser-Agent: {userAgent}\n\n" \
                  f"외부 IP가 인스턴스 정보를 요청하는 것으로 탐지되었습니다, 공격자에 의한 악용 여부를 주의하세요!"
    send_message(message)

실행 스크린샷

Discord 경고 스크린샷

1

1

2

향후 계획

현재는 행동 기반으로만 탐지하지만, 실제로는 베이스라인 기반으로도 탐지할 수 있습니다.

  • 비 SDK UA로 AK/SK 호출
  • 베이스라인 탐지, 이력에 해당 명령이 없었는데 처음 실행 시 즉시 경고
도구 다운로드