Snyk Ambassadorと学ぶセキュリティの教訓
Andres Haro
2022年10月11日
0 分で読めます執筆: Andres Haro、Snyk Ambassador
テクノロジー業界では、長年にわたりセキュリティが懸念事項となっています。しかし、コードのセキュリティ確保に関して、自社のプロトコルやガイドラインに従っている企業は多くありません。
セキュリティインシデントはまれであり(自分の組織では起こりそうにない)と思いがちですが、Uberで最近発生した問題は、それが間違いであることを示す数ある事例の一つです。このインシデントは、18歳の人物がソーシャルエンジニアリングを使い、Uberの従業員に偽のUberサイトへログインするよう指示したことから始まりました。これにより、入力された認証情報をリアルタイムで盗み、本物のUberサイトにログインできるようになりました。
Uberの情報漏えいと、そこから得られた教訓
当時、UberではMFAが有効になっていました。従業員がログインする際、スマートフォンに通知が届き、ボタンを押すよう促すアプリを使っていたのです。ハッカーは、認証情報を本物のサイトに何度も入力することで、この保護を回避しました。従業員は混乱していたか、疲れていたのでしょう。最終的にボタンを押してしまいました。そのボタンが押されたときには、ハッカーはすでにログインしていました。
Uberが何もできなかったと想像してみてください。MFAを導入していても、悪意あるユーザーは巧妙な手口で会社の個人情報を入手し、被害を与えました。コードのセキュリティを確保する対策を講じていなかったら、何が起きていたでしょうか。
コードを保護するには?
テクノロジー業界に携わっている方なら、オープンソースコードや質問への回答を探すために、Stack Overflowをよく利用していることでしょう。共同作業や問題解決に役立つ優れたツールですが、サードパーティのサイトからコードをそのままアプリケーションにコピーすると、さまざまな脆弱性にさらされる可能性があります。
こうしたリスクを避けるため、選んだコードを本番環境のブランチにコピーする前に、SnykのCode Checkerツールでスキャンすることをおすすめします。

ここで、Snykで何ができるのかと疑問に思うかもしれません。Snykは、あらゆるプラットフォームのコードをスキャンできるだけでなく、現在のリポジトリに潜む問題を把握し、その修正方法についてアドバイスします。
下の画像を見ると、Snykが私のGitHubアカウントに接続されていることがわかります。

SnykをGitHubアカウントに接続すると、更新されていない依存関係や、コードに問題を引き起こしているもの、更新が必要なものを確認できます。
次の画像はSnykのレポートです。スキャンで検出された脆弱性が一覧表示され、深刻度に応じて低、中、高、重大に分類されています。これで、脆弱性を無視するか修正するかを判断するために必要な情報がすべてそろいます。

DevSecOpsの実践者として、私は常に重大な脆弱性を優先し、スコアカードを確認して、すぐに修正できるかどうかをチームで検討するよう促しています。なぜでしょうか。発見された脆弱性についてソフトウェアエンジニアに共有し、現在のスプリントで修正できる余地があるか確認する必要があるからです.一方で、発見された当日に重大または高い深刻度の脆弱性を修正すると決めるチームもあります。最終的には、組織が持つリソースや人員次第です。Snykはどちらの判断にも対応し、脆弱性の修正を後回しにしたり、すぐにPRを作成したりできるため、特に役立つツールです。
「この脆弱性を修正」をクリックすると、次の画面が表示されます。

修正PRを作成画面には、スキャンで検出されたすべての脆弱性が一覧表示されます。内容について疑問が生じることもあるでしょう。PR一覧の特定の問題について詳しく知りたい場合は、脆弱性をクリックしてください。ここでは、修正可能な問題の下にある正規表現によるサービス拒否(ReDoS)をクリックします。

これにより、問題の詳細を確認できます。実際の問題ではない場合や、誤検知と思われる場合は、「間違いを見つけましたか?」をクリックして報告できます。詳細を共有する別の画面が表示されます。
脆弱性についてよく知らない場合は、Snyk Learnで詳しく学ぶことができます。今回の例については、ReDoSのレッスンページをご覧ください。
理解が深まり、必要な情報がそろったところで、PRを作成できます。GitHubでは、次のように表示されます。

その後、新しいPRとブランチをマージして、すべての修正を反映できます。

マージを選択すると、次のように表示されます。

リポジトリで何が変更されたかを確認するには、GitHubで変更されたファイルを確認します。

ご覧のとおり、最新の状態を保つためにいくつか更新しました。Snykのダッシュボードに戻り、すべて修正されたか確認しましょう。経営陣にレポートを共有する必要がある場合は、そのメンバーをSnykアカウントに追加し、このようなレポートを共有することをおすすめします。

Snykでセキュリティの専門性を高める
開発者向けセキュリティについて詳しく学びたい方は、Snyk Learnをご覧ください。さまざまなプログラミング言語やエコシステムにわたる脆弱性を扱った、インタラクティブなレッスンが豊富にあります。動画で学ぶのがお好きなら、Snyk公式YouTubeチャンネルへどうぞ。セキュリティに関するアドバイスが必要なときは、Snyk Ambassadorsにお気軽にご相談ください。サイバーセキュリティの豊富な知識を持つ、とても親切なメンバーがそろっており、コミュニティは今も成長を続けています。


