脆弱性は、悪意のあるコードを隠すことを可能にする膨大な数のコンパイラで発見されました

ケンブリッジ大学の専門家が危険な脆弱性に関する情報を公開しています(CVE-2021-42574)、これはほとんどすべてに影響します最新のソースコードコンパイラ。トロイの木馬ソースの記事では、ハッカーがさまざまなプログラムのソースコードに悪意のあるコードを隠すことを可能にする陰湿な攻撃について説明しています。

この攻撃は、コンパイラがどのように行うかに基づいています。テキストの方向を決定するために使用される一意の識別子を処理します –左から右へ、または右から左へ。弱点は、右から左、左から右に書かれた単語を一緒に使用できるようにする Unicode Bidi アルゴリズムにあります。このアルゴリズムのおかげで、アラビア語と英語の単語を組み合わせることができます。これにより、右から左、左から右、またはその逆に書かれたテキストを読むことができます。

場合によっては、アルゴリズムの機能Unicode Bidi だけではこれらの単語の表示方法を変更するのに十分ではなく、そのような場合には特殊な制御文字が使用されます。ただし、同じ行に異なるテキスト方向の単語が結合されている場合、これらの制御文字を使用すると、コンパイラーがそのテキストを読み取る方向を変更でき、たとえば、コメントのように見える行を実行可能コードのように機能させることができます。


</ img>

この方法を使用すると、悪意のあるものを追加できます命令を通常のソース コードに挿入し、後続のコメントを使用してコードを表示するときにこの命令のテキストを非表示にします。これにより、まったく異なる文字が挿入されますが、実際には任意のコードである可能性があります。最終的なソース コードは意味的には正しいままですが、コンパイルされるとまったく異なることが起こります。

このようなソースコードを閲覧・解析する場合プログラマには何の疑いも抱かないコメントが含まれたコードが表示されますが、コンパイラまたはインタプリタはシンボルの論理順序を逆にして、無害なコメントがプログラムに挿入される追加コードに変わります。このエラーは、ほぼすべてのコンパイラに存在します。プログラミング言語の場合は、C、C++ (gcc および Clang)、C#、JavaScript (Node.js)、Java (OpenJDK 16)、Rust、Go、Python。 VS Code、Emacs、Atom などのさまざまな一般的なコード エディター、および GitHub、Gitlab、BitBucket、およびすべての Atlassian 製品のソース コード表示インターフェイスで利用できます。

ソース: トロイの木馬ソース、zdnet

</ p>