今年もまた、一年間待っていたプロジェクトを中断することなく進められる季節がやってきました。新しいコンテンツ管理システムの構築でも、お気に入りのオープンソースプロジェクトのプラグインでも、ホリデーシーズンは開発者が1年中待っていた特別なプロジェクトを作り上げることができる時期です。
ただし、プロジェクトの安全性を確保すること、特にオープンソースのライブラリやコンポーネントに可能な限り脆弱性がないことを確認することが重要であることを忘れないでください。脆弱性の可能性がないかコードをスキャンするだけでなく、プロジェクトを安全に保ち、エンドユーザーを可能な限り安全にすることが非常に重要なのです。
この記事では、Snyk CLIを使ってSCAとSASTのスキャンを行うことで、プロジェクトの安全性を保つ方法を見ていきたいと思います。このツールを使うと、パッケージマニフェストをスキャンしてオープンソースの脆弱性を探したり、コードをチェックして安全性を確認したりすることができます。
いくつかのコードで遊んでみましょう
休暇中の最大の問題は、どのプロジェクトを行うかを選ぶことです。アイデアはたくさんあるのに、時間はほとんどありません。私はこれまでに多くのプロジェクトを手がけてきましたが、その中には、LEDライトを搭載したWIFI IOTボード(ESPdevkitC)をウェディングケーキの上に設置し、ゲストが携帯電話でライトの色を変えられるようにするというものもありました。
この休日には、私がボランティアで参加しているプロジェクトのひとつであるBarayamal(First Nations Innovation Hub)の新しいコミュニティプラットフォームの構築を終える予定です。私は、できる限りコミュニティに貢献したいと思っているので、このようなプロジェクトが大好きです。
新しいBarayamalのプラットフォームは、Wordpressをベースに、いくつかの無料プラグインとカスタムプラグイン、そしてオープンソースのテーマで構築されています。これは、コミュニティの成長に合わせてサーバーインフラを成長させるために重要なことです。
それでは早速、このプラットフォームを使ってセキュリティチェックを行ってみましょう。まず、ローカル環境にgit cloneを実行します。
これはPHPベースのプロジェクトなので、composerを使って必要なパッケージをすべてインストールします。
セキュリティの脆弱性をチェックする
プラットフォームのセキュリティは重要です。ユーザーを安全に保ち、アプリケーションのウェブサイトに脆弱性がないようにする必要があります。
今回のセキュリティスキャンには、Snykの無料版を使用します。Snykの導入については、こちらのブログ記事をご覧ください(https://qiita.com/SnykSec/items/aa80a976eb17299fff62)。
オープンソースパッケージの脆弱性をスキャンするために、まずSnyk CLIを使ってPHP composerのパッケージマニフェストをスキャンします。私はMacを使用しており、homebrewがインストールされているので、インストールするために以下を実行します。
コマンドラインで "snyk auth "を実行すると、自分のアカウントに接続できるようになりました。
これでスキャンの準備が整いました。必要なのは、プロジェクトのルートディレクトリでsnyk testを実行してスキャンすることです。CLIは、composerのパッケージマニフェストを自動的に検出し、脆弱性をチェックします。
この例ではすべてクリアされていますが、新たな脅威が検出されるように、チェックを続ける必要があります。
非常に便利なのは、私の無料アカウントでSnykプラットフォームを使用して、あらゆるオープンソースリポジトリをスキャンすることができることです。
あなたのホリデープロジェクトを教えてください
休日のプロジェクトをスキャンして、安全なコードを使っているかどうかを確認することを忘れないでください。
私はいつでもオープンソースプロジェクトの話を聞くのが大好きです。