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
202312_キラキラミラクルな呪文でIaCを実現 ~あなたも魔法を使い倒しませんか~
Search
kidapan
December 15, 2023
Technology
0
800
202312_キラキラミラクルな呪文でIaCを実現 ~あなたも魔法を使い倒しませんか~
kidapan
December 15, 2023
Tweet
Share
More Decks by kidapan
See All by kidapan
20231026_GitLabで実現_効率的な開発環境を
kidapan
0
720
[Snyk]デベロッパーセキュリティ強化! ~シフトレフトで安全な開発を~
kidapan
0
610
202307_GitLab入門 ~特徴的な機能にふれるワークショップ~
kidapan
0
1.1k
AIと一緒に音楽を作ろう ~作曲体験セッション~
kidapan
1
670
2023/05/11_GitLabの活用
kidapan
0
1.3k
comfortable_video_creation_THEOplayer.pdf
kidapan
0
540
Terraformを使ってMackerelをもっと便利に
kidapan
1
1k
Other Decks in Technology
See All in Technology
ソフトウェア開発における「パーフェクトな意思決定」/Perfect Decision-Making in Software Development
yayoi_dd
2
2.7k
EMConf JP の楽しみ方 / How to enjoy EMConf JP
pauli
2
120
効率的な技術組織が作れる!書籍『チームトポロジー』要点まとめ
iwamot
2
200
Unsafe.BitCast のすゝめ。
nenonaninu
0
160
チームが毎日小さな変化と適応を続けたら1年間でスケール可能なアジャイルチームができた話 / Building a Scalable Agile Team
kakehashi
1
170
新しいスケーリング則と学習理論
taiji_suzuki
9
3.8k
#TRG24 / David Cuartielles / Post Open Source
tarugoconf
0
490
30分でわかる「リスクから学ぶKubernetesコンテナセキュリティ」/30min-k8s-container-sec
mochizuki875
3
400
AIエージェントに脈アリかどうかを分析させてみた
sonoda_mj
2
140
プロダクト組織で取り組むアドベントカレンダー/Advent Calendar in Product Teams
mixplace
0
680
The future we create with our own MVV
matsukurou
0
1.8k
商品レコメンドでのexplicit negative feedbackの活用
alpicola
1
170
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
67
4.5k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Unsuck your backbone
ammeep
669
57k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Statistics for Hackers
jakevdp
797
220k
4 Signs Your Business is Dying
shpigford
182
21k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Transcript
キラキラミラクルな呪文でIaCを実現 ~あなたも魔法を使い倒しませんか~ 1 クラスメソッド株式会社 アライアンス事業部 木田雅伊子/きだぱん
魔法使いになりたい... そう思ったことはありませんか。
None
自己紹介 4 4 https://dev.classmethod.jp/author/kidapan/ 木田 雅伊子 /きだぱん クラスメソッド株式会社 アライアンス事業部 エンジニアグループ
担当:DevOps製品 フェレット (1歳) ハム太郎 (1歳10ヶ月)
AWS活用を支援するアライアンスパートナー製品 クラスメソッドはユーザー企業様の創造活動を支援するために、さまざまな企業とビジネスパートナー契約を締結し、 外部サービスのライセンス販売や導入支援を行っています。 5 脆弱性診断サービス ログ管理分析SaaS セキュリティ Webアプリケーション保護 次世代統合型認証基盤サービス
カスタマーサービスプラットフォーム サービス グローバルネットワークのエッジサービス データ準備・分析 データプラットフォーム クラウドデータウェアハウス データ活用 クラウドデータパイプライン アンチマルウェア製品 DevOps Observability CI / CDプラットフォーム セキュリティプラットフォーム Infrastructure as Code(IaC) マーテックソリューション DevOpsプラットフォーム
IaCとは Infrastructure as Code(IaC) • AWS環境やOSなどのインフラを構成する要素 をコード化し、構築や管理をサービス・ツール で自動化する手法 • モダンなシステム開発・管理においては必須
要件として設定されるケースも増えている
構築 土台を作る 設定 仕上げる 試験 品質を担保 コード管理
IaCの価値 • コスト(削減) • スピード(実行の高速化) • リスク(エラーとセキュリティ違反の除去)
魔法使いになりたい... そう思ったことはありませんか。
キラキラミラクルな呪文でIaCを実現 ~あなたも魔法を使い倒しませんか~
キラキラミラクルな呪文でIaCを実現 ~あなたも魔法を使い倒しませんか~ 人間の力ではなしえない不思議なことを行う術。魔術。
キラキラミラクルな呪文でIaCを実現 ~あなたも魔法を使い倒しませんか~ SaaS製品たち
None
IaCがもたらす大きな責任 もし、IaCファイルにセキュリティ上の問題があったら 例)タイプミスのために誤ったパーミッションが設定されるな ど → セキュリティ問題のほとんどがスキャンされるか、 実行時に発見される流れに沿って実行していくこと になる
CI/CD Continuous Integration/ Continuous Delivery 継続的インテグレーション/ 継続的デリバリー CI/CDは、何か特定の技術を指すものではなく、ソフトウェアの変 更を常にテストし、自動で本番環境に適用できるような状態にし ておく開発手法
None
たぬきのアイコンが目印。 実はキツネではない。 以前より、丸くなりました。
GitLabを使用するメリット • バージョン管理ができる • 変更履歴も残り、レビュー可能 • 手順書や環境定義書が不要になり、それらに 起因するヒューマンエラーを防げる • 雛形を作っておくことで、様々なプロジェクトで
それを使い回せる
None
None
21 リリース前のテスト段階で脆弱性が確認された。大規模なソースコードの変更が必要となり、納期 に間に合わせることが難しくなった・・・ リリースの延長によって機会損失を招き、ビジネス的にも大きな影響を及ぼした。 原因 • セキュア開発導入に手を回す余裕がなかった • セキュア開発を実施できる人員が少なかった •
セキュリティ検査をする時間的余裕がなかった • セキュアな開発といっても何から始めればよいか分からない
22 システム開発に求められること 開発スピード セキュリティ • ソフトウェア製品やウェブサイトの 脆弱性は毎年多数報告 • セキュア開発の重要性の高まり
23 脆弱性の増加 企業や利用者をサイバー攻撃から守るためにも開発段階で セキュリティを組み込むことの重要性が高まっている IPA:ソフトウェア等の脆弱性関連情報に関する届出状況 [2022年第4四半期(10月~12月) ソフトウェア製品や ウェブサイトの脆弱性は 毎年多数報告されている
24 脆弱性にはどんなものがあるの?
25 コードレベルでのSQL Injection対策例 サニタイジング • 入力画面でのバリデーションチェック ◦ データベース接続前に入力すべきでない文字が 含まれていないかどうかのチェック •
エスケープ処理 ◦ 特別な機能を持つ文字を別の文字列に変える • プリペアドステートメント ◦ SQL文を最初に用意しておき、クエリ内のパラ メータの値だけを変更してクエリを実行 できる機能
26 コードの脆弱性を悪用された例 クレジットカード決済基盤を提供する企業が不正アクセスを受け最大46万件のカード番号 やセキュリティコード流出してしまった事件。約半年にわたり攻撃を受けており、不正利用 懸念の連絡を受けてからも、原因特定が出来ず対応に時間がかかってしまった。 要因1:管理画面のクロスサイト・スクリ プティングに関する 脆弱性を悪用 要因2:アプリケケーションに存在した SQL
インジェクション脆弱性の悪用 要因3:バックドアプログラムの 設置及び攻撃 脆弱性が放置された理由 • ソースコードレビューを実施することが社内規定で定められていなかった • 決済システム以外の脆弱性対策は必要ないとの認識があった
27 今までの手法 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの下流工程(右側)でテストを行いリリース
• ここで脆弱性が発見された場合はソースコードへの修正が発生(手戻り) • リリース時にセキュリティに関する考慮事項が増え、リリースに影響することも • エンジニアの負担増
28 なんとかスピードを 落とさずセキュリティも担保 出来ないかな・・
29 Shift-Left 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの上流工程(左側)でテストを行う
• ソースコードの修正は早期に実装するほど対策コストがかからない • 早期に脆弱性の検知を行うことでリリーススピードの向上が見込める • 開発チームのセキュリティ意識向上 Shift Left
30 セキュリティの考慮事項と開発ライフサイクル AWS:Security For Developers – 開発者のためのセキュリティ これまでの手法 • テストの段階からセキュリティについて
考慮し始める • リリースのころに考慮事項が一番増え る • 考慮漏れや手戻りの発生 • リリース への影響 シフトレフト • 構築段階で一番考慮事項が増える • リリースのころにはセキュリティについて考 慮することは減少している
31 ソースコードの検証とセキュリティレビュー PR しました! レビューお願いします。 コード OK LGTM ! 次の issue
アサイン! 脆弱性もなし LGTM ! すべてを人力でこなすのは負担も大きいし時間もかかる • コードに論理的なミスはないか • 利便性、分かりやすさなど、運用しやすいコード か • issue の要件を満たしているか • ライブラリに脆弱性が無いか • コードレベルのセキュリティ対策 • 最新の脆弱性に関してのセキュリティ対策 • オープンソースの脆弱性がないか Security Engineer シニア Developer
32 脆弱性を自動で見つけて 修正出来るような製品ないかな・・・?
None
34 https://snyk.io/ So, Now You Know Snykは、安全な開発を迅速に行うことを支援。 • 多くの言語・開発フレームワークに対応 •
コーディング段階で脆弱性をチェック • IaC・コンテナに対応 • 依存しているOSSの脆弱性チェック • CI/CD連携・IDE連携 • 3大クラウドプラットフォームと連携
Snykで何ができる
36 DevSecOps Dev Sec Ops Development 開発 Security セキュリティ Operations
運用
37 Shift-Left 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの上流工程(左側)でテストを行う
• ソースコードの修正は早期に実装するほど対策コストがかからない • 早期に脆弱性の検知を行うことでリリーススピードの向上が見込める • 開発チームのセキュリティ意識向上 Shift Left
Snykプロダクト Snyk Code ソースコードをリアルタイムに静的解析 (SAST) Snyk Open Source オープンソースソフトウェアの依存関係解析 (SCA)
Snyk Container コンテナ/k8sワークロードを継続的に脆弱性から保護 Snyk IaC 脆弱なIaCコードを検知し指摘 Snyk IaC + クラウド実行環境の構成チェック (CSPM) https://snyk.io/
None
実際に見ていきましょう
まとめ • IaC導入には 開発のスピード+セキュリティ管理も重要 ◦ CI/CD、シフトレフト、コードの脆弱性スキャン →SaaS製品を使い倒して安心安全なIaCライフを! →これであなたも魔法使い
None
43 参考情報
44 脆弱性に関する情報 CVE NIST JVN IPA:安全なウェブサイトの作り方 • 資料を参考に新しい脆弱性に関しての 情報をリサーチ •
どういった攻撃にどのような対策が有効 なのかを学ぶ
次世代脆弱性診断ツール https://snyk.co/ufLKa
46 Snyk × AWS AWS CodePipeline との連携
47 脆弱性に関する情報 CVE NIST JVN IPA:安全なウェブサイトの作り方 • 資料を参考に新しい脆弱性に関しての 情報をリサーチ •
どういった攻撃にどのような対策が有効 なのかを学ぶ
48 よくあるセキュリティリスクの概要と対策 https://owasp.org/www-project-top-ten/ • クロスサイト・スクリプティング • ゼロデイアタック • サーバーサイドリクエストフォージェリ •
ハードコードされたパスワードの使用 • 不適切な暗号化アルゴリズム • 適切に保護されていないクレデンシャル • 保護されていない認証情報の保存 / 不適切な認証 • セッションの固定化 • ログファイルへの不適切な出力 etc.. https://owasp.org/Top10/ja/