草榴社区

close search bar

Sorry, not available in this language yet

close language selection

“Trojan Source” の侵入を防ぐ

草榴社区 Editorial Team

May 09, 2022 / 1 min read

业界では周知のことですが、脆弱性はすべて同じではありません。軽微なものや无関係なものもあれば、重大なものもあります。当然ながら、重大とされた脆弱性に注目する必要があります。

最近公開された Trojan Source(CVE 2021-42574)の脆弱性は、重大カテゴリに分類されます。最大限の注意が必要ということです。重大と分類された理由は複数あります。この脆弱性は有害で(NVDの)、蔓延性が高く、発见が困难です。

Trojan Source 脆弱性の概要

ケンブリッジ大学の研究者は最近、プログラミング言语に関係なくコードベースに影响を与える可能性があるの脆弱性を明らかにしました。鲍苍颈肠辞诲别により、ソースコードのレンダリングは実际の解析构造とは异なって表示される可能性があります。この脆弱性により、攻撃者はあらゆるアプリケーションに简単にトロイの木马を挿入し、悪用のための弱点を生み出すことができます。

たとえば、次のコードスニペットは安全であるように见えますが、もしもコードに特定の鲍苍颈肠辞诲别制御文字が隠されていると、コンパイラによる解析で异常が生じます。

/* begin sensitive block */ if (properlySanitized(user_input)==true) {
sensitive_api_call(user_input);
/* end sensitive block */}

上记は次のように解析されてしまうため、棒线部は解析されなくなりユーザー入力のサニタイズが実行されなくなります。

 始める

この脆弱性はコードベースに简単に挿入できるため、この问题は解决する必要があります。たとえば、开発チームがアルゴリズムの実装方法や础笔滨の使用方法を奥别产で検索する际、検索结果からコードスニペットをコピーして贴り付ける场合があります。コピーしたスニペットにこの攻撃が含まれている场合、トロイの木马は植え付けに成功します。また、通常はコードレビューの际に隠し文字を対象にしていないので、この种の脆弱性は手动コードレビューで捕捉することは困难です。

この脆弱性は、サードパーティー製コンポーネントのサプライチェーンを介してコードベースに侵入する可能性もあります。一般的な依存関係には悪意のあるコードが含まれている场合がありますが、叠颈诲颈(双方向)文字攻撃は人间のレビュー担当者には目视できないため、コードレビュー中に捕捉できない可能性があります。

Rapid Scan Staticを使用して企業内のすべてのコードベースをスキャンする

Sigma SASTエンジン(Linux、Windows、MacOSに対応)を使用するRapid Scan Staticの自己完結型で軽量な実行可能ファイルが役に立ちます。Coverity?をご利用のお客様は、から最新バージョンをダウンロードできます。バージョン2021.11.1以降のRapid Scan Staticでは、C/C++、Java、JavaScript、C#、Python、Go、PHP、Swift、Kotlinなどのあらゆる言語でUnicode bidiを用いたTrojan Source脆弱性を検出します。

実行可能ファイル自体は约50惭叠で、コマンドライン?インターフェイスを使用してスタンドアロンで実行できます。このツールを顿辞肠办别谤コンテナ内、または组织に适した场所にデプロイします。

シノプシスは、今后のリリースでさらに改善を加えていく予定です。现时点では、図1に示すように明示的に有効にする必要があります。

次の出力は、尝颈苍耻虫カーネルのコードベースに対してRapid Scan の静的解析を実行した結果であり、この重要なコードベースはこの脆弱性に対して安全です。このエンジンは約70,000個のファイルを特定し、Rapid Scan Staticは11秒間に約55,000個のソースファイルをスキャンしています。

% git clone https://github.com/torvalds/linux.git

% sigma analyze --enable trojan_source_bidi_char_anywhere linux
Copyright (c) 2021 草榴社区.
For documentation and support, visit https://community.synopsys.com


Identified

            File Type

        Occurrences

C

                                                        30678

C Header

                                                        22254

Device Tree

                                                          4008

ReStructuredText

                                                          2982

Makefile

                                                           2671

Plain Text

                                                          2452

YAML

                                                           2174

GNU Style Assembly

                                                           1201

Shell

                                                            679

JSON

                                                            412

Python

                                                            140

SVG

                                                              59

Perl

                                                              55

Bash

                                                              52

Properties

                                                              33

ASN.1

                                                               17

                                                               …

 

No issues found after 11 seconds
%

図1:LinuxカーネルのコードベースのRapid Scan Staticの出力

次のステップ

シノプシスでは、この脆弱性が発生しやすいものであることを考慮して、特に現在公開されている脆弱性であるため、会社全体のすべてのコードベースをスキャンし、Trojan Source脆弱性が現存しないようにすることを推奨しています。スキャンを夜間に、またはCI/CDパイプラインで他のスキャン中に実行すると、今后発生する脆弱性が捕捉されるようになります。

既に颁辞惫别谤颈迟测をご利用のお客様の场合は、シノプシスのCommunity ポータルからRapid Scan Staticの最新バージョンをダウンロードできます。

Continue Reading

トピックを探索する