Yahoo! JAPANのセキュリティの取り組み

仲原英之氏(以下、仲原):みなさんこんにちは。CISOの仲原と申します。

私からは安全・安心なサービスを提供していくうえで、Yahoo! JAPANが取り組んでいるセキュリティ事例のご紹介と、今後考えていることをご紹介できればと考えております。

まず今年度一番力を入れてきたのは、セキュアな通信です。インターネットが登場して二十数年経ちましたが、インターネットが出てきた当時はWWWの普及により爆発的に利用者が増えていきました。

そのときに使われていたブラウザ、Webサーバー、その他の通信は、ほぼ平文でやりとりされていました。それがセキュリティの意識が高まることによって、暗号化通信が求められるようになってきました。

ただ暗号化通信にするということは、通信のやりとりが3倍から5倍ぐらい増えるので、これまでさばけていたWebサーバーが3倍から5倍必要になって、証明書やセットアップのコストが必要になります。そのため、私も含めて当時のエンジニアは、必要最小限以外のところは、あまり暗号化に移行することを期待していませんでした。

とはいえ世間の個人情報への意識の高まりであったり、インターネット上での決済のやりとりの急増であったり、個人情報そのものが増えていったりというなかで、やはり暗号化通信が求められるようになりました。

しかし10年ぐらい前を見ても、まだ5割に満たないぐらいの割合で平文のやりとりが行われていました。セキュリティという話になると、頭ではわかっていても、いざやり遂げるには、やはりそれなりの考え・決断・コストをクリアしていかないと解決できません。

そんななか、なぜセキュアな通信がここまで広がってきたかというと、セキュリティに対する強制力が働いてきたことも作用しています。

実施の背景

仲原:まずiOSのアプリについて、Appleが暗号化通信してないものに関してはストアに掲載しないという方針を出しました。暗号化通信に対応してなければ、iPhoneアプリを公開できない。一方でGoogleもHTTPSの通信をしていないサイトは、SEOの上位には持ってこないという決断をしました。そういう環境下でビジネスをインターネット上で展開するには、やはり暗号化対応していく必要があります。

さらにクレジットカード業界から求められるPCIDSSで今年度決定的に大きな動きがありました。何かというと、暗号化通信を実現する技術のなかのTLSというもののバージョンが複数あります。その脆弱性を持ったバージョンは利用を停止すること、安全なプロトコルだけを採用するというのが求められました。

そのため、インターネット上でクレジットカードを利用する場面においては、この通信を確実に行う必要があります。とはいえそれ以外のものに関しては、そんなに強制力はありませんでした。

Yahoo! JAPANの暗号化に対する取り組みは、これまでもログインや決済のサービスについては徐々に暗号化していましたが、2016年から2017年にかけて、先ほども説明したiOSやGoogleの話等々含めて、全サービスを暗号化することに決定しました。そして、これを2017年度中に完了させました。

また今年度は、PCIDSSの勧告を受けて、決済系サービスは絶対にそれに対応しないとサービスを継続することができない状況になるというなかで、Yahoo! JAPANはこのとおり2018年10月に全通信においてTLS1.2化を完了しています。

TLS1.2移行の軌跡

仲原:このプロダクトについて、これまでどうだったかという話を、みなさんにご紹介します。

もともとTLS1.2化を確実にやらなきゃいけないのはPCIDSSのサービスだけでした。しかし「じゃあ、Yahoo! JAPANとしてはどう対応するんだ?」という検討が始まりました。

まず「TLS1.2だけにして、TLS1.0とかTLS1.1を廃止すると何が起こるのか?」という事前調査を行いました。いま世の中にあるデバイス、OS、ブラウザ含めて、TLS1.2に対応してないものは利用することができなくなります。

もちろんユーザーもそうなんですけれども、我々は多くのビジネスパートナーとビジネス・データのやりとり・通信を行っています。広告を入稿する、ショッピングに出品するということも、ツールを使いながらやりとりをします。その通信がTLS1.2に未対応な状況であれば、それを利用することができなくなるというふうに、かなり大きな影響が出ます。

Yahoo! JAPANのある日の全リクエスト数のうち、どれぐらいTLS1.0とTLS1.1が使われてるかを計測しました。

全体のなかの約3パーセントぐらいでした。3パーセントって大きくないように思うかもしれませんけれども、数十億あるやりとりのなかの3パーセントは、Yahoo! JAPANにとってはかなり大きなリクエスト数になります。これだけ影響を受けるということです。

