Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Is Serverless Safe? ~Hacking AWS Lambda~
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yutaka Hiroyama
December 05, 2023
Technology
430
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Is Serverless Safe? ~Hacking AWS Lambda~
I spoke this content at Cyber-sec+ vol.2 Dec.5 2023.
Yutaka Hiroyama
December 05, 2023
More Decks by Yutaka Hiroyama
See All by Yutaka Hiroyama
AI Driven AI Governance
pict3
0
620
[Jagu'e'r]Next26×Jagu'e'r アフターイベント "The Real Deal": セキュリティ
pict3
0
67
Security in the AI Agent era
pict3
0
270
The State of AI Agent Security:2025年の総括と2026年の宿題
pict3
0
190
Is Serverless Safe? ~Hacking AWS Lambda~
pict3
0
220
PagerDutyを活用したインシデント管理の自動化とメリット
pict3
0
660
WafCharm運用のベストプラクティスを考えてみた
pict3
0
1.5k
AWSからのメール読んでいますか?
pict3
0
2.1k
PCI DSS運用でラクをする/make_it_easy_for_pci-dss_operation_on_cloud
pict3
0
300
Other Decks in Technology
See All in Technology
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
280
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
2.2k
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
1.6k
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
3k
10分で知る最近のOmarchy
komagata
0
340
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
320
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.6k
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
140
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
490
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
910
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
110
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
8
950
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
What's in a price? How to price your products and services
michaelherold
247
13k
Prompt Engineering for Job Search
mfonobong
0
450
GitHub's CSS Performance
jonrohan
1033
470k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
390
Writing Fast Ruby
sferik
630
63k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
A Tale of Four Properties
chriscoyier
163
24k
Transcript
サーバーレスは 安全なのか? Hacking AWS Lambda
自己紹介 •氏名:廣山 豊 •所属:アイレット株式会社 クラウドインテグレーション事業部副事業部長 兼 内部統制推進室室長 •役割:情報管理責任者 兼 PCI DSS管理責任者
兼 AWS Well Architected Lead 兼 品質管理責任者 •AWS Top Engineers - 2019 ~ <初回から継続中> •AWS, 情報処理安全確保支援士、 その他多数の認定資格を保有
はじめに
このLambdaファンクションで、他の人のデータを盗める? import json import yaml def Handler(event, context):
data = yaml.load(event[“body”]["Data"]) store_data(data) return { "statusCode" : 200, "body" : “OK!!” } import json import yaml def Handler(event, context): data = yaml.load(event[“body”]["Data"]) # store_data(data) return { "statusCode" : 200, "body" : “OK!!” }
注意事項 https://unit42.paloaltonetworks.com/gaining-persistency-vulnerable-lambdas/ 攻撃手段については、上記で公開されている範囲内でお話しします。 悪用への活用や、無断での第三者環境での試用は絶対にしないでください!
ハッキング
AWS Lambda の仕組み 以下の3点が、今回のお話の肝となります。 • コールドスタート時に、コンテナが生成される • bootstrap (ランタイム)はユーザーが記載するコード(ハンドラ)と同じコンテナ環境に存在する •
ランタイム はハンドラの呼び出しとレスポンスの返却をループ処理で繰り返す 引用) https://aws.amazon.com/jp/blogs/compute/the-serverless-lamp-stack-part-3-replacing-the-web-server/ https://medium.com/build-succeeded/deconstructing-aws-lambda-functions-d1597dd054cd
今回解説するハッキングの概要 ハンドラから bootstrap を差し替えることで実現。 OS コマンドインジェクションの脆弱性をつく。 データを盗み出すよう改竄した bootstrap を送り込み、YAML読み込み時にプロセスを
差し替えることで永続化させる。 この bootstrap は、ハンドラ呼び出し直前に、TCPにてデータを指定のIPアドレス宛に 送信する。
ハッキング構成 差し替える
bootstrap の改ざん手順 ざっくりとした手順は以下。 1. 正規の bootstrap をベースに加工した bootstrap を用意する 2.
加工した bootstrap を、既存の bootstrap と差し替えるスクリプトを用意する 3. 攻撃対象の Lambda に対し、1, 2 のスクリプトを展開させるような YAML データを 付属の上、呼び出す 正規の bootstrap の振る舞いも続けるため、利用者および Lambda の保守担当者は 気づきにくい。 成功すれば、そのコンテナ環境に次回以降くるリクエストに付随するデータを搾取可能。
加工した bootstrap のサンプルの抜粋 ハンドラ呼び出しの直前に POST で悪意ある 攻撃者宛にデータを送信
プロセスを差し替えるスクリプトのサンプル
Lambdaに送りつける YAML データ生成のサンプル 先の2つのサンプルを差し込んで、上記の偽装 YAML を生成し、Lambda ファンクション を invoke する。
盗み出したデータのキャプチャ Base64でデコードすることで データを取得可能
ホワイトハッカー視点での分析
攻撃に対して PyYAML の脆弱性 (CVE-2017-18342) をついた、OS コマンドインジェクション。 5.1 未満のバージョンに存在。 CVSS で
9.8 のヤバいやつ。 引用) https://nvd.nist.gov/vuln/detail/CVE-2017-18342
問題となる箇所 PyYaml ver 5.1 で作った Layer
問題箇所のコード import json import yaml def Handler(event, context):
data = yaml.load(event[“body”]["Data"]) # store_data(data) return { "statusCode" : 200, "body" : “OK!!” }
防御 Shift Left(スキャン、ネットワーク制限、暗号化) Shield Right(WAF、エージェント、VPC FlowLog、GuardDuty) 引用) https://sysdig.com/blog/cnapp-runtime-insights-shift-left-shield-right/
防御 Shift Left も重要! 予めできることはやっておきましょう!
Amazon CodeGuru の検出例 しっかり検出!
AWS WAF防御例 「os.execv」 という文字列を検知 左記のルールを設定した WAFをAPI Gatewayにアタッチ した上で攻撃を行なったログ
AWS Lambda における責任共有モデル IaaSとサーバーレス 引用) https://docs.aws.amazon.com/whitepapers/latest/security-overview-aws-lambda/the-shared-responsibility-model.html
AWS Lambda における責任共有モデル IaaSとサーバーレス
Wrap-up
AWS Lambdaは危険なのか? No! OS コマンドインジェクションは、IaaS やオンプレでも有効。むしろ攻撃を成功させやす い。 コールドスタートによって自動的にコンテナを再生成(攻撃を無効化)できる AWS Lamba
の方が安全。
まとめ • (IaaS やオンプレよりは攻撃難易度は上がるものの) たとえ FaaS であっても脆弱性対策は必要 • セキュリティ面を考慮するには、仕組みを知ったほうがいい •
脆弱性をなくすことと(Shift Left)、攻撃を検知・防御すること(Shield Right)両面で 行う