202603-dd-security-workshop-lab
CloudSecurity 실습
리소스: Find and Remediate Cloud Vulnerabilities with Cloud Security Misconfigurations
첫번째 단계 - Misconfiguration 활성화
두번째 단계 - Datadog Cloud Security 사용
-
Cloud Storage Bucket should not be anonymously or publicly accessible 룰이 안보일 경우 잠시 기다리세요. 체크하는 시간이 필요합니다.
-
아래 명령어 설명
gsutil iam ch -d allUsers gs://BUCKET_NAME
gsutil iam ch -d allAuthenticatedUsers gs://BUCKET_NAMEa. gsutil iam ch : bucket/object의 IAM binding(권한 부여)을 변경(change)
b. d : 해당 binding을 삭제(delete)
c. 첫 명령어는 버킷 IAM에서 allUsers(인터넷 누구나, 익명 포함) 에게 부여된 권한을 제거
d. 두번째는 allAuthenticatedUsers(Google 계정으로 인증된 누구나) 에게 부여된 권한을 제거 (즉, “구글 계정만 있으면 누구나 접근 가능” 같은 넓은 공개를 닫는 용도)

- 자동으로 닫힌것을 확인할 수 있음
- website-bucket이 리소스로 보이지 않을 경우 잠시 기다려 주세요.

다시 체크하는데 시간이 소요되니 해당 실습은 미리 view로 저장하고. 건너띄고 3번째로 진행해도 됩니다.

세번째 단계 - 규정준수 보고서 & 대시보드
- PCI를 찾으라고 하는데 PCI DSS 선택하시면 됩니다.
CloudSIEM & 자동화 실습
Overview
현대 보안 운영은 전례 없는 도전에 직면해 있습니다. 조직이 클라우드 사용 범위를 확장하고 신기술을 도입함에 따라 보안 신호의 양은 기하급수적으로 증가하고 있습니다. 보안 팀은 매일 수백에서 수천 건의 경보를 수신하며, 각 경보가 실제 위협인지 판단하기 위해 조사가 필요합니다. 이러한 정보의 홍수는 역설을 초래합니다: 가시성이 높아질수록 중요한 위협을 제때 식별하고 대응하기가 더 어려워집니다.
수동 보안 프로세스는 이 문제를 더욱 악화시킵니다. 잠재적 위협이 탐지되면 보안 엔지니어는 신호를 조사하고, 여러 시스템에서 컨텍스트를 수집하며, 적절한 대응을 결정하고, 다양한 플랫폼에 걸쳐 수정 조치를 실행해야 합니다. 각 단계마다 시간이 소요되며, 이 과정은 종종 팀원 간의 협업을 필요로 합니다. 단일 조사만으로도 수 시간이 걸릴 수 있으며, 그 사이 공격자는 접근 권한을 확대하거나 민감한 데이터를 유출할 수 있습니다.
Datadog 워크플로 자동화는 보안 팀의 위협 대응 방식을 혁신합니다. 2,000개 이상의 즉시 사용 가능한 액션을 통해 코드 작성 없이도 정교한 보안 워크플로를 구축할 수 있습니다. Datadog 보안 도구와 통합 시 이러한 워크플로는 자동으로 트리거되어 대응 시간을 몇 시간에서 몇 초로 단축합니다.

워크플로 자동화는 최소한의 개발 노력으로 보안 대응 모범 사례를 구현할 수 있도록 지원하는 사용자 정의 가능한 설계도도 제공합니다.

