ネットワーク対応機器の脆弱性を開発段階で阻止Fuzzingによるロバストネス・テストで未知の脆弱性を発見

フォティーンフォティ技術研究所は、ネットワーク対応組み込み機器のセキュリティ堅牢性を検査するツール「FFR Raven」の発売開始を発表した。

» 2010年08月25日 00時00分 公開
[八木沢篤,@IT MONOist]

――2010年8月25日、日本発の本格的なアンチウイルスソフト「yarai」で知られるフォティーンフォティ技術研究所は、ネットワーク機能を備える組み込み機器のセキュリティ堅牢性を検査するツール「FFR Raven(以下、Raven)」の発売開始を発表。本稿では、同製品の意義、特長について同社 代表取締役社長 鵜飼 裕司氏のコメントを交え紹介する。

組み込み機器のセキュリティ課題が表面化する時代へ

 急速に進む組み込み機器のネットワーク対応。ご存じのとおり、スマートフォン、家庭用ゲーム機、情報家電などIPアドレスを持ったネットワーク対応機器は増加し、多様化の傾向にある。また、インターネットを取り巻く環境もIPv6へのパラダイムシフトやスマートグリッドの普及・展開など大きな転換期を迎えようとしている。

 こうした変化の中、ネットワーク対応の組み込み機器にもPC分野と同様にセキュリティへの意識が強く求められつつある。

鵜飼 裕司氏 画像1 フォティーンフォティ技術研究所 代表取締役社長 鵜飼 裕司氏。「組み込み機器のセキュリティテスト手法、対策、体制が確立されていないのが現状。ある意味、脆弱性が出ても仕方のない状況といえる」

 しかし、組み込み分野はインターネットが成熟期に入った段階で急速にネットワーク対応が進んでいるため、セキュリティ手法や対策、体制が確立されていないのが現状だ。鵜飼氏は「PC分野では、WindowsやUNIXが長い年月をかけて安全性を向上してきたが、急速にネットワーク化が進んでいる組み込み分野では、その教訓が生かされていない。何らかの対策を講じなければ問題が表面化するだろう」と組み込み機器のセキュリティ対策の重要性を指摘する。

 今後、従来ネットワーク対応が必要なかった生活家電などの機器もネットワーク化が進むと考えられるため、製品の提供者はこれまで想定していなかったような外部アクセスや利用形態などのセキュリティ課題に立ち向かわなければならない。

 組み込み機器の脆弱性は影響が大きい。例えば、ネットワーク対応の医療機器や車載機器、インフラ機器などがひとたび悪意のあるユーザーに乗っ取られたらどうだろうか。人命にかかわる問題に発展する可能性もあるだろう。また、そのほかのコンシューマ機器であっても、場合によっては製品回収やリコールにつながり多大な損害を与えるだろう。鵜飼氏は「Ravenを開発するに当たり、多くの組み込み機器でテストしたが、そのうち9割ほどに何かしらの脆弱性が発見された。その中にはすでに死滅したような古典的な脆弱性も含まれている」と語り、ネットワーク化が進む組み込み機器が攻撃者にとって“格好のターゲットになりつつある”と警鐘を鳴らす。

未知のセキュリティ脆弱性の発見に特化

 セキュリティ脆弱性対策の必要性を理解してはいても、どんな手法で対応すべきか、どのように導入すべきかが非常に悩ましい。また、通常、未知のセキュリティ脆弱性を発見するには、高度な知識と熟練のノウハウ・技術が必要になる。当然、こうしたスキルを持ったエンジニアを確保するのも簡単ではない。

 そこで同社は、これまで培ってきたセキュリティ脆弱性の発見手法に関するノウハウを体系化し、製品の開発段階で導入できる脆弱性検査ツールとして同製品を開発。「Ravenは、悪意あるユーザーからの攻撃や異常な入力を受けても機器が正常に動作し続けられるか、その堅牢性をテスト(ロバストネス・テスト)する機能を有する。開発段階において、ネットワーク機能に内在する未知の脆弱性発見に効力を発揮するだろう」(鵜飼氏)。

FFR RavenによるFuzzing 図1 FFR RavenによるFuzzing

 同製品は、セキュリティ上の脆弱性を誘発する可能性がある異常なパケットの組み合わせを自動生成(Fuzzing)し、検査。対象機器の反応をモニタリングするロバストネス・テストを実施する。これにより、バッファオーバーフロー、整数オーバーフロー、フォーマットストリング、off-by-one、読み込み境界未チェック、異常リソース消費、サービス妨害など、多数の致命的な脆弱性を発見することができるとしている。

 代表的なセキュリティテスト手法の1つFuzzingは、すべてのパターンを網羅的にテストすることで、論理的にすべての脆弱性を抽出することができるとされている。しかし、実際には「全パターンを網羅することは時間的にもコスト的にも困難」(鵜飼氏)だという(補足)。

