OOobbs2/70
質問
なし 回答
OpenOffice.org マクロで悪戯ができる可能性を見ていきます。ハッカー用の本などが本屋などで売られていますが、防衛側が読むものだという話を聞いたことがあります。 というわけで、悪意のある可能性があるマクロの例などを見ていきます。 注)全て一回以上マクロが実行されないと不可能なものばかりです。そのため、セキュリティレベルが「高」以上であれば問題ありません。(間違って許可するディレクトリから実行しなければ) OOo 2.3 のマクロセキュリティレベル
OpenOffice.org 2.3 からドキュメント同梱のマクロの実行セキュリティレベルが変更されています。以前は「中」でしたが、デフォルトで「高」になりました。
指定したディレクトリというのは、信頼されたファイル位置で設定したディレクトリです。以前の設定ファイルが残っていなければ始めはエントリーがありません。 セキュリティの設定は OpenOffice.org/registry/data/org/openoffice/Office/Common.xcu に保存されます。 悪戯するのに困るセキュリティですが、悪戯は注意していない人を対象にします。外部からこのセキュリティを変更することはできません。悪戯に重要なのは不注意で実行してしまったときです。 イベント
OOo はアプリケーションのスタート時やドキュメントを開いたときにマクロなどのアクションを実行するイベントを駆動できます。このイベントの設定はアプリケーション以外にドキュメントにも保存でき、そのドキュメントを開いたときにイベントが実行されます。 マクロを含むドキュメントであればイベントを設定することで、マクロの実行が許可されれば、マクロが実行されます。 悪戯するにはドキュメントを開いたときのイベントにマクロを設定するのが普通になると思います。 ファイルのイベント設定以外に、ユーザー単位の OOo アプリケーションのイベント設定は OpenOffice.org/user/registry/data/org/openoffice/Office/Events.xcu ファイルに保存されます。 設定はマクロで書き換えることができます。悪戯の実行回数を増やすにはアプリケーションの設定を変更しましょう。 OpenOffice.org のマクロウィルスの可能性
OpenOffice.org でマクロに注意するには、マクロで可能なことを知っておく必要があります。 まず、ドキュメントに含んだマクロにより OOo オートメーションに利用できる言語は、
確実に動くのは OOo Basic だけになります。なので、悪戯で活躍するのは OOo Basic になります。そんなわけで多くは OOo Basic での内容になっています。 以下では利用できそうな項目を挙げていきます。 設定の変更
OOo の設定を変更するためには com.sun.star.configuration.ConfigurationUpdateAccess サービスを利用します。設定の読み込みだけには com.sun.star.configuration.ConfigurationAccess サービスで十分です。 ファイル操作
ファイルを操作するには言語依存の関数以外に、com.sun.star.ucb.SimpleFileAccess サービスを利用します。 最近は OS レベルで重要なファイルが保護されているのでシステムファイルに悪戯することは無理でしょう。 (もちろん、管理権限ユーザーでログインしてはいけません。) コマンドの実行
OOo Basic からコマンドを実行するには Shell ランタイム関数以外にも com.sun.star.system.SystemShellExecute サービスを利用する方法があります。 そのほかの言語では言語に依存したコマンド実行関数があります。 ディレクトリ (パス) 設定
OOo はパス設定を保持しています。このパスにはマイドキュメントとして windows ではマイドキュメントディレクトリが、linux ではユーザーのホームディレクトリが設定されます。 このパスを取得するには、com.sun.star.util.PathSubstitution サービスを利用するのが一番簡単です。 マイドキュメントのファイルを削除するような悪戯に利用できそうです。 ZIP アーカイブ操作
OpenOffice.org のドキュメントは ZIP アーカイブです。com.sun.star.packages.Package サービスで圧縮、解凍できます。 ZIP アーカイブにはいろんなものを忍び込ませることができます。 現在の実装では上書き保存すると必要の無いファイルは削除されてしまいます。今後、同梱に関した変更が予定されていたような気がします(不明)。 拡張機能
ツールメニューの拡張機能マネージャからインストール、アンインストールされる拡張機能ですが、API を利用して同様のことが可能です。com.sun.star.deployment.thePackageManagerFactory から com.sun.star.deployment.XPackageManager インターフェースを取得して行えます。 拡張機能はセキュリティチェックが行われないので悪戯の感染にはもってこいです。別記 ZIP 項目を参照すればドキュメントファイルに同梱しておいて取り出してインストールできます。 テンポラリーファイル
OOo の com.sun.star.io.TempFile サービスが一時ファイルを提供します。サービスをインスタンス化した時点から新しい一時ファイルが作成されます。 一時ファイルですが、ZIP ファイルの解凍の際などに不要なファイルを作成したり残したりすると気づかれるので、OOo が終了したり時間経過で削除される一時ファイルを利用しましょう。 感染
OOo Basic のマクロは API を利用すると別のドキュメントやアプリケーションライブラリにコピーできます。その他の言語も同様です。 悪戯を感染させるにはもってこいです。 他マクロの実行
OOo Basic から Python のマクロを実行するといった場合には com.sun.star.script.provider.theMasterScriptProviderFactory から com.sun.star.script.provider.XScriptProvider インターフェースを取得、利用します。 悪戯を OOo Basic で起動したとして、その他の柔軟な言語で書いたオートメーションを利用するのに利用できます。 ジョブ
OpenOffice.org/user/registry/data/org/openoffice/Office/Jobs.xcu などに設定ファイルがあり、特定の動作の実行が可能です。たとえば、アップデートのチェックや OOo が最初に起動されたときに表示される設定ダイアログなどはこのジョブを利用しています。 ジョブ設定を追加、変更または拡張機能としてインストールすることで自動的に「何か」を行わせることができます。 メール送信
com.sun.star.system.SimpleSystemMail サービスでメールの作成、送信ができます。 メール送信はシステムのメール機能に依存しているためメーラーアプリケーションが立ち上がってしまいます。加えて、送信先のメールアドレスを拾ってこないといけません。 Mail Merge が利用されていれば取得できそうですが 感想,コメント,メモ
|