更新情報 :下記の注記をご覧ください:マクロのセキュリティホールを修正するはずだったLibreOfficeバージョン6.2.5は依然として脆弱であり、エクスプロイトコードが公開されています。LibreOfficeのビルドでLibreLogoが有効になっている場合は、直ちに無効にしてください。修正後の記事は以下をご覧ください。
Document Foundationは火曜日、オープンソースのオフィススイートであるLibreOfficeに最近パッチを当て、文書を開いたときにマクロがサイレント実行されるように設定できる問題を修正したと発表した。
Nils Emmerich 氏によって報告され、CVE-2019-9848 が割り当てられたコード実行の脆弱性は、複数の欠陥の結果です。
一つ目は、プログラミング教育を目的としたLibreLogoという機能です。文書にLogoコマンドを入力すると、その命令に基づいて亀のようなカーソルでグラフィックが描画されます。これは、昔のLogoプログラミング言語へのオマージュです。
LibreOfficeの実装では、LogoコマンドをPythonに変換し、安全性のチェックをほとんど行わずにPythonインタープリターに渡して実行します。LibreLogoはオプションのコンポーネントですが、デフォルトでインストールされます。
2つ目の問題は、LibreOfficeの組み込みマクロが完全に信頼されていることです。LibreLogoを実行するマクロも例外ではありません。LibreOfficeでマクロのセキュリティを「非常に高い」に設定しても、LibreLogoマクロはプロンプトを表示せずに実行されます。3つ目、そして最後の問題は、LibreLogoがドキュメント内の任意のPythonコードをPythonインタープリターに渡して実行することです。
その結果、悪意のあるPythonスクリプトをテキストに含み、自動的に実行される文書を簡単に作成できるようになりました。Emmerich氏の例に倣い、Windowsの電卓をポップアップ表示する文書を作成し、LibreLogo RunをOpen Documentイベントに割り当て、それをメールに添付して宛先に送信しました。Microsoft Outlookは、受信時に安全のために文書を読み取り専用に設定しましたが、添付ファイルを開くと、依然としてCalcが実行されました。
LibreOffice はプロンプトなしで Windows 10 上で Calc を実行します。
LibreOfficeチームは、LibreLogo Runマクロをドキュメントイベントハンドラーにアタッチできないようにすることで、この問題の修正*を試みました。この修正はバージョン6.2.5(2019年6月20日リリース)で行われました。
LibreOffice 6.3がベータ版に登場。█████文書を共有するための編集ツールが組み込まれている。
続きを読む
とはいえ、LibreOfficeのダウンロードページにアクセスすると、バージョン6.2.5は「テクノロジー愛好家、アーリーアダプター、またはパワーユーザー」にのみ推奨されています。バージョン6.1.6は「より長期間テストされている」ため推奨されており、より慎重なユーザーや企業向けという印象を与えます。残念ながら、私たちの簡単なテストで明らかになったように、依然として脆弱性が残っています。
マクロウイルスを有名にしたのはMicrosoft Wordで、中でも最も有名なのは1999年のMelissaです。多くの問題が起こりましたが、Microsoftは問題の封じ込めに尽力し、Office 2007ではマクロを含むWord文書に.docm形式を導入し、他のOfficeアプリケーションにも同様の形式を導入しました。OpenOfficeやLibreOfficeで使用されているODF(Open Document Format)には、このような区別はありません。おそらく、区別があってしかるべきでしょう。
LibreOffice を .ODT ドキュメントのデフォルト アプリケーションとして設定しているユーザーは、バージョン 6.2.5 以上にアップグレードするか、インストールから LibreLogo コンポーネントを削除する必要があります。®
7月31日09:11 UTCに追記しました
*修正されたはずの6.2.5にも依然として脆弱性が残っているようです。これは弊社でも確認済みです。MetasploitのGitHubプロジェクトに詳細が掲載されています。このセキュリティホールを突くエクスプロイトは、人気のハッキングフレームワークであるMetasploitに追加されました。
したがって、少なくとも Windows での適切な修正方法は、[コントロール パネル] - [プログラムと機能] に移動し、LibreOffice エントリで [変更] をクリックして、LibreLogo コンポーネントのチェックを外すことです。
ちなみに、LibreOffice 5 を実行しているオフィスの Debian GNU/Linux システムでは LibreLogo への参照は見つかりませんでしたが、Debian 9.9 上の LibreOffice 6.2.4 および 6.2.5 は脆弱であると言われているため、このコンポーネントがすべての場所でデフォルトで有効になっているかどうかはわかりません。
安全のため、LibreLogo を探して、見つけたらすぐに無効にしてください。