blog

コンパイラがどのようにアプリケーションのセキュリティを脅かすか

たいていのプログラマは、コンパイラがどのように人間が読めるコードを機械が実行するコードに変換するかについて、大まかな考えしか持っていません。...

Oct 29, 2016 · 1 min. read
シェア

ほとんどのプログラマーは、コンパイラがどのようにして人間が読めるコードを、マシンが実行できるマシン・コードに変換するのか、大まかにしか知らないのが普通です。コンパイルの過程で、コンパイラはコードを最適化し、効率的に実行できるようにします。時には、コンパイラは最適化を行いすぎて、削除すべきでないコードまで削除してしまい、より壊れやすいアプリ ケーションになってしまうことがあります。

マサチューセッツ工科大学(MIT)の人工知能・コンピュータサイエンス研究所の4人の研究者が、不安定な最適化コード、つまり未定義の動作を含むコードがコンパイラによって削除される問題について調査しました。いわゆる未定義の動作には、ゼロによる除算、ヌル・ポインタ、間接参照、バッファ・オーバーフローなどが含まれます。場合によっては、コンパイラによって未定義の動作が完全に除去されることで、プログラムにセキュリティ上の弱点が生じる可能性があります。

研究者らは、不安定なC/C++コードを特定するための静的チェッカーであるSTACKを開発し、テストしたシステム上で数百の新しいバグを発見しました。 STACKは、Debian Wheezyリポジトリをスキャンし、C/C++コードを含む8575個のパッケージをスキャンしました。C/C++ コードを含むパッケージのうち、3,471 個に少なくとも 1 つの不安定なコードが含まれていることがわかりました。研究者は、これは非常に一般的な問題であると考えています。

Read next

ASO最適化:App Storeランキングルールの詳細

ASO最適化は、明らかに最初のステップ、つまりASO最適化の目的である、アプリケーションがクリックされ、ダウンロードされ、インストールされるチャンスを持てるように、できるだけ多くの表示を得られるようにすることに影響します。つまり、アプリがクリックされ、ダウンロードされ、インストールされるようにすることです。この問題を解決するには、App Storeの検索ルールを理解する必要があります!

Oct 27, 2016 · 3 min read