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

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

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

ソフトウェア開発において、セキュリティ対策は避けては通れない道です。Snykで実現できる「シフトレフト」は開発プロセスの早い段階からセキュリティ対策を組み込む手法で、セキュリティの脆弱性への対処として重要になっています。このセッションでは、シフトレフトでのセキュリティ対策の基本や必要性を説明すると共に、開発段階でのセキュリティ対策の考え方についてご紹介していきます。

さいちゃん

July 18, 2023
Tweet

More Decks by さいちゃん

Other Decks in Technology

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