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
[Snyk]デベロッパーセキュリティ強化! ~シフトレフトで安全な開発を~
Search
kidapan
July 13, 2023
850
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[Snyk]デベロッパーセキュリティ強化! ~シフトレフトで安全な開発を~
kidapan
July 13, 2023
More Decks by kidapan
See All by kidapan
[AI音楽セッション] 奇跡の1曲をあなたに。
kidapan
0
480
GitLabで快適な開発環境を! 〜GitLab Duo with Amazon Qのご紹介〜
kidapan
0
710
GitLab_Duo_with_Amazon_Q__1_.pdf
kidapan
0
370
202312_キラキラミラクルな呪文でIaCを実現 ~あなたも魔法を使い倒しませんか~
kidapan
0
1k
20231026_GitLabで実現_効率的な開発環境を
kidapan
0
960
202307_GitLab入門 ~特徴的な機能にふれるワークショップ~
kidapan
0
1.4k
AIと一緒に音楽を作ろう ~作曲体験セッション~
kidapan
1
920
2023/05/11_GitLabの活用
kidapan
0
1.9k
comfortable_video_creation_THEOplayer.pdf
kidapan
0
740
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
66
55k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
600
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
The Spectacular Lies of Maps
axbom
PRO
1
820
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
Transcript
デベロッパーセキュリティ強化! ~シフトレフトで安全な開発を~ 1 クラスメソッド株式会社 アライアンス事業部 サイード ラティファ栄美里 / 木田雅伊子
自己紹介 サイード ラティファ栄美里 • 所属 ◦ アライアンス事業部 ◦ エンジニア ◦
セキュリティ系のSaaS製品を担当 • 好きなAWSサービス ◦ AWS IAM、Amazon CloudFlont • ブログ ◦ さいちゃん ◦ https://dev.classmethod.jp/author/saichan/ 木田 雅伊子 / きだぱん • 所属 ◦ アライアンス事業部 ◦ エンジニア ◦ DevOpsのSaaS製品を担当 • ブログ ◦ きだぱん ◦ https://dev.classmethod.jp/author/kidapan/ マーシャル フェレット みるくちゃん (7ヶ月) ジャンガリアンハ ムスター おまめくん (1歳6ヶ月)
3 こんな悩みはありませんか? リリース前のテスト段階で脆弱性が確認された。大規模なソースコードの変更が必要となり、納期 に間に合わせることが難しくなった・・・ リリースの延長によって機会損失を招き、ビジネス的にも大きな影響を及ぼした。 原因 • セキュア開発導入に手を回す余裕がなかった • セキュア開発を実施できる人員が少なかった
• セキュリティ検査をする時間的余裕がなかった • セキュアな開発といっても何から始めればよいか分からない
4 その悩み解決します!
5 今回話すこと • 開発における現状のセキュリティ課題 • セキュア開発の重要性 • セキュア開発の導入の仕方 • Snykで出来ること
6 システム開発に求められること セキュリティ • ソフトウェア製品やウェブサイトの 脆弱性は毎年多数報告 • セキュア開発の重要性の高まり 開発スピード •
アジャイル開発 • DevOps • ビジネスニーズにいち早く対応
7 脆弱性の増加 企業や利用者をサイバー攻撃から守るためにも開発段階で セキュリティを組み込むことの重要性が高まっている IPA:ソフトウェア等の脆弱性関連情報に関する届出状況 [2022年第4四半期(10月~12月) ソフトウェア製品や ウェブサイトの脆弱性は 毎年多数報告されている
8 脆弱性にはどんなものがあるの?
9 CWE-89: SQL Injection https://owasp.org/Top10/A03_2021-Injection/
10 コードレベルでのSQL Injection対策例 サニタイジング • 入力画面でのバリデーションチェック ◦ データベース接続前に入力すべきでない文字が 含まれていないかどうかのチェック •
エスケープ処理 ◦ 特別な機能を持つ文字を別の文字列に変える • プリペアドステートメント ◦ SQL文を最初に用意しておき、クエリ内のパラ メータの値だけを変更してクエリを実行 できる機能
11 コードの脆弱性を悪用された例 クレジットカード決済基盤を提供する企業が不正アクセスを受け最大46万件のカード番号 やセキュリティコード流出してしまった事件。約半年にわたり攻撃を受けており、不正利用 懸念の連絡を受けてからも、原因特定が出来ず対応に時間がかかってしまった。 要因1:管理画面のクロスサイト・スクリ プティングに関する 脆弱性を悪用 要因2:アプリケケーションに存在した SQL
インジェクション脆弱性の悪用 要因3:バックドアプログラムの 設置及び攻撃 脆弱性が放置された理由 • ソースコードレビューを実施することが社内規定で定められていなかった • 決済システム以外の脆弱性対策は必要ないとの認識があった
Log4j の脆弱性 • 攻撃者はリモートコードの実行などの攻撃を行える • システムへの不正アクセスが可能 • 乗っ取り • マルウェアの侵入
脆弱性 • Ver 2.0 ~ 2.14 • Apache Log4j 2の特定の構成設定で発生 12 新しい脆弱性の登場の一例 https://logging.apache.org/log4j/2.x/security.html
13 Log4j の脆弱性 https://logging.apache.org/log4j/2.x/security.html ①特殊な文字列を含ませた httpリ クエストをサーバーに送信 Log4jの脆弱性がある 公開サーバー 攻撃者
Java App ②通信の処理結果を ログとして記録 LDAPサーバー httpサーバー ③ログ内の文字を変数化するこ とでLDAPクエリを送信 ④攻撃者のLDAPサーバーが悪意あ るファイルが配置された URLを応答 ⑤悪意あるファイルの ダウンロード/実行
14 よくあるセキュリティリスクの概要と対策 https://owasp.org/www-project-top-ten/ • クロスサイト・スクリプティング • ゼロデイアタック • サーバーサイドリクエストフォージェリ •
ハードコードされたパスワードの使用 • 不適切な暗号化アルゴリズム • 適切に保護されていないクレデンシャル • 保護されていない認証情報の保存 / 不適切な認証 • セッションの固定化 • ログファイルへの不適切な出力 etc.. https://owasp.org/Top10/ja/
15 どうやってセキュアな開発を進めるの?
16 DevSecOps Dev Sec Ops
17 DevSecOps Dev Sec Ops Development 開発 Security セキュリティ Operations
運用
18 今までの手法 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの下流工程(右側)でテストを行いリリース
• ここで脆弱性が発見された場合はソースコードへの修正が発生(手戻り) • リリース時にセキュリティに関する考慮事項が増え、リリースに影響することも • エンジニアの負担増
19 なんとかスピードを 落とさずセキュリティも担保 出来ないかな・・
20 Shift-Left 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの上流工程(左側)でテストを行う
• ソースコードの修正は早期に実装するほど対策コストがかからない • 早期に脆弱性の検知を行うことでリリーススピードの向上が見込める • 開発チームのセキュリティ意識向上 Shift Left
21 セキュリティの考慮事項と開発ライフサイクル AWS:Security For Developers – 開発者のためのセキュリティ これまでの手法 • テストの段階からセキュリティについて
考慮し始める • リリースのころに考慮事項が一番増え る • 考慮漏れや手戻りの発生 • リリース への影響 シフトレフト • 構築段階で一番考慮事項が増える • リリースのころにはセキュリティについて考 慮することは減少している
22 取り組まなきゃいけないのは分かったけど、具体 的に何をすればいいの?
23 脆弱性に関する情報 CVE NIST JVN IPA:安全なウェブサイトの作り方 • 資料を参考に新しい脆弱性に関しての 情報をリサーチ •
どういった攻撃にどのような対策が有効 なのかを学ぶ
24 ソースコードの検証とセキュリティレビュー PR しました! レビューお願いします。 コード OK LGTM ! 次の issue
アサイン! 脆弱性もなし LGTM ! すべてを人力でこなすのは負担も大きいし時間もかかる • コードに論理的なミスはないか • 利便性、分かりやすさなど、運用しやすいコード か • issue の要件を満たしているか • ライブラリに脆弱性が無いか • コードレベルのセキュリティ対策 • 最新の脆弱性に関してのセキュリティ対策 • オープンソースの脆弱性がないか Security Engineer シニア Developer
25 脆弱性を自動で見つけて 修正出来るような製品ないかな・・・?
None
お品書き 1. Snykとは a. Snykが提供する機能 2. Snykの活用 3. 参考情報 4.
まとめ
お品書き 1. Snykとは a. Snykが提供する機能 2. Snykの活用 3. 参考情報 4.
まとめ
29 Snykって何だろう
30 • Snykは、安全な開発を迅速に行うことを支援。 • コードやオープンソースとその依存関係、コンテナや IaCにおける脆弱性を見つけるだけでなく、 優先順位をつけて自動的に修正。 https://snyk.io/
31 世界最高水準の脆弱性データベースに基づく厳格なセキュリティ より信頼度の高いセキュリティ体制を構築可能 開発者ファーストのサービス設計 開発エンジニアが誰でも簡単に使うことが出来る 開発者の負担軽減!スピードの向上!
32 SnykのDeveloperSecurityの特徴 • デベロッパーファースト(開発ワークフローへの統合) • 業界トップレベルの脆弱性 DB • 脆弱性の自動修正機能 (Fix
PR) とPriority Score によるトリアージ • 情報セキュリティガバナンスを支える一元的な管理機能(Report 機 能など) CI/CD パイプラインの中に脆弱性スキャンのステップを組み込 むことによって、システムの安全性の担保と迅速なソフトウェア 開発ライフサイクルを両立する DevSecOps の基盤を構築する ことができる
33 5つのサービス Snyk Open Source Snyk Code Snyk Container Snyk
Cloud Snyk Infrastructure as Code
オープンソース向けの「Snyk Open Source」 ソフトウェアライフサイクルの初期段階や全体で、 プロジェクトと依存関係のあるオープンソースの既知の 脆弱性やライセンス問題を自動的に発見、 優先順位をつけて修正する 特徴 • 高速スキャン
• 高精度 (誤検知が少ない)
Log4j の脆弱性 • 攻撃者はリモートコードの実行などの攻撃を行える • システムへの不正アクセスが可能 • 乗っ取り • マルウェアの侵入
脆弱性 • Ver 2.0 ~ 2.14 • Apache Log4j 2の特定の構成設定で発生 35 再掲)よくある脆弱性の概要と対策 https://logging.apache.org/log4j/2.x/security.html
https://snyk.co/ufLKa
自分で開発したコード向けの「Snyk Code」 開発中のコードの脆弱性を検査し、 修正する静的アプリケーションセキュリティテストツール 特徴 • AIを使用して精度の高い結果を提供 • 新しい脆弱性へスピーディーに対応
IaCコード向けの「Snyk Infrastructure as Code」 開発者やアプリケーションチームが、 デプロイする前にコード内の設定上のセキュリティ問題を 特定できるようにする。 特徴 • IaC
に潜む設定ミスの検出・修正 (+カスタマイズ)
コンテナ向けの「Snyk Container」 脆弱性を特定するだけでなく、 コンテナやKubernetesアプリケーションの問題をすばやく見つけ、 修正するための実用的なアドバイスを提供
40 再掲)コードの脆弱性を悪用された例 クレジットカード決済基盤を提供する企業が不正アクセスを受け最大46万件のカード番号 やセキュリティコード流出してしまった事件。約半年にわたり攻撃を受けており、不正利用 懸念の連絡を受けてからも、原因特定が出来ず対応に時間がかかってしまった。 要因1:管理画面のクロスサイト・スクリ プティングに関する 脆弱性を悪用 要因2:アプリケケーションに存在した SQL
インジェクション脆弱性の悪用 要因3:バックドアプログラムの 設置及び攻撃 脆弱性が放置された理由 • ソースコードレビューを実施することが社内規定で定められていなかった • 決済システム以外の脆弱性対策は必要ないとの認識があった
None
クラウドセキュリティツール「Snyk Cloud」 クラウドの脆弱性を発見し、 修正するために状況に応じたアプローチを採用する クラウドセキュリティツール ※2022年11月8日の SnykLaunchにて発表されました。
43 デベロッパーセキュリティプラットホーム Snyk Code Snyk Open Source Snyk IaC Snyk
Container Snyk Cloud Snyk デベロッパーエクスペリエンス アプリケーションインテリジェンス セキュリティトレーニング セキュリティインテリジェンス 安全に開発 / 迅速な開発 / ガバナンス
44 Snyk なら DevSecOps サイクルでの分断を解決 開発者中心のアプローチでセキュリティチームを守備範囲を拡大 ソフトウェア開発 運用 セキュリティ対策
45 Snyk 活用
46 課題 複数のOSSツール 導入・管理に時間が かかる Snyk Snykによる 一元管理 ツールの一本化 管理や導入にかかる時間の削減
47 Shift-Left 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの上流工程(左側)でテストを行う
• ソースコードの修正は早期に実装するほど対策コストがかからない • 早期に脆弱性の検知を行うことでリリーススピードの向上が見込める • 開発チームのセキュリティ意識向上 Shift Left
新しい脆弱性へのレスポンス • Log4jなどの新しい脆弱性はいつ発表されれるか分かり ません ➡ Snykを活用することで、 すぐに影響範囲を把握して修正できる
49 Snyk × AWS AWS CodePipeline との連携
お品書き 1. Snykとは a. Snykが提供する機能 2. Snykの活用 3. 参考情報 4.
まとめ
51 参考情報
52
53
54 まとめ
55 まとめ Developer Security = 開発者によるセキュリティ対策 • 開発とセキュリティ対策の両立には、 「シフトレフト」「DevSecOps」 ➡ デベロッパーファーストのSnykを!!
• 脆弱性やセキュリティ対策で活用出来るsnyk IaCやSnyk Code等の機能がある
56 Snykは、 Developer Securityを サポートします
57