Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
シークレットを漏らしてしまった話 / secret-key-exposed
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
pep299
June 24, 2022
Technology
82
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
シークレットを漏らしてしまった話 / secret-key-exposed
pep299
June 24, 2022
More Decks by pep299
See All by pep299
なるべく自動化頑張ったLINE BOT on AWS
pep299
0
110
Playwright for PythonではじめるE2Eテスト / Lets start e2e-test with playwright for python
pep299
0
1.2k
プレイングマネージャーの葛藤 / The Conflict of a Playing Manager
pep299
1
3.5k
will・canマトリクスで自己分析してみた / Self-analysis with will-can matrix
pep299
0
610
そうだ Firebase Remote Config、使おう / let use Firebase Remote Config
pep299
0
100
Other Decks in Technology
See All in Technology
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
2
1k
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
190
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
5.9k
MIRU 2026 チュートリアル
keisuke198619
0
940
制約理論(ToC)入門 2026版
recruitengineers
PRO
8
2.4k
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
6.2k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
820
Flutterをカメラで動かしたかった話
sony
1
140
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
2
420
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
230
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.3k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.3k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
470
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
330
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
240
Embracing the Ebb and Flow
colly
88
5.1k
Transcript
「シークレットを漏らしてしまった話」 ぺぺ@Pep299 1
自己紹介 ぺぺ@Pep299 https://twitter.com/Pep299 情報系学士卒 エンジニア歴7年目 SES(金融系)-> フリーランス -> Web系受託 ->
Web系自社サ Open Source Conference 2021 Kyoto 登壇 東京都 新型コロナウイルス感染症対策サイトのコントリビュート ゲーム(Dead By Daylight、Among Us、ボードゲーム)・ブレイクダンス 2
3行まとめ LINEとTwitter APIのシークレットをうっかりGitHubのPublicリポにpush 一次対応と再発防止策を共有 業務中ではなく趣味開発中の話、でも再現性ありそう リポジトリ: https://github.com/pep299/dbd_line_bot 3
ある日のこと ピロン「おや?GitHubからメールが…GitGuardian?なんかつよそう」 ? 4
こんなお達しが 「シークレットを検知したやで」オーマイガー 5
何が起きた? IaCのテスト実装時に考慮が足りてなかった AWS CDKのスナップショットテストをするため、修正前のCloudFormation Templateを 保持して置く必要が そのTemplateに環境変数のvalueもそのまま埋め込まれる 環境変数ダダ漏れ状態でした . .
"Environment": Object { "Variables": Object { "ENV_NAME": "prod", "LINE_CHANNEL_ACCESS_TOKEN": "+RpdU3yDW61DFGfEhltJ02zjYKX65bx1R..." . . 6
一次対応 シークレットの無効化、再発行 gitの歴史改変(commitをresetでなかったことにしてforce push) スナップショットテストの値はマスク replace(/^[A-Za-z0-9\+=/]{172}$|^[A-Za-z0-9]{50}$|^[A-Za-z0-9\-] {50}$|^[A-Za-z0-9]{45}$/, "[SEC REMOVED]") .
. "Environment": Object { "Variables": Object { "ENV_NAME": "prod", "LINE_CHANNEL_ACCESS_TOKEN": [SEC REMOVED] . . 7
再発防止策 環境変数にシークレットを埋め込まない CFnベストプラクティスにも記載が Secret Manager や System Manager のパラメータストアから都度取得 今回TwitterやLINEの課金が発生しないAPIシークレットだったが、AWSのアクセスキー
とかが漏れたら相当やばい IAM Role や IAM Policy 見直してちゃんと権限管理 CIにはアクセスキーを渡さずに OIDC で一時的なトークンを発行し認証 忘れた頃にやらかしそうなので、precommit で secret 検知 (まだやれてない…) 8
イメージ Before GitHub Actions CFn Template AWS Lambda クレデンシャル After
GitHub Actions CFn Template AWS Lambda AWS STS AWS System Manager 9
おわりに LINEとTwitter APIのシークレットをうっかりGitHubのPublicリポにpush そんな漏らし方があったのか…ということで共有 環境変数は万能ではない そもそも永続的なキーをなるべく避けよう 一次対応と再発防止策を共有 今回のケースを踏む人は少なそうだが、 何事もやらかした時の切り戻しだけは検討しておくこと 業務中ではなく趣味開発中の話、でも業務でも再現性ありそう
趣味開発だけども雑にやりすぎず締める所は締める レビュー通すとかベストプラクティスを守るとかはしておく 10