uncategorized

「脆弱性もバグの一種」だからテストをしよう―セキュリティテスト自動化ツール『VAddy』開発者インタビュー

クラウド型Web脆弱性検査ツールの『VAddy』。Webアプリケーション開発において、「※継続的インテグレーション(CI: Continuous Integration)」ツールと連携してセキュリティテストの自動化を実現するツールです。
この『VAddy』を運営する株式会社ビットフォレストの市川氏と西野氏に、今の時代にあった「セキュリティテスト」とはなんぞや、ということについて伺いました。

継続的インテグレーション(CI)とは・・・
ソフトウェア開発において、ビルドやテストを頻繁に繰り返し行なうことにより問題を早期に発見し、開発の効率化・省力化や納期の短縮を図る手法。(IT用語辞典)

bitforest
株式会社ビットフォレストの西野氏(左)と市川氏(右)

負担の大きすぎる脆弱性診断を、シンプルに砕いて開発サイクルの中に組み込む

もともとセキュリティテストというのは、まるごと外部の診断会社に依頼すると、場合によっては百万円単位の費用がかかったりする世界。また、開発の終盤で脆弱性が見つかった場合、その時点で大規模な改修をするのも大変なことです。かといって、開発のフェーズ毎に毎回外部に依頼するのは費用や期間の点で現実的ではありません。

それを、開発チームの中で、最低限のセキュリティテストはやってしまおう、というのがVAddyです。VAddyを使うと、開発者は自分が開発した機能だけに対して、気軽にテストすることができます。診断にかかる時間は最短で10秒程度(画面数などによって変わります)。開発者はその段階で見つかった問題を修正し、それを各機能毎に繰り返します。その結果、Webアプリケーションが完成したときには、必要最低限のセキュリティ対策は完了したことになります。

また、リリース後の機能追加などの際にも、常に、普段のテストフローに組み込むような形で気軽にセキュリティテストを実行することができるので、リリース後に脆弱性が混入する心配も無くなります。

軽視されがちな脆弱性診断

Webサイトの脆弱性というと、個人情報保護の問題などとも大きく関わってきます。被害にあったことの無い多くの方は実感を持ったことがないかもしれませんが、情報が漏れてしまったなどのニュースは度々報道されています。一個人として考えたときに、意外と身近なところに危険は潜んでいるかもしれません。

一方、サービス提供者や開発者からするとセキュリティ対策というのは目に見えないため、意識していたとしても後回しにされがちなのは事実です。

バグチェックというのは、念入りに行われるケースが多いです。それは実際にサービスを触った際に問題点が見えやすいからです。開発の依頼主からしても、真っ先に修正を依頼するポイントでしょう。

市川氏:脆弱性って見えないけどバグの一種だと思います。脆弱性があってもアプリケーション自体は動くので気づかれにくいんですけどね。

通常のテストでは発見できない脆弱性こそ、後から取り返しのつかない問題に繋がりかねません。

テストを自動化して人間のミスをなくす

市川氏:開発フローには、様々なテストが通常含まれますが、セキュリティに関するテストは組み込まれていないことが多いのです。

現代の開発スタイルが、例えば冒頭のCIと呼ばれるような、開発して素早く問題を察知し、改善していくスタイルだとすると、やはりセキュリティテストもそのサイクルを妨げないものが相応しいですよね。しかしこれまで、セキュリティテストを簡単に開発フローの中に組み込めるツールやサービスが存在していなかったそうなのです。

VAddyはまさにその開発スタイルに適したツールであり、テストを自動化することによって、「作ったら、テスト。作ったら、テスト」というのをスピーディに、かつ何度でも行えることが一つの特徴になっています。

VAddy 継続的Webセキュリティテストサービス   株式会社ビットフォレスト

開発フローに”組み込まずに”セキュリティテストを実行するツールというのは他にも出ているそうですが、設定項目が多いため、使いこなすには専門知識を要する点が問題だったそうです。「開発とセキュリティ両方のスキルを持つエンジニアは少ないので、専門知識がなくても簡単に設定できるようにした」とのことです。

開発者が自分を守るために

誰に先導して導入してもらいたいですか?という質問をしたところ、「開発者」という回答が返ってきました。

市川氏:開発において何か問題があったときに、最終的にしわ寄せが来るのは開発者です。ですから、彼らに自分たちが作っているものが大丈夫であることを確認するために使ってもらいたいと思っています。

上からの押し付けではなく、開発者自ら、自分を守るために、テストをしている状況が理想的だと言います。

4/1には英語版もリリースしており、「全世界の開発者が使っている」という状況をつくっていきたいと仰っていました。

脆弱性は常に0に

目に見えないから、意識しづらい。でもそれで何か起きては遅いのがセキュリティの問題。損害賠償が数千万円ということもあるのですから、注意してしすぎることはありません。

市川氏:テストってミスがないことを確認するためのものなので、診断した結果脆弱性が0件であれば、それはもちろん好ましいことです。開発の最後にまとめてやるのではなく、初期や途中でテストして、見つかったら即修正というかたちで、常に0件にしておくと気持ちいですよね。


VAddy Webサイト

▼VAddyについては以下の資料が詳しいです。

sekai-labSEKAI LAB TIMES(セカイラボタイムス)は、アプリ・Webサービス開発を世界中のエンジニアチームに依頼・発注できるグローバルソーシングプラットフォーム「セカイラボ」が運営しています。詳しくはこちら


YUKA NUNOI /
ぬのちゃんと呼んでください。よく、人間ではない様々な生き物(あるいは生き物じゃないもの)に似ていると言われる。世界の行く先と、そこでどう行動すればいいかについて、皆さんと考えていきたいです。好きな国はウガンダ。