増えていくRTFインジェクション

ほぼこもセキュリティニュース By Terilogy Worx

RTFはrich text formatです。
RTFはMicrosoft Word、ワードパッドをはじめ、多くのアプリケーションでサポートしているドキュメント形式です。
これの利用方法の一つに、RTFテンプレートというものがあります。
通常、ドキュメントを作成する際に、使用するフォントやページのヘッダーやフッターをあらかじめ定義したものを用意しておくと、同じ見た目の資料を作るときに便利です。
こういった用途に使用されるファイルの形式の一つが、RTFテンプレートです。

このRTFテンプレートは、RTFファイルなどから読み込まれます。
これにより、統一感を持ったRTF文書を簡単に作ることができます。

このようなものですから、通常RTFテンプレートはRTFと同じ機器上にあります。
しかし機能としては、RTFテンプレートをリモートから読み込むこともできるようになっています。
これを悪用するものが、RTFインジェクションです。

こんなことが言えます。

  • RTFファイル自身には問題のあるコードがないため、RTFファイルを検査しても問題コードは見つからない
    外部に置いたRTFテンプレートに問題コードを配置しているので当たり前といえば当たり前です。
  • RTFファイルの作成はいろいろなアプリケーションで簡単に実施できる
    問題のあるRTFインジェクションを作成する際に使用するベースの部分は簡単に作ることができます。
  • RTFファイルに問題コードの読み込み部分を挿入することは簡単
    正規の方法で作成された何の問題もないRTFファイルにリモートからファイルを読み込む機能を付け足すことは非常に簡単です。
    単にバイナリエディタでその問題のないRTFファイルを開き、「{\*\template URL}」という形式でデータを挿入するだけです。
  • RTFファイル形式は、Unicodeをサポート
    前述のようにURLを指定してそれを読み込ませることができますが、そのURLを記述する際に、Unicodeを使って記述することができます。
    これは処理体系の側からするとなにも処理内容は変わっていないのですが、RTFテンプレートの内容を確認する側の立場から考えると、記載されている内容を把握することがより面倒になります。
    たとえば、アスキーの「http://c2.some-botnet.org/」という文字列は、Unicodeでは「\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0063\u0032\u002e\u0073\u006f\u006d\u0065\u002d\u0062\u006f\u0074\u006e\u0065\u0074\u002e\u006f\u0072\u0067\u002f」となります。

RTFインジェクションは、幅広い利用ができる技法であるにもかかわらず、攻撃データの作成が容易です。
いまこの技法は、実際の攻撃に利用されるケースが増えてきているようです。

出所の確かでないファイルには注意が必要だと改めて思いました。

参考記事(外部リンク):State-backed hackers increasingly use RTF injection for phishing
www.bleepingcomputer.com/news/security/state-backed-hackers-increasingly-use-rtf-injection-for-phishing/