JNSA「セキュリティしんだん」
« (25)腹が立つのもわかるけど - 脆弱性とセキュリティ対策再考 |
(26)WannaCry覆面座談会 〜何故、単なるワームがこれほど騒がれたのか〜(2017年9月●●日)
4.今後、どうしていけばよいのか?
【Bさん】 やっぱり、背景にあるのは、Newsweekの記事にあるように、「パッチをあてないという言い訳をしている場合じゃない」ということ。パッチをあてられないのだったら、あてられないことを前提とした強固な設計にすることを、今からでもやればいいんだよね。「そんなのを今のシステムにできるわけないだろう」とよく言われるんだけれど、これからのものをそうすればいいのではないですか。
【Dさん】 取材しても、「わかっちゃいるけど、でもちょっと無理なんだよね」という話はよく聞きますね。
【Aさん】 そういうタイムラグ的なものを考えないといけないですよね。
【司会】 ただね、私もなんとなく、昔はSI企業に勤めていたので、「パッチあてろったって、そうは言ってもな」という現場の意見もわからなくもないんですけど、今回だったらイギリスの病院がやられて「みんなXPを使ってました」というような。
【Eさん】 イギリスの病院はXPを使ってません。あれは誤報です。ほんの数%だけです。
【司会】 医療機器のソフトウェアって、病院の人に聞いたんですけど、パッチの対応とかしてくれないんです。
【Bさん】 そうね。
【司会】 パッチが出てもそれに対応する新しいソフトウェアへのバージョンアップとかも全然してくれないので、パッチをあてられないんです。そういう話があるんですけど、いいかげん、その「しょうがないよね」というのを何とかするにはどう働きかけたらいいのでしょう。
【Eさん】 医療機器って、許認可をとったときから変更できないんですよね。アンチウイルスの定義を変えるとか、パッチ当てるだのできないから、ネットワークレイヤー[14]で守ってあげるしか、今の法律だと運用できないって聞いたことあるんですよ。
【メンバー】 製薬とかもそうで、使うものは許可された環境。
【Eさん】 最初の許認可をとった仕様を上がっても下がってもだめらしいですよね。
【メンバー】 ソフトウェアにとって、それはちょっと厳しいですよね。
【Eさん】 リリースした瞬間サポート切れとか。
【メンバー】 それを売って、保証しますとか言いたくないですよね。
【Bさん】 ああいう、目的がはっきりしていて、更新もしないものであれば、ホワイトリスト[15]をがっちりかけようよ、と相当言っていると思うんだけれど。IEとか余分なものをとって。パッチの5割くらいはIE系なんだよね。PDFも入れないとか、それだけでも攻撃対象がだいぶ減る。USBを挿入するところはしょうがないから、ホワイトリスト化した上で、ドライバの新規のインストールをブロックしておくとかのハードニング[16]をきっちりやったら、パッチはそんなにあてなくてもいいと思うんだよね。
【Dさん】 そこらへんの伝え方は難しいですね。
【Eさん】 今はやっているIoT[17]がミスったところですよね。いらないものを潰しとけばいいのに、telnet[18]開けちゃっている。
【Dさん】 歴史が繰り返してますね。
【Cさん】 でも制御系の現場とかもシビアで、設計してから年月がたってしまうと、余計なものがつながってきたりすることが現実に起きちゃうんですよ。そうすると、プロトコル変換器かけたら「あれTCP通っちゃう?」とか。
【Bさん】 IoTとスマートファクトリー系って、デバイスがコントロールできないネットワークの中で動くわけ。そう考えていくとnode to nodeの通信をどう担保するかなんです。信頼された相手とだけ、通信ができるという環境を作るのがキモで、その設計を入れるというのがどこにも書いていない。
【Cさん】 しかも難しいのが一元管理されてなくて、工場の中は工場長が王様だから、IT側は何もできないんだけれど、なんらかの拍子にインターネットに繋がなければいけないことになったとき、工場側はさっぱりわからないから、気がつくとぜんぶスルーで通ってましたとか。そういうのがあるので、ホワイトリストのソリューションも結構行き詰まることがあって。
【Bさん】 ガバナンスが効いていればいいんだけれどってことですよね。
【Cさん】 設計時はそれでいけるはずだったんだけれど、何年か経ったら変わってしまうというのが現実で起きてます。
【司会】 いったい誰が悪いのかって、もちろん、WannaCryを広めた人は悪いんですけれど、例えばメディアの報道のされかたでも、今時パッチ当ててないやつが悪いとか、バックアップをとっていないやつが悪いんだみたいな論調もあるわけじゃないですか。どうでしょう、本当にパッチ当ててないやつ、バックアップとってないやつが悪いということなんでしょうか。
【メンバー】 それ、しょうがないのでは、シートベルトをしめてないのが悪いとか。
【メンバー】 規制が入らないと、罰則がないと、という話になってしまう気がしますね。
【メンバー】 シートベルトを締めてなくても減点くらいだけれど、高速道でのバスの事故とかを見たら、やっぱりシートベルトは締めていないのが悪いということは伝えるべき、そういう風潮にすべきだと思うね。
【Bさん】 "On your own risk"というのがちょっと浅い気がする。で、丸投げ体質が色々なところで。
【司会】 日本の場合、誰かが守ってくれるというか。
【Bさん】 それもあるけど、ディテール考えないでセキュリティ対策もベンダに丸投げしてるから、実際どれだけ対策されているかとか、何を心配しているかが全然わからなくて、その会社のセキュリティポリシーとかコンフィグレーションリスト[19]とかを業者に丸投げして、合ってるかどうか、満たしているかどうかを調べろとしか言わないわけですよ。それで対策ができるかというとできない。
【Eさん】 丸投げっていう意味だと、SIの仕組みが結構いびつなんだろうなと思います。Windows 2000のときの「乗り換えどうするの問題」がXPでも同じようにあったじゃないですか。お金を積んでないんですね。そもそも自分たちが何を使っているのかをわかってないんですよ。Strutsもそう、なんだってそう。どんなパッチがあたっているかも、影響を受けるのかもよくわからないような状態。そのくせ、何か起きたら学校のせいにする親みたいにベンダのせいにする、その体質がよくない。
【Cさん】 でもね、それも過渡期だと思うんですよ。もっと熟成したら知らなくてもいい時代が来るかもしれない。皆さん車のエンジンなんか今更さわらないですよね。僕は昔キャブレターまで調整してたけれど、今できないですもん。全部ブラックボックスになっちゃって。そういう時代がITにも来るかもしれない。
【メンバー】 そんな時代になるまではまだだいぶかかりそうだから、中がどうなっているか教えることは無駄じゃない。だけど今ものすごいスピードで技術が進んでいくから、それを周知している時間がない。ないというか、効果がすごく薄いかもしれない。
【Bさん】 クライアント側はもう結構シンプルになってるかも。
【Cさん】 はやくそれを加速したいですね。車で言えばT型フォードから今のテスラになるまで、業界と国とみんなのものすごい努力があったわけじゃないですか。バンパーの高さを揃えて、ぶつかったときの事故を減らすとか、クラッシャブルゾーンを作るとか。法律でやることもあるし、自動車は税金取ってるから、ITとそこが違う。それがいいと言っているわけではないけれど、やっぱりある程度何かイニシアティブがあって、みんなそれに沿って一緒に行こうね、というところも必要なんじゃないかと思うんですよね。
【メンバー】 僕はセキュリティ税をとればいいと思ってる。10円でも100円でもとって、それを特別会計のほうに回せば。
【Cさん】 やっぱり今の状況はユーザに甘いというか、インターネット利用者の管理義務が薄すぎ。ここを直さないとすべてがうまくいかないんじゃないかと思ってます。人間、社会で生きていくのに自由なんかないですよ。みなさん自由があると思ったら空想ですよ。選択肢があるだけで自由なんかないんですよ。もうちょっとユーザ側に義務とかね、責任があるといいなと思うのが最近のITの世界。本当はなくても過ごせるのがベストだと思うけれど、そうじゃないから。誰かが検討しないといけないけれど、官僚はやりたがらないし、政治家も票がとれないので誰も着手しない。仮に、「感染を放置していると回線が256kbpsになります」とかすれば、みんなもっと考えると思うんですよ。
【Aさん】 他人に迷惑をかけるのはだめだね。
【Cさん】 民族的な特性もあると思うんですよ。日本は農耕民族で同一の場所で暮らさなければいけないから、社会に対して迷惑をかけるやつはだめなやつだったんですよ。でも、狩猟民族はそうじゃない。
【メンバー】 ところが、日本モデルというか、農耕社会が思いっきり狩猟民族に変わろうとしているわけですよ。成功してないやつは切り捨てるっていう文化に変わっていく。
【Bさん】 日本と海外の違いは、「ナショナルセキュリティ」という基盤があるかないかだと思う。役所の人と話してても、基盤がないのよ。民間向けの話でやっているから、「みなさんがんばってください」でどうしたいかという絵がぜんぜん見えてこない。
【司会】 長い間「ナショナルセキュリティ」って言葉は禁句だったわけじゃないですか。日本では。
【Bさん】 もちろんそうなんだけれど、そういうセキュリティ対策とか現状とか見たとき、ミッシングピースが「ナショナルセキュリティとしてどう考えるのか」だというのは、時々感じますよ。
【メンバー】 ホームランドセキュリティの対義語で、ナショナルセキュリティと言ってます?
【Bさん】 安全保障としてのサイバーセキュリティと、コンシューマを守る、私のPCとか家族のPCを守るセキュリティは多分違うと思うのね。
【メンバー】 違いますよね。アメリカははっきり分けてやっているじゃないですか。
【Bさん】 分けてますね。ホームランドセキュリティという形で言ってるのはその通りなんですけれど。
【Aさん】 あと、「我が社を守る」っていうのも違うと思いますよ。個人を守る感覚と、国を守る感覚と、我が社を守る感覚は全然考え方が違うなあと。
【Bさん】 なんか、ガバナンスみたいな話になってくんだろうね。抽象的な外国語だからね、ガバナンスって何っていうことになるんだけれど。まさしくガバメントというくらいで、本来論的にいうと安全に対する安全保障なんだよね。会社の中でもガバナンスっていうのは安全保障を含んでる。
【Aさん】 ユーザ側から見ると、「自分の会社を守る」っていうのは提供側とは考え方がやっぱり違うなって思う。
【Bさん】 主語がある。
【Aさん】 そう。だから一般名詞としてセキュリティを語るよりも、「うちを守るためにどうしたらよいか」の方が、具体的、リアルなことを考えられる。
【Bさん】 海外の言葉と日本語の違いとして、「主語が不明瞭である」っていうのがあるね。なんのためのセキュリティかが、国なのか、企業なのか、私なのか、主語が不明瞭なまま話をしているから、ぐにょぐにょして、全くレイヤーの違う話を一緒のテーブルに乗っけられてるわけですよ。
【Aさん】 そうだ。さっき「あることをこうだって言っちゃうと後で失敗する」とかいう問題が出てましたよね、「メールに気をつけろ」と言ったとか。
【Eさん】 エビデンスがなかったら推測だと言えと。
【Aさん】 そう。たとえば政府がテレビで言うときは、そういうことになる。でも、自分の会社で俺がいうときは、それは自分の会社の中だから失敗してもかまわない。
【Eさん】 影響範囲が、ということですね。
【Aさん】 そう。主語が明確で、責任は俺がとるということだとすれば。
【Bさん】 確かに、主語が付くってすごく大事で。
【司会】 要するに、守るものが何かというのが明確であれば、守りやすいわけですね。ではナショナルセキュリティとかいった場合に、守るものっていったい何なのか。
【Bさん】 その視点がないまま、色々言っているわけですよ。重要システムの保護とか言っているけれど、それがナショナルセキュリティの軸がないままやっても、ただのパッチの話のわけよ。ゼロデイ脆弱性の優先情報提供っていう話があるけれど、あんなのパッチが完璧にあたっているから意味があるわけだよね。パッチがそもそもあたってないところに優先情報提供しても、ゼロデイってとっておきの攻撃のわけだから、そんなの使わなくても侵入できるところに提供してどうすんのって。そういうレーティングがおかしいんだよね。
【Eさん】 でもレーティングがおかしいというのは、脆弱性情報の発表の仕方もそうですよ。緊急度がいくつとか、緊急重要度だけで測るじゃないですか。それが実際にできるのかできないのか書かないで報道するでしょ。
【Aさん】 実行可能かどうかね。
【Dさん】 エクスプロイト[20]が出てる・出てないとか。
【Eさん】 そう。エクスプロイトがあるのか・ないのか、ないけどインザワイルド[21]なのか、どうなのかがないまま、CVSS[22]の基準値だけフォーカスして、現状値を言わない。攻撃コードがある/ない、すでに攻撃が観測されてるというのを加味せずに言っちゃうでしょう。
【Aさん】 ユーザ側からすると、そのパッチをあてられるかどうかのほうが重いのよ。
【Eさん】 あてられるかどうかもそうなんですけれど、「パッチを全部あててください」と言うと、すごくいやがられるんですよ。1個あてるのも、100個あてるのもテストは一緒かもしれないけれど、問題が起きたときの切り分けが全然違うんです。MSで緊急・重要・注意みたいのがあるじゃないですか。あれで緊急のやつでも、攻撃のやり方がないんだったら、別にパッチをすぐ当てなくてもいいと思うんですよ。でも重要だけれど、「攻撃がもうあります」「攻撃コードが誰でも手に入ります」だったらこっちのほうが僕は優先度が高いと思うんです。そういう伝え方をしないじゃないですか。そこが欠けているんじゃないですかね。現場のことを考えていないというか。
【Dさん】 CSIRTの中にはそのあたりも自社でやりはじめているところがありますね。
【Aさん】 現実はそうですよ。パッチをあてるかあてないかを誰かが決めなきゃいけないじゃないですか。で、問題として攻撃する側の話がひとつあるのと、それを受けて立つ側の話があって、受けて立つ側は何かといったら、たとえばStruts2の話は重いわけですよ。簡単に言うと、パッチをあてて動くかどうかを全部検証しないと、サービス継続にかかわっちゃう問題だから、確認できるまではリリースできないわけです。そうすると、Goサインが出てから3ヶ月くらいかかっちゃう、これが全部片付くまでの間、どうするのかというととりあえずWAF[23]で、とかいうんだけれど、WAFだって、3日もすれば・・・。そういう話が、攻撃側は割と一般論で語れるんだけれど、守る側の話は主語がないとわからない。
【Bさん】 あと、世の中の議論の中で抜けているのが権限管理。今のPCは一般ユーザで使っていると思うんだけれど、サーバー側のアプリケーションはだいたい特権で動いているんだよね。データベースとかも特権ユーザで動いていて、いわゆるミティゲーション[24]やアイソレーション[25]みたいなのが、ほとんど考えられてなくて、「死ぬときは一緒だ」みたいな設計になっているわけですよ。そこを見直すだけで、エクスプロイトが成功した後の話が全然違うはずなんだよね。
【Dさん】 もしかすると、さっきおっしゃっていた、丸投げの話と関わってくるというか、何がどういう権限で動いているか、把握できてない・・・
【Bさん】 把握できてないと思うのと、開発環境のときに閉めておかないと、後から閉めても無理なんですよ。
【メンバー】 今Aさんが言った、パッチ全部当てるのに3ヶ月かかるとかいうの、それは10年前とかの設計で作ったシステムのことだよね。
【メンバー】 いや、Struts2だったらそんな昔じゃないですよね。
【Aさん】 つい最近ですよ。
【メンバー】 それっておかしいと思うよね。
【Bさん】 そうね。
【メンバー】 その設計がおかしいんじゃないか。後でパッチをあてるということは10年前にはとっくにわかってた話なのだから。予想できないものが出てくるとしたら、やはりそれを検証できる環境として同じものを作っておくべきじゃないの。
【Eさん】 まあ、お金がある人は。
【メンバー】 だからそれはリスクの容認でしょう。その会社にとっての。
【Aさん】 わかっている人が容認しているのなら、文句言わないけど、わかりもしないのに容認するなよって言いたい。
【メンバー】 だから、今のシステム設計においてはね、脆弱性は発現してくるということ、新しい脅威が出てくるということを前提にしたシステム設計をしなきゃだめなのね。
【Eさん】 べき論ではね。
【メンバー】 IoTや自動車とかそういうのじゃなくて、プラントとかだと「止められない」とかいう話もあるわけですよ。可用性のほうがものすごい重要で、だけどやっぱり結論はあてなきゃだめ、そしたらやっぱりそのミニチュアじゃないけれど、それが検証できるようなものを最初から作っておくっていうのは、当たり前になってほしいなと。
【Eさん】 でもそれは、その人達が理解できるような説明を僕たちしてこなかったからじゃないですか。だから僕らの責任だと思いますよ。
【Bさん】 それ、セキュリティだけの話じゃないと思う。DevOpsの流れって、今の話で、自動的な検証と、あと問題が入り込みにくい開発環境みたいなことをやって、それで自動的にばんばん回していくという考え方なんで、その中にDevSecOpsと言ってるんですけれど、セキュリティの検査も入っていけばよい話で、技術的に言うとクラウドみたいなものをベースで考えていくと、検証環境はすごいラクなんですよね。1億円するシステムを作ったとしてもその1億円をもうひとつ用意する必要はなくて、一時的に仮想環境を立ち上げればよくて、その切り替えも一度に100台やる必要はなくて、見ながらやっていくことができるから、そういうIT運用として、そもそもどんな作戦でやるんだみたいなところが今改めて問われていると思ってて。
【メンバー】 そうですよね。OT[26]のほうが重要。OTとITと。
【Bさん】 ウォーターフォール[27]の呪縛なんですよ。パッチを当てないというのは、「ウォーターフォールで検査が終わってメンテナンスモードに入っているのに、なんでもう一回手間をかけなければいけないんだ!」という議論なんだけれど、手間かけるのが当たり前の環境をどうやってつくっていくかという問題に変えていくと、実はセキュリティの問題も仕様変更の話も割とスムースに入るはずなんです。やっぱり、丸投げでベンダに責任を負わせて来たけれど、そこが限界になってきている。汎用コンピュータ時代みたいに何百億円もつぎこめばベンダも頑張るけれど、「Windowsで出来合いのシステムをベースにアプリケーション作りました」みたいなところに、そのコストは載らないですよ。
- [14] ネットワークレイヤー:
- 重要な情報システムを保護しようとする場合、@ネットワークレイヤー、AOSレイヤー、Bアプリケーションレイヤーのような多層仕立てで対策を行います。この発言では、OSやアプリケーションにパッチを適用できないため、もっとも下層のネットワーク設備の部分で攻撃を食い止める必要があるという意味です。
- [15] ホワイトリスト:
- セキュリティ対策の一つで、「その機器上で実行させて良いアプリケーションのリスト」を作って、そのリストにないアプリケーションの実行を禁止する仕組みのことです。
- [16] ハードニング:
- コンピュータに対して複数のセキュリティ対策を実施することで、攻撃を成功させにくくすることです。
- [17] IoT:
- 顔文字だと思っている人もいますが、英語の"Internet of Things"(モノのインターネット)の略で、これまでのインターネットがコンピュータ同士をつなぐものだったのに対して、家電・車両・建築物などさまざまなものを接続するネットワークに発展するという動きのことです。
- [18] telnet:
- ネットワーク経由で他のコンピュータを使うときに用いる通信方法のことです。
- [19] コンフィグレーションリスト:
- 市販のアプリケーションなどの設定について、自組織の事情に応じて調整した内容を記録したリストのことです。
- [20] エクスプロイト:
- 脆弱性を悪用することを目的として作成されたソフトウェアのことです。攻撃者が作成するものだけでなく、セキュリティの研究者やベンダが脆弱性を悪用した攻撃が可能であることを検証するために作成したものもあります。
- [21] インザワイルド:
- コンピュータウイルスやワームなどが、インターネットを通じて拡散している状態のことです。
- [22] CVSS:
- 国際的に脆弱性の評価基準を共有するための手法である、共通脆弱性評価システム(Common Vulnerability Scoring System)のことです。
- [23] WAF:
- 英語の"Web Application Firewall"の略で、ウェブサイトとそこで実行されるアプリケーションを対象とする攻撃を防ぐ機能が強化されたファイアウォールのことです。
- [24] ミティゲーション:
- 攻撃の影響を少しでも緩和(migigation)するために行うセキュリティ対策のことです。
- [25] アイソレーション:
- 攻撃を受けるおそれのある機器を守りたい機器から分離(isolation)することによって行うセキュリティ対策のことです。
- [26] OT:
- 英語の"Operational technology"の略で、運用やモニタリングを制御するための技術のことです。情報を取り扱うための技術であるIT(Information Technology)と対立するのではなく、組み合わせて用いることでより高度であったり、効率的であったりするようなサービスが実現されると考えられています。
- [27] ウォーターフォール:
- ソフトウェア開発において、開発の一連の手順を「要件定義」「設計」「プログラム開発」「テスト」などの工程に分割し、ひとつの工程が完了してから次の工程に移行させるような手法のことです。水が上流から下流に流れることのアナロジーからこのように呼ばれます。この反対となる手法が「アジャイル」です。
« (25)腹が立つのもわかるけど - 脆弱性とセキュリティ対策再考 |