Snyk CodeのPHPセキュリティが正式リリース
DeveloperSteve Coochin
2022年1月26日
0 分で読めます先日、Snyk CodeのPHPサポートのベータ版を発表しました。これにより、コードレベルでPHPの潜在的なセキュリティ脆弱性を特定できるようになりました。パブリックベータの成功を受け、Snyk CodeのPHPセキュリティサポートが正式リリースされました。
PHPは、世界中の開発者に利用されている人気のプログラミング言語です。このブログでは、Snyk Codeの機能とPHPでの活用方法をご紹介します。初心者から経験豊富な開発者まで、すぐに使い始められるよう、いくつかの例も取り上げます。
正式リリースに伴うアップデート
Snyk CodeのPHP言語のセキュリティサポートが加わったことで、既存のPHPスキャン機能をさらに強化しました。この機能では、Composerのマニフェストをスキャンし、オープンソースライブラリや依存関係の脆弱性を特定します。
また、Snyk Visual Studio Code拡張機能も、PHPのコードとComposerのスキャンに対応しました。コードの記述中に安全でない可能性のあるコードをハイライト表示し、オープンソースライブラリや依存関係に潜む脆弱性を知らせてくれるため、特に便利です。

Snyk CodeのPHP正式リリースでは、問題の詳細を調べ、必要に応じてコードベースをさかのぼって追跡できます。コード内の別の箇所に起因する追跡可能な関数を扱う際に役立ちます。

PHPのデモアプリでSnyk Codeのスキャンを試す
Snykでは、意図的に脆弱性を仕込んだデモアプリを作成し、goofアプリと呼んでいます。実際に手を動かしながら、実環境で見つかる脆弱性を体験するのに最適です。Snyk CodeのPHPサポートの開始に合わせて、PHP goofアプリを追加しました。
PHP goofアプリを使った例をいくつかご紹介します。実際に試すにはSnykアカウントが必要です。まだお持ちでない場合は、数秒で無料アカウントを作成できます。
まずSnykダッシュボードにログインして、プロジェクトを追加します。今回のスキャンでは、パブリックリポジトリを監視するオプションを使ってPHP goofアプリのリポジトリをスキャンするか、コードをフォークして任意のリポジトリに接続できます。

ヒント:パブリックリポジトリのスキャンは、日常的に利用しているオープンソースプロジェクトをスキャンする際にも役立ちます。
スキャンはすぐに完了し、コードとパッケージマニフェストの両方でいくつかの問題が検出されたことを確認できます。Snyk Codeは数十種類の問題と、数百万ものデータフローのソースとシンクの組み合わせを特定します。PHP goofアプリを使って、よく見られる2つの例を見てみましょう。
SQLインジェクション
スキャンを実行してまず気づくのは、Snyk Codeを使うとコードを簡単に確認できることです。下のスクリーンショットでは、サニタイズされていない入力値が渡されるデータベースクエリが特定されています。

脆弱性をすばやくわかりやすく提示するだけでなく、Snyk Codeは修正方法の分析と対処方法のアドバイスも提供します。PHP開発者で、セキュリティの知識に自信がない場合、ライブラリを使う方法や、filter_var関数を使う方法など、PHPで入力を安全にサニタイズする方法はいくつかあります。Snykはコードの安全を保つために必要なリアルタイムのセキュリティに関する知見を提供し、使いながら学べるよう支援します。
PHPのセキュリティについて詳しく知りたい方は、PHPコードインジェクションを防ぐ5つの方法をご覧ください。
ハードコードされた認証情報の使用
goofアプリでは、Snyk Codeのスキャンで検出されるよう、意図的にMySQLの認証情報をハードコードしています。下のスクリーンショットのとおり、Snyk Codeはこれを検出し、問題として警告しています。(認証情報を安全に扱うには、プラットフォーム上または環境設定ファイル内の環境変数として保存する方法があります。)

オープンソースの脆弱性
さらに、スキャンではComposerのマニフェストに記載されたオープンソースライブラリのバージョンに問題が見つかりました。クロスサイトスクリプティングの脆弱性がどのように持ち込まれるかを示すため、意図的にアプリに含めています。

PHPプロジェクトのセキュリティ対策を始めましょう
Snyk CodeのPHPサポートが正式リリースされたことを嬉しく思います。ぜひ、無料のSnykアカウントでお試しいただき、ご意見やご感想をお寄せください。
Capture the Flagを始めよう
オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。


