Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Snyk]デベロッパーセキュリティ強化! ~シフトレフトで安全な開発を~

kidapan
July 13, 2023
590

[Snyk]デベロッパーセキュリティ強化! ~シフトレフトで安全な開発を~

kidapan

July 13, 2023
Tweet

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ヶ月)
  2. 10 コードレベルでのSQL Injection対策例 サニタイジング • 入力画面でのバリデーションチェック ◦ データベース接続前に入力すべきでない文字が 含まれていないかどうかのチェック •

    エスケープ処理 ◦ 特別な機能を持つ文字を別の文字列に変える • プリペアドステートメント ◦ SQL文を最初に用意しておき、クエリ内のパラ メータの値だけを変更してクエリを実行 できる機能
  3. Log4j の脆弱性 • 攻撃者はリモートコードの実行などの攻撃を行える • システムへの不正アクセスが可能 • 乗っ取り • マルウェアの侵入

    脆弱性 • Ver 2.0 ~ 2.14 • Apache Log4j 2の特定の構成設定で発生 12 新しい脆弱性の登場の一例 https://logging.apache.org/log4j/2.x/security.html
  4. 13 Log4j の脆弱性 https://logging.apache.org/log4j/2.x/security.html ①特殊な文字列を含ませた httpリ クエストをサーバーに送信 Log4jの脆弱性がある 公開サーバー 攻撃者

    Java App ②通信の処理結果を ログとして記録 LDAPサーバー httpサーバー ③ログ内の文字を変数化するこ とでLDAPクエリを送信 ④攻撃者のLDAPサーバーが悪意あ るファイルが配置された URLを応答 ⑤悪意あるファイルの ダウンロード/実行
  5. 14 よくあるセキュリティリスクの概要と対策 https://owasp.org/www-project-top-ten/ • クロスサイト・スクリプティング • ゼロデイアタック • サーバーサイドリクエストフォージェリ •

    ハードコードされたパスワードの使用 • 不適切な暗号化アルゴリズム • 適切に保護されていないクレデンシャル • 保護されていない認証情報の保存 / 不適切な認証 • セッションの固定化 • ログファイルへの不適切な出力 etc.. https://owasp.org/Top10/ja/
  6. 18 今までの手法 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの下流工程(右側)でテストを行いリリース

    • ここで脆弱性が発見された場合はソースコードへの修正が発生(手戻り) • リリース時にセキュリティに関する考慮事項が増え、リリースに影響することも • エンジニアの負担増
  7. 20 Shift-Left 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの上流工程(左側)でテストを行う

    • ソースコードの修正は早期に実装するほど対策コストがかからない • 早期に脆弱性の検知を行うことでリリーススピードの向上が見込める • 開発チームのセキュリティ意識向上 Shift Left
  8. 21 セキュリティの考慮事項と開発ライフサイクル AWS:Security For Developers – 開発者のためのセキュリティ これまでの手法 • テストの段階からセキュリティについて

    考慮し始める • リリースのころに考慮事項が一番増え る • 考慮漏れや手戻りの発生 • リリース への影響 シフトレフト • 構築段階で一番考慮事項が増える • リリースのころにはセキュリティについて考 慮することは減少している
  9. 24 ソースコードの検証とセキュリティレビュー PR しました! レビューお願いします。 コード OK LGTM ! 次の issue

    アサイン! 脆弱性もなし LGTM ! すべてを人力でこなすのは負担も大きいし時間もかかる • コードに論理的なミスはないか • 利便性、分かりやすさなど、運用しやすいコード か • issue の要件を満たしているか • ライブラリに脆弱性が無いか • コードレベルのセキュリティ対策 • 最新の脆弱性に関してのセキュリティ対策 • オープンソースの脆弱性がないか Security Engineer シニア Developer
  10. 32 SnykのDeveloperSecurityの特徴 • デベロッパーファースト(開発ワークフローへの統合) • 業界トップレベルの脆弱性 DB • 脆弱性の自動修正機能 (Fix

    PR) とPriority Score によるトリアージ • 情報セキュリティガバナンスを支える一元的な管理機能(Report 機 能など) CI/CD パイプラインの中に脆弱性スキャンのステップを組み込 むことによって、システムの安全性の担保と迅速なソフトウェア 開発ライフサイクルを両立する DevSecOps の基盤を構築する ことができる
  11. Log4j の脆弱性 • 攻撃者はリモートコードの実行などの攻撃を行える • システムへの不正アクセスが可能 • 乗っ取り • マルウェアの侵入

    脆弱性 • Ver 2.0 ~ 2.14 • Apache Log4j 2の特定の構成設定で発生 35 再掲)よくある脆弱性の概要と対策 https://logging.apache.org/log4j/2.x/security.html
  12. 43 デベロッパーセキュリティプラットホーム Snyk Code Snyk Open Source Snyk IaC Snyk

    Container Snyk Cloud Snyk デベロッパーエクスペリエンス アプリケーションインテリジェンス セキュリティトレーニング セキュリティインテリジェンス 安全に開発  / 迅速な開発 / ガバナンス
  13. 47 Shift-Left 企画 リリース ・運用 テスト 実装 設計 案件定義 開発ライフサイクルの上流工程(左側)でテストを行う

    • ソースコードの修正は早期に実装するほど対策コストがかからない • 早期に脆弱性の検知を行うことでリリーススピードの向上が見込める • 開発チームのセキュリティ意識向上 Shift Left
  14. 52

  15. 53

  16. 57