Slack デスクトップ アプリの過去のバージョンに影響を及ぼす重大なリモート コード実行の脆弱性が、ソフトウェア メーカーがアプリを修正した後に金曜日に明らかになりました。
パッチに至るまでの舞台裏での論争により、脆弱性に対するバグ報奨金の額や、安全でないElectronフレームワークソフトウェアの継続的な導入に関して批判が巻き起こった。
1月に、Evolution GamingのセキュリティエンジニアであるOskars Vegeris氏は、バグ報奨金プログラムHackerOneを通じて、Linux、macOS、Windows向けのデスクトップアプリのバージョン4.2と4.32に影響するリモートコード実行(RCE)の脆弱性をSlackに非公開で報告しました。
HTML コード インジェクションの脆弱性を悪用されると、*.slack.com
信頼できるページ内で任意のコードが実行され、その結果、基盤上でコマンドが実行され、被害者の個人ファイル、パスワード、その他のデータにアクセスされる可能性があります。
実際には、例えば、悪意を持って作成されたJavaScriptファイルを自分が管理するサーバーにアップロードすることで、この脆弱性を悪用することが可能です。そして、HTMLインジェクションの脆弱性を悪用してリモートペイロードを組み込んだSlack投稿を作成し、その投稿をSlackチャンネルまたはユーザーと共有します。投稿を閲覧すると、ファイルが取得・実行され、JavaScriptコードが実行されることになります。Vegeris氏は、この脆弱性を発見して報告したことで、2,000ドル未満の報酬を受け取りました。
「1月28日、Slackの『投稿』機能に潜在的な脆弱性があり、攻撃者が被害者のコンピューター上でコードを実行できる可能性があるという報告を、バグ報奨金プログラムを通じて受けました」と、Slackの広報担当者はメールで声明を発表しました。「投稿とは、Slack内で直接、フォーマット済みのドキュメントを作成、編集、共有できる機能であり、チャンネルやダイレクトメッセージ内のメッセージとは異なります。」
チャットアプリ開発会社Slackによると、最初の修正は2月20日までに開発され、ユーザーに公開されており、ネットユーザーによる追加措置は不要とのことです。ユーザーは通常、ワークスペースのメンバーシップと投稿の作成権限を信頼できるユーザーにのみ付与するため、Slackは、この脆弱性が悪影響を与えた可能性は低いと考えています。
3月までに、Slackはデスクトップクライアントのバージョン4.4.0で、この脆弱性のリモートコード実行(RCE)部分を修正しました。Vegeris氏はその功績に対して1,750ドルの報酬を受け取りました。セキュリティコミュニティの多くのバグハンターは、これほど重要な発見に対しては少額すぎると述べています。
この件についてSlackの広報担当者は、「当社のバグ報奨金プログラムはSlackの安全を守るために不可欠です。私たちはセキュリティおよび開発者コミュニティの貢献を深く評価しており、彼らの貢献を評価し、お客様に価値を提供できるよう、報奨金制度の見直しを継続していきます」と述べた。
電子のセキュリティに疑問
Slack のこの最新のバグは修正されましたが、Microsoft Teams などの他の Electron ベースのアプリは、同様の攻撃に対して依然として脆弱である可能性があります。
Electronは、開発者がHTML、JavaScript、CSSを使用してLinux、macOS、Windowsで動作するデスクトップクライアントコードを作成できるクロスプラットフォームフレームワークです。Node.jsに連携したChromiumベースのブラウザ基盤上に構築されています。使いやすさとセキュリティの難しさで知られ、Slackのデスクトップ版だけでなく、Discord、Microsoft Teams、Microsoft Visual Studio Code、WordPressデスクトップなど、数多くのサービスの基盤となっています。
セールスフォースは、独自のメッセージングおよびコラボレーションアプリを展開することで、Slackとの統合を排除する計画だ。
続きを読む
ベゲリス氏の暴露は、週末にセキュリティコミュニティのメンバーの間で、Electronのセキュリティの欠陥についてソーシャルメディア上で議論を巻き起こした。
「Electronに対する私の根本的な不満は、比較的基本的な使い方でさえ、セキュリティ開発者以外の人がシステムのセキュリティ特性を完全に理解し、スコープブローカーを適切に使用する必要があることです」と、Google Chromeのエンジニアリングディレクター、ジャスティン・シュー氏はTwitterで述べた。「セキュリティ専門家にとって最も難しいタスクの一つであることを考えると、これは理にかなっていません。」
2 か月前、Slack は、Electron のサンドボックス化の利点を称賛し、contextBridge
Node 環境や Chromium ブラウザ環境などの分離されたコンテキスト間での安全な通信を可能にするグローバル オブジェクトを提供するという新しい Electron モジュールの追加について説明したブログ記事を公開しました。
この投稿では、バグ報告をしてくれたVegeris氏とMatt Austin氏に感謝の意を表している。Contrast Securityのセキュリティ調査ディレクターであるAustin氏は、 The Register宛てのメールで、Slackは投稿で言及されているElectronサンドボックスを十分に活用していなかったようだと述べた。
オースティン氏はザ・レジスター紙に対し、以前にもSlackデスクトップクライアントに関する重大度の高い問題を複数報告しており、それぞれの解決には約3カ月かかり、1件あたり1,500ドルの支払いとなったと語った。
Slackの規模(1日あたり1200万人以上のアクティブユーザー数)を考えると、この数字は低いと感じたと彼は述べた。Facebook Electronアプリの欠陥を報告した際に、はるかに高い報酬を受け取ったとしながらも、実際にはそれほど気にしていないと付け加えた。
Electron アプリが安全かどうか尋ねられると、彼は次のように答えた。「できないというわけではありません。できます。しかし、長い間、Electron には安全でないデフォルトが多数存在していました。」
Electronのデフォルト設定を使ってアプリを開発した開発者は、一般的にアプリをリファクタリングしてセキュリティを強化したくないと考えているという。なぜなら、それは大変な作業になるからだ。「ロックダウンすることはできるが、実際にそうしているアプリはない」と彼は述べた。
オースティン氏はMicrosoft Teamsを例に挙げ、自身が報告したTeamsアプリで同様の問題を発見し、未だに修正されていないと述べた。問題は複雑だが、チームに所属し、独自のワークスペースを作成してユーザーを追加すると、招待を通じて組織全体にリモートコード実行(RCE)を誘発できるバグが存在するという。
1年以上経ったが、まだ修正されていないと彼は述べた。マイクロソフトは問題のある機能を無効にするフラグを作成したが、まだ顧客に配布していないという。また、マイクロソフトはTeamsのウェブ版にはバグ報奨金プログラムを実施しているものの、デスクトップクライアントは対象外だと付け加えた。
マイクロソフトはコメント要請にすぐには応じなかった。
オースティン氏は、Electronの開発に携わる開発者たちが問題への対応に責任を負っていることを改めて強調した。彼の最大の懸念は、Electronの安全でないデフォルト設定である。これらの問題の一部は、今後のリリースで互換性を破る変更が加えられる予定だ。
「Electronにはもう一つ興味深い問題があります」と彼は言った。「デフォルトでは、ウェブカメラとマイクにアクセスできます。もし自分のウェブページを(誰かのElectronアプリで)読み込めるなら、マイクとカメラをオンにできてしまうのです。」®