Odoo セキュリティ
お客様のセキュリティは当社にとって非常に重要です。Odooでお客様のデータの安全性を保証し、ホスト版であるOdooクラウドでベストセキュリティプラクティスを実践するために、当社が日々行っている取り組みを以下にまとめています。
CSA STAR Level 1
Odooは、CSA Security Trust Assurance and Risk (STAR) Programに参加しています。
当社のCAIQv3.1の質問に対する回答を見る
— Odooクラウド(プラットフォーム)—
バックアップ / ディザスタリカバリ
- 各Odooデータベースのフルバックアップを最低3ヶ月間14回保存しています: 1/日は7日間、1/週は4週間、1/月は3ヶ月間です。
- バックアップは、少なくとも2つの異なる大陸にある3つの異なるデータセンターで複製されます。
- 当社のデータセンターの現在の所在地は、以下に明記されています:当社の プライバシーポリシー.
- お客様はコントロールパネルを使って、ライブデータの手動バックアップをいつでもダウンロードすることもできます。
- お客様は、当該バックアップのいずれかをライブデータベース(または別)に復元するために、当社のヘルプデスクに連絡することができます。
- ハードウェアのフェイルオーバー:ベアメタルでホストされているサービスでは、ハードウェアの障害が発生する可能性があるため、当社はローカルでホットスタンバイレプリケーションを実装し、モニタリング0および5分以内に終わる手動フェイルオーバー手順を採用しています。
- ディザスタリカバリ:大災害が発生し、データセンターが 長期間にわたって完全に停止するような場合、ローカルホットスタンバイへのフェイルオーバーを防止するため(これまで一度も発生したことなく、これは最悪の場合の計画です)、以下の目標を掲げています:
- RPO(目標回復地点) =24時間。つまり、データが復旧できず、最新の日次バックアップを復元する必要がある場合、最大24時間の業務が失われる可能性があるということです。
- RTO (目標復旧時間) = 24時間。有料サブスクリプションの場合は24時間、無料トライアル、教育プログラム、フリーミアムユーザーなどの場合は48時間。災害が発生し、データセンターが完全にダウンした場合に、別のデータセンターでサービスを復旧させるために要する時間です。
- 上記実現のため、当社では日々のバックアップをアクティブ監視し、それらのバックアップを異なる大陸にある複数の場所に複製しています。また当社は新しいホスティング・ロケーションでサービスを展開するための自動プロビジョニングを備えています。(非常に大規模な災害の場合は)有料サブスクリプションが優先され、前日のバックアップに基づくデータの復元は、数時間で完了します。
当社では日々のバックアップとプロビジョニング・スクリプトの両方を日常的に使用しているため、災害復旧手順における両方の部分が常にテストされているのです。
データベースセキュリティ
- 顧客データは専用のデータベースに保存され、顧客間でデータを共有することはありません。
- データアクセス制御ルールにより、同一クラスタ上で稼働するお客様のデータベースは完全に分離されており、一つのデータベースから別のデータベースへのアクセスは不可能です。
パスワードセキュリティ
- 顧客パスワードは業界標準のPBKDF2+SHA512 暗号(ソルト化+数千回のストレッチング)で保護されています。
- Odoo社員がお客様のパスワードにアクセスし、お客様のために再発行することはできません。パスワードを紛失した場合はお客様ご自身でリセットして下さい。
- ログイン認証情報は常にHTTPSで安全に送信されます。
- 顧客データベース管理者は、以下のオプションも利用できます: レート制限を設定 および待機時間の設定をすることができます。
- パスワードポリシー: データベース管理者は、ユーザパスワードの最小長を強制するための組込設定を持っています。 必須文字クラス のような他のパスワードポリシーは、逆効果であることが証明されているため、デフォルトではサポートされていません。 例: [強力かつ使いやすいパスワードポリシーの設計]), 同様に NIST SP 800-63b.
スタッフアクセス
- Odooヘルプデスクのスタッフは、サポートに関する設定にアクセスするために、お客様のアカウントにサインインすることがあります。この場合、Odooスタッフはお客様のパスワードではなく(Odooスタッフがお客様のパスワードを知る方法は皆無です)、Odooスタッフ専用の特別なスタッフ認証情報を使用します。
- 特別な当該スタッフアクセスにより、効率化とセキュリティが向上します。スタッフはお客様が目の当たりにしている問題をすぐに再現することができ、お客様はパスワードを共有する必要はなく、当社はスタッフの行動を個別に監査および管理することができるのです。
- ヘルプデスクのスタッフは、可能な限りお客様のプライバシーを尊重し、お客様の問題の原因を突き止め解決するために必要なファイルや設定にのみアクセスするように努めています。
システムセキュリティ
- すべてのOdooクラウドサーバーは、最新のセキュリティパッチを適用したハード化されたLinuxディストリビューションで稼働しています。
- 脆弱性を含む可能性のあるサービスの数を制限するために、インストールはアドホックかつ最小限のものです(例:PHP/MySQLスタックは無し)。
- 信頼できる数名のOdooエンジニアのみがサーバーをリモートで管理する権限を持っており、フルディスク暗号化されたコンピューターから、暗号化された個人のSSH鍵ペアを使用してのみアクセスすることができます。
物理セキュリティ
Odooクラウドのサーバーは、世界の様々な地域にある信頼できるデータセンター(例:OVH、Googleクラウド)でホストされており、それらはすべて当社の物理セキュリティ基準を上回る必要があります
- 制限されたぺリメータに物理的にアクセスできるのは、許可されたデータセンターの従業員のみに限ります。
- セキュリティバッジや生体認証による物理的なアクセス制御を行います。
- セキュリティカメラにより、データセンターを24時間365日監視します。
- 24時間365日警備員が常駐します。
クレジットカードの安全性
- クレジットカードの情報を自社のシステムに保存することはありません。
- お客様のクレジットカード番号は、当社の決済代行業者 PCI-Compliant 宛に、お客様より常に直接、安全に送信されます。(当社の プライバシーポリシー ページのリストをご覧ください)
データ暗号化
顧客データは常に暗号化された状態で、転送および保管されます。(転送時および保管時の暗号化)- クライアントインスタンスへのすべてのデータ通信は、最先端の256ビットSSL暗号化通信(HTTPS)で保護されています。
- また、サーバー間の内部データ通信は、すべて最先端の暗号化技術(SSH)で保護されています。
- 当社のサーバーは、厳重なセキュリティ監視のもと、常に最新のSSL脆弱性対策が施されており、 グレードAの SSL評価を常に受けています。
- 当社のSSL証明書はすべて、堅牢な2048ビットモジュラスとフルSHA-2証明書チェーンを使用しています。
- すべての顧客データ(データベースコンテンツおよび保存ファイル)は、本番およびバックアップの両方で、静止状態で暗号化されます。(AES-128またはAES-256)
ネットワーク 防御
- Odooクラウドが使用するすべてのデータセンタープロバイダーは、非常に大きなネットワーク容量を持っており、非常に大きな分散型サービス妨害(DDoS)攻撃に耐えるようにインフラを設計しています。自動および手動の軽減システムにより、攻撃トラフィックがサービスの可用性を阻害し始める前に、複数の大陸のネットワークのエッジで検知し迂回させることができます。
- Odooクラウドサーバーのファイアウォールや侵入防止システムは、ブルートフォースパスワード攻撃などの脅威を検知およびブロックするのに役立ちます。
- 顧客データベース管理者は、以下のオプションも利用できます: レート制限を設定 および待機時間の設定をすることができます。
— Odoo(ソフトウエア) —
ソフトウエアセキュリティ
Odooはオープンソースであるため、コードベース全体が世界中のOdooユーザーやコントリビューターによって継続的に検証されています。そのため、コミュニティのバグレポートは、セキュリティに関する重要なフィードバック源の1つです。開発者の皆様には、コードを監査し、セキュリティ上の問題を報告することを奨励しています。
Odoo R&D のプロセスでは、新しいコードや提供されたコードに対して、セキュリティ面を含むコードレビューの段階を設けています。
セキュア・バイ・デザイン
Odooは最も一般的なセキュリティの脆弱性を引き起こさないようデザインされています。
- SQLインジェクションは、手動でのSQLクエリを必要としない上位APIを使用することで防止されます。
- XSS攻撃は、注入されたデータを自動的にエスケープする高レベルのテンプレートシステムの使用によって防止されます。
- 当該フレームワークでは、privateメソッドへのRPCアクセスを防ぐため、悪用可能な脆弱性を引き起こすことが難しくなっています。
当初からOdooが取り組んできたそうした脆弱性への対策を取り組んできたかについて OWASP 脆弱性トップリスト の項目もご覧下さい。
第三者によるセキュリティ監査
Odooは、お客様や見込み客から依頼された独立系企業による監査やペネトレーションテストを定期的に受けています。Odooセキュリティチームはその結果を受けて、必要なときに適切な是正措置をとります。
しかし、これらの結果は、委託先に属する機密事項であるため、一切公開することができません。お問い合わせはご遠慮ください。
また、Odooには独立系研究者たちの非常に活発なコミュニティがあり、彼らは継続的にソースコードを監視し、Odooのセキュリティを改善し強化するために私たちと協力しています。Odooのセキュリティプログラムについては、以下で紹介しています: 責任ある情報開示 ページに公式パートナーとして掲載されることで知名度および認知度を上げます。
OWASP 脆弱性トップリスト
Webアプリケーションの最重要のセキュリティに関して、Odooでは以下の対策をしており、 ウェブアプリケーションセキュリティープロジェクトを開始する (OWASP)の記載事項に基づいています:
-
インジェクションの欠陥:インジェクションの欠陥、特にSQLインジェクションは、ウェブアプリケーションによく見られます。インジェクションは、ユーザーから提供されたデータがコマンドやクエリの一部としてインタプリタに送信されることで発生します。攻撃者による悪意のあるデータは、インタプリタを騙して意図しないコマンドを実行させたり、データを変更させたりします。
OdooはORM(オブジェクト関係マッピング)フレームワークを使用しており、クエリ構築を抽象化し、デフォルトでSQLインジェクションを防止しています。開発者は通常SQLクエリを手動で作成することはなく、SQLクエリはORMによって生成され、パラメータは常に適切にエスケープされます。
-
クロスサイトスクリプティング(XSS): XSSの欠陥は、アプリケーションがユーザーから提供されたデータを受け取り、そのコンテンツを最初に検証またはエンコードせずにウェブブラウザに送信するときに発生します。XSSによって、攻撃者が被害者のブラウザでスクリプトを実行することが可能になり、ユーザーのセッションハイジャック、ウェブサイトの改ざん、ワームの侵入などを引き起こす可能性があります。
Odooフレームワークはデフォルトでビューとページにレンダリングされるすべての式をエスケープし、XSSを防止します。開発者は、レンダリングされたページで使用される式を 「安全である」と判断し、特別にマークする必要があります。
-
クロスサイトリクエストフォージェリ(CSRF): CSRF攻撃はログインしている被害者のブラウザに、脆弱なウェブアプリケーションに対して被害者のセッションクッキーやその他の自動的に含まれる認証情報を含む偽造HTTPリクエストを送信させます。これにより、攻撃者は、被害者のブラウザに脆弱なアプリケーションが被害者からの正当なリクエストであると思わせる要求を生成させます。
Odooウェブサイトエンジンには、CSRF保護メカニズムが組み込まれています。これは、対応するセキュリティトークンがないPOSTリクエストを、いかなるHTTPコントローラも受け取れないようにするものです。これはCSRF防止のために推奨されている手法です。このセキュリティトークンは、ユーザーが真正に関連するウェブサイトのフォームにアクセスしたときにのみ知られかつ存在するもので、攻撃者はこのセキュリティトークンがないリクエストを偽造することはできません。
-
不正なファイルの実行:リモートファイルインクルージョン(RFI)に対して脆弱なコードは、攻撃者が悪意のあるコードやデータを含めることができ、サーバーの全面的な侵害など、壊滅的な攻撃を受けることになります。
Odooは、リモートファイルインクルージョンを実行するための関数を公開していません。しかし、システムによって評価されるカスタム式を追加することによって、特権的なユーザーが機能をカスタマイズすることができます。これらの式は常にサンドボックス化およびサニタイジングされた環境で評価され、許可された関数にのみアクセスを許可します。
-
安全でない直接オブジェクト参照:直接オブジェクト参照は、ファイル、ディレクトリ、データベースレコードまたはキーなどの内部実装オブジェクトへの参照を、開発者がURLやフォームのパラメータとして公開することで発生します。攻撃者は、これらの参照を操作して、他のオブジェクトに無許可でアクセスすることができます。
Odooのアクセスコントロールはユーザーインターフェースレベルで実装されていないため、URLで内部オブジェクトへの参照を公開するリスクはありません。すべてのリクエストはデータアクセス検証層を通過する必要があるため、攻撃者はこれらの参照を操作することでアクセス制御層を回避することはできません。
-
安全でない暗号化ストレージ:Webアプリケーションでデータや認証情報を保護するための暗号化機能が適切に使用されていることはほとんどありません。攻撃者は、保護が脆弱なデータを使って、クレジットカード詐欺などの個人情報窃盗やその他の犯罪を行います。
Odooはユーザパスワードに業界標準のセキュアハッシュ(デフォルトではPBKDF2 + SHA-512、キーストレッチを使用)を使用し、保存されたパスワードを保護します。ユーザパスワードを一切ローカルに保存しないために、OAuth 2.0やLDAPのような外部認証システムを使用することも可能です。
-
安全でない通信:機密性の高い通信を保護する必要があるのに、アプリケーションがネットワークトラフィックを暗号化できないことがよくあります。
Odoo CloudはデフォルトでHTTPSで動作します。オンプレミスのインストールでは、 暗号化を実装し、OdooへのリクエストをプロキシングするWebサーバー(例:Apache、Lighttpd、nginx)の後ろでOdooを動作させることをお勧めします。 Odooデプロイメントガイドにはより安全な公開デプロイメントのための セキュリティ・チェックリスト が含まれています。
-
アクセス制御の不備:アプリケーションが、機密性の高い機能を保護を、権限のないユーザーに対してリンクやURLの表示をしないことだけに依っていることがよくあります。攻撃者はこの弱点を利用して、これらのURLに直接アクセスし、不正な操作を行います。
Odooのアクセスコントロールはユーザーインターフェースレベルでは実装されておらず、セキュリティは特別なURLを隠すことに依存していません。すべてのリクエストはデータアクセス検証レイヤーを通過する必要があるため、攻撃者はURLを再利用または操作してもアクセスコントロールレイヤーを回避することはできません。まれに、顧客が注文を確認するために使用する特別なURLのように、URLから機密データに認証なしでアクセスできる場合もありますが、これらのURLは固有のトークンでデジタル署名され、所定の受信者にのみEメールで送信されます。
セキュリティの脆弱性を報告する
セキュリティの脆弱性を報告する必要がある場合は、以下のサイトにアクセスして下さい。 責任ある情報開示ページ. こうした報告は優先事項として扱われ、問題は直ちにOdooのセキュリティチームによって検証、解決され、 報告者と協同の下、Odoo顧客およびユーザーに対して責任を持って開示されます。