Microsoft Office 2016 for Macを利用してmacOSのSandboxをエスケープ出来る脆弱性が発見されたそうです。詳細は以下から。
イギリスのセキュリティコンサルタントMDSecLabsのAdam Chesterさんによると、現在公開されているMicrosoft Office 2016 for Macを用いることでMacのSandbox機能をエスケープ(迂回)して任意のコードを実行できてしまう脆弱性が発見されたそうです。
New blog post showing how to escape the sandbox used by Microsoft Office for MacOS. Hopefully useful for redteams targeting MacOS endpoints https://t.co/QdlIFHZL2N pic.twitter.com/TfYd65o2jg
— Adam Chester (@_xpn_) 2018年8月2日
In this walkthrough, I will show one possible way we can go about gaining a foothold by leveraging Microsoft Office on MacOS, and present a method of escaping the MacOS sandbox that we find ourselves trapped inside of.
Escaping the Sandbox – Microsoft Office on MacOS – MDSec
Officeの一時ファイル
Microsoftが公開しているOffice 2016 for MacはもちろんAppleのSandbox内で動いていますが、codesignコマンドでOfficeアプリがアクセス許可を得ているデータを見てみると、ファイルへのアクセスやアドレス帳、ネットワークなどに続いて、一番下に次の正規表現にマッチするファイルを読み書きできるという記述が発見されたそうで、
codesign --display -v --entitlements - /Applications/Microsoft\ Word.app ~~~~~ com.apple.security.temporary-exception.sbpl (allow file-read* file-write* (require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~\$[^/]+$")) ) )
Adamさんはこの記述を発見した際、これが何を意味しているのかが理解できなかったそうですが、この正規表現がMicrosoftのOfficeが編集中のファイルを一時的に保存しておく”~$document1.docx”といった一時ファイルである事に気づき、この様な規則のファイルがユーザーの許可を得ずに実行できるところに目をつけ、
At first I couldn’t understand why this exception was here, however when crafting a filename matching this regex, it actually starts to make sense, for example ~$document1.docx. This is the typical filename format for temporary files used by Office, so what this rule is doing is allowing the process to persist temporary files without prompting the user for permission each time.
Escaping the Sandbox – Microsoft Office on MacOS – MDSec
詳細には触れられていませんが、”~/Library/LaunchAgents”に上記の正規表現にマッチするファイル(~$hogehoge.plist)を登録し、ユーザーログイン時にSandboxを迂回して任意のコードを実行することが確認できたそうです。
Microsoft Office sandbox entitlements allows file writes to (^|/)~\$[^/]+$ which includes ~/Library/LaunchAgents/~$owned.plist; #xnumon eventcode 4 would be triggered by the sandbox escape https://t.co/9Eyf94Vv82
— Daniel Roethlisberger (@droethlisberger) 2018年8月2日
おまけ
この問題の原因がAppleのSandboxの実装方法なのか、Microsoftの一時ファイルのファイル名にあるのかは意見が分かれるところですが、既にMicrosoftでOffice for Macの開発を担当しているErik Schwiebertさんこの問題を認識しているそうなので、今後のアップデートで修正されると思われます。
Yep, already on it. Thanks for the additional heads up.
— Erik Schwiebert (@Schwieb) 2018年8月2日
コメント
迷惑な
全然Sandbox機能してないやん
議論が分かれるもなにも、OSがカスなだけやん
モハベも結局こうなるんちゃうん
ハイシエラのゴタゴタより、ましな…
こういうのを未然に防ぐのがSandboxだったんちゃうの?