ソースコードに脆弱性を潜ませられるUnicode悪用攻撃法「Trojan Source」を研究者が発表
英ケンブリッジ大学コンピュータ研究所は11月1日(現地時間)、「Trojan Source:Invisible Vulnerabilities」(リンク先はPDF)という論文を公開した。Trojan Sourceは、「人間のコードレビュアーには見えないターゲットを絞った脆弱性を作成するためのクールな新トリック」という。
研究者のロス・アンダーソン氏は、「Unicodeの方向性オーバーライド文字を使って、コードを別のロジックのアナグラムとして表示するこの攻撃は、C、C++、C#、JavaScript、Java、Rust、Go、Pythonに対して機能することを確認しており、他のほとんどの言語に対しても機能すると思われる」と説明する。
「人間が見るのと異なるロジックをコンパイラに示せるように、ソースコードファイルのエンコーディングを操作する方法を発見した」。コメントや文字列に埋め込まれた制御文字を使うことで、攻撃者はソースコードを並べ替え、悪用可能な脆弱性を生み出す方法でロジックを変更できる。
論文では2つの方法を紹介している。1つは双方向テキストのUnicodeコントロールを使ってコンテンツが表示される方向を変え、コード作成者が意図するのとは異なるロジックを生成する方法。これについてはRustが「CVE-2021-42574」としてセキュリティアドバイザリを公開した。
もう1つはホモグリフ攻撃と呼ばれる攻撃で、数字の「0」と文字の「O」、「l」と「I」など、人間の目には区別のつきにくい文字を使うことで、コードを2つの異なる関数として扱うというもの(CVE-2021-42694)。
Trojan Sourceを防御する方法として、Unicodeをサポートするコンパイラ、インタプリタ、ビルドパイプラインで、コメントや文字列リテラル内の終了していない双方向制御文字や混合スクリプトの紛らわしい文字を含む識別子にエラーや警告を投げることと説明している。言語仕様では、コメントや文字列リテラルでの終了していない双方向制御文字を正式に禁止する必要があるという。コードエディタとリポジトリプロントエンドは、双方向の制御文字と混合スクリプトの識別の難しい文字を視覚的な記号や警告で認識できるようにする必要があるとも指摘している。
研究者らは発見したTrojan Sourceの攻撃を受ける可能性のある製品について、19社のサプライヤーに7月25日に通知し、99日間の開示猶予を設定した。開示までに9社がパッチのリリースを約束したという。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
こんなメディアも見られています
ITmedia NEWSに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
SpecialPR
本日の新着記事
アクセスランキング
-
1
資さんうどん、従業員の退職理由などが外部から閲覧可能に 委託先の勤怠システムに設定不備
-
2
「低評価でキャラが悲しげな目」 モスバーガーのアンケートがSNSで話題 運営会社に狙いを聞いた
-
3
「裏垢暴露」のつもりが警察沙汰 暴露系YouTuberが著名VTuberの“なりすまし”に騙されていた
-
4
松屋のアプリに不正アクセス、約238万件の個人情報が漏えい 停止中の補償も予定
-
5
グッスマ、顧客の2800人のカード番号全16桁+セキュリティコードなど流出か 下4桁は40万枚分
-
6
総務省、GMO攻撃者サイトの「ブロッキング」を通信各社に要請 報道
-
7
無印良品、不正アクセスで最大2726万件の会員情報漏えいか 退会済みのユーザーも対象
-
8
セガのスマホゲーム「チェンクロ」、セキュリティ問題で1~2カ月の長期メンテ 13年続く長寿タイトル
-
9
楽天カード、本人認証をワンタイムパスワードに統一 27年2月から順次
-
10
「ITノウハウ持つ人材少なく」 PHP脆弱性問題、31市町村でサイト一時停止継続
ITmedia NEWS SNS
インフォメーション
注目情報をチェック
ITmediaNEWSをフォロー
あなたにおすすめの記事PR