ニアミスだった2人のペンテスターが語る「ここが変だよ、日本のセキュリティー」

 インターネットサービスプロバイダー(ISP)でエンジニアとして働くうちにセキュリティーに興味を抱き、ペネトレーションテスター(ペンテスター)を志し、今ではヤフーでCISO室 Yahoo! JAPAN CSIRTに所属して内部の脆弱性検査やインシデントレスポンスを担う大角祐介氏、Podcastやブログ、Twitterを通じてセキュリティー情報の発信に務めている辻伸弘氏。実は、辻氏がかつて所属した企業を退社した1日後に大角氏が入社するという形で「ニアミス」だった2人が、対談という形で初めてじっくり、日本のセキュリティーが抱える課題を話し合った。

脆弱性の指摘をするのは何のため?

大角祐介氏
大角祐介氏

大角氏僕はISPに入社後、サーバーのラックマウントからプログラミング、ネットワーク構築、カスタマサポートまでいろいろ経験し、その中でペネトレーションテストに興味を持つようになりました。いろいろ調べるために読んだ記事の中で辻さんの存在を知り、たまたまその時期に進めていた転職活動で、辻さんが当時所属していた会社に入社することにしました。そうしたら、僕が入社した日の前日に辻さんが退職されていたのですね。

辻氏一言聞いてくれればよかったのに!

大角氏今の仕事はヤフー社内の脆弱性診断とインシデントレスポンスですが、前職では脆弱性診断をしていました。セキュリティーという、ある意味「粗を指摘する」という仕事柄仕方のないことかもしれませんが、ペンテスターの中にもいろいろなタイプがいて、技術に特化して指摘してそれで終わりという人がいれば、初心者向けに分かりやすく説明できる人もいます。著書などを読んでいても感じますが、辻さんは断然後者ですよね。指摘のさらに先を見て、どう一緒に問題を解決するかを考えている方だと感じました。コミュニティでいろいろな会社の話を聞いてみると、脆弱性診断の報告会では時々、指摘をした部下を上司が叱責するケースも散見されるようですね。

辻氏ありますね、「いったいどうなっているんだ!」って。

大角氏だけど、矛先を向けるべきは部下ではなく、サイバー攻撃者です。だから、どうすれば良くなるかを一緒に考えましょうという姿勢が大切ですが、辻さんはそれが著書からも垣間見えて、すごく尊敬しています。もちろんテクニカルな部分は大事ですが、問題を直すのは人ですから、そのバランスが取れていることがとても重要だと思います。

辻伸弘氏
辻伸弘氏

辻氏何だか照れくさいですね。でも、おっしゃる通り上司と部下がいがみ合う必要はないと思います。それに、将棋の駒のように、人にも向き不向きや得意分野がありますから、バランスが取れた人もいれば、技術などどこか一点に優れたところがある人もいます。いい上司に巡り会って、適材適所で力を発揮できるのが、いいなって思います。「直す」と言っても、どこから直すのかという優先順位を示したり、本当の危険度を説明したりできるかも大事です。

大角氏指摘を受けて直したらテストし、再発を防止していくサイクルを回さないといけませんよね。そういう意味では、開発経験やネットワークの構築経験があるといいかもしれません。ペンテスターは、つい「これを直して!」と簡単に指摘しがちですが、アプリケーションやネットワークなどの構築経験があれば、それがどれだけ大変なことかが分かります。どう直し、直した後にどうテストをしたらいいか、パッチの適用やバージョンアップ後のテストをどうするのか、そういったアドバイスもなるべくするように心がけています。

「深刻な脆弱性」という見出しに振り回されがちな背景

大角氏脆弱性情報に関する報道にも課題があると思います。ニュースサイトで「これは危険な脆弱性だ」と報じられても、よく見ると、実はそうでもない。そういうケースをセキュリティー専門のニュースサイトでもかなり見かけますよね。ヤフーの社内では、「この危険度以上の脆弱性は●日以内に直す」という基準があるのでいいですが、ニュースなどの外の評価をそのまま当てはめてしまうと、大変なことになってしまいます。

辻氏これには、情報を発信する側と受け取る側の双方で、成熟度が足りていない部分があるのではないかと思いますね。

 メディアに関して言うと、その情報を誰に向けて発信したのか、対象者が分かりにくいのではないでしょうか。脆弱性の影響を受けるバージョンやCVSS(共通脆弱性評価システム)の深刻度を書いても、ニュースの発信側は受け取る側に対して、「自分は対応しなければいけないのか」「どれくらい急いで対応しなければならないのか」という事柄を噛み砕いて伝えていかなければいけないのですが、なかなか難しいところです。

 それにしても、ニュースで脆弱性の危険度を強調したタイトルを時々見かけますが、それは少々課題だと思います。同じ脆弱性でも、本当に攻撃を受けてしまう可能性やインパクトは、システムや人によって違いますから、今すぐその対応をしないといけないかどうかも違うはずです。つまり、今やらなくてもいいことを今やるというのは、無駄。下手したら害悪になりかねない場合もありますよ。その代わりに、本当にやるべきことができなくなってしまう。対応の優先度を見誤ってしまうと、やらなくてもいい対策をしたり、買わなくてもいい製品を買ってしまったりします。ですから、適材適所を自分で選べるような情報と受け取る能力を身に付けることも課題ではないでしょうか。

