【AIS3】Cloud Security
Cloud Security
-中華資安國際 資安研究員 黃聖筌 Husky
雲端基本介紹
為啥上雲
- 實現靈活的資應用
- 幫助企業降低成本支出
- 按一按就可以升級
資安沒做好還是會噴$$
- 降低行業入門門檻
- 節省實體硬體成本
- 專注於業務發展
- 不須管理硬體與伺服器維運
- 故障機率低
除了前幾天的 Azure
- 安全?
- 不安全
雲端介紹
責任
出問題時可以踢皮球
責任歸屬
- 使用者永遠保有下面責任
- 資料
CSA Top11
- Insufficient identity, credentials, access, and key Management
- Insecure interfaces and application programming interfaces (APIs)
- Misconfiguration and inadequate change control
- Lack of cloud security architecture and strategy
- Insecure software development
- Unsecured third-party resources
- System vulnerabilities
- Accidental cloud data disclosure
- Misconfiguration and exploitation of serverless and container workloads
- Organized crime/hackers/advanced persistent threats (APTs)
- Cloud storage data exfiltration
https://blog.barracuda.com/2022/06/20/csa-identifies-top-11-cloud-security-impediments
MITRE ATT&CK Cloud
雲端還進儲存的log有限 要分析的log來自多處
- CloudTrail
- Amazon GuardDuty
- 情資、威脅資料庫
S3
- 用來存東西
當作雲端硬碟
IAM
IAM 是 AWS 的身分與訪問管理服務
IAM policy –assign–> IAM rule –assign–> EC2 同角色可有多個 policy
JSON
- sid descript
sid
effect
action
resource
MFA
accesskeyid secretaccesskey
SNS
function
FAAS (function as a servcie) lambda
CDN
cache 珍珠奶茶開分店,配方來自主站
cloudflare
Auto Scaling
load balance 發現過載過開時會幫你開主機,過低時幫你關主機 有資安事件時不好追蹤
marketplace
也許會撿到別人的主機
cognito
提供雲端 interface 做 web 驗證
metadata service
- 初始化 EC2 的東東
- security credential AWSHCP/Azure/digital ocean/helion/openStack: 169.254.169.254 oracle: 192.0.0.192 alibaba: 100.100.100.200
探索雲端進入點
資訊蒐集
ip 列舉
回應特徵
header 路徑 請求對象
繞 CDN
為甚麼要繞過 CDN
- CDN 有 WAF
- cloudflare: 使用 CF-Connecting-IP header
撿 token
- github
- .git
- debug msg
- TruffleHog
trufflehog git <git>
- gitguardian
- honeytoken
- 非服務的 honeypot
- https://canarytokens.org/generate
常見雲端弱點
S3
- Simple Storge Service
- 裡面放什麼
- 靜態網站、網頁、檔案
- 資料庫存檔、備份、使用者data
- log
- 常見問題
- 權限設定錯誤
設置複雜,容易撿到原始碼
- 意外存取
- 權限設定錯誤
- 權限錯誤
- 誤以為給別人存取就要設為公開
- 過於寬鬆的限制
s3:*
設定上要注意最小化原則
https://buckets.grayhatwarfare.com/
- 如何列舉目標的 S3
- 使用字典檔
- 如何生成字典檔
- 手動產生
- 公司名稱
- 參考實際名稱
- 自動產生
- 手動產生
- Bucket Name有唯一性
- 網址格式
- [bucket:name].s3.地區.amazonaws.com
通常地區可以省略,但有些不行
- 地區.s3.amazonaws.com/[bucket name]
- [bucket:name].s3.地區.amazonaws.com
- 範例網址
- ais3-public-bucket.s3.us.east
- 地區列表(aws官方有)
- 自訂網域
- 使用 img.ais3.org 而不是 ais3.s3.amazonaws.com
- 對應方法
- img.ais3.org 地區
Metadata 利用
STS 臨時憑證
~/.aws/credential
列舉 policy
取得 metadata
- Get Shell直接拿
- command injection-
- SSRF
SSRF
- IMDSv1
- request/response
- http://169.254.169.254/latest/meta-data/iam/security-credentials/
- request/response
aws configure set aws_access_key_id ASIAXTN2BMI6HUQSRU46
aws configure set aws_secret_access_key VcsxxgwAqihJyhLdIN2tFhCXQqzw0Io7Ft8yhv9j
aws configure set aws_session_token "...<SNIP>..."
aws s3 ls
aws s3 ls s3://ais3-husky/
aws s3 cp s3://ais3-husky/SSRF_1.txt ./
cat SSRF_1.txt # FLAG{IMDSv1_is_insecure!}
- IMDSv2
- 構造 put
- 加 header
- gopher
curl -X PUT http://127.0.0.1/latest/api/token --header "X-aws-ec2-metadata-token-ttl-seconds: 21600"
設定 AWS CLI
|
|
lambda
限制
- 記憶體 512MB
- 執行時間 15min
- 檔案存取
- 檔案數量
- 程式語言
不會立刻回收空間
檔案存取限制
無 metadata Service,但…
- 原始碼放在 /var/task
- 資料暫存區 /tmp
- AWS key 放在環境變數 主動觸發
找東西
- /var/task 原始碼
- 環境變數 AWS Key
調查 lambda
- 列出 Lambda Functions
aws lambda list-function --profile <profile> --region <region>
aws lambda get-funciton
調查程式碼
- 函數弱點
os.popen('cat ' + str)
PACU
降權限 token 仍然有效,應刪除 IAM 角色 臨時性限制