前回の記事
「The Black Swan Theory and the Fundamental Vulnerability of Automated Systems」では 、コンパイラのバイナリバージョンによってオープンソースプログラムに追加されるソフトウェアブックマークについて説明しましたが、このコンパイラによってコンパイルされたコンパイラの新しいバージョンもブックマークを使用して作成されます。
この記事では、この脅威の可能性を減らすための参照ソリューションといくつかの推奨事項を提案しました。
導入する代わりに
狭い門を入力してください。門は広く、火のような地獄へと続く道は広いからです。 (マタイの福音書)。
参照ソリューション
解決策は非常に明白であり、参照コンパイラを作成することにあります。 そして、コンパイラの作成ではなく、このコンパイラのリファレンスバージョンを開発するためのオープンな仕様とメソッドを作成します。これは、いくつかの独立した実装で実行できます。 この場合にのみ
、 「信頼できる」コンパイラの
複数の実装によって個別のアプリケーションを個別にコンパイルする場合、
バイナリモジュールが
同一であれば、受信した「参照」コンパイラ
にウイルスコードがないこと、したがって、結果のプログラムにブックマークがないことについて話すことができます。
間違いなく、コンピューターのハードウェアを介した攻撃の実装を忘れてはなりません;信頼度を高めるには、オープンハードウェアの原則に従って開発されたハードウェアを使用する必要があります。
脅威削減の推奨事項
参照コンパイラの作成には開発チームの時間と労力がかかりますが、問題は現在あり、信頼できるコンパイラはありません。 そのため、これらの脅威の可能性を減らす対策を講じる必要があります。
コンパイラの作成については、オブジェクトファイルの生成段階だけでなく、プリプロセッサ、リンカなどのコンポーネントについても話します。他のすべての推奨事項(他の言語での実装を含む)を考慮したプリプロセッサとリンカの個別のネイティブ実装脅威の実装に影響します。
ソフトウェアブックマークを実装する可能性を減らすための仮定は、脅威モデルに基づいています。
脅威 | 解決策 |
NDVコンパイラは、ターゲットプログラムのソースコードを認識し、ウイルスコードを追加します。
| 機能を失うことなく、コンパイルされたプログラムのソースコードを難読化します。
|
NDVを使用したコンパイラの新しいバイナリバージョンに新しいブックマークが追加されました。
| コンパイラの最も古いバイナリバージョンを使用すると、NDVの一部は関係ない場合があります。
|
NDVを使用するコンパイラは、コンパイルされたプラットフォームにウイルスコードを追加します。 (アーム、x86)
| クロスコンパイル。 Arm上でのx86のプログラムのコンパイルとその逆。
|
NDVを使用するコンパイラは、サードパーティのライブラリとソフトウェアを使用してブックマークの一部を実装します。
| 最低限必要なプログラムとユーティリティのセットを備えた分離システムでのコンパイル。
|
NDVを備えたコンパイラは、外部データから隔離されたシステムへの攻撃を提供し、イベント(メモリオーバーフロー、不明なエラー、特殊なデバイスの接続、特定の時間の開始など)に対してNDVをアクティブにします。
| 特定の条件(コンパイル時を含む)でのイベントのシミュレーションとテスト済みソフトウェアの起動。
|
* NDV-文書化されていない機能。
動的ソフトウェアテストと一緒に提示された方法を組み合わせた場合、コンパイルされたプログラムでNDVの症状を減らすことが可能です。
あとがき
コンパイラのブックマークの脅威は陰謀理論に似ており、妄想的ですが、理論的には実現可能です。 コメントでは、客観的な批判と勧告を歓迎します。