アプリケーション・セキュリティー

コグニティブでアプリの脆弱性対策。専門家に話を聞いてみた。

入社2年目、アプリの開発者の“僕”。脆弱性チェックで悩む。

新米アプリケーション・エンジニアとして、いまの会社に入社して丸1年。はじめて、アプリの開発を任され、進捗も順調……と思っていた矢先に、プロジェクト・マネージャーからの一言で頭を抱えるはめに。

「君が今作っているアプリだけど、脆弱性の確認もよろしくね。」

ユーザーからの入力は逐一データベースに送られ、アプリの動作にもフィードバックする構造になっている。レスポンスには自信はあったのだけど、いざセキュリティーとなると、正直不安しかない。「○○の脆弱性を突いた攻撃が発生、データ流出によって○○億円の被害」なんてニュースは毎日のように目にするし……。

困った僕は、大学時代の冨田貴之先輩に相談に行くことにした。先輩は今はたしかセキュリティーの領域を専門に仕事をしていたはず。助けて!冨田先輩!

僕:先輩、お久しぶりです。実はアプリの脆弱性チェックを行っておくようにプロジェクト・マネージャーから指示を受けていたんですが、正直何から手を付けたら良いのかわからなくて……。脆弱性といっても日々新しい攻撃手段が生まれるし、アプリの動作チェックだけでも精一杯なのに、セキュリティーまで万全に、と言われても僕には無理です!

冨田先輩:なるほど。サービスのローンチにあわせてアプリのリリースも、というプレッシャーのなか焦る気持ちはわかる。でも万が一、セキュリティー・ホールを突かれて、データの流出……なんてことになったら、それこそ元も子もないからね。

セキュリティ侵害は世界中で煩雑に起きている

僕:でも、まだアプリは開発中でテスト動作もしていないのに、そもそもセキュリティー・チェックなんて出来るんですか??

冨田先輩:できる。むしろソフトウェアを実行する前の段階からソースコードを洗う「静的診断」を実施した方が、潜在的な問題を早く発見できるし、修正のためのコストも安く済む。しかも、IBMのASoC(エイソック)を使えば、早い・安い・うまいの3拍子揃ってるんだ。

僕:なんですか、その唐突な牛丼感。そもそもエイソック?ってなんなんですか?

冨田先輩:ASoCとはApplication Security on Cloudの略で、IBMが提供するクラウド型の脆弱性診断サービスなんだ。いままで、自社運用のオンプレミスなシステムでは同様のサービスはあったけど、IBMのこのサービスはクラウド・ベースで、しかもコグニティブ技術を使って、検出の精度を格段に向上させているんだ。

僕:クラウドはわかります。でもコグニティブって?

冨田先輩: 「コグニティブ」は直訳すると「認知」で、機械学習などのテクノロジーで人間の認知能力をサポートするといった意味があるんだ。ASoCが使っている仕組みはまた異なるものだけど、よくニュースなんかで目にするWatsonはその代表例ということになる。

僕:ふむふむ。でも、それが脆弱性診断にどう役立つんですか?

冨田先輩:普通にソースコード脆弱性診断を行うと、アプリの規模にもよるけれど、誤検出も含めて数千〜数万単位で修正箇所が上がってくることがあるんだ。

僕:えー!? そんなの、1つ1つ潰していくだけで大変なことになりますよ。

冨田先輩:それに、サイバー攻撃の手法は日々新しいものが生まれてくる。せっかく膨大なチェックを行うことができても、新しい攻撃に備えることができていなかったら元も子もない。

僕:たしかに……。

冨田先輩:そこで、ASoCでは、コグニティブ技術を応用したIFA(Intelligent Finding Analytics)という仕組みを備え、最新の脆弱性診断を行った上で、誤検出も減らしてくれるというわけ。

さらに、ICA(Intelligent Code Analytics)という仕組みも備えられていて、そちらはコグニティブ技術によって、既存のナレッジだけでは検出できない未知のAPIについても影響を評価して、脆弱性を診断してくれる。こちらは診断漏れをできるだけ防ぐ仕組みだね。

僕:すごい! 至れり尽くせりじゃないですか。でも、なんだかとっても難しそう。

冨田先輩:いや、脆弱性の有無のチェックだけなら無料トライアルがあって、簡単にレポート付きの診断も行えるんだ。しかも、1回あたり約3万円と、他のサービスに比べてもリーズナブルだし、そもそも誤検出や検出漏れが少ないということは、貴重な開発時間をおカネで買えることになる。早くて、うまくて、安い、ってわけだ。

僕:なるほどー。早速その無料での診断体験をやってみたいです。

冨田先輩:よし。無料体験はオンラインでも申込可能なんだけど、せっかくなのでIBMのASoCの専門家に話を聞きに行こう。

僕:え!?

 

「中の人に話を聞きに行くぞ」という先輩の意外な一言で、舞台はIBMへ

冨田先輩:平山さん、今日はお忙しい中ありがとうございます。

平山さん:こちらこそ。ASoCのすごさはなかなかオンラインでは伝わりにくいので、こういう機会はありがたいです。

 

冨田先輩:じゃあ、始めようか。開発環境は持ってきてるな?

僕:はい。(※ちゃんと会社の許可はもらってあります)まだ動作前のソースなんですけど、本当に診断できるんですか?