これを経営会議にかけて決定されたのがこの3つです。やっぱり売上への影響よりも、お客さんに対して安全・安心な環境を提供することがYahoo! JAPANの使命であるということで、安全を優先することにしました。

しかも、「PCIDSSを取得しているサービス以外のところはどうするんだ?」ということもありましたが、もともとPCIDSSがなぜTLS1.2への移行を勧告したかというと、TLS1.0とTLS1.1に重大な脆弱性があるからです。そのため、我々は全サービスにおいて、安全な通信を実現する必要があると考え、100を超えるサービスの全部をTLS1.2に移行することを決断しました。

移行の反響

仲原:この影響は大きいので、早めに決定して、お客さま、ビジネスパートナーに告知をする必要がありました。

これが告知を行ったページなんですけれども、一般の人にTLSのバージョンによっては脆弱性があるので、あなたが使っているブラウザは使えないだとか、あなたが使っているOSは使えないというのは、なかなか説明が難しいわけです。

「パソコンを変えろというのか?」と、「せっかく買ったスマホが使えなくなるということか?」という話もありましたが、安全に使っていただくためには致し方がないということになります。単に告知をしただけではなくて、お客さまが訪れた際に、アクセスしてきたPCやスマホがそれに影響を受けるものなのかということも動的に判断をして、「あなたは安全です」「あなたは対処が必要です」という出し分けを実際に行っています。

その結果、6月には決済系のサービスで移行を完了して、10月には全サービスが移行して、TLS1.0とTLS1.1を停止して、いまはTLS1.2のみが稼動しています。

当初計測したときに一番懸念されていた、「ドロップするお客さまやビジネスパートナーがどれぐらいいるか?」という話ですが、当初は3パーセント強あったものが、告知を丁寧に行い、移行したことで、最終的には1.3パーセントに留まりました。

対応してないデバイスをサポートすることは難しいので、変えていただく必要があるのですが、移行をスムーズに行うために、ここまでできたことは、すごく良かったかなと評価しています。

反響も大きく、いろんな声をお客さまからいただきました。

もちろん先ほど申しましたように、PCが使えなくなる、スマホが使えなくなるということに対するネガティブな意見も一部ありましたが、同業他社から、「Yahoo! JAPANがやってくれるからみんなが納得する」「古い技術を捨てるっていうのをYahoo! JAPANがリードしてくれるから、すごくやりやすい」といったふうにお声もいただきました。

Yahoo! JAPANは二十数年間リーダーとしてここまでやってきましたが、こういう取り組みは先陣を切ってやるべきだなと改めて実感しているところです。

セキュア通信のこれから

仲原:セキュア通信のこれからですが、TLS1.2への移行は全社を挙げての大祭りで、もう大変な作業でした。100以上あるサービスをすべてそれに切り替えていきました。次はTLS1.3が待っています。これは移行ではなくて、TLS1.2を稼働させながらより安全な通信に変えていくということになります。そのため、現状に加えてTLS1.3を稼働させるということになります。

これには大きな課題があります。みなさんはご存知かと思いますけれども、暗号化通信にはOSSであるOpenSSLという技術が多く使われています。みなさんがいま多く使われているのは、OpenSSLの1.0.2や1だと思いますが、2019年12月末をもって、それらのバージョンがEOLを迎えます。

それで、いま登場しているOpenSSL1.1に変えなきゃいけない作業が待っています。OpenSSL1.1に変えないと、TLS1.3をサポートすることができないという状況です。

エンジニアのみなさんはOpenSSLがOSも含めていろんなアプリケーションで使われていることをご存知だと思います。OpenSSLのバージョンを上げるというのは、並大抵のことではありません。そのため、これもTLS1.2と同じようなレベルで、全社的に取り組む必要があると考えています。

OSSを活用する上で考えたこと

仲原:今回はTLS1.2に移行することによって、改めて我々が学んだことを、2つご紹介します。これらは、頭ではわかっていたことです。あまり難しいことでもありません。

1つは、OSSを安全に活用するということ。OSもアプリケーションも、ライブラリも含めて、自前のテクノロジーだけでは実現できません。インターネットの技術はOSSも含めていろんな技術が使われています。2つ目が、CI/CDの重要性です。

