現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。セキュリティプラットフォーム技術の取り組みについてご紹介します。第1回目」で「アプリケーションを開発するときには、既知の脆弱性を意識して行わなければなりません。」と述べたことについて、ヤフーがどのように取り組んでいるかについてご紹介いたします。◆セキュアなシステムを構築するために安全に利用できるシステムを構築するためには、知識や技術がなければなりません。そのためにヤフーでは1:教育2:アプリケーションのセキュリティ対策3:ソースコードレビュー4:脆弱性テスト5:セキュリティチェックが行われています。【1】教育どのようなことでも同じことが言えますが、知らないものに対する対策を考えるのは非常に難しいです。セキュリティについて何も知らなければ、意識することなく、開発をしてしまうこともあるでしょう。セキュリティの意識を持つこと、そして、セキュリティの問題を理解し、セキュリティの対策を知った上で、その対策を開発時に応用することで、はじめて製品の安全性が確保されます。そのため、セキュリティへの意識や理解をエンジニアに持ってもらうために、毎年、新入社員が入社し、人事主催の研修が終了し、配属された時期に、全社向けに技術寄りのセキュリティのセミナーを行っています。このセミナーでは、「なぜ、セキュリティが必要なのか?」や既知の脆弱性や事例などを説明し、実際にデモを行い、ヤフーにおける脆弱性対策について解説しています。バージョンのPHP)は、インストールしたデフォルトの設定で、セキュアな設定になっています。デフォルトが安全な設定になっていることで、安全対策の設定し忘れを防止することができる点がメリットです。拡張モジュールによってフィルタリングされるようになっています。基本となるyApacheのパッケージは、最低限のモジュールだけが組み込まれており、余計なものは含まれていません。用モジュールで自動的にチェックされ、壊れているcookieの破棄や修正が行われます。整合性を意識する必要はありません。入力チェックヤフーのウェブアプリケーションの多くはいろいろなパラメータを受け取り、そのデータに基づいて振る舞いを決定し、データの格納や取り出しを行います。受け取ったパラメータの取扱方によっては、予期せぬ振る舞いを行ってしまうことがあるかもしれません。その対策として、プログラムで入力されたデータを検証しなければなりません。ウェブアプリケーションにおいては、この入力チェックが非常に重要です。入力された値のチェックを行わない場合、悪意のあるJavaScriptがウェブページに混入されたり、データベースのデータ盗難や改ざんといったことが起こるかもしれません。ヤフーでは、入力値のチェックにヤフーの入力チェックライブラリを使用しています。このライブラリでは、数値が入力されるべきところで数値が入力されているかを確認したり、XSS対策としてHTMLをエスケープやHTMLのタグを削除などの処理を行います。すべてのサービスで入力のチェックはこのライブラリで行うことになっています。filter拡張モジュールの起源とも言えるライブラリです。PHPの依存関係でヤフーのfilter拡張モジュールがインストールされ、入力からHTMLタグが除去される設定がデフォルトです。このため仮に入力チェックを行わないアプリケーションを書いたとしても自動的にフィルタリングされます。して、XSSといった問題が起きないようになっているのです。社内向けに提供されています。フォームやリンク、AjaxやFlashの通信、jsonを返すエントリーポイントで、必要に応じてCSRF対策が行われています。【3】ソースコードレビューセキュリティ教育だけに頼らず、実際に開発されたコードを評価して、安全であることを確認する必要があります。ソースコードレビューをしているチームも多くありますが、セキュリティプラットフォームでは、ヤフー独自のソースコードスキャナーと脆弱性スキャナーを提供しています。人手でレビューを行うためのヤフー独自のソースコードレビューツールも提供されています。社内には、全社で利用するソースコード管理ツール(CVSやSubversion)があり、ソースコードは、そこにコミットされます。コミットされたソースコードは、自動的に上述のソースコードスキャナーによってスキャンされます。そのため人手を使わずに、単純なソースコードレビューを行えます。ソースコードスキャナーは、使うべきではない関数やフラグの利用、設定ファイルの不適切な設定などを検出でき、スキャンのためのテストケースも簡単に追加できるようになっています。ソースコードに問題と思われる部分が発見されると、コミットしたエンジニアへ通知されます。ソースコードスキャナーは、完全ではなく、人手によるチェックも必要ではありますが、ツールでチェックするメリットとして、チェックの品質が一定であり、網羅的であること、人手が掛からないことなどが挙げられます。Standardの略でクレジット業界におけるグローバルセキュリティ基準)を取得しているサービスに対して、実際にソースコードのレビューを行っています。【4】脆弱性テスト書いたコードは、実際に動作させて確認しなければなりません。ヤフーでは、独自のセキュリティスキャナーを利用し、単純なレベルでの脆弱性チェックを行っています。エンジニアは、開発したアプリケーションを任意のタイミングで、セキュリティスキャナーでスキャンすることが可能です。このほか、エンジニアによるオンデマンドのテストとは別に、外部に公開しているサービスを定期的にスキャンし、ヤフーのサービスに既知の問題がないことも確認しています。リリース前のフェーズにおいて、セキュリティチェックを行っています。このチェックでは、セキュリティ問題に関連する特に守るべき項目が適切に行われているかを確認することができます。OSやDBのアカウント管理、入力チェック方法、セッション管理など、幅広い項目があり、設計などの見落としを失くすための補助的なツールとして利用しています。◆まとめ以上のことが、教育、開発、テストにおけるヤフーのセキュリティ対策の概要になります。ヤフーは、多くのお客様を抱えており、セキュリティ問題が発生した場合には、お客様や社会へ非常に大きなインパクトを与えかねません。サービスの規模にかかわらず、あるヤフーのサービスがセキュリティの問題を抱えいる場合、その穴からヤフー全体を脅かす問題へ発展する可能性があります。そのため、ヤフーでは、個々のサービスのセキュリティに細心の注意を払って、開発・運営しています。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。