イントラ設置の業務システムの脆弱性診断は必要か?

Peingで表題の質問をいただきました。長くなるので、こちらで回答します。

イントラ設置のスクラッチ開発の業務システムの脆弱性診断(アプリケーション、プラットフォーム)って、必要なのでしょうか?
https://peing.net/ja/q/31832176-ce49-46a4-a5fe-5be6ef5dd508

わざわざ「スクラッチ開発」と断っているのは、「URL構成などが独自なので外部からXSSやCSRF等の受動的攻撃を仕掛けることができない」という趣旨だと推測しました。そういう重要な前提は明記していただきたいです。

しかし、外部からイントラネットのサーバー情報を取得する方法は複数存在します。ウイルス感染がもっとも簡単ですが、ウェブ系の攻撃でも、DNSリバインディングやSSRF攻撃などが使えます。DNSリバインディングにて内部ネットワークを攻撃する例として下記を参照ください。

DNSリバインディングによるルータへの侵入実験

DNSリバインディング攻撃を使うと、内部ネットワークのホスト列挙や、列挙されたホストのコンテンツ取得ができます。そこまでできれば、XSS等の他の受動的攻撃ができる場合もあるでしょう。

そもそも、「スクラッチ開発のイントラネットであれば能動的・受動的攻撃ともにできないのだから脆弱性診断の必要はない」と考えているとしたら、ある種の脅威分析によって脆弱性診断は省略できると判断していることになります。しかし、上述のように、この脅威分析には抜け漏れがありそうで、結果として「脆弱性診断不要」とした判断も間違っている可能性があります。

また、「悪意のあるユーザ」を想定するかどうかも重要です。悪意のあるユーザが権限を超えて情報を盗んだり、簡単に上長になりすましできたりすると問題ですが、脆弱性診断はそのようなリスク分析の助けになります。さらに良い方法としては、脅威分析を実施した上で、本当に上記のような攻撃ができるかどうかをペネトレーションテストで調べる方がよいでしょう。

というわけで、イントラ設置の業務システムであっても本来は脆弱性診断が必要なのであり、さらに言えば、脅威分析やペネトレーションテストも検討するべきかと思います。

セキュリティの研究を仕事と趣味でやっていて、趣味の研究結果をブログ記事などで公開しています。研究にあたり、ドメイン名取得や、VPS、AWS等の継続的な費用がかかりますので、支援をいただければ幸いです。 https://twitter.com/ockeghem