機械学習と人工知能は、特にマーケティング分析とサイバーセキュリティの分野で多くの分野で広く応用されている 2 つのテクノロジーであり、これらの分野での応用が成功したことから、あらゆることにそれらを利用しようとする人もいます。これには、機械学習システムを使用して、セキュリティの脆弱性を見つけるための静的コード アナライザーを作成することが含まれます。
これらの試みのいくつかはある程度成功しており、Facebook、Amazon、Mozilla はすべて、何らかの形で機械学習を活用した静的コード アナライザーを提供しています。しかし、機械学習の基礎を理解している人なら誰でも知っているように、これらの方法にもいくつかの固有の制限があります。 機械学習静的アナライザー 過去数年間で、機械学習を活用した静的解析ツールが市場に急増しました。熱心なアマチュアによって開発されたものもあれば、テクノロジーの巨人によって開発されたものもあります。Facebook、Amazon、Mozilla は現在、そのようなツールを提供しており、リリースごとに開発プロセスに革命を起こすと約束しています。 実際、これらのツールは、開発者が脆弱性やバグを探す時間を節約します。市場で主流となっている機械学習静的アナライザーをいくつか見てみましょう。 1. ディープコード DeepCode はおそらく、Java、JavaScript、Python の最も有名な脆弱性ハンターです。 DeepCode は、開発者が「開発者のための文法」と呼ぶ機械学習モジュールも提供しています。 DeepCode の機械学習モジュールは、開発者が多数のプロジェクトに取り組む際に行う多数の変更を調べることで機能します。 DeepCode は学習するにつれて、開発者が解決しようとしている問題に対する解決策を提案し、以前に発生した間違いを検出できるようになります。 DeepCode にはまだいくつかの制限があります。システムの開発者は、C++ 言語のサポートは 2018 年から利用可能になり、開発者はプラグインを通じて C++ と DeepCode を使用できるようになると主張しています。 2.推測する Infer は 10 年近く前から存在しており、機械学習の原理に基づく静的コード アナライザーの基盤として 2013 年に Facebook に買収されました。 Infer は、幅広い言語をサポートし、AWS や Oculus と組み合わせて使用できるなど、さまざまな理由から静的アナライザーとして非常に人気が高まっています。最も重要なのは、プロジェクトのソースコードが 2015 年にオープンソース化されたことで、プロジェクトの急速な開発が可能になったことです。 その人気にもかかわらず、Infer を使用する開発者は、Facebook プロジェクトであっても、生成される警告の 80% しか役に立たないことを認めています。ポインター逆参照やメモリ リーク エラーは検出されますが、型変換例外や検証されていないデータ リークなど、Infer では検出できないエラーのクラスがまだあります。 3.ソース{d} Source{d} はオープンソースの静的コード アナライザーおよび開発マネージャーであり、特定のソフトウェア プロジェクトの進捗状況に関する情報をマネージャーに提供することを目指すだけでなく、開発者向けの多くのツールも提供します。静的アプリケーション セキュリティ テスト プロトコルの一部として、バイトコードやバイナリ、アプリケーション ソース コードの脆弱性の分析など、さまざまな便利な SAST 機能を実行できます。 このソフトウェアの主な利点の 1 つは、ソース コードが完全に透明で GitHub リポジトリで利用できるため、開発者が基本的に独自の機械学習強化コード アナライザーを構築できることです。 そうは言っても、Source{d} はコード エラーの分離に非常に限界があります。 Babelfish サービスを使用して特定のコード インスタンスを共通の構文ツリーに変換し、そこからコードを簡素化して編集を提案し、作業を容易にします。これにより、開発者はコードを操作する時間を大幅に節約できますが、完全な静的アナライザーではありません。 その他の静的解析ツール これら 3 つのソリューションに加えて、将来有望な新しい静的アナライザーもいくつか登場しています。 Clever-commit は Mozilla Corporation のプロジェクトですが、詳細はまだ不明です。 CodeGuru は Amazon の機械学習強化型静的コード アナライザーですが、現在は Java でのみ動作します。 Embold は、コードの依存関係を視覚化するエラー分析用のスタートアップ プラットフォームですが、使用できる言語も限られています。 これらのシステムはすべて開発者にとって非常に便利ですが、特定の言語と組み合わせて使用し、特定の結果を達成するようにトレーニングされている場合に限られます。言い換えれば、機械学習対応の静的コードアナライザー(さまざまな言語や環境でバグや障害を検出できる多目的ツール)の期待は、まだ実現されていないということです。 開発愛好家は、これは単に機械学習駆動型の静的アナライザーがまださらなる開発を必要としているからだと言うでしょう。しかし、機械学習システムが実際にどのように機能するかを再考すると、これらの問題はしばらく続く可能性があることが示唆されます。 結論は 最後に、人々は理解する必要があります。機械学習技術はまだ初期段階にあり、多くの開発分野で多くの有用な応用が見込まれる。しかし、機械学習テクノロジーが静的解析ツールの構築方法を変えることは依然として難しいことを理解することが重要です。 最も基本的なレベルでは、静的分析と機械学習プラットフォームは根本的に異なるためです。 AI や機械学習システムを実行するために使用されるあいまいな確率的ロジックとは異なり、エラーの分離と修復には正確で繰り返し可能な方法が必要です。結局のところ、人々は静的アナライザーが他の例に基づいてコードが間違っている可能性があることを指摘することを望んでおらず、それが機能するかどうかを確実に知りたいのです。 残念ながら、この確実性は、明示的にコード化されたアナライザーでのみ達成できます。少なくとも今のところはそうです。 |
<<: 遠隔ギフト配達、ライトショー…ドローンはクリスマスの新たな人気になりつつあります!
>>: ハイテクロボット: すでに世界に存在する 5 つの驚くべきハイテクロボット
私たちは皆、モノのインターネット (IoT)、人工知能 (AI)、ビッグデータが業界の再編とビジネス...
人工知能 (AI) や機械学習は人間よりも優れた能力を発揮するとよく言われますが、実際は AI や機...
現在、世界経済の回復は依然として緩やかです。国際通貨基金(IMF)が最近発表した世界経済見通しレポー...
誰もが知っているように、アルゴリズムを学ぶことは、コンピューターサイエンスの中で最も退屈でわかりにく...
[[209261]]今年、Kaggle はデータ サイエンスと機械学習の状況を包括的に理解することを...
どの国が終末的な災害映画を撮影したとしても、人工知能はさまざまな大量破壊兵器を操作して人類と戦い、最...
MITの研究者らが、指の爪ほどの小さなドローン用コンピューターチップを設計6月21日、Venture...
導入あるクラスの観測値が他のクラスの観測値よりも高い場合、クラスの不均衡が生じます。例: 不正なクレ...
[[333020]]ロビン・リー:業界の人々はAIに大きな可能性があることを知っており、悲観的な時...
「新しいインフラ」は新たな方向性を表しています。新旧の成長原動力の転換という文脈において、「新インフ...