平山さん:大丈夫ですよ。それこそがASoCが持つ静的診断メニューの強みの1つでもありますので。まず、ASoCのホームページにアクセスします。必要な情報を入力して「無料評価版」に登録し、SaaS用プラグインをダウンロードして実行してください。すると、開発環境(画像はEclipse)のメニューのなかに「セキュリティー分析」が加わります。

Eclipseにてセキュリティー分析の画面

僕:Eclipseの中に組込まれるのは良いですね。ソースを書いているときに、ちょっと診断させてみようか、という感じになります。ではでは、早速……。あれ? ログインを求められますね。

冨田先輩:診断に必要な情報は暗号化されてクラウドにアップロードされるので、そのために必要な手続きだね。これはさっき評価版に登録した画面からサクッと生成できるので、忘れないように記録しておくこと。あとはOKを押せば、作業が始まる。

Eclipse上で診断

僕:ほんとだ、Static Analyzerが動き始めましたね。これは、何をやってるんですか?

平山さん:まず、ソースコードから、診断に使う部分(データ・モデル)だけを取り出しています。情報が足りないとスキャンできても検出精度が下がるので、前提ライブラリーなど依存関係のチェックも行います。今回はEclipseプロジェクトのスキャンなので、不足する心配はないでしょう。

冨田先輩:いずれにしても、ASoCのクラウド・サーバーにアップロードされる時点で、ソースコードそのものではなく、診断に必要な部分だけになるので、万が一診断用のファイルを第三者が手に入れても、そこからアプリのソースを知ることは不可能なんだ。もちろん、そもそも暗号化されてるけどね。

僕:なるほど。開発中のソースをクラウドで診断することへの抵抗感は軽減されますね。お、こうやって話している間に、診断が終わりましたね。「高・中・低」に分けて脆弱性の診断結果が出ますね……。あああ、結構見つかってますよ。

平山さん:無料評価版では、いくつ・どんな脆弱性があったか? まではわかります。有料のスタンダード・プランであれば、ここから更に、どこに脆弱性が見つかったか? どう直すのが望ましいかまでを分析したレポートを見ることができます。
ここで強調しておきたいのは、この脆弱性の検出数自体も、コグニティブ技術のおかげで誤検出が少なくなっていることです。また未知のAPIや最新の攻撃手法にも対応したクラウドでの診断を経ているので漏れも少なく、かなり信頼性の高い診断結果と言えるはずです。

実際、数万件の検出結果がIFAによる誤検知削減により桁違いに削減され、類似問題をまとめた推奨修正箇所に至っては数十件に集約されたという例もありますし、さらにICAによって脆弱性ゼロと思われていたアプリから脆弱性を見つけた例もあります。

僕:先輩が前回言っていたIFAとICAってやつすね。

冨田先輩:とはいえ、数と種類だけわかっても余計にモヤモヤするだろうから、僕が開発中のアプリを診断した結果をちょっと見てもらって、イメージを掴むといい。(※くどいようですが会社の許可を得ています)

僕:ありがとうございます。おー、Eclipseの中でレポートが確認できるんですね。

平山さん:このレポートは、最大の効果を得るために関連する検出結果毎にグルーピングされていて、クリックすると該当するソースにジャンプするようになっています。レポートの後半には、脆弱性とその対応方法について一般的な解説もついてますよ。


この画面は、リアルタイムの修正作業で使いますが、文書形式のレポートも得ることができます。

冨田さん:プロジェクト・マネージャーへの報告は、こっちの文書形式のレポートの方が分かりやすくて丁寧だな。

僕:なるほど。そして、この検出数をゼロに近づけていけばいいわけですね。なんとかなりそうな気がしてきました。

僕:これでなんとかプロジェクト・マネージャーにも脆弱性チェックの報告ができそうです。平山さん、冨田先輩、今日はありがとうございました!

平山さん:いえいえ。ぜひ、日々の開発作業の中でASoCを活用して、効率的に安全なアプリを作ってください。今回説明したStatic Analyzerは、数ある脆弱性診断のツールやサービスのうちの1つです。状況によって選択肢は変わってきますので、困ったことがあればまたいつでも相談してください。

冨田先輩:コグニティブが脆弱性を見つけるところまでは、頑張ってくれるけど、そこから先はお前の頑張り次第だ。応援してるよ。

無料評価版で使えるのは一部の機能に限定されますが、具体的にASoCの購入を検討している場合は、無料評価版の隣にある、「お問い合わせ」のボタンから、メール・電話でIBMに問い合わせ、購入を前提としたASoCの評価希望であることを伝えれば、フル機能を試用するための手続きを案内してもらえます。

More アプリケーション・セキュリティー stories
2019-10-16

Open Cybersecurity Alliance (OCA): 相互運用性を高めるオープン・ソース・イニシアチブ

サイバー・セキュリティー業界ではベンダーと製品の数が急増しています。ESGによると、企業は平均で最大10社のプ […]

さらに読む

2019-10-04

IBM セキュリティーによる調査結果: ランサムウェア攻撃を受けた自治体がハッカーに金銭を支払うことに納税者は反対

大多数が自治体のリソース保護のために今より高い税金を納める意思はなく、63%が身代金に税金を使うよりも、それよ […]

さらに読む

2019-10-03

国家の支援を受けた攻撃者から一般的なサイバー犯罪者に至るまで、増大する破壊的マルウェア攻撃

この数年間、破壊的な攻撃が大きな脅威となり、世界中の企業でデータを消去したり、数百万台のエンタープライズ・デバ […]

さらに読む