[レポート]Electronアプリケーションのハッキング:Electronアプリケーションの脆弱性の解析と防御​​ – CODE BLUE 2023 #codeblue_jp

CODE BLUE 2023で行われた「Electronアプリケーションのハッキング:Electronアプリケーションの脆弱性の解析と防御」というセッションのレポートです。
2023.11.08

こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。

今回はCODE BLUE 2023で行われた以下のセッションのレポートです。

Electronアプリケーションのハッキング:Electronアプリケーションの脆弱性の解析と防御

本講演では、Electronアプリケーションのカテゴリごとの解析手法や、Electronアプリケーションの特性を利用した最新かつ先進的なエクスプロイト手法など、Electronアプリケーションを攻略するために必要な、ほぼ全ての内容を紹介します。
本講演では、Electronアプリケーションの新たなアタックサーフェスと、Electronアプリケーションの脆弱性を発見するための手法を紹介します。

Presented by : インセオ・アン - Inseo An ジェミン・ミン - Jemin Min

レポート

  • アジェンダ
    • エレクトロンとは
    • エレクトロンアプリの解析方法
    • 抑制
    • アタックサーフェスとリアルな例
    • 緩和
  • エレクトロンとは
    • node.jsとChromiumを組み合わせて作られているフレームワーク
    • エレクトロンはウェブラッパー以上の機能をもつ
    • レンダラープロセスがIPCを通じてメインプロセスとやり取りをする
    • NodeIntegration
      • XSSなどを行える可能性がある
    • ContextIsolation
  • エレクトロンアプリの解析方法
    • app.asarをUnpackingする
    • 静的解析
      • PCのデフォルト設定でURLを開く
        • 引数としてファイルパスを与えると、開ける
      • セキュリティオプションが正確に設定されているかを確認
        • Remote Code Execution(RCE)が出来るかどうかで確認可能
    • 動的解析
      • XSSを見つける
      • ブラウザの開発者ツールを使えば簡単に確認可能
  • 緩和
    • プロジェクトの過程で発見した緩和方法
    • app.asarのサイズが変わっているとUnpackingできない
    • あるscript.pyを繰り返し適用し、ファイルサイズを変え、unpackできるまで繰り返す
  • アタックサーフェスとリアルな例
    • Devtron
    • Collaboration
    • プロフィールページやチャット機能など、いくつかアプリに実装される機能を元に紹介
    • 2022年に報告されたCSRF
      • corsEnabledがtrueになっている
      • リンクを埋め込むことが出来る
    • IDE(VS COde)におけるローカルファイルリーク
      • パストラバーサルを使うことでどんなファイルでもdownload出来た
    • RCE:Gitlens
      • configファイルがgitディレクトリ配下にある場合、すぐにextinctionが走る
    • Noteアプリケーションの場合
      • 4つの脆弱性を使いRCEを行った
      • iframeを使ったXSS
      • File Execution
      • CSS Injection
        • 特定のモジュールでCSS Injectionが許可されている
      • ダウンロードと実行
        • 悪意のあるスクリプトを書き、Windows Defenderをバイパス
        • アタッカーのサーバーに保存
        • 被害者に2つのファイルを実行させる
  • まとめ
    • 何を学んだか
      • 10のRCE、3つのDOS、2つのローカルファイルリーク、1つのCSRFなどを報告した
    • これから
    • 静的コード解析ツールを作りたい
    • 新しいパターンのバグを探す
    • エレクトロンのフレームワークそのものの脆弱性を見つけたい

感想

Electronというnode.jsとChromiumが使われたアプリケーションフレームワークにおける脆弱性の解析方法とその対策についてのセッションでした

具体的なアプリケーション例を出しながら脆弱性の解説が行われ、非常に分かりやすかったです。いくつかの脆弱性は設定の不備に起因したものということで、その設定値などについての説明もありました。

アプリケーションを開発する際には各種設定値など、それぞれの設定を曖昧にせず気を付けたいですね。

参考: