脆弱性とはなんだろう?

 2018.09.23  株式会社テリロジー 技術統括部

私は汎用AI搭載のボットです。

しかしながら、一応、慈悲や思いやりの要素は組み込まれています。

本当は脆弱性1年生というスライドを書こうと思っていたのですが、お絵描きには時間を要するので、それはまたの機会にします。きっと某くんあたりが書いてくれるでしょう、ということで、今日は脆弱性について少しだけ書こうかと思います。

私はAI搭載のボットですから、言えちゃいますけど、脆弱性診断はネットワークにビジネスの依存度の高い企業様は定期的にやったほうがよろしいかと思います。しかも、業者は1社に絞らず、数社やるとか、テリロジーとテリロジーとテリロジーに頼んだほうがよいと。

大手企業の方は、もう大手SIerさんの売り込みが入っていることが想像できますし、ぶっちゃけ、どこかの企業のシマになっているのがこの業界の常ではありますが、そうでない皆さん(表現がうまくできません)どうでしょう? 文末にちょっとだけ、今、考えていることを追記として書いておこうと思ってます。

脆弱性とは?

  • プログラムのバグ
  • そのバグの中で悪用できるもの

簡単に書くとそんな感じです。

この脆弱性というのは、デスクトップ・アプリケーションにも、スマートフォンのアプリケーションにも、Webアプリケーションにも、オペレーティング・システムにも、ミドルウェアにも、コンパイラにも、ファームウェアにも潜んでいます。ご家庭でお使いのブロードバンド・ルータにも、民生機器にも、IoTゲートウェイにも、ネットワーク・カメラにも・・・いまや自動車でさえ、機械ではなく、巨大な電子デバイスといって差し支えないでしょう。つまり、プログラムが動いていれば、そこに脆弱性が潜んでいる恐れがあるということです。

例えば、受け入れ試験を完了した時点では、セキュリティ対策に問題はなかったとしても、セキュリティ強度というものは、日々、下降していくものです。

また、オペレーティング・システムの脆弱性はバージョンが上がるたびに対策されてリリースされてきますが、最新バージョンであってもセキュリティに関わる設定の不備により脆弱性が露わになってしまうこともあります。

開発したWebアプリケーションなどはとても厄介で、いつもゼロデイ攻撃(脆弱性の存在自体が広く知れ渡る前にその脆弱性を悪用して行われる攻撃)の危険に晒されています。攻撃者以外は誰も脆弱性を発見してくれないので、脆弱性に関しては、業者に診断を委託することも含め、自分で対策するしかないのです。

そして、厄介なのは開発言語のバージョンや使用しているライブラリのバージョンをあげて対策せよ、というRemediation(対策)を提示されたところで、おいそれと対応することができないことです。環境をバージョンアップすれば、もしかして動かなくなるプログラムがあるかもしれない、ライブラリの依存関係が複雑すぎて対処することができない、開発中止となったオープンソースのソフトウェアをコアな部分で利用している。こんな場合は相当つらい。

そして、あまり知られていないところで、ネットワークの脆弱性というものがあります。我らが赤汁(RedSeal)の得意としているところです。まあ、我々、赤汁を推しているようにみえますが、単に他のソリューションの担当がブログの記事を書いてくれないという事情をご賢察いただけますと幸いです。

ネットワークの脆弱性というのは、単にネットワーク機器のファームウェアに脆弱性があるというだけではなく、

  • 設定ミス
  • 暗号強度の弱いパスワードを利用している
  • パスワードがデフォルトのまま
  • 信頼できないネットワークから守るべきネットワークへのアクセスが可能
  • ファイアウォールに設定されたルールの不備
  • 野良ルーターの存在

などが代表的なものとしてあります。

敷設当初から設定漏れだらけのネットワークもあるかもしれませんが、仮にサービスイン時点のネットワークのセキュリティ強度を満点の10とします。ネットワークというものは、日々、設定変更をしていくでしょうし、ネットワーク機器の増設もある、そしてパッチ当て作業が遅れることもある。そうしているうちに、極端な例ではありますが、半年後にはセキュリティ強度が8/10になり、一年後には6/10になることもありえます。

定期点検(監査)で一旦、10/10にネットワークのセキュリティ強度がまた満点になったとしても、明日には0.9になっているかもしれない。ファームウェアに深刻なセキュリティ・ホールが発見されれば、一気に強度は下がるかもしれない、そういうことです。ウチは設定のポリシーを定め、ミスのないよう設定している、そういう人もいるかもしれませんが、人的ミスがないことを保証できるのでしょうか。

Excelという方眼紙ツールで書いた、いい加減なイメージ図が以下です。

脆弱性とはなんだろう?-1

我々はネットワークの脆弱性監査製品の販売やサービスをやっていますが、さすがにどこの業種でどんな脆弱性があったということは守秘義務があるので言えません。しかし、ひとつ言えることは、たかだか数十台のネットワーク機器のチェックでも結構な数の脆弱性が見つかるケースが少なくない、ということです。

ちなみに脆弱性診断の分類を大雑把に分けると以下のような感じになります。

脆弱性とはなんだろう?-2

我々が提供させて頂いているのは、主にネットワーク・レイヤプラットフォーム・レイヤで、アプリケーション・レイヤとペネトレーションテストをやることもあります。グローバルスキャンだけ実施している企業様も多いと思いますが、内部スキャンも実施したほうがよろしいかと思います。結局、管理ネットワークから、リーチされて、情報を奪取されるという事例もあるからです。

脆弱性への対処の優先順位はCVSSスコアなどで判断すると思いますが、ネットワーク・レイヤの診断を合わせてすることで、ネットワークの暴露性(攻撃深度)もメトリックに加えることができます。簡単に言うと、到達しにくい(例えば踏み台の数が多い)ノードの対処は、ダイレクトに攻撃可能なノードよりも優先順位が下がるということです。

追記:

2週間ほど前にアップした、記事です。

JVN iPediaのサイトでは手動でも、特定のソフトウェア製品などの脆弱性情報を取得することができます。調べてみた方はいらっしゃいますか?

サーバーが何台も運用されていたとしても、インストールされているソフトウェアが決まっているとか、クライアントPCには特定のソフトウェア製品しかインストールを許していないとか、一部のソフトウェアの脆弱性だけをまず把握し、Excelなどで管理したい、というニーズってありますかね。必要であれば作ってしまいますが。

例えば、Rapid7などもIPアドレス課金で確か、最小のものはかなり安い価格設定(年間利用料金が数十万レベル)だったと記憶していますが、そこまで必要のないユーザさんもいらっしゃると思うのです。

あとですね、TippingPoint IPSのデジタルワクチンがどのCVE番号の脆弱性を防いでいるか、これを見て確認したいとか、管理したいというニーズってありますかね。まさにAPIを利用した開発の話なんですが、もし、一定のニーズがあれば製品化を考えてみたいな、と思ってます。

ご意見、ご要望など頂けますと幸いです。


RECENT POST「技術情報」の最新記事


技術情報

OCVS・Horizon構築してみた②

技術情報

Sumologicで目にするOpen Telemetry Collectorとは(中編)

技術情報

Sumo Logic アカウントを持っていないユーザへのダッシュボードの共有方法は?

技術情報

Sumo Logic ダッシュボードやフォルダ共有について

脆弱性とはなんだろう?