大角氏そうですね。そもそも、セキュリティー対策をするためにサービスをやっているわけではなく、より良いものをユーザーへ届けたり、サービスを提供したりするためにセキュリティー対策をしているわけですし。例えば、「新機能を追加する」と「セキュリティーパッチを当てる」という2つのタスクが生じた時、セキュリティーの問題が大きなものではないなら、パッチを当てるより新しいサービスのリリースを優先するように考えるのは当然のことです。

辻氏実は、僕がセキュリティーの診断テストを担当している時には、いっぱい粗を探して問題を見つけようという意識はありませんでした。ペンテスターの仕事は、問題に対応する人の負担を減らすことだと思っています。彼らができる限り最小の労力で今すぐ侵入できないようなものにすべく必要最低限の対策になるよう、ペンテスターが精査するわけですね。また、問題を見つけた時に、「パッチを当ててください」とは言わず、「このままでは(サービスが)死んでしまう可能性があるんですけど、これ(パッチ)、当てられそうですか?」と尋ねるようにしていました。僕らが指摘するのは、仮にサーバー1台分でも、指摘された側では同じような構成のサーバ100台にパッチを当てないといけない可能性もあるわけですから、どうすれば、できるだけ彼らのアクションを減らせるかを意識して報告するようにしていました。

大角氏それはいいですね。僕もテスターをしている時にこの工夫を知りたかったですね。今でもパッチの適用が無理そうなら、脆弱性の影響を緩和する何らかの方法を説明するようにしています。ヤフーに入社してからは、やはり手作業でのテストに限界があると痛感し、現在は自動でテストできるものは自動化し、作業のサイクルを自動で回そうという仕組み作りを進めています。一部は既に回っています。

 システムの環境をいつも最新の状態にして、設定もきちんと行うという、当たり前のことを当たり前にしていれば、現状ではほとんどのサイバー攻撃を防げます。でも「Linuxカーネルに脆弱性が見つかったから、今すぐ全員バージョンを上げろ!」といって、それができる会社はほとんどないですよね。

 テストと脆弱性への対応は切っても切り離せない関係です。最初から定期的にバージョンアップすることを考えないでリリースし、テストの内容もきちんと整備しておらず、バージョンアップのたびに手動でテストする――そんな作りにしてしまうと、後から“地獄”を見ます。

 ですから、常にバージョンアップしていくことを最初から考え、できる限り全てを自動化しておき、新しい脆弱性が出現しても、「じゃあバージョンアップしてテストを回しましょう、全部グリーンになったらデプロイOKですね」という世界になるのが大事だと思います。また最近では、Dockerに代表されるコンテナーなどの新技術も出てきているので、それも改善の一助になるのではないでしょうか。

辻氏システムががんばる部分と、人間ががんばる部分の両方がかみ合うようになりつつあることで、昔に起きていたようなインシデントは減ってきているかもしれませんね。それでもまだパッチが当たってないところや、パスワードが脆弱なままというような部分はあるので、ある程度システムでカバーしてあげないと、どうにもならないところがあるでしょう。その対応が面倒なら、クラウドにアップしておけば、(サービス提供側が)パッチも当ててくれる――という選択肢もアリだと思いますよ。

大角氏本当にそう思います。素直にAWS(Amazon Web Service)を使えば、「ほとんどの問題が解決するのに!」と思うことはとても多いですね。もちろんプライベートクラウドならば、自分たちでパッチコントロールできるという利点はありますが。

辻氏一方で、クラウドという新しい環境を使えば新しいリスクが生まれるのも事実です。今までなかったリスクをどれだけ想定するか、それを理解して使えば後々楽だと思います。セキュリティーに限らず何でもそうですが、スタートラインでどれだけ考えてやるかが重要ですね。

大角氏サービスを始めるとなると、どうしてもセキュリティーは後追いになりがちです。ただ、脆弱性はただのバグでしかないので、きちんと定期的にテストを回してバージョンアップしていく仕組みがあれば、対応の手間を解消できるのではないでしょうか。最近では「DevSecOps(※開発とセキュリティー対策と運用を一体的に捉えて取り組むという考え方)」という言い方をしますが、テストを手作業でする時代は後10年ほどすれば終わるのではないでしょうか。人は間違えるものですから、機械にやらせた方が良いでしょうね。

辻氏その場合は、機械がもっと成熟して精度の高い結果を出してくれるようになることを期待しますし、人間にも機械の出す結果が本当にそうなのかを評価できる能力が必要になるかもしれませんね。

このタイアップを読んでアンケートに答えた方の中から
抽選で10名にクオカード3000円分が当たります。

アンケートはこちら
提供:ヤフー株式会社
[PR]企画・制作 朝日インタラクティブ株式会社 営業部  掲載内容有効期限:2019年9月30日
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]