Linux Foundation 柴田次一氏 2023年2月28日開催 第1回 OSSセキュリティMeetup 講演資料
トレーニングコース LFD121-JP「セキュア ソフトウェア開発」のご紹介28, Feb 2023Linux FoundationTsuigkazu Shibata
View Slide
https://openssf.org/training/courses/
● LFD121はセキュアなソフト開発のためのHOWTOを説明したソフト開発者向けのコース● 全てオンラインで提供される● セキュアなソフト開発の基本に絞っている● 所要時間 約14-18時間● OpenSSF BestPractice WGの成果https://openssf.org/training/courses/
https://training.linuxfoundation.org/training/developing-secure-software-lfd121-jp/
David A WheelerLinux Foundation,Director of Open SourceSupply Chain Security.バージニア州フェアファックスにあるジョージ・メイソン大学(GMU)でセキュアソフトウェアの開発の大学院課程を指導。
LFD121-JP セキュア ソフトウェア開発の構成第1部 要件、設計、再利用第2部 実装第3部 検証と より専門的なトピック
第1部 要件、設計、再利用● セキュリティの基本○ セキュリティとは何か CIAトライアド■ セキュリティ要件 セキュリティ目標○ プライバシーとは、法規制、米国、欧州 GDPR● セキュア設計の原則○ S&S論文で示されるセキュア設計の原則 (Jerome H. Saltzer & Michael D. Schroeder)● 外部ソフトウェア利用○ ソフトウェア再利用の基本○ OSS選択時の評価○ 再利用可能なソフトウェアのダウンロード○ 再利用ソフトのupdate適用○ ソフトウェア利用方法の updateCIAトライアド機密性: Confidentiality完全性: Integrity可用性: Availability
第2部 実装● 入力検証○ 入力検証はどうあるべきか、 allow listing/good listing vs deny listing/bad listing○ 数値とテキスト、unicode エンコーディング、正規表現でのチェックと ReDOS脆弱性○ 内部形式変換(deserialization), CSV● データの安全な処理○ デフォルトのクレデンシャルは NG、ハードコードされたクレデンシャルもダメ○ バッファオーバフロー、メモリの2重解放、解放後使用、解放漏れ● 他のプログラムの呼び出し○ SQLインジェクションの例、 OSコマンドインジェクション、エラーリターンなど● 出力の送出○ クロスサイトスクリプティング
第3部 検証と より専門的なトピック● 検証○ ソフトウェアの問題を検知するツール類:静的解析(コードスキャナ、ReDOS解析、暗号やパスワードのハードコード検知)、動的解析(テストカバレッジ、ファズテスト、アドレスサニタイザ)● 脅威モデリング○ STRIDE● 暗号○ AES○ 使ってはいけないもの MD4, SHA-0○ SHA-2(SHA-256, SHA-512), SHA-3 は広く使われている○ Git のSHA‐1 の今後は?○ RSA● その他トピック○ 脆弱性レポートの受信からCVEの取得、アップデートの公開までのプロセス○ CICDパイプラインを含む開発配付環境の堅牢化
本コースについて● 要件、設計から開発、検証に至るソフト開発の場面で必要な最低限のセキュリティ上の知識を習得することが可能。● e-Learning コースなので時間のある時に自由に受講可能。また適宜問題が設定されていて知識の確認が可能。● 開発チームに適用することで、チーム全体の知識・スキルの底上げが可能。● さらにここで得た知識を元に、OpenSSF で実施する必要があるセキュリティ強化の活動を検討するベースにもなる。
オープンソースでの展開● David wheeler のGithub Repoにはオリジナルのテキストが公開済み。● 日本語テキストは今後このRepoにマージする予定。● 日本語テキストの翻訳上の問題や英語のテキストの課題については Github上でコメントや変更提案を提供可能。https://github.com/ossf/secure-sw-dev-fundamentals
今後、可能なこと● トレーニングコースについては OpenSSF Best Practice WG にて議論可能。● トレーニングコースの内容についてコントリビューションすることも可。○ 日本語版の翻訳上の問題等について○ 英語版の課題について○ オープンソースの標準的なプロセスで実施● 興味がある方は参加されては如何でしょうか?