120 likes | 188 Vues
市販のソフトウェアが これほど脆弱な理由. ( それをどのように解決するか ). 今日の状況. 市販のソフトウェアに多くの脆弱性 ほとんどのベンダーは毎年数十個の修正プログラムをリリース この状況が改善されている兆候はなし. 脆弱性の種類. 設計上の欠陥 実装上の欠陥. 設計上の欠陥. ソフトウェアがセキュリティ要件や原則についての正しい配慮なしに計画され、仕様が定められた場合に発生 例 : クリアテキストのパスワード 脆弱または独自の暗号. 設計上の欠陥. なぜ設計上の欠陥が起こるのか ? エンジニアが時間に追われている
E N D
市販のソフトウェアがこれほど脆弱な理由 (それをどのように解決するか)
今日の状況 • 市販のソフトウェアに多くの脆弱性 • ほとんどのベンダーは毎年数十個の修正プログラムをリリース • この状況が改善されている兆候はなし
脆弱性の種類 • 設計上の欠陥 • 実装上の欠陥
設計上の欠陥 • ソフトウェアがセキュリティ要件や原則についての正しい配慮なしに計画され、仕様が定められた場合に発生 • 例: • クリアテキストのパスワード • 脆弱または独自の暗号
設計上の欠陥 • なぜ設計上の欠陥が起こるのか? • エンジニアが時間に追われている • セキュリティの要件や原則に対する無知 • 幸運にもソフトウェアの設計は向上している!
設計上の欠陥 • 設計上の欠陥が見つかると、その後のリリースで修正される • しかし. . . • これらは非常に根深い、構造上の問題である • 業界は望ましい方向に向かっている • 設計上の欠陥はさまざまなセキュリティバグの中では少数派
実装上の欠陥 • ソフトウェア開発者がソフトウェアをコーディングする際に間違いを犯した場合に発生 • (他のバグと似ているが、場合によってはセキュリティへの深刻な影響あり!) • 実装上の欠陥は、設計とは独立した問題
実装上の欠陥 • 例: • バッファオーバーフロー • 整数オーバーフロー/アンダーフロー • SQLインジェクション • 書式文字列
実装上の欠陥 • なぜ実装上の欠陥が起こるのか? • 人的エラー • 人的エラーをなくすことはできないが、最小限に抑えるためにもっとできることがある • 最も深刻なセキュリティバグは、こうした不注意によるミスが原因で起こる
どのように改善するか? • 教育 • 開発者全員がセキュリティの専門家とは限らない • 各開発者がセキュリティの基本を理解しなければならない • Oracleでは、Webベースのオンデマンドセキュアコーディングトレーニングクラスを提供し、成功している
どのように改善するか? • 個人レベルの責任 • 教育は責任感を育てる! • 開発者に高品質なコードを書く責任を持たせる • 自動化ツール • 消費者の力
終 • 質問はありますか?