GitHub が機械学習コードの脆弱性スキャンを無料で提供、JavaScript / TypeScript もサポート

GitHub が機械学習コードの脆弱性スキャンを無料で提供、JavaScript / TypeScript もサポート

現在、JavaScript および TypeScript リポジトリで開発およびテストが行​​われており、今後はさまざまな言語のサポートが徐々に追加される予定です。

テスト中に、CodeQL は 12,000 のリポジトリから、リモート コード実行 (RCE)、SQL インジェクション、クロスサイト スクリプティング (XSS) の脆弱性を含む 20,000 件を超えるセキュリティ問題を発見しました。

使い方

GitHub の CodeQL コードスキャンは、パブリックリポジトリでは無料です。

新しい JavaScript / TypeScript 分析ツールは、セキュリティ拡張およびセキュリティと品質の分析スイートのすべてのユーザーが利用できるようになりました。

すでにこれらのスイートを使用している場合は、新しい機械学習技術を使用して分析が自動的に実行されます。

これまで使用したことがない場合は、以下の手順に従って CodeQL を有効にできます。

1. リポジトリのホームページで、 「セキュリティ」をクリックします

2. コードスキャンアラートの右側にある「コードスキャンの設定」をクリックします。これがない場合は、リポジトリ管理者が GitHub Advanced Security を有効にする必要があります。

3. 「コードスキャンを開始する」の下で、「CodeQL Analysis でこのワークフローを設定する」をクリックします。

4. 「コミットの開始」ドロップダウン メニューを使用して、ファイル名を入力してコミットします。

5. デフォルトのブランチに直接コミットするか、新しいブランチを作成してプル リクエストを開始するかを選択します。

6. 「新しいファイルを送信」をクリックします。

コードスキャン分析が成功すると、ユーザーの「セキュリティ」タブにセキュリティ警告情報が表示されます。

MLがより良い結果を生む理由

リポジトリ内の脆弱性を検出するために、CodeQL エンジンはまずコードの特殊なリレーショナル表現をエンコードするデータベースを構築し、次にデータベースに対して一連の CodeQL クエリを実行します。

しかし、オープンソースエコシステムの急速な発展に伴い、ロングテール効果はますます顕著になってきています。

セキュリティ専門家は、他の一般的なライブラリや既知のパターンをモデル化するために、これらのクエリを継続的に拡張および改善します。ただし、手動によるモデリングには時間がかかり、手動でモデル化できないあまり一般的でないライブラリやプライベート コードが常に存在します。

ここで機械学習が役に立ちます。多数のトレーニング コード スニペットが与えられた場合、各クエリは正または負の例としてラベル付けされ、各スニペットの特徴が抽出され、新しい例を分類するようにディープラーニング モデルがトレーニングされます。

GitHub は、各コード スニペットを単純に単語や文字の文字列として扱い、標準の NLP 手法を直接適用してこれらの文字列を分類するのではなく、CodeQL を使用して基礎となるソース コードに関する豊富な情報にアクセスし、各コード スニペットの豊富な機能セットを生成し、NLP のようにタグ付けおよびサブタグ付けを行います。

トレーニング データから語彙が生成され、インデックス リストがディープラーニング分類器に入力され、現在のサンプルが各脆弱性である確率が出力されます。

ML ベースの脆弱性スキャンは現在 JavaScript/TypeScript でのみ利用可能ですが、GitHub は将来的にさらに多くの言語をサポートすることを約束しています。CodeQL は現在、Python、Go、C/C++ を含む多くの一般的な言語をサポートしています。

最後に、GitHub は、新しいツールではより多くの脆弱性を発見できるものの、誤検出率も高まる可能性がある (再現率は約 80%、精度は約 60%) とも強調しました。この機能は時間の経過とともに改善されます。

<<:  人工知能: キャリア開発のための3つの戦略

>>:  マイケル・ブロンスタインによる幾何学的ディープラーニングの最新レビュー: WL とプリミティブなメッセージ パッシングを超えた GNN

ブログ    
ブログ    

推薦する

...

ジャック・マー、孫丑樹、劉強東、周紅一はいかにして「スマート時代」に突入したのか?

近年、人工知能は大手企業の重要な研究分野となり、「政府活動報告」にも記載されるようになりました。これ...

...

...

ステップバイステップガイド: FastAPI を使用して YOLO モデルをデプロイする手順

コンピューター ビジョンの分野では、You Only Look Once (YOLO) アルゴリズム...

...

...

人間がロボットや AI より得意とする 7 つの仕事

ロボットや AI は人間が行う多くの作業を実行できますが、人間がロボットよりも上手にできる仕事もまだ...

5Gのサポートにより、AIの顔を変えること以外に人工知能は何ができるのでしょうか?

近年、AIによる顔を変える技術がネットユーザーの間で大流行し、この人工知能の新興技術を一般人の生活に...

...

Java プログラミング スキル - データ構造とアルゴリズム「バイナリ ソート ツリー」

[[390181]]基本的な紹介バイナリ ソート (検索) ツリー: バイナリ ソート ツリー内の...

人工知能の時代に教育はどのように適応すべきでしょうか?

これからの学びは、従来の学校中心の島型ではなく、新しいタイプの島型になります。家庭、インターネット、...

人工知能技術は建設業界をどのように変えるのでしょうか?

人工知能 (AI) は世界中の産業に革命をもたらし、その能力によって世界を変えています。 ChatG...