ソースコードに脆弱性を潜ませられる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
GMO、ランサム被害にあった顧客に新しいPC提供へ 犯行グループは1人の顧客情報公開か
-
2
NECのルータ「Aterm」、PHP脆弱性の影響なし 設定画面URLの「.php」は無関係
-
3
GMO、不正アクセス実行犯の手がかりに懸賞金 1億5000万円規模
-
4
「楽天トラベル」に不正アクセス 顧客情報最大約260万件など流出か 予約者約3.6万件のクレカ情報も
-
5
GMO、攻撃者の公開情報に「アクセスは絶対に控えて」 悪質な拡散者には法的措置を準備
-
6
Google、プライバシーポリシーに「Gmail」「Googleフォト」のデータを広告に使う例外を追加 回避方法は
-
7
メアドを検索→AIで“その人専用フィッシングメール”を生成する手法、クリック率が約2.7倍に 7000人以上で実験
-
8
So-net、会員情報約259万件が漏えい 一部メールサービスではパスワードも流出
-
9
「自分の個人情報が漏えいした……どうすれば?」 IPAが対処法公開
-
10
GMO不正アクセス、犯人側は「27日に顧客のPC攻撃」予告 GMOが端末回収、ホワイトハッカーが解析中
ITmedia NEWS SNS
インフォメーション
注目情報をチェック
ITmediaNEWSをフォロー
あなたにおすすめの記事PR