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
[SRE NEXT 2022]ヤプリのSREにおけるセキュリティ強化の取り組みを公開する
Search
Masahito Mochizuki
May 14, 2022
Technology
2
8.5k
[SRE NEXT 2022]ヤプリのSREにおけるセキュリティ強化の取り組みを公開する
https://sre-next.dev/2022/schedule#jp05
Masahito Mochizuki
May 14, 2022
Tweet
Share
More Decks by Masahito Mochizuki
See All by Masahito Mochizuki
Product Security Summit 2024 Yappli
mmochi23
0
320
codt-2022-yappli
mmochi23
0
820
Other Decks in Technology
See All in Technology
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
230
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
0
1.9k
2024年グライダー曲技世界選手権参加報告/2024 WGAC report
jscseminar
0
330
Can We Measure Developer Productivity?
ewolff
1
120
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
120
Windows Autopilot Deployment by OSD Guy
tamaiyutaro
0
410
利きプロセススケジューラ
sat
PRO
5
2.7k
mikroBus HAT を用いた簡易ベアメタル開発
tarotene
0
330
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
2
910
いざ、BSC討伐の旅
nikinusu
2
750
データ活用促進のためのデータ分析基盤の進化
takumakouno
2
860
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
243
12k
Statistics for Hackers
jakevdp
796
220k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
2k
Scaling GitHub
holman
458
140k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
A Tale of Four Properties
chriscoyier
156
23k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Producing Creativity
orderedlist
PRO
341
39k
Transcript
ヤプリのSREにおけるセキュリティ強化の 取り組みを公開する 〜上場前後の変化〜
#srenext 2018/01にQAエンジニアとしてノーコードでアプリ開発を実現 するYappliを提供する株式会社ヤプリにジョイン QAの立ち上げやテスト自動化推進などを経てSREに転身 現在は基盤部の責任者として、全社のセキュリティ強化をミッ ションとして各種対策を推進 基盤部 └ SREグループ:Yappliのサービス・インフラ └
ITグループ(情シス):社内IT全般・情報セキュリティ 自己紹介 望月 真仁 (もちづき まさひと) テックブログの編集長もやっております ヤプリの技術にご興味がある方は是非ご覧ください https://tech.yappli.io/
#srenext SREとしてセキュリティに興味があるものの、具体 的に何をしたら良いか迷っている方が、 一歩先に進めるようなヒントを得ていただく 今日のゴール
#srenext 1. 上場に向けたセキュリティ強化 2. 上場後のセキュリティ推進 3. 新たな課題への挑戦 4. 最後に(まとめ・補足) アジェンダ
1 上場に向けたセキュリティ強化
#srenext 私がSREに転身したあたりから、社内で上場というワードが(現実的な意味合いで)ちら ほら話題にあがり始める 経理や監査とか大変そうだなあ でも開発は別に関係ないでしょ 上場・・・? →関係あった
#srenext 上場に向けてサービスや社内ITの具体的なチェック項目やリクエストが出てくる →サーバー・SRE・情シスにてそれぞれ現状を整理して対応を行うことになった 色々とチェックされる システムの権限はどうなっているか ✅ データには誰がどうやってアクセスしているか ✅ ログはどう管理しているか ✅
端末は資産管理ツール等で一元管理されているか ✅ 退職者のアカウントは確実に削除されているか ✅ 端末紛失時の情報漏洩対策はどうなっているか ✅ 個人情報はどう管理しているか ✅
#srenext 【指摘】 売上請求の元となる課金関連データに対して、複数人の開発メンバーがアクセス・変更 できる権限を付与されている →不正に改ざんすることができ得る *そもそも1つのデータベースユーザーを、色々なサービスや人間で共用していた 開発的に影響が大きかった対応
#srenext 【実際の対応イメージ】 • サービスが利用するDBユーザーと、人間が利用するDBユーザーを分ける • 該当サービスに必要な権限のみ付与する • データ変更は人間ではなくシステム的なバッチのみ許容する また適切なワークフローを経て実行可能とする 開発的に影響が大きかった対応
#srenext 結果、かなりの労力が必要となった • 計画・設計・影響度調査 • 各サービスごとのDB接続を設定し直し (ハードコーディングされているケースも・・・) • 認証情報はenv等を見て悪用できないよう管理サービスに委託 •
インフラコード化されていなかった部分を対応 • 事故が起きないようきちんとQAプロセスを通過 • 人間は業務に直接的な影響が出ないよう徐々に締め出し 開発的に影響が大きかった対応
#srenext • 普段からセキュリティを意識していないと、現状把握するだけでもかなり工数・手間 がかかる • 対応・対策を検討するのもセキュリティの知見がないと苦労する • 上場のような大きなイベントに迫られると、スケジュール・プレッシャーなど大変 • 一方で会社的にはセキュリティがフォーカスされる良い機会となった
(株主・取引先・世間からの関心、経営陣の意識、エンジニアのやる気) 振り返り
#srenext • 全社に向けたセキュリティ研修 • JamfによるMacの統合管理 • Googleをベースとしたアカウント管理 • PCのディスク保護 •
ライセンス管理の透明化 情シスも頑張った
2 上場後のセキュリティ推進
上場をきっかけに会社全体でセキュリティへの注目が高まる →SREでセキュリティやるぞ! →AWSを中心にセキュリティ対策をどんどん推進した セキュリティ推進
#srenext • Amazon GuardDuty ◦ 不正なアクティビティだけでなく、副次的に権限の設定ミスなども気づけるように • AWS WAF ◦
近年お客様から特に要求が多く、堂々とセキュリティチェックに回答できるように • PHP5撲滅委員会 ◦ セキュリティだけでなく、パフォーマンスも向上 • ウィルス対策 ◦ 安心感、WAF同様セキュリティチェックでよくチェックされていた • ディスク・データ暗号化 ◦ 流出・漏洩時のダメージ軽減 • 第三者による定期的な脆弱性診断 ◦ お墨付き、またトレンドを踏まえて今対策すべき箇所がずばり特定できるように 効果的だったセキュリティ対策
#srenext 一方でやってみたものの、まだうまく効果が出せていないものも • Amazon Inspector ◦ 検出はできたものの優先度が効率的に管理できていない • Amazon Detective
◦ コストが負担に • Security Command Center(Google Cloud) ◦ 検出はできたものの Google Cloudの対応自体が後回しになりがち • MFA(IAM) ◦ これ自体はもちろん有効である一方、すぐに後述の Single Sign-Onにてリプレイス 活用できていないセキュリティ対策
#srenext ここでふと思った ゴール ここ? ここ? ここ? 我々のセキュリティはどこに向かっていて、今どのレベルなのか?
そもそもゴールとは?
#srenext • 進め方は適切なのか? ◦ 目についたものをやる ◦ セキュリティチェックシートでよく言われるものをやる • うまく運用できたものと、できなかったものの違いは何か? •
そもそもその対策は本当にやるべきだったのか? • セキュリティ対策だからという理由で他タスクより優先すべきだったか? といった問いに自分自身が答えられなかった 振り返り
#srenext 整理してみよう! 整理・可視化 セキュリティ項目 対策内容 監査ログ AWS CloudTrailで記録 脅威の検出 Amazon
GuardDutyで監視 ソフトウェアの脆弱性 Amazon Inspectorで検出 ・・・ ・・・
#srenext やったこと・知っていることベースなので抜け漏れが出る 整理・可視化 セキュリティ項目 対策内容 監査ログ AWS CloudTrailで記録 脅威の検出 Amazon
GuardDutyで監視 ソフトウェアの脆弱性 Amazon Inspectorで検出 ・・・ ・・・ ↑この項目で十分か? ↑他に考慮すべき点はないか?
#srenext SREメンバー「AWS Well-Architected(セキュリティの柱)を使って振り返りをしてみませ ん?」 AWS Well-Architected
#srenext 現在の位置や自社の傾向が見えてきた • 🆗権限管理は結構できてきていた • ワークロードの管理が弱い🤔 • 🆗データはきちんと分類できている 一方で取り扱い・保護はもう一歩進めたい🤔 •
実際にインシデントが発生したときの動きがあまり整備できていない🤔 • 情報収集があまりできていない🤔 AWS Well-Architected
#srenext AWS Well-Architected 振り返りをすること自体にも意味があった • チーム全体でセキュリティに取り組むという雰囲気作りができた👍 • 他メンバーのセキュリティに関する考え方や情報が共有できた👍 同じ項目でも人によってOKになったりNGになったりするのが興味深い •
自身があまり担当してこなかったインフラ・セキュリティ領域の知見が得られた👍 • フレームワークに沿った定形の記録に残すことで、後から振り返りがしやすい👍 次回実施した際に比較検討ができ、モチベーションになる(成長を実感!)
#srenext ある日AWSのSAさんとお話しする機会があって、セキュリティ対策をどう進めるかにつ いて情報交換した →他のフレームワーク、例えばISMSとAWSのセキュリティ対策をマッピングして整理し てみるというやり方もありますよ →それ良さそう! (ちょうどISMSを取得しようとしているタイミングであったが、認証を取得することが目的 ではなく、実務にうまくリンクしてPDCAを回せるように手を打ちたいという思いがあった) 別角度でも整理
#srenext ISMS AWS Well-Architectedだとレビューしきれなかった実務レベルでの対策や改善も見えて きた 当時のマッピング図(抜粋)
#srenext 結果 ゴール ここ インシデントを起こさないセキュアなサービス・体制 ISMSやAWS Well-Architected などの道筋
#srenext セキュリティというキーワードが先行しすぎて、対策すること自体が目的となってしまった →「何のためにそのセキュリティ対策をするのか」が曖昧なため、効果があまり出せてい なかった →きちんと振り返ってPDCAサイクルを回して改善することで徐々に効果的な対策となっ てきている ヤプリのセキュリティ取り組みにおける反省点
#srenext Amazon GuardDuty入れるぞ! (あまりよく分かっていないけど良いらしい) →イベント発生しても誰も気づかなかった *AWSコンソールでは出ているが、そもそもコンソールに入らない日もあるし、入っても 気づかないことは多々ある 例えばAmazon GuardDutyで実際にあった話
#srenext Slack通知するぞ! →何が発生しているかよく分からずスルーされてしまうことも 例えばAmazon GuardDutyで実際にあった話
#srenext ちゃんと何があったか分かるようにしよう! ヤプリテックブログ参照 インターン生がGuardDutyのSlack通知を改善してみた! 例えばAmazon GuardDutyで実際にあった話
#srenext ある日気づいた 全てのAWSアカウントで有効になってないじゃん・・・ 例えばAmazon GuardDutyで実際にあった話 →次章へ
3 新たな課題への挑戦
#srenext • 新しく作ったAWSアカウントで、既存と同じレベルのセキュリティ対策ができていな い • 特定のサービスでは対策できているが、別のサービスではできていない (歴史的経緯や流行にのって色々なインフラがある) • SREがインフラ構築しないケースで穴があった 新たな課題
#srenext これまで整理した表形式の縦横にプラスして、対象となるAWSアカウントやサービスな どの奥行きも管理すべき かつ手動・目視では限界が来るのでシステム化・自動化したい 奥行きも管理 対策項目 対策状況 適用対象 (アカウント毎、サービス毎など)
#srenext • AWS Single Sign-On(with Okta) ◦ OktaからSSO&Provisioning、AWSアカウントをまたいで入退社も自動管理 • AWS
Organizations ◦ CloudTrail・GuardDuty等の一元管理、Single Sign-Onと連携したアクセス・ポリシー管理 • AWS Control Tower ◦ 発見的ガードレールの導入( ←今ここ) 直近で取り組んでいること
#srenext 入退社や異動などのイベントをトリガに、AWSアカウントを含む各サービスアカウントの メンテナンスを自動化 AWS Single Sign-OnとOktaを組み合わせたアカウント・権限管理
#srenext AWS Single Sign-OnとOktaを組み合わせたアカウント・権限管理 Okta (IdP) Kintone (社員DB) Zapier AWS
アカウント (SSO) SCIM AWS アカウント1 AWS アカウント2 AWS アカウント3 対象アカウント ・PermissionSetなど CloudFormationで管理
#srenext SRE・情シスの双方でさまざまな効果が! • 人事イベントのたびに手動でアカウント作成したり削除したりが不要に • AWSアカウントが増えてきたが抜け漏れなく管理 • 権限の一元管理 • 定期的な棚卸しが不要に
• MFAなど認証ポリシーをOktaで統合管理 AWS Single Sign-OnとOktaを組み合わせたアカウント・権限管理 →SRE・情シスの共同成果!
4 最後に
#srenext • 上場のような大きなイベントを迎える前から、セキュリティにもアンテナをはっておけ ば良かった • 自分たちのセキュリティがどこを目指していて、今どのレベルにあるのか可視化し ておくとその後の行動・判断がしやすい • なんのためにその対策をするのか、目的を明確化した上で実施すると効果が出や すい
• (一方でまずえいやでやってしまってから、振り返りをして改善していくサイクルを後 づけで整備する形も意外とありかも) まとめ
#srenext • 情シス部門と仲良く(密にコミュニケーション)しておくと良い ◦ OktaをベースにしたSingle Sign-Onでは色々協力してもらった ◦ 担当領域のセキュリティ情報を共有しあえる • セキュリティチェックシートは目を通しておいた方が良い
◦ 取引しているユーザーが求めているレベル感やトレンドが把握できる ◦ 製品・サービス観点でセキュリティ系の機能を実装する際の参考になる • セキュリティを誰が主導するのか会社としてメッセージングしておくと良い ◦ セキュリティをミッションとした基盤部の立ち上げ ◦ セキュリティ関連の相談や情報や課題がどんどん集まってきた (今まで君たちどこにいたの?) 補足
5 本当に最後に
#srenext セキュリティエンジニアさん・セキュリティやりたいSREさん絶賛募集中 https://open.talentio.com/r/1/c/yappli/pages/48798 https://www.wantedly.com/projects/577875 宣伝させてください🙏