Open Web Application Security Project(OWASP)は、ソフトウェアのセキュリティを向上させることを専門とした非営利団体です。OWASPは「オープン・コミュニティ」モデルの下で運営されており、誰でもプロジェクト、イベント、オンライン・チャットなどに参加して貢献することができます。OWASPの基本理念は、すべての資料と情報が無料で、誰でもWebサイトから簡単にアクセスできることです。OWASPは、ツール、ビデオ、フォーラム、プロジェクトからイベントまで、あらゆるものを提供します。つまりOWASPは、オープン・コミュニティの貢献者の幅広い知識と経験に裏打ちされた、汎用的なWebアプリケーション・セキュリティのリポジトリです[i]。
OWASP Top 10は、Webアプリケーション・セキュリティに関する最も重大な10のリスクについてのランキングと修正のガイダンスを提供する、OWASPのWebサイトにあるオンライン・ドキュメントです。このレポートは、世界中のセキュリティ専門家間で一致している意見に基づいています。リスクは、セキュリティの欠陥が発見された頻度、脆弱性の重大度、考えられる事業への影響の大きさに基づいてランク付けされています。レポートの目的は、開発者とWebアプリケーション・セキュリティ専門家に最も一般的なセキュリティ・リスクに関する知見を提供し、レポートの調査結果と推奨事項をセキュリティ・プラクティスに組み込み、アプリケーションにおけるこれらの既知のリスクの存在を最小限に抑えることです[i]。
OWASPは2003年からTop 10リストを維持しています。2~3年ごとに、このリストはアプリケーション・セキュリティ市場の進歩と変化のスピードに合わせて更新されています。OWASPの重要性は、提供している実用的な情報にあります。これは、現在も多くの世界の大手組織の主要なチェックリストとして、また、Webアプリケーションの社内開発標準としての役割を果たしています。
OWASP Top 10に対応できていない場合、監査者からコンプライアンス標準の面で不備がある可能性を示唆するものとみなされがちです。Top 10をソフトウェア開発ライフサイクル(SDLC)に組み込むことは、セキュア開発に関する業界のベストプラクティスを全面的に取り入れている証になります[i]。
上の図は、2013年版と2017年版の比較です。
最新版は2017年に発表され、次の図に示すように、2013年版への重要な変更が含まれています。インジェクションの問題は、依然としてアプリケーションで最も脆弱なセキュリティ問題の1つであり、機密データの露出が重要視されています。安全でないデシリアライゼーションなど、いくつかの新たな問題が加わり、他のいくつかの問題は統合されました。
1. インジェクション。コード・インジェクションは、攻撃者が無効なデータをWebアプリケーションに送信したときに発生します。攻撃者の意図は、アプリケーションに意図しない操作を実行させることです。
2. 認証の不備。 特定のアプリケーションは、不適切に実装される場合が多くあります。具体的には、認証とセッション管理に関連する機能が正しく実装されていない場合、攻撃者はパスワード、キーワード、およびセッションを侵害できてしまいます。これにより、ユーザーIDなどが盗まれる可能性があります[ii]。
3. 機密データの露出。機密データの露出とは、保存または送信された重要データ(社会保障番号など)が侵害された場合を指します。
4. XML外部実態参照(XXE)。攻撃者は、脆弱なコンポーネント処理XMLを使用するWebアプリケーションを利用できます。攻撃者は、XMLをアップロードしたり、悪意のあるコマンドやコンテンツをXMLドキュメントに含めたりすることができます。
5. アクセス制御の不備。アクセス制御の不備とは、攻撃者がユーザー・アカウントにアクセスできる場合を指します。攻撃者は、システムのユーザーまたは管理者として操作することができます。
6. セキュリティ設定のミス。セキュリティの設定ミスとは、設計または構成の弱点が設定エラーまたは欠点に起因する場合を指します。
7. クロスサイト・スクリプティング(XSS)。XSS攻撃は、アプリケーションにWebページ上の信頼できないデータが含まれている場合に発生します。攻撃者は、クライアント側のスクリプトをこのWebページにインジェクションします。
8. 安全でないデシリアライゼーション。安全でないデシリアライゼーションは、デシリアライゼーションの欠陥により、攻撃者がシステム内のコードをリモートで実行できる脆弱性を指します。
9. 機知の脆弱性を持つコンポーネントの使用。この脆弱性の名称はその性質を示しています。既知の脆弱性を含むコンポーネントを使用してアプリケーションを構築および実行するタイミングを表しています。
10. 不十分なロギングと監視。ロギングと監視は、Webサイトの安全性を保証するために、Webサイトに対して頻繁に実行する必要のあるアクティビティです。サイトを適切にログに記録して監視しないと、サイトはより深刻な侵害アクティビティに対して脆弱になります。
Coverity SAST + Black Duck SCA
シノプシスの包括的なCoverity SASTソリューションは、詳細かつ実行可能な修正アドバイスを提供することができます。CoverityのCI/CDパイプラインへのシームレスな統合によりテストを自動化し、開発スピードを維持することができます。OWASP Top 10の脆弱性の9/10をカバーするCoverityは、OWASP Top 10の脆弱性の低減における優秀なツールです。
残りのOWASP脆弱性(A9)に対処するBlack Duck SCAと組み合わせると、Coverity + Black DuckはすべてのOWASP脆弱性から全面的に保護するため、確信をもって開発することができます。詳細については、Coverityのデータシートをご覧ください。
脅威モデリング
アプリケーションの設計に潜む弱点を明らかにします。脅威モデリングは、悪意のあるハッカーの観点を導入して、システムに害を及ぼす可能性がある脅威エージェントの種類を特定し、どの程度の被害が起こり得るかを確認します。通常のあらかじめ用意されたリスト以外の、新しい攻撃や他の方法では考慮されていない可能性のある攻撃を考察します。
脅威モデルの内容
アーキテクチャ・リスク解析(ARA)
システム設計の欠陥を特定してセキュリティ態勢を強化します。何年もの経験により、セキュリティ上の問題を引き起こすソフトウェアの不具合の約半分は、設計上の欠陥であることがわかっています。セキュリティの脆弱性についてソフトウェアをテストするだけでは不十分であり、攻撃に対して脆弱なままです。
[i] https://owasp.org/www-project-top-ten/
[ii] https://wiki.owasp.org/?title=Special:Redirect/file/OWASP_Top_10-2017%28ja%29.pdf