2 2017年のセキュリティ・リスクの上位10件

OWASPトップ10リストの概要

リストされているセキュリティの脅威は、おそらくもっとも重大な脅威であり、アプリケーション開発者はこれらの脅威を認識して保護する必要があります。

詳細は、次を参照してください。

#1 - インジェクション

データがインタフェース仕様を介してインタプリタに送信され、データを送信するパーティがデータをチェックしない場合に、インタプリタがデータに対して予期されるアクションのみを実行することを確認すると、インジェクションの脆弱性が発生します。

SQL、コード、コマンド、ログ、パス・トランスバーサル(XML)は、コンテナで使用されるインタプリタに基づいて可能なすべてのタイプのインジェクションです。

有効なコンテンツ・タイプ

Oracle Clinical One Platformスイートは、JAX-RSライブラリ上に構築され、Oracle Life Sciences Cloud (GBUCSとも呼ばれる)でホストされるマイクロサービスベースのアプリケーションです。

開発者は、@Producesを使用して異なるContent-Typeを処理する必要があります。また、呼び出し自体中にパラメータを処理するための @Valid注釈を配置することも検討してください。

SQLインジェクション

Oracle Clinical One Platform APIは、異なるパラメータをバインド変数として指定された問合せに渡すため、SQLインジェクションは不可能です。

XMLインジェクション

Oracle Clinical One PlatformデータAPIは、コア・フレームワーク内に構築されたXMLパーサー・ライブラリを使用してXMLインジェクションを処理します。他の外部システムとの統合時に、このXMLパーサー・ライブラリを拡張し、データ型と長さの定義または制約が正確に一致するかどうかを確認することをお薦めします。

#2 - 認証が壊れています

壊れた認証およびセッション管理に関連するリスクは、多くの場合、これらの機能が適切に実装されていないために発生します。前述のとおり、カスタム認証メカニズムは実装されておらず、実装されていません。Oracle Clinical One Platform APIはステートレス方式で動作するため、すべてのインバウンド・リクエストは有効なJWTトークンを保持するか、基本認証を実行する必要があります。

JWTトークンは、セキュリティ標準に従って必要なアルゴリズムで暗号化され、ペイロードに必要な情報(有効期限、ユーザー、プリンシパル)を保持します。

Basic認証を使用する場合、常にセキュアなチャネルを介して資格証明を送信します。

資格証明は、いつでもOracle Clinical One Platformシステムに格納またはログインされません。

Oracle Clinical One Platform APIでは、適切なロールを持つユーザーのみがREST Webサービス・エンドポイントにアクセスできるように、ユーザーに対してファイングレイン認可も実行されます。

#3 - 機密データの露出

すべてのデータが公開されているわけではなく、機密情報を権限のないユーザーに隠すことをお薦めします。セキュリティ構成の失敗およびセキュアでないデフォルトの選択によって、データ漏洩のリスクが生じる可能性があります。

開発者は、TLS 1.2以上を使用してOracle Clinical One Platform APIを使用して機密データを保護し、中間者攻撃に対処する必要があります。

Webクライアント開発者は、アプリケーションが機密データを転送するときに暗号化されたデータ転送を実施し、すべての証明書が正当であり、公的機関によって署名されていることを検証する必要があります。暗号は最新の実装に制限する必要があります。

#4 - XML外部エンティティ(XXE)

Oracle Clinical One Platform APIでは、どのような相互作用にもXMLは使用されません。ただし、コア・ライブラリ内で使用可能なJAXB実装があり、XML外部エンティティ・サポートが予防措置としてプログラム的にオフになっています。OWASP XXE Prevention Cheat Sheetの推奨事項に基づいて、同様のアプローチを実装することをお薦めします。

#5 - アクセス制御が壊れています

すべてのOracle Clinical One Platform APIエンドポイントでは、ユーザーにファイングレイン認可が強制され、適切なロールを持つユーザーのみがREST Webサービス・エンドポイントにアクセスできるようになります。

#6 - セキュリティの構成ミス

Oracle Clinical One Platformスイートは、本番環境では常にデフォルトでセキュアな状態でインストールされます。デフォルトのサーバー・ユーザーは無効になり、未使用のポートはデプロイメントの一部としてブロックされます。Oracle Clinical One Platformアプリケーション・サーバーとの通信はOracle Life Sciences IAMSを介して行われ、OHSIAMS WebGateは各APIコールで認証詳細を監視します。

標準プロトコルの一環として、ブラック・ボックス・テストが定期的に実行され、構成ミスの可能性のある問題を検出します。考えられる問題は、クリティカル・パッチを適用することによって、ソース・コードまたはインフラストラクチャで対処されます。

#7 - クロスサイト・スクリプティング(XSS)

クロスサイト・スクリプティングは、主にブラウザでのデータ表示が原因で発生します。Oracle Clinical One Platform APIへの入力データは、コア・ライブラリ内にある初期化リクエスト・フィルタを介して常に渡されます。このフィルタは疑わしい文字または有害な文字を探し、必要に応じて要求をブロックします。クリックジャックを防ぐために、すべてのアウトバウンド応答はX_FRAME_OPTIONSヘッダーで飾られています。

#8 - 非セキュアなデシリアライズ

Oracle Clinical One Platform APIは、すべてのインバウンド・リクエストおよびシリアライズ可能オブジェクトを複数レベルで検証します。中間層レベルで保持されるデータはありません。また、Oracle Clinical One PlatformはGBUCSクラウド内でホストされるため、リモート実行シナリオの可能性がさらに軽減されます。したがって、セキュアでないデシリアライズ・シナリオは、Oracle Clinical One Platform APIのユーザーには適用されません。

#9 - 既知の脆弱性を持つコンポーネントの使用

Oracle Clinical One Platformテクノロジ・スタックは、最新のセキュリティ修正およびパッチで常に更新されます。APIを使用する開発者は、同じ方法でテクノロジを維持することをお薦めします。

#10 - ログとモニタリングが不十分

すべてのOracle Clinical One Platform APIコールは、認可サービス・フィルタを通過します。これらのフィルタは、一元化されたKibanaダッシュボードに表示される、異常または予期しない動作をログに記録します。予期しないイベントをアクティブに監視することは、高度な永続的な脅威(APT)に対処するために予防措置を講じることができるように、アクティブな攻撃を識別して通知するために非常に重要です。