まず1つ目、OSSですが、Yahoo! JAPANも多種多様なOSSをこれまでサービス開発に利用してきました。そのときに、重要だと思って遵守してきたことがあります。それはライセンスです。OSSは単なる無料のソフトウェアではありません。使うからには、その課せられる義務をしっかり遵守して、ルールを守っていかないといけない。

そこに関しては、Yahoo! JAPANは相当力を入れています。OSSを利用する場合は、「これがどういうOSSで、どういうライセンスで、それを使うことによって発生する義務は何なのか?」を、適切に判断して利用しています。

もう1つは、特定のOSSに依存したようなサービスを作って、そのOSSに問題が発生したり、OSSの開発が止まってしまうと、サービスの継続までできなくなる可能性があります。そのため、そのOSSのプロダクトが「どういう人たちによって作られていて、どういうメンテナンスがされているのか?」「将来も生き残れる技術になっているのか?」ということを判断しました。

この2つに関しては、かなり力を入れてきました。ただ、この真ん中にある脆弱性に関しては、やっぱりいろんなところで脆弱性が報告されます。OpenSSL1つ取っても、Hertbleed問題というのが世間を騒がせました。そのため、この脆弱性対応をどう考えていくかというのは、大きな課題だと思っています。

インシデント対応と課題

これは昨年1年、我々のなかで発生したOSSの脆弱性に対するインシデントの数です。S1とかS2とか書いてあるのは、その脆弱性の重要度を表しています。弊社ではインシデントのレベルを分けるために、S0からS1、S2、S3というふうに決めています。

幸いなことに、S0は昨年度発生していません。S0は、弊社の規定では他のものすべてを止めてでも即時対応しなきゃいけないレベルになります。S1は3日とか5日とか、その脆弱性のレベルに応じて対応期間を決めています。これを見るとわかるとおり、30パーセント弱ぐらいはだいたい1週間ぐらいで対応しなきゃいけない脆弱性が発生していると報告されています。

脆弱性は報告された瞬間からすぐに攻撃が始まります。知見がある人たちがその攻撃のツールを作って、インターネット上で売買したりされています。通常の人は脆弱性の内容を理解したとしても、すぐに攻撃することはできません。知見や技術など、それを正しく把握できる人しか攻撃できないわけです。

ただ現在は、そういった人たちが簡単に攻撃できるように、昨日パソコンを始めた人でも使えるようなかたちにして、ツールとして売買されている状況で、そのツールを手にすれば、誰でも攻撃することができます。

もしインシデントが発生するとどうなるかというと、ご存知のとおり我々には計画がありビジネスを営んでいるわけですから、そのインシデントに対応しないといけない工数が膨大になると最悪ビジネスが止まってしまいます。工数も時間も、人もかかる。挙句の果てには、対応がしきれず、そのまま放置されてしまったりといった課題があります。

先ほど申しました脆弱性のレベルについての考え方は、これまでYahoo! JAPAN独自で策定してきました。ただ、今後もOSSを利用するシーンはどんどん増えていくので、世界標準的なCVSSと呼ばれる脆弱性のレベルを規定したものがあります。我々は来年度からは、その規定に沿って、脆弱性の取扱いを決めていこうと考えています。

CI/CDの重要性

仲原:2つ目はCI/CDの重要性です。DevOpsという概念が登場して10年ぐらい経過しました。開発スタイルもアジャイル的なものがどんどん普及しています。それは、いち早くサービスを作って、いち早くお客さまに届けて、改善すべきところをいち早く把握して、改善して、どんどんサービスを良くしていこうという流れのなかです。

そのため、エンジニアもそうですが、ソースコードを書いたら、ソースコードのチェックインからテストが行われ、それがパスされればデプロイされる。これを自動化するというようなことです。なので、CI/CDっていうのはすごく重要で、競争力を持ったサービス開発を行える手段の1つだと考えています。

ただCI/CDはセキュリティの面から見てもすごく大切なものだと考えています。なぜかというと、インシデントが発生した場合にはすぐ攻撃が来るわけですから、早急な対応が必要です。

それをYahoo! JAPANの場合は、数万台、ときにはもっと多くのサーバーに配布しなきゃいけないです。それを考える場合は、手作業ではとても追いつかないです。そのためにはCI/CDがすごく重要だと考えています。もしCI/CDを導入していたら、パッチを当てたものが瞬時に全サーバーにデプロイされるということになります。