이 과정에서는 Datadog 워크플로 자동화를 사용하여 여러 보안 워크플로를 구축하게 됩니다. 다음을 수행하는 방법을 배우게 됩니다:
- 보안 오케스트레이션, 자동화 및 대응(SOAR) 워크플로 설계도, 통합 설계도 및 클라우드 SIEM 콘텐츠 팩을 활용하여 모범 사례 구현
- 환경 및 요구 사항에 맞게 워크플로 설계도 맞춤 설정
- 복잡한 논리 및 의사 결정을 위한 보안 신호 컨텍스트를 활용하는 맞춤형 보안 워크플로 구축
- 인프라 및 도구와의 안전한 통합을 위한 워크플로 연결 구성
- 보안 신호, 알림 규칙 및 멘션 핸들을 사용하여 실시간으로 워크플로를 자동 트리거
참고 본 과정은 Datadog 워크플로 자동화 및 클라우드 SIEM에 중점을 두지만, 학습하게 될 개념과 기술은 클라우드 보안, 워크로드 보호, 앱 및 API 보호를 포함한 다른 Datadog 보안 도구에도 적용 가능합니다.
실습 환경에서 이러한 기술을 연습하게 되며, AWS 샌드박스 환경에서 실제 보안 위협에 대응하는 방법을 익히게 됩니다. 본 과정을 완료하면 기술 스택 전반에 걸쳐 위협을 탐지, 조사 및 해결하는 자동화된 보안 워크플로를 구축할 준비가 될 것입니다.
첫 번째 강의로 넘어가 워크플로 자동화의 기본 구성 요소를 살펴보십시오.
첫번째 단계
- workflow에서 Connection(AWS 연결 권한)이 동일한지 반드시 Check해 주세요.
두번째 단계
아래 명령어 실행 후 CloudSIEM Signal이 잡힐때까지 잠시 기다려 주세요.
. /root/helper-scripts/suspicious-actions-by-user/compromised-user-2-actions.sh compromised-user-2
참고 - 공격 시뮬레이션 스크립트
#!/bin/bash
# Compromised User 2 SNS Enumeration Attack Simulation Script
# This script simulates Amazon SNS enumeration across multiple regions using a long-term access key
# Designed to trigger the "Amazon SNS enumeration in multiple regions using a long-term access key" detection rule
set -e
# Configuration
PROFILE="${1:-compromised-user-2}"
# List of AWS regions to enumerate SNS across (using 6 regions to exceed the >3 threshold)
REGIONS=(
"us-east-1"
"us-west-2"
"eu-west-1"
"ap-southeast-1"
"ap-northeast-1"
"ca-central-1"
)
# Validate profile argument
if [ -z "$PROFILE" ]; then
echo "Error: Profile cannot be empty"
echo "Usage: $0 [AWS_PROFILE]"
echo "Example: $0 compromised-user-2"
exit 1
fi
echo "🔍 SNS Enumeration Attack Simulation - Targeting SMS capabilities across regions..."
echo "Using AWS profile: ${PROFILE}"
echo "👤 Acting as compromised user: ${PROFILE}"
echo "🌍 Target regions: ${REGIONS[*]}"
echo ""
# Current timestamp for logging
TIMESTAMP=$(date +%s)
echo "🚨 Suspicious Activity: Amazon SNS enumeration across multiple regions..."
echo "Attacker is probing SMS capabilities to potentially conduct SMS phishing attacks"
echo ""
# SNS Enumeration Activity 1: GetSMSAttributes across multiple regions
echo "📱 Phase 1: Enumerating SMS attributes across regions..."
for region in "${REGIONS[@]}"; do
echo " → Checking SMS attributes in region: ${region}"
aws sns get-sms-attributes \
--region ${region} \
--profile ${PROFILE} \
2>/dev/null || echo " ❌ GetSMSAttributes failed in ${region} (expected due to permissions/service availability)"
# Add small delay between regions to simulate realistic attacker behavior
sleep 1
done
echo ""
# SNS Enumeration Activity 2: GetSMSSandboxAccountStatus across multiple regions
echo "📱 Phase 2: Checking SMS sandbox status across regions..."
for region in "${REGIONS[@]}"; do
echo " → Checking sandbox status in region: ${region}"
aws sns get-sms-sandbox-account-status \
--region ${region} \
--profile ${PROFILE} \
2>/dev/null || echo " ❌ GetSMSSandboxAccountStatus failed in ${region} (expected due to permissions/service availability)"
# Add small delay between regions to simulate realistic attacker behavior
sleep 1
done
echo ""
echo "✅ ${PROFILE} SNS enumeration attack simulation complete."
echo ""
echo "📊 Expected Detection:"
echo " 🎯 Rule: 'Amazon SNS enumeration in multiple regions using a long-term access key'"
echo " 🔍 Triggers: GetSMSAttributes and GetSMSSandboxAccountStatus calls across ${#REGIONS[@]} regions"
echo " ⚠️ Threshold: >3 regions (current: ${#REGIONS[@]} regions)"
세번째 단계 - Build custom security workflows
[Overview]
- 보안 트리거가 포함된 새 워크플로 생성
- 자바스크립트, 데이터 변환 및 조건부 분기를 활용하여 정교한 의사 결정이 가능한 워크플로 구축
- 단계 변수 및 단계 입력/출력에 대해 자세히 알아보기
- 위험 수준에 따른 조건부 대응 조치 구현
- 실제 보안 신호에 대한 사용자 지정 워크플로 테스트
-
가이드에서 JavaScript Function -> Javascript 선택

-
Workflow 변수 resolve는 현재 동작하지 않습니다. 아래와 같이 오류가 날 경우 무시하고 진행하세요.

네번째 단계 - IaC로 생성
이 실습에서는 Terraform을 사용하여 AWS WAF에서 악성 IP를 조사하고 차단하는 새로운 워크플로를 생성합니다. 또한 Datadog 공개 API를 사용하여 워크플로를 생성하고 관리하는 방법도 배우게 됩니다.