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

ブログ    

推薦する

...

テスラ、マイクロソフト、グーグル、アップルなどを含む1,000件以上の「AIロールオーバー」事件が発生しています。

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

コンピュータビジョンがビジネス課題の解決に役立つ 5 つの方法

自動運転車、交通標識検出、顔認識、セルフサービスチェックアウト。 これらすべての高度なソリューション...

AWS でディープラーニングを使用するための 10 個の Linux コマンド

[[202723]] AWS 上で大規模なディープラーニング処理を実行することは、学習と開発を行うた...

トラフィックエンジニアリングによりコード生成の精度が2倍に向上: 19%から44%

新しい論文の著者は、コード生成を「強化」する方法を提案しています。コード生成は人工知能においてますま...

ファーウェイの石耀宏氏:成都にインテリジェントシティを構築し、スマートで美しい都市を創る

「巴斯」と呼ばれる快適さと「成都」と呼ばれるライフスタイルがあり、中国で最も幸せな都市として、成都は...

AIとRPAによるテストがイノベーションを促進できる理由

人材管理に関して言えば、AI は、あらゆる業種のあらゆる企業ですでに日常的に導入されているツールです...

AI時代のRedis

[[328841]] 【51CTO.com クイック翻訳】リレーショナル データベースは依然として...

...

産業用 IoT が人工知能の時代へ

インテリジェンスは近年、製造業における最も重要なトレンドです。過去数年間の市場教育を経て、過去2年間...

...

AI戦略に関するCIOの4つの優先事項

テクノロジーリーダーにとって、今は刺激的でもあり、不安でもある時代です。急速に進化するデジタルテクノ...

...

強化学習の博士号を取得して卒業することは人気がありますか? Redditユーザーがキャリアプランニングのアドバイスを求める

最近、修士号を取得して卒業しようとしているネットユーザーがネットユーザーに助けを求めました。「強化学...

AIの次の目的地:リアルタイムサービス

リアルタイムサービスの波が徐々に私たちの日常生活に浸透するにつれ、コンピューティングインフラストラク...