何が起こったのか?
2022年6月22日、SonarのPaul Gersteからセキュリティ勧告を受け、Tutanotaにクロスサイトスクリプティング(XSS)の脆弱性があり、すべてのクライアントに影響があること、またリモートコード実行(RCE)の脆弱性があり、デスクトップクライアントだけに影響があることを知らせました。いずれの脆弱性も直ちに修正され、2022年6月24日にバージョン3.98.1でパッチがリリースされました。
XSSの脆弱性は、攻撃者がTutanotaから情報を引き出すために、私たちのサニタイズをバイパスすることができる悪意のあるメールを細工し、外国のJavaScriptコードをアプリに注入して実行させることができるようになりました。RCEの脆弱性により、攻撃者はデスクトップクライアントを介してユーザーのシステム上でプログラムを実行することができます(Windowsで実証されましたが、他のOSでも可能な場合があります)このとき、XSSを利用して悪意のある添付ファイルをダウンロードし実行することができます。
私たちがとった措置は?
脆弱性の報告を受けてから2日後、バージョン3.98.1において、urlifyの呼び出しをサニタイズの前に置くパッチをリリースし、XSSの当面の問題を解決しました。
また、アプリケーションのセキュリティを強化するための変更も実施しており、そのほとんどはすでにリリース済み、または次のアップデートでリリースされる予定です。
- メール本文のレンダリングに shadow DOM を使用し、サニタイズ処理を通過したスタイルがアプリの残りの部分に漏れないようにしました。
- looksExecutable によるエッジケースの処理
- electron の CSP を改善し、アクセス可能なファイルを制限します。
- 一時ディレクトリの名前をランダム化し、攻撃者が添付ファイルの場所を予測できないようにします。
**今後のリリースでセキュリティをさらに強化するために、デスクトップクライアントとモバイルアプリでローカル検索インデックスを削除する必要があることにご注意ください。このインデックスは、次回の検索時に自動的に再作成されます。検索結果を改善する方法については、こちらを**ご覧ください。
影響を受けるクライアントを無効にする
**影響を受けるクライアントはすべて無効化されています。**なお、悪意のある攻撃者がこれらの脆弱性を利用した事例は確認されておりません。
パスワードやリカバリーコードを変更する必要はありません。ただし、変更される場合は、ログイン情報を保護するための推奨事項をお読みください。
透明性と安全性
Tutanotaでは、透明性とセキュリティは密接にリンクしていると考えています。そのため、この修正された脆弱性について、メールでもお知らせすることが重要であると考えています。
今後、同様の問題を防ぐために、以下のような対策を行いました。
- Tutanotaにいくつかの技術的な改善を施し、今後万が一XSS脆弱性が発生した場合に悪用を防止できるようにしました。
- これらの改善点に関するリグレッションテストを、社内のセキュリティレビューのガイドラインに追加しました。
- 通常のコードレビュープロセスの一環として、ユーザーコンテンツの取り扱いに関する変更のセキュリティレビューを重視しました。
オープンソースがセキュリティレベルを向上させる
私たちは、オープンソースのツールがクローズドソースのアプリケーションよりも安全であることを常に強調してきました。オープンソースクライアントのコードは、セキュリティコミュニティによって検査され、バグや脆弱性、バックドアなどがないことを確認することができます。
残念なことですが、Sonarが発見した脆弱性は、これが実際に真実であることを証明しています。クローズドソースのコードにも同様の問題があるかもしれませんが、ユーザーはこのことを知ることができないかもしれません。
Tutanota 3.98.0のクロスサイトスクリプティングの脆弱性を責任を持って開示してくれたSonarに感謝したいです。
報告された問題はすべて90日間の開示期限があり、それを過ぎるとSonar社は問題の一部を公開するとしていました。私たちは、対応した問題をより早く、実際には2日以内に修正できたことを嬉しく思っています。
Sonarとのメールでのやり取りでは、脆弱性研究者のPaul Gerste氏から “あなたとあなたのチームを賞賛します。“製品のセキュリティを真剣に考えているようですね!とまで言っていただきました。
セキュリティの専門家からのこのようなフィードバックは、私たちにとって非常に嬉しいことです。セキュリティの専門家からのこのようなフィードバックは、私たちがTutanotaをより良くするためにさらに努力する動機付けとなります。