脆弱性対策は万全?自社開発のWebアプリとスマホアプリ

脆弱性対策は万全?自社開発のWebアプリとスマホアプリ

「サイバー攻撃による被害とは、サーバーやパソコンが壊されること」と認識していないでしょうか。「Webアプリやスマホアプリが攻撃されることはない」と思っていませんか。この考えはとても危険です。

インターネットを使ったビジネスを展開している企業にとって、Webアプリケーションやスマートフォンアプリケーション(以下、単にアプリ)は最重要ツールの1つのはず。

アプリが壊れたらECも業務連絡も滞り、売上高や利益にも影響します。

アプリもサイバー攻撃の対象になっていることを忘れないでください。アプリをビジネスで使っている企業は、定期的にアプリの脆弱性対策を行ったほうがよいでしょう。

この記事では、アプリの脆弱性対策を行う目的と方法、そしてその効果を解説します。

アプリの脆弱性対策を行う目的

アプリとビジネスには次のような関係があります。

■アプリとビジネスの関係

  • アプリはECで使われている。顧客にアプリを使ってもらうことで、EC企業は顧客の個人情報、連絡先、クレジットカード情報を集め、代金を決済して、商品の配送手続きを行っている。
  • アプリは業務連絡などのビジネス・コミュニケーションに使われている。プロジェクトチームのメンバーがアプリ上で連絡を取り合ったり、議論したりできる。
  • アプリは在宅勤務やテレワークで使われている。企業の労務担当者や上司は、在宅勤務者の労働時間や業務内容をアプリで記録したり確認したりすることができる。

 

サイバー犯罪者によって企業が使っているアプリが壊されたら、上記のビジネスや業務ができなくなります。

そのような事態を予防するのが、アプリに脆弱性対策を施す目的です。

脆弱性対策の方法

アプリの脆弱性対策の方法は多種多様であり、1つの方法を実行すればそれでアプリが強固になるわけではありません。

なぜ脆弱性対策の種類が増えるのかというと、アプリがさまざまな仕組みで構成されているからです。アプリの仕組みには、入出力処理、認証、認可、セッション管理、Webサーバー設定などがあります。

これらの仕組みの1つひとつがサイバー攻撃の対象になるので、それごとに脆弱性対策を講じていかなければならないのです。

アプリ攻撃の種類

アプリ攻撃の種類には次のようなものがあります。

■アプリ攻撃の種類はさまざま

  • 通信上のパラメーターの改ざん
  • なりすましアクセス、不正アクセス
  • 安全ではない暗号方式の解読
  • 安全ではないプロトコルの解読
  • 通信の盗聴
  • MITM攻撃(中間者攻撃)
  • ローカルファイルやディレクトリからスマホ内部の情報が盗まれる
  • 出口ログからスマホ内部の情報が盗まれる
  • アプリ間連携の不正操作
  • アプリのロジックがリバースエンジニアリングによって盗まれる
  • 意図しない通信
  • SSL/TLS証明書検証の不備

こうしたサイバー攻撃を想定し、アプリ攻撃を受けても傷つかず損害を生まない状態にするのが脆弱性対策になります。

静的対策と動的対策

脆弱性対策には静的なものと動的なものがあります。

静的脆弱性対策は、アプリのソースコード全体を精査する方法です。弱いソースコードがみつかったら強いソースコードに書き換えていくことができるので、脆弱性を根本から直すことができます。

静的脆弱性対策には次のようなものがあります。

 

■静的脆弱性対策の種類

  • アプリの内容を確認して脆弱性の有無を調べる
  • コーディングが安全かどうか調べる
  • スマホアプリはサーバー上のAPIとスマホ内のクライアントアプリで構成されているので、その両方を診断する

静的脆弱性対策だけでは不十分なのは、実際に脆弱性がある箇所が攻撃されたときに、アプリがどのような挙動を起こすのかわからないからです。

例えるなら、花壇に殺虫剤を散布しても、害虫がどのように草花を食い荒らすのかわかりません。

害虫が草花を食い荒らす様子は、実験的に害虫に草花を襲わせなければわかりません。それが動的脆弱性対策になります。

動的脆弱性対策では、対象のアプリに実際のサイバー攻撃と同じ攻撃を仕掛けます。これによりアプリがどのように損傷し、どのような機能が失われるのかがわかります。

動的脆弱性対策には次のようなものがあります。

 

■動的脆弱性対策の種類

  • 実際にアプリを動かして挙動を調べる
  • 起動中のアプリに疑似攻撃をしかけて挙動を確かめる

 

脆弱性対策の進め方

アプリをビジネスに使っている企業は、どのようにアプリの脆弱性対策を講じていけばよいのでしょうか。

脆弱性対策は大抵は、アプリを使っている企業(クライアント企業)が、セキュリティ会社に依頼します。

ここではセキュリティ会社の一般的な脆弱性対策の進め方を紹介します。もちろん、これとは異なる方法で進めるセキュリティ会社もあります。

 

ステップ1:セキュリティ会社がクライアント企業に対し、アプリの構成をヒアリングする

