第391号コラム:松本 隆 理事 (SCSK株式会社 セキュリティサービス部 エバンジェリスト)
題:「サンドボックスとのつきあいかた」
サンドボックス製品がユーザー環境の現実的な情報セキュリティ対策の選択肢として検討され始めている。従来のアンチウイルスに取って替わるものとして、標的型対策として、果てにはマイナンバー対応など、様々なうたい文句で各社からサンドボックス製品が提供されている。
サンドボックス(sandbox)とは文字通り子供の遊び場の「砂場」を指す。用いる分野によっていくつかの解釈があるが、セキュリティの文脈で用いられる場合には、実システムと隔離した仮想環境を提供するプロダクトを指すことが多い。
このコラムでは、サンドボックスの中でも特に、マルウェアを実システムに影響のない安全な環境で自由に遊ばせ、振舞いを確認する、いわゆる動的環境での分析を提供するサンドボックス製品およびサービス(以下サンドボックス)を指す。
じつは筆者も、ある商用サンドボックスの技術支援をしている。ユーザー企業でのデモやトライアルに同行すると、製品自体はおおむね好評だ。
「デモも説明もよく分かった。機能もすばらしいと思う。ただし・・・」
その後に、担当者は口をそろえてこう付け加える。
「扱うのが難しい製品だ」「運用するには相当なレベルの技術者が必要だ」
多くのユーザー企業において、サンドボックスを導入する最大の壁は、自社にマルウェアを解析できる高いスキルを持った技術者がいない点だと考えているようだ。
本題とは外れるので詳しくは触れないが、確かに、情報セキュリティ技術者の枯渇は、特にユーザー企業では深刻な問題になりつつある。ニュースで騒がれるような「数万人規模での不足」という数字が妥当かはさておき、十分な経験を積んだ優秀な技術者は、より良い環境を求めて一部の専門企業に集中する傾向にある。既にセキュリティ技術者の転職状況は一段落しており、現状はユーザー企業のエンジニアにまでその波が及んでいる状況だ。
ユーザー企業での待遇の問題などいろいろな事情があるにせよ、昨今のセキュリティ業界を取り巻く人材の流動化の影響をもろに受けた形で、ユーザー側でインシデントを回す経験を積んだセキュリティ人材はますます不足していると感じる。
もしかしたらこれは、技術者にとって自身のキャリアアップや待遇の改善などの面で、長い目で見るとよい傾向なのかもしれない。ただ、もともとセキュリティに従事する人材の少ないユーザー企業において、優秀な技術者の流出に歯止めがかけられない現状はかなりの痛手だろう。
話を本題に戻そう。実のところ、モダンなサンドボックス製品は非常によくできていて、マルウェアの収集から動的環境での分析、リスクの判断までをかなり自動化してくれている。
マルウェアの分析において、これまで人間が工数をかけてやってきた面倒な作業は、殆ど自動化されていると言っていい。
その意味で、昨今のサンドボックスの運用にマルウェア解析が行えるレベルの技術者を割り当てる必要はない。もしそんな技術者がいるなら、もっと能力を活かせるような別の業務を割り当てるべきだ。
ただし、プログラムで自動化できない部分が残っているのも事実だ。未対応の部分とはサンドボックスが提示するマルウェアの脅威情報を正しく解釈し、情報の真偽や影響範囲を見極め、適切な手段とタイミングで対応策を実行するという最も難しい「判断」の部分だ。
サンドボックスの適切な運用には、オンタイムでのシビアな判断がつきまとう。判断する人間に求められるのは、セキュリティの知識だけではなく、むしろ対象の業務やネットワークの理解がより重要となる。
ユーザーにとって(そして我々のようなサードパーティの事業者にとって)サンドボックスの運用が難しいのは、まさにこの点だ。もしサンドボックスの運用を外に切り出すのであれば、必要な業務知識をどこかで補完する必要がある。それとも検知状況のみの報告にとどめ、最終的な判断はユーザーに委ねる運用にするのか。いずれにせよ事前に設計されている必要がある。
このコラムでは、ユーザー企業がサンドボックスを導入する際に検討すべきポイントと、運用に携わる技術者がどうサンドボックスとつきあっていくのかという点に関して考えてみたい。
まず、筆者はサンドボックスを導入する意義として大きく以下の3つを考えている。
①対象のプログラムや通信がユーザーの意図しない挙動をするかを分析する(検知)
②実行されたプログラムがシステムやネットワークにどのような痕跡を残すのかを確かめる(プレ調査・対応)
③そのプログラムが実行された場合、システムにどのような影響を与える可能性があるのかを見極める(影響範囲の把握)
個別にそれぞれの項目についてみていこう。まず①のサンドボックスによって対象の挙動を詳細に分析することにより、対象がマルウェアであるかどうか、どのような脅威やインパクトを持つかが明らかになる。分析結果はそのままマルウェアの検知や対応の優先度付けに利用されるため、この分析の精度は重要だ。
分析精度をより高める工夫を確認するためには、サンドボックスのどのような機能に着目すればいいだろうか。
例えば、対象のマルウェアにサンドボックス環境を察知されることなく、できるだけ多くの挙動を引き出す仕組みが準備されていること。分析対象のデータ構造を理解したより深い分析が可能であること。ドロッパーやダウンローダーなどの派生する攻撃が分析可能であること。サンドボックスへの攻撃そのものを検出し、それをマルウェア判定のひとつの要素として分析可能であることなどが挙げられるだろう。
検知によってインシデントレスポンスのトリガーを引くことは、企業がサンドボックスを導入する際の大きな目的のひとつなので、導入する予定のサンドボックスの自動分析及び検知の精度は、情報収集の段階でできる限り調べておきたい。
ただし、先述したようにサンドボックスの自動分析において高いスコアで黒と判定された場合にも、実際には業務ファイルである状況は考えられる。
例えば.exeで自己解凍されるファイルがメールに添付されていた場合を想定してみよう。ソフトウェアの振る舞いだけを分析するとドロッパーと判断されるだろう。しかし、一方でそのファイルは特定の業務で認められた自己解凍ファイル形式でのデータ送信かもしれない。
これは極端なケースだが、特定の状況下において、振る舞い検知型のサンドボックスの自動分析精度には限界がある。将来的には改善される余地はあるだろうが、少なくとも現状では業務やシステムを理解する人間によって、結果は検証される必要があるだろう。
次に②だ。マルウェアが検証システムやネットワークに残す痕跡を把握することにより、マルウェアの稼動によって実システムで変更される可能性が高い情報を把握することができる。例えばレジストリの改変やファイルシステムへの変更、オブジェクトの作成などがある。また、端末だけでなく検証ネットワーク環境のログや送受信されたパケットも重要な情報となりうる。
これらの情報は、エンドポイントの感染の可能性を調査する上でも重要だ。事前にマルウェアが書き込む特定のレジストリやファイル情報が分かれば、感染した可能性の高い端末を絞り込むことが容易になるだろう。
また、例えばマルウェアが行うC&C通信を一時的に遮断する際に、サンドボックスで取得したC&C接続先の情報を、実環境のブロックリストとして利用することができる。
このように既存のセキュリティ対策を補い、インシデントレスポンスをより効率的に展開するためにもサンドボックスを活用することができる。このような用途で用いることを想定して、サンドボックスがどれくらいの精度で、アーキテクチャごとにどの程度深いレポートを出せるのかは確認しておきたい。
最後に③について。マルウェアによるシステムへの影響をサンドボックス上で事前に把握することにより、マルウェアが実行されると具体的にどの資産に対し、どういう影響があるのかを事前に想定することができれば、企業にとってのリスクの判断が可能になり、費用対効果を見極めた適切な対応にもつながる。
リスク判断の根拠とするためには、現状の分析精度では一度は人間の判断を通す必要があるだろう。ただ、サンドボックスが自動判定する攻撃のインパクトが明確なものであり、個別の脅威が分かりやすく根拠が提示可能なものであれば、より活用しやすいだろう。
先述したように、もはやモダンなサンドボックスは単にマルウェアを分析するためだけのツールではない。分析は確かに重要な機能の一部だが、サンドボックスの機能を活用するためには、インシデントレスポンスの各要素を補い、サイクルをまわしていくための役割を持たせることも意識した運用を検討したい。後発の製品であるからこそ、これまでの対策の不足を補う運用が可能な設計になっている。このように運用されてこそ、サンドボックスは真価を発揮するのだと筆者は考えている。
正直言って理想かもしれない。ユーザー企業では諸事情によりセキュリティ対策を外部に頼らざるを得ないケースもあるだろう。多くの担当者は、より手離れのいいソリューションを望んでいる。あらかじめ想定された攻撃シナリオをもとに、決められた基準に従って検知を行う目的でサンドボックスを導入するなら、確かに外部のSOCに運用を任せた方が楽だ。ただ、ユーザーが自分たちの手でインシデントレスポンスをまわすことを望むなら、その手伝いができればと思う。
正解はそれぞれが置かれている状況や組織によって様々あるのだと思う。このコラムが、サンドボックスを既に導入している、これから導入を検討している皆さんにとって、考えてみるきっかけになれば幸いだ。
【著作権は、松本氏に属します】