機械学習と人工知能は、特にマーケティング分析とサイバーセキュリティの分野で多くの分野で広く応用されている 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 つの驚くべきハイテクロボット
数日前の開発者会議で、OpenAIは、メンバーシップを購入すれば、GPT-4大規模モデルの新バージョ...
行列乗算の実行プロセスを 3D で表示できれば、行列乗算を学ぶのはそれほど難しくないでしょう。今日で...
ニューラルネットワークは人間の脳を模倣するために開発されました。まだ実現されていないものの、ニューラ...
最近、デロイト人工知能研究所は、「企業向け人工知能アプリケーションの現状レポート」と「厳選された A...
事前トレーニングの時代に入ってから、視覚認識モデルのパフォーマンスは急速に向上しましたが、生成的敵対...
従業員の定着は、長年にわたり企業経営者にとって深刻な問題となってきました。雇用の安定と従業員の忠誠心...
[[264806]]新たな産業変革の中核的な原動力であり、将来の発展に関わる戦略的技術として、国は人...
野心的な DeepMind は、ディープラーニング ネットワークと従来のアルゴリズムの間に橋を架けよ...
[[205998]]皆さんのお役に立てれば幸いですので、この投稿を書くのは大変でした。機械学習とデ...
ちょうど今、マスク氏は、ニューラリンクインプラントを装着した最初の人間患者が、思考によってコンピュー...
学習と進化ご存知のとおり、量子という概念は120年前にドイツの物理学者プランクによって提唱されました...
海外メディアTech Xploreによると、MITの研究者らは最近、新しいタンパク質分子の構造を事前...