企業がセキュリティ会社に自社アプリの脆弱性対策を依頼すると、セキュリティ会社はクライアント企業(発注者)に対し、アプリの構成についてヒアリングします。

ヒアリングは、企業のIT担当者に聞き取りをしたり、アプリの仕様書を確認したり、実際にアプリにアクセスして動作をチェックしたりする方法で行われます。

ヒアリングはかつてはセキュリティ会社の担当者がクライアント企業に出向いて行っていましたが、最近はオンラインでやっているところが多いようです。

クライアント企業のIT担当者への聞き取りはZOOMなどで可能ですし、アプリの仕様書の確認もアプリへのアクセスもインターネット経由で十分可能だからです。

ステップ2:見積もりを出して契約をする

ヒアリングが完了したら、セキュリティ会社は脆弱性対策の費用を見積書にしてクライアント企業に提出します。

クライアント企業がその金額で納得したら契約を交わします。

ステップ3:設定不備、セキュリティ対策漏れなどを探す

契約を締結したらセキュリティ会社はまず、確認が容易な箇所をチェックします。アプリの設定に不備がないか、セキュリティが施されていない箇所がないか調べます。

アプリの確認やチェックはツールを使って行います。

ここでは主に静的脆弱性対策を行います。

ステップ4:疑似攻撃を仕掛けてみる

静的脆弱性対策を実施したら、次は動的脆弱性対策に取りかかります。アプリに疑似攻撃を仕掛け、アプリの挙動を確認します。

疑似攻撃を仕掛けると、静的脆弱性対策で見逃された微細な脆弱性が重大な欠点になりうることがわかることなどがわかります。

ステップ5:診断と結果報告

セキュリティ会社は、ステップ3と4で洗い出された脆弱性を診断します。なぜ診断が必要なのかというと、クライアント企業としては「アプリに脆弱性がある」「ここが弱い」と指摘されてもどうすればよいのかわからないからです。

そこでセキュリティ会社は、みつかった脆弱性が攻撃に遭ったらどのような事態が起きると想定されるのかといったことを報告書にまとめます。これが診断になります。

また、脆弱性が攻撃されてアプリが損傷したら、ビジネスにどのような影響が及ぶのかや、どのような業務がストップするかなども報告します。

そのうえでセキュリティ会社は、クライアント企業に対し防御策を提案します。

ステップ6:防御策の実施

脆弱性対策は以上で完了しますが、実際はクライアント企業は引き続き、セキュリティ会社に対して防御策の実施を依頼するでしょう。

クライアント企業は、セキュリティ会社が提案した複数の防御策のなかから必要なものを選び、見積書の提出を依頼します。

金額が合意したら契約を結び、セキュリティ会社は防御策を対象のアプリに施していきます。

 

脆弱性対策をすると企業にどのような効果をもたらすのか

脆弱性対策を施して必要な防御策を実施することで、企業のアプリはサイバー攻撃に負けない防衛力を持ちます。

企業はアプリを使って通常のビジネスと通常の業務を継続することができます。

ただ注意しなければならないことがあります。

 

効果はあってもみえにくいことに注意を

企業の経営者が注意しなければならないのは、脆弱性対策の効果は、確かに存在していてもみえにくい、ということです。

似たようなアプリを使っているA社とB社があって、A社は脆弱性対策を実施し、B社は実施しなかったとします。それから1年がすぎ、A社のアプリもB社のアプリも正常運転していたとき、A社の脆弱性対策は意味があったのか、と感じないでしょうか。

A社のアプリにもB社のアプリにもサイバー攻撃が仕掛けられなければ、A社の経営者は、脆弱性対策コストを支払った分、少し損した気分になるでしょう。

また、「A社のアプリにサイバー攻撃が仕掛けられ脆弱性対策が奏功した」ケースと「脆弱性対策を講じていないB社のアプリにサイバー攻撃が仕掛けられていない」ケースは、結果としては同じです。

 

サイバー攻撃されたときの損害を見積もっておく必要がある

脆弱性対策は、転ばぬ先の杖です。

その効果を実感できるのは、脆弱性対策を実施していなかった他社がサイバー攻撃を受けて大きな損害を被ったことを知ったときかもしれません。

そのため企業の経営者やアプリ管理の担当者は、自社のアプリが稼働しなくなったときの損害を見積もっておき、「その損害を被るくらいなら脆弱性対策を講じておいたほうがよい」と考える必要があるでしょう。

 

まとめ~実害以上の損害を考える

預金したお金の引き出しがいくら保証されても、何度も強盗に入られている銀行にお金を預ける気にはならないと思います。

アプリがサイバー攻撃に遭うと、ECサイトが動かなくなったり、業務が滞ったりしますが、そのような実害だけでなく、顧客や社会の信用を失うという損害も被ります。

アプリが弱いECで買い物をしたいと思う客は少ないでしょう。

 

逆に、セキュリティが万全のアプリを持っている企業は、顧客や社会から信頼され、企業価値が高まります。

アプリの脆弱性対策も、危機管理対策のメニューに加えることを強くおすすめします。

関連トピック