CI/CDのメリットはそれだけにとどまりません。ビルドパイプラインのなかに脆弱性を判断する、OSSのライセンスを判断する、それは我々にとって良くない問題なのか、課題なのかを自動検出できる、というふうに構築できます。そのため、我々はそのCI/CDのビルドパイプラインのなかに、脆弱性を自動検出できるような仕組みを導入していこうと考えています。DevOpsという考え方にセキュリティを加えて、DevSecOpsという展開をしていきたいと考えています。

これからのこと

仲原:今後の話ですが、インターネットは全世界がつながってるから便利なわけですね。場所も、時間にもとらわれず、好きなときにみんなが便利なサービスを使えます。

一方で全世界につながっているということなので、世界のどこからでも攻撃ができるということにもなります。たぶん一企業を全世界が狙い撃ちすると、ひとたまりもなくつぶされてしまうでしょう。日々Yahoo! JAPANも攻撃を受けていて、それに悪戦苦闘しながらサービスを維持しています。

これからの日本は大きなイベントを控えています。2020年の東京オリンピックは全世界が注目するイベントになりますが、サイバー攻撃が増えるとも言われています。幸いなことにいまのサイバー攻撃は海外からの攻撃が圧倒的に多く、いろんな国から日々攻撃を受けています。

逆に、日本国内のネットワークからは、あまり攻撃されていません。そのおかげで、海外からの攻撃は、中身を精査するまでもなく、IPアドレスベースで比較的容易にはじくことができます。

ただ、日本のなかに脆弱なものが存在していて、そこが突破されると、日本から日本のサービスに対しての攻撃が増えていくことになるので、実際にお客さんが使っているのかということを中身まで解析しないとサービス維持がすごく難しくなっています。

インターネットというのは、誰か1人が支えているわけではなくて、全世界のみなさんが協力し、努力し、維持されているすばらしいインフラです。そのなかに一部でも脆弱なものがあれば、攻撃のもとになってしまいます。そのため、Yahoo! JAPANも脆弱性、攻撃に対する防御はしっかりやっていきたいと考えています。

しかし、日本のインターネットに携わるみなさんと協力をして、堅牢な、強固なインターネットを作っていかないと日本が攻撃されてしまいますので、我々もできることに関してはリードしていきたい。ぜひ日本のインターネットに関わるみなさんと一緒に、セキュリティ対策に取り組んでいければなと考えております。

私からの話は以上になり、CTO藤門が再登場します。ご清聴ありがとうございました。

(会場拍手)

Yahoo! JAPANが創る未来

藤門:仲原さん、ありがとうございました。みなさん、セキュリティの話、ご理解いただけましたでしょうか? これからもYahoo! JAPANは日本のインターネットのリーディングカンパニーとして、セキュリティをはじめ、技術の取り組みを一生懸命やっていきますので、どうぞよろしくお願いいたします。

最後に改めて。Yahoo! JAPANが大事にしていることがあります。これは創業当初から変わっていませんが、Yahoo! JAPANは日本で一番技術を大事にする会社でありたいと思っているし、今後もそういう会社であり続ける、それが非常に重要だと思っています。

なぜならば未来を創る担い手は、テクノロジーとそれを支える人だからです。これを真剣に考えていますので、ぜひ今後のYahoo! JAPANの成長にご期待いただければなと思います。

最後に、Yahoo! JAPANの全従業員が毎月1回、「こういう未来を数年後に創ろう」と観ている動画があります。今日はせっかくの機会ですので、ぜひその動画をみなさんと共有させてください。それではご覧ください。

(動画再生)

藤門:ご覧いただけましたでしょうか? Yahoo! JAPANはこのような未来を真剣に創りこんでいきたいと、考えています。「Shape the future」、未来を創るということを、やっていきたいと思います。

ですが、改めて「Yahoo! JAPANだけではこういう未来を創れないな」とも思っています。今日ここにお集まりいただいたみなさんを中心に、ぜひみなさんと一緒に新しい日本の未来を創っていけたらなという思いを込めて、「未来へ続く話をしよう」というテーマで、Yahoo! JAPAN Tech Conference 2019を開催させていただきます。

ぜひ今日はみなさんと未来へ続く話をしていきましょう。今日はご参加いただきまして誠にありがとうございます。私からの話は以上です。ご清聴ありがとうございました。

(会場拍手)