静的解析に機械学習を使用する方法

静的解析に機械学習を使用する方法

機械学習と人工知能は、特にマーケティング分析とサイバーセキュリティの分野で多くの分野で広く応用されている 2 つのテクノロジーであり、これらの分野での応用が成功したことから、あらゆることにそれらを利用しようとする人もいます。これには、機械学習システムを使用して、セキュリティの脆弱性を見つけるための静的コード アナライザーを作成することが含まれます。

[[360128]]

これらの試みのいくつかはある程度成功しており、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 つの驚くべきハイテクロボット

ブログ    

推薦する

Tofsee ボットネットは独自のドメイン名生成アルゴリズムを使用する

概要スイス政府コンピュータ緊急対応センター (GovCERT) は最近、Tofsee ボットネット ...

看護師の負担を軽減し、病院の効率化を実現します!医療物流ロボットが「新たな人気」に

[[399194]]ロボット産業は、我が国のインテリジェント製造業の発展における重要なリンクであり、...

...

2021年にAIスマートカメラがもたらす新たな市場

[[393303]] 2020年から2021年にかけて、ほぼすべてのビジネス分野の組織が多くの予期せ...

...

システムの観点から見た中国の人工知能開発の現状

第四次産業革命が急速に起こりつつあります。人工知能はこの産業革命の中核となる内容の一つです。産業革命...

ロボットコーチ+模擬運転、焦作全通自動車学校が運転訓練の先駆者

人工知能の発展に伴い、ロボット教育は全国の運転訓練業界で徐々に登場してきました。新しい時代の要求に適...

カスタマー サービス チーム向けの人工知能と機械学習ツール

どのビジネスリーダーも、顧客サービスがビジネスの最優先事項になっていることを認めるでしょう。同社は、...

Alibabaオープンソース!軽量ディープラーニングエッジ推論エンジンMNN

最近、アリババは軽量ディープラーニングエッジ推論エンジン「MNN」を正式にオープンソース化しました。...

...

...

...

「説明可能な」AIが金融セクターへの信頼を高める

[[423755]]人工知能は、詐欺の特定や金融犯罪の撲滅から、顧客への革新的なデジタル体験の提供に...

クラウド ネイティブが新たな標準になりますが、人工知能はそれに備えていますか?

テクノロジーの発展に伴い、クラウド コンピューティング テクノロジーは進歩し続け、その目的も変化して...