Skip to main content

新しいPyCharmプラグインでPython開発者のセキュリティシフトレフトを支援

Python feature

2020年9月8日

0 分で読めます

Python開発者が、最初のコードを書いた段階からオープンソース依存関係のセキュリティとライセンスの問題を検出・修正できる、Snykの新しいPyCharmプラグインを発表します。

IDE内で脆弱性に対処することは、セキュリティをシフトレフトするうえで重要な要素です。また、開発者が既存のワークフローの中でセキュリティに対する責任をより多く担えるようになります。ESGが2020年に発表した「Modern Application Development Security」レポートでは、この機能が効果的なアプリケーションセキュリティプログラムに欠かせない10の要素の1つとして挙げられています。

この新しいPyCharmプラグインは、IntelliJとEclipse向けに提供している既存のIDEインテグレーションを補完します。幅広いエコシステムをカバーし、開発者が可能な限り早い段階でセキュリティ対策に取り組めるようにします。

Snyk for Python

現在最も人気のあるプログラミング言語の1つであるPython。Snykが毎月数千件ものPythonプロジェクトを監視しているのも、驚くことではありません。Pythonを利用するお客様、そしてPythonコミュニティ全体が、アプリケーションのセキュリティとコンプライアンスを維持できるよう支援することは、私たちにとって最優先事項です。そのため、新機能の導入と既存機能の強化に継続的に取り組んできました。

Pythonアプリケーションは、CLIまたはGitHub、Bitbucket、GitLab向けのGitベースのインテグレーションを使ってテストできます。今年初めには、自動修正に対応しました。これにより、Python開発者は脆弱性を検出するだけでなく、新たな脆弱性が見つかった際に自動生成される修正用プルリクエストを活用して、すばやく修正できるようになりました。

次のステップは、PyCharmとのネイティブインテグレーションの提供でした。PyCharmはPython開発で最も広く使われているツールです(JetBrainsの「2020年開発者エコシステムの現状」調査によると、PyCharm ProfessionalとCommunityを合わせたシェアは54%)。Python開発者が使い慣れた開発ツールにセキュリティとライセンスコンプライアンスのテストを簡単に組み込めるようにしたいと考えました。

PyCharmプラグインの主な機能

SnykのPyCharmプラグインは、オープンソース依存関係に含まれるセキュリティ脆弱性とライセンスコンプライアンス上の問題を特定します。プラグインは自動で実行され、問題をIDE内に表示するため、すばやく修正できます。

  • 簡単に使える:PyCharm内から、またはマーケットプレイスから簡単にインストールできます。

  • 包括的で実用的:セキュリティ脆弱性とライセンスの問題を、状況に応じた実行可能な修正情報とともに表示します。Pip、pipenv、PyPiに対応しています。

  • 高精度:このプラグインはSnyk CLIをベースにしています。Snyk CLIが依存関係をスキャンし、検出結果をSnyk Intelの脆弱性データベースと照合します。このデータベースは、網羅性、情報の鮮度、精度のすべてにおいて業界最高水準です。

利用を開始する

Snyk PyCharmプラグインは無料ですが、利用するにはSnykユーザーである必要があります。

始める前に、Snykアプリにサインインし、Pythonの依存関係がインストールされていることを確認してください。

PyCharm内からプラグインをインストールするには、Preferences †’ Pluginsを開き、「Snyk」を検索します。

Snyk Vulnerability Scannerプラグインの掲載と[インストール]ボタンが表示されたPyCharmプラグインマーケットプレイス

Installボタンをクリックすると、PyCharmが最新バージョンのSnyk CLIをダウンロードしてインストールします。PyCharmの下部に新しいSnykタブが表示されます。

PyCharmでPythonのrequirements.txtファイルが表示され、下部のツールウィンドウバーでSnykタブが強調表示されています。

最初のスキャンを始める前に、Snykアカウントを認証してください。Snyk内でAPIトークンを取得し、プラグインの設定画面(Preferences > Tools> Snyk)に追加するだけです。

トークン、カスタムエンドポイント、組織、追加パラメータの各フィールドが表示された、[Tools]>[Snyk]設定画面を含むPyCharmの環境設定ウィンドウ。

認証が完了したら、Snykタブを開いてScanボタンをクリックし、Snykのセキュリティテストを開始します。数秒後、プラグインが脆弱性を特定すると、問題の一覧が表示されます。

PyCharm上のSnykプラグインに、Pythonのrequirements.txtファイル内の17件の脆弱性が表示されている。中には中程度の深刻度のクロスサイトスクリプティングの問題も含まれる。

スキャン結果には、迅速な修正に役立つさまざまな情報が含まれています。たとえば、脆弱性の深刻度(CVSSに基づく)や脆弱性のタイトルと種類が表示されます。詳細では、実際に悪用されているエクスプロイトの情報から脆弱性がどのように持ち込まれたかを確認できます。また、概要では脆弱性がどのように悪用される可能性があるかを説明します。

修正にあたっては、Snykプラグインが必要なアップグレードを推奨し、脆弱性の解消を支援します。Snykは、変更による影響を最小限に抑えられるよう、特定の問題を修正するために必要な最小限のアップグレード経路を常に推奨します。

問題の詳細の下部にあるリンクからSnykの脆弱性データベースにアクセスすると、CVE、CWE、CVSSスコアなど、脆弱性に関する追加情報を確認できます。

Pythonのnumpyパッケージに影響する、深刻度の高い任意コード実行の脆弱性を示すSnykの脆弱性ページ。CVSSスコアは9.8。

補足

このプラグインは初回リリースです。今後、さらなる改善を予定しています。それまでの間、ぜひご意見をお寄せください。次に追加する機能の優先順位付けに活用させていただきます。

楽しいコーディングを!

続きを読む

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

illustration hero ai
Blog

AIハリケーンが到来

AIはソフトウェア開発とサイバー攻撃の双方を加速させています。リーダーは、エージェントとコードを開発の初期段階から保護し、実行時に制御を徹底するとともに、防御策を独立して検証しなければなりません。

feature insights context
Blog

予防は、本質的に解決済みの問題なのでしょうか?

エージェントが生成するコードの予防策はアーキテクチャ上解決されていますが、開発を遅らせることなくセキュリティを守る制御を選ぶことが、依然として課題です。