Snyk CLIで認証が必須に
2017年1月12日
0 分で読めます2015年後半にSnykをリリースして以来、アプリケーションのテストは匿名で利用できました。本日、新バージョンをリリースし、テストの前に無料の登録と認証が必要になりました。この変更を行った理由と、ユーザーの皆さまへの影響について説明します。
不正利用の防止
2016年を通じて、Snykの利用は大幅に増加し、成長を続けてきました。そのほとんどは正当な利用で、急速ながらも安定したペースで増えていましたが、ときにはテストが突如として急増することがありました。こうした急増はたいてい不正利用(意図的な攻撃の場合もありました)によるもので、システムへの負荷を大幅に高め、ほかのユーザーの処理速度を低下させていました。
理論上、解決策はシンプルです。不正利用者をブロックするか、利用を制限すればよいのです。しかし実際には、匿名ユーザーを特定してブロックするのはほぼ不可能です。TravisやCircleなどのCIプラットフォームから、AWSやGoogle Cloudなどのクラウドプラットフォームまで、クラウドシステムではIPアドレスが頻繁に共有されるため、IPアドレスによるブロックは精度が大きく下がります。同様に、オープンソースパッケージは広く共有され、テストにも使われるため、パッケージ名でテストをブロックする方法も正確ではありません。
この2つが、私たちが検討した中で有望な方法でした。しかし、私たちのようなサービスで不正利用を防ぐには、ユーザーに認証を求めるしかないという結論に至りました。認証済みであれば、公平な範囲を超えてリソースを消費するユーザーをブロックしたり、利用を制限したりできます。
ユーザーとのつながり
Snykは急成長を続ける機動的な企業であり、ツールも急速に進化しています。ユーザーの皆さまがより少ない労力で、より高い精度でアプリケーションを保護できるよう、常に新機能をリリースしています。
残念ながら、CIでSnyk CLIを使う匿名ユーザーには、こうした新機能を知る機会がほとんどありません。その結果、匿名ユーザーはSnykの活用方法の進化が遅れ、利用対象のアプリケーションを広げるのにも時間がかかることがわかりました。
今回の認証必須化は、まさにこの問題の好例です。認証が必須になることをユーザーに伝える適切な手段がありませんでした。ここ数か月、CLI上で認証がまもなく必須になることを表示していましたが、一定の効果はあったものの、伝達手段としては不十分でした。
認証を必須にすることで、新機能のようなうれしいお知らせから、現在の利用に影響する可能性のある変更まで、大切な情報を皆さまにお伝えできるようになります。
パッチの適用はどうなりますか?
Snykのテストには認証が必要になりましたが、snyk protectを使ったSnykパッチの適用には引き続き認証は不要です。今後も変更する予定はありません。
Snykのパッチによる脆弱性の修正は、npmパッケージのインストール処理の一部として行われることがよくあります。パッケージが依存関係をインストールし、その後、残存する脆弱性にパッチを適用します。この処理を行うのはパッケージの利用者であり、Snykの利用者ではありません。また、この一連の処理にSnykトークンを設定する適切な場所もありません。
そのため、リソースが不正利用されるリスクはあるものの、snyk protectは引き続き匿名で利用できます。幸い、protectはサーバーへの負荷が比較的小さい処理です。
これからはSnykの利用に料金がかかるのですか?
いいえ、そんなことはありません!
Snykへの登録はこれまでどおり無料です。ターミナルでsnyk authを実行するか、https://snyk.io/で登録してアカウントを設定するだけです。ぜひご検討いただきたいプレミアムプランもありますが、Snykの無料プランはこれまでとまったく変わりません。
登録後、ログイン時に表示されるダッシュボードとアカウントページに、固有のキーが設定されたsnyk authコマンドがあります。この行をsnyk testの前に追加すれば準備完了です。CIでSnykを使用している場合は、こちらのドキュメントで認証トークンの設定方法をご確認ください。
Githubを使用している場合、またはすでにsnyk testの前にsnyk authを実行している場合は、何もする必要はありません。
今後の予定
ユーザーの皆さまが無理なく移行できるよう、現時点では最新バージョンのCLIでのみ認証を必須としています。今後数週間は新バージョンの導入状況を確認し、適切なタイミングでサーバー側でも認証を必須にする予定です。
今後もSnykでアプリケーションを保護していただければ幸いです。この変更やそのほかのご意見・ご感想は、いつでもsupport@snyk.ioまでお寄せください。
CTFを始めよう
オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。