※補足:4バイトのパケットの場合、2の32乗=42億9496万7296パターンにもなる。仮にこれを1秒間に1000パターンFuzzingを実施しても約50日かかるという。これだと現実的な時間で検査を完了することは不可能といえる。


 同社は、Fuzzingの網羅性ではなく、脆弱性を引き起こすパターンを効率的に絞り込むことをキーに、「“現実的な時間で脆弱性をいかに発見できるか”を目指し、同製品を開発」(鵜飼氏)。ユーザーは、セキュリティ脆弱性やテスト手法などの特別なノウハウや専門知識がなくても、検査対象のIPアドレスを入力して検査項目を選択するだけで検査を実施できるため、「高品質なセキュリティテストを容易に効率よく実施できる」(鵜飼氏)という。

 サポートする検査項目は、TCP/IP Option Fuzzing、IP Option Fuzzing(TCP)、IP Option Fuzzing(UDP)、IP Option Fuzzing(ICMP ECHO REQUEST)、ICMP Option Fuzzing(ICMP UNREACH HOST)、TCP Header Fuzzing、UDP Header Fuzzing、SYN Flood DoS、Land Attack DoS、Ether Unuke DoS、Ether Fuzzing、ARP DoS、ARP Fuzzing、ICMP Ping of Death、ICMP Fuzzing、HTTP(POST/GET/etc) Fuzzing、DHCP Option Fuzzing、FTP Use/Pass Fuzzing、FTP Command Fuzzing、Telnet Account Fuzzing、Telnet Terminal Fuzzing、UPnP Fuzzing、SNMP Community Fuzzing、SNMP Encoding Fuzzing、TFTP Name Fuzzing、TFTP Type Fuzzing、SIP Fuzzingとなっている。同製品であれば、これら約250万パターンの組み合わせを約2.5時間で高速検査できるという。なお、対応プロトコルについては順次拡張を行うほか、有償でのプロトコルサポートも提供可能とのこと。

完全日本語対応 〜国産ツールの強み〜

 そのほかにも国産ツールならではのメリットとして、完全日本語対応が挙げられる。この手のツールは海外ベンダが開発したものが多く、UIはもちろんのこと、マニュアルやヘルプが英語で表記されている。その点、同製品は完全日本語対応をうたっているため、UIだけでなく、マニュアルや報告書テンプレートまでもが日本語で用意されている。

FFR RavenのUI 図2 FFR RavenのUI

 「実は、このマニュアル、報告書テンプレートに多くのノウハウが詰まっている。パケットの詳細やその検査項目の必要性などをきちんと説明し、根拠を示している」と鵜飼氏。

報告書テンプレート 図3 報告書テンプレート

 同製品の動作環境は表1のとおり。オープンプライスで、企業向け利用ライセンスおよび月額利用ライセンスで提供される(表2)。

対象OS そのほか
Windows XP Professional/Home(SP3) Intel Pentium 4以上の32bitプロセッサ。10Mbytes以上の空き容量を持つハードディスク
Windows Vista Business/Home(SP2)
Windows 7 Enterprise/Professional/Home Premium
表1 動作製品および必要システム

ライセンス体系 ライセンス概要 ライセンス利用制限 契約期間 価格
年額包括ライセンス 企業単位の契約でPC端末数無制限で利用可能 無制限 1年間 年額:500万円
月額PC数限定ライセンス 企業単位の契約で3PC端末まで利用可能 3ライセンス(PC端末単位の個別ライセンス契約) 1カ月 月額:50万円
表2 価格表
※上記ライセンスにおいて、Fuzzing対象機器の台数制限はない

 ネットワーク対応機器が増加の一途をたどるいま、ネットワークセキュリティの脆弱性対策を検討・実施することは避けてとおれない。開発段階でこうしたツールを活用することは製品出荷後のリスク回避の有効打となり得るのではないだろうか。

 なお、同社の開発思想やセキュリティがどのように作られていくのかを“エンジニア目線”で紹介する連載「セキュリティを形にする日本のエンジニアたち」が@IT Security&Trustで掲載されている。興味のある方は併せてご覧いただきたい。

Copyright © ITmedia, Inc. All Rights Reserved.