Cybersecurity

なぜ会社のWebアプリケーションセキュリティは攻撃を受ける前に必要なのか?

共有する!
店舗のオーナーがスマートフォンで鍵と警告が表示されたWebアプリの管理画面を確認している

はい、会社のWebアプリには初日からサイバーセキュリティが必要です

仕事を支えるWebアプリをお持ちなら、答ははっきりしています。Webアプリケーションセキュリティこそが、アプリが止まるのを防ぎ、お客様のデータを盗まれないように守るものです。Webアプリとは、ブラウザで動くプログラムのことです。たとえばネットショップ、予約システム、生徒がログインするポータルなどです。このプログラムは一日中インターネットに開かれていて、つながっている人なら誰でも扉をたたくことができます。サイバーセキュリティとは、知らない人を中に入れず、侵入の試みを見つけ、問題が起きたときにすばやく業務を元に戻すための対策をまとめたものです。

私たちの考えははっきりしています。侵入されてから守りを考えるのでは遅すぎます。侵入とは、許可のない人がシステムに入り込み、データを読んだり、書き換えたり、止めたりすることです。被害が出てから直すと、何日も何週間も仕事が止まり、一部のお客様の信頼は二度と戻らないかもしれません。最初から組み込んだ守りは、裏側で静かに働き、お客様はそれを安心感としてだけ感じます。

会社が小さくても関係ありません。サイトで薬を売る薬局の店主も、患者のカルテを管理するクリニックのマネージャーも、ネットで成績を公開する学校の校長も、攻撃者にとって価値のあるデータを持っています。被害を受ける人と無事な人の違いは、多くの場合、必要なときに取った簡単な対策です。安全なログイン、決まった時期の更新、そして試したことのあるバックアップです。この先のセクションで、これらの対策をわかりやすく説明します。知らない言葉が出てきたら、用語集で意味を確認できます。

なぜ攻撃者は小さな会社まで狙うのか?

多くの経営者は、攻撃者が狙うのは銀行や大企業だけだと思っています。この思い込みのせいで、守りを毎年先送りにしてしまいます。実際には、小さな会社は狙いやすい相手です。守りが弱いことが多く、オーナーもシステムで何が起きているかを見ていないからです。

お店が十軒並ぶ通りを想像してください。泥棒は一番お金のある店ではなく、扉が開いたままの店を選びます。ネットでも同じことが起きます。違うのは、ここでは泥棒が短い時間で何千もの扉を試せることです。

攻撃は自動で行われ、相手を名前で選ばない

ほとんどの攻撃は、あなたのサイトの前に座っている誰かが行っているわけではありません。ボットと呼ばれる自動のプログラムが、サイトを一つずつ回っています。これらのプログラムは、簡単なパスワードで入れるログインページや、知られた弱点がある古いソフトを探しています。

開いた扉を見つけると、会社の大きさも名前も気にせずに入ってきます。だから静かな住宅街の小さなクリニックも、大きなサイトと同じ攻撃を受けます。考えるべきなのは、誰かが入ろうとするかどうかではありません。入ろうとしたときに、扉に鍵がかかっているかどうかです。

あなたのデータは他人にとって価値がある

顧客リストに特別なものはないと思うかもしれませんが、攻撃者にとっては宝の山です。お客様の名前、電話番号、住所は売り買いされ、詐欺のメッセージに使われます。患者のカルテ、生徒の成績、社員の情報は、持ち主をゆすることにも使える大切な情報です。

何も盗まない攻撃もあります。ファイルにロックをかけ、元に戻す代わりにお金を求めるものです。これはランサムウェアと呼ばれ、まともなバックアップがない会社を襲います。この場合、ファイルが一つも盗まれていなくても、止まっている毎日がそのまま損失になります。

侵入が残していく損失とは

侵入の話は、翌朝に何が起きるかを見るまでは他人事に聞こえます。損失は一台の機械や一つのファイルにとどまらず、お客様、社員、評判にまで広がります。この損失を具体的に知ることで、守りの価値を現実的に判断できます。

次の例は大げさな話ではありません。準備のないままアプリを侵入された経営者が実際に直面することです。どれも、後で紹介するよく知られた対策で防いだり、被害を小さくしたりできます。

お客様のデータが手元から離れていく

最初によく起きるのはデータの流出です。見る権利のない人の手にデータが渡ることです。ネットショップなら、お客様の住所、電話番号、購入履歴が漏れるおそれがあります。その後、お客様のもとにあなたの店の名前をかたった偽のメッセージが届き、カード情報や携帯に届いたコードを聞き出そうとします。

お客様には攻撃者とあなたの区別がつきません。メッセージにはあなたの名前が書かれているからです。だからこそ、店舗のシステムそのものがしっかり守られている必要があります。たとえば店舗管理システムStorekは、売上、在庫、顧客データを守られた一つの場所にまとめています。

仕事が一番困るときに止まる

攻撃は暇な日を選んでくれません。サイトが止まるのは、祝日のセールの時期かもしれませんし、学校の入学手続きの週や、クリニックの予約がいっぱいの日かもしれません。よく知られた攻撃の一つは、サイトに大量のアクセスを送りつけて応答できなくし、本物のお客様がサイトに入れないようにするものです。

止まっている間は新しい注文が入らず、怒ったお客様から電話がかかり、社員は仕事ではなくおわびに追われます。原因がアクセス集中だけでなく侵入だった場合、調査と清掃と安全な再起動が終わるまで、システムが何日も閉じたままになることもあります。

信頼が失われ、法的な問題が続くことも

あなたのサイトでデータを盗まれたお客様は、そのことを長く覚えています。黙って離れていくお客様もいれば、SNSに体験を書き込むお客様もいます。検索エンジンが侵入されたサイトの横に警告を出すこともあり、新しい訪問者は入るのをためらいます。

多くの国には、会社に個人のデータを守るよう求める法律があります。たとえばGDPRとして知られる欧州のデータ保護規則です。守りをおろそかにした会社は、何が起きたかを説明し、被害を受けた人に知らせ、必要な対策を取っていたことを示すよう求められるかもしれません。これは避けられたはずの書類と手間と時間です。

Webアプリの弱点はふつうどこに隠れているのか?

弱点、つまり脆弱性とは、本来できないはずのことを誰かができてしまうシステムの小さなミスです。毎日システムを使っていても、すべて普通に見えるので気づきません。でも、それを探している人にはすぐに見つかります。

私たちの経験では、脆弱性はよく知られたいくつかの場所で繰り返し見つかります。それを知っていれば、チームや業者に名前を挙げて確認できます。

パスワードだけのログイン

ログインページはアプリの玄関です。ログインがパスワードだけに頼っているなら、パスワードを一つ盗めば扉は開きます。社員は簡単なパスワードを選んだり、同じパスワードを複数のサイトで使い回したりしがちです。別のサイトで盗まれれば、あなたのシステムも開いてしまいます。

よく知られた解決策は、多段階のログインです。パスワードを入力したあと、システムが社員のスマートフォンに届くコードや、スマートフォンのアプリに表示されるコードを求めます。攻撃者がパスワードを知っていても、スマートフォンがなければ入れません。さらに、何度も間違えたときにはアカウントを一時的にロックし、ボットが何千ものパスワードを試せないようにします。

更新されていないソフトとプラグイン

どのWebアプリも、ほかのソフトの上で動いています。サーバーのOS、プログラミング言語、データベース、既製のプラグインなどです。サーバーとは、あなたのサイトがインターネット上で動いているコンピューターのことです。誰かがこれらのソフトに脆弱性を見つけると、メーカーはそれをふさぐ更新を出し、脆弱性の内容は攻撃者も含めて誰でも知ることができるようになります。

本当の危険はここにあります。何か月も更新されていないサイトは、攻撃者がすでに入り方を知っている公開済みの脆弱性を抱えています。だから更新は、日程と担当者が決まった定期的な作業にするべきです。問題が起きてから思い出すものではありません。Hostrenaのホスティングのように管理と監視がついたホスティングなら、サーバー側のこの負担を減らせます。

開きすぎた入力フォームと権限

検索欄、問い合わせフォーム、ファイルのアップロード欄は、訪問者が好きなことを書き込める場所です。システムが入力内容を確認しないと、攻撃者は文章の代わりに命令を書き込み、データベースを読んだり書き換えたりできます。これは、Webアプリの最も危険な弱点をまとめた世界的に知られたリストOWASP Top 10の中でも、特に有名なミスの一つです。

開きすぎた権限も同じような危険です。クリニックの受付が患者のカルテを消す必要はありませんし、店で商品を登録する担当者が全商品の価格を変える必要もありません。どのアカウントにも仕事に必要な以上の権限があると、どれか一つが盗まれただけで、小さな問題ではなく大きな被害になります。

どのアプリにも組み込む基本の防御層

良い守りは一つの鍵に頼りません。いくつもの層が重なっていて、攻撃者が一つを越えても次の層が待っています。鍵のかかった扉、カメラ、そして中の金庫がある家のようなものです。

Linkysoftでは、これらの層をWebアプリと業務管理システムに、プログラミングが終わってからではなく、計画の段階から組み込みます。理由は簡単です。できあがったシステムに後から守りを足すのは、最初から一緒に作るより難しく、時間もかかるからです。

暗号化で盗まれたデータを役に立たなくする

暗号化とは、正しい鍵を持つ人にしか読めない記号にデータを変えることです。私たちは、データがお客様の端末とサーバーの間を移動している途中も暗号化し、ネット上で誰にも読まれないようにします。データベースに保存されているときも暗号化します。

その効果は最悪の日に表れます。誰かがデータベースのファイルにたどり着いても、見つかるのはお客様の名前や電話番号ではなく、意味のない記号です。暗号化の鍵はデータとは別の専用の保管庫に置き、鍵とデータが一緒に盗まれないようにしています。

社員は必要なものだけを見る

権限は仕事の役割ごとに分けます。医師は自分の患者のカルテを、経理担当は請求書を、受付は予約を見ます。この方法はロールベースの権限と呼ばれ、ミスやアカウントの盗難が起きても、影響をシステムの小さな部分にとどめます。

これは、クリニック・病院管理システムDocmzや、子どものデータを扱う学校のシステムなど、大切なデータを持つシステムでは特に重要です。さらに、重要なアカウント、とくに広い権限を持つ管理者のアカウントには、多段階のログインを加えます。

試したバックアップと、すべての操作の記録

バックアップとは、データのコピーを別の場所に保存しておき、元のデータがなくなったときに戻れるようにするものです。でも、一度も試したことのないバックアップは、必要な日に役に立たないかもしれません。だから私たちはバックアップを暗号化して守り、実際に復元を試して、必要になる前に使えることを確かめます。

最後の層は監査ログです。誰が、いつ、何をしたかを書き残す記録です。注文が消えたり価格が変わったりしたとき、どのアカウントが何時にそれをしたかがログでわかります。この記録は侵入を見つけるのに役立ち、社員の間の日々の行き違いを解決するのにも役立ちます。

侵入テストは、チームに見えないものをどう見つけるのか?

システムを作ったプログラマーは、それがどう動くべきかを知っています。だからこそ、壊す方法を一つ残らず思いつくのは難しいのです。侵入テストはこの問題を解決します。攻撃者のように考える専門家が行う、安全で事前に合意した攻撃です。ただし目的は、脆弱性を見つけて、ほかの誰よりも先にあなたに渡すことです。

お客様のデータや支払いを扱うアプリは、公開前にこのテストを受けるべきだと私たちは考えています。これは、新しいシステムにも既存のシステムにも提供している私たちのサイバーセキュリティサービスの中心となる部分です。

テストの間に何が起きるのか?

専門家はまず、テストの範囲をあなたと決めます。システムのどの部分を、どの日に、何には触れないか、です。そのあと、本物の攻撃者が試すことを、Webページ、スマートフォンアプリ、ネットワーク、システム同士をつなぐ接続部分で試します。すばやく調べる自動ツールと、ツールでは見つからないミスを見つける人の目による分析を組み合わせます。

テストはOWASPやNISTなど世界で認められた方法に沿って行うので、気分や運に左右されません。また安全です。データを消したり業務を止めたりはしません。目的は脆弱性があることを証明することで、それを使って害を与えることではないからです。

最後に何を受け取り、いつ再テストするのか?

最後に、見つかったすべての脆弱性をわかりやすい言葉でまとめた一覧を受け取ります。それぞれに、何が起きうるか、どのくらい深刻か、どう直すかが簡単に書かれています。修正のあとにもう一度テストし、それぞれの脆弱性が書類の上だけでなく本当にふさがれたことを確かめます。

一度のテストで一生安心というわけにはいきません。新しい決済の仕組みや新しいスマートフォンアプリなど、システムに大きな追加をするたびに、それまでなかった扉が開くことがあります。だから、大きな変更のたびに、そして何も変わっていなくても定期的に、テストを繰り返すことをおすすめします。ソフトには新しい脆弱性が次々と見つかるからです。

守りは公開日のあとも続く

多くのシステムは、きちんと作られたあとで放っておかれます。数か月たつとソフトに新しい脆弱性が出てきて、社員も入れ替わり、確認なしで急いで機能が追加されます。公開日に安全だったシステムが、そのまま安全であり続けることはありません。

だから私たちは、守りを専用のツールと担当者がいる継続的な仕事として扱います。次のセクションでは、毎日、毎週何をするべきか、そして実際に事故が起きたときに何をするべきかを説明します。

継続的なチェックと24時間の監視

継続的なチェックとは、ツールが定期的にシステムを調べて既知の脆弱性を探し、見つけたらチームに知らせることです。道で故障するのを待つのではなく、車を定期点検に出すようなものです。チェックによって、古いソフトや間違った設定を、ほかの誰かより先に見つけられます。

監視は、昼も夜も開いている目です。誰かが数分で何百回もログインを試したり、管理者のアカウントが真夜中に見慣れない国からログインしたりすると、すぐに警告が届きます。侵入に一時間で気づくか、何週間もたってから気づくかが、小さな問題で済むか大きな被害になるかの分かれ目です。

アプリの前に立つ盾

Webアプリケーションファイアウォールは、インターネットとアプリの間に立つ盾です。サイトに届くすべてのリクエストはまずここを通り、普通のリクエストは通して、悪意のあるリクエストは止めます。たとえば、フォームに命令を書き込もうとする試みや、パスワードを試すボットを止めます。

この盾は大量のリクエストへの対策にも役立ち、セールの日の本物のお客様の混雑と、サイトを止めようとする攻撃を見分けます。アプリの中の脆弱性を直す代わりにはなりませんが、時間をかせぎ、自動の攻撃の多くをそもそもアプリに届かせません。

事故が起きたときの準備された計画

どれほど守りが良くても、何か起きたときにどうするかを知っておく必要があります。計画のない会社は、最初の数時間を混乱と電話で失います。準備のある会社は、全員が知っている明確な手順で動きます。

  1. 封じ込め:被害を受けた部分を切り離し、システムのほかの部分に広がらないようにする。
  2. 調査:攻撃者がどうやって、いつ入り、何に触れたかを調べる。
  3. 清掃:攻撃者が残した痕跡をすべて取り除き、正常なコピーからデータを戻す。
  4. 弱点をふさぐ:攻撃者が入ってきた扉を直し、同じ道から戻ってこられないようにする。

社員は最初の防衛線

最もうまくいく攻撃は、プログラムの脆弱性ではなく、一通のメッセージから始まります。社員のもとに、銀行や上司から届いたように見えるメールが届き、リンクを開いてパスワードを入力するよう求めます。この手口はフィッシングと呼ばれ、社員が一人だまされるだけで、最高のシステムでも突破されてしまいます。

セキュリティ意識の研修では、偽のメッセージの見分け方を教え、相手が何と言おうとログインコードを誰にも渡さないよう教えます。また、ミスを恥ずかしがらずに、怪しいメッセージはすぐに報告するよう教えます。数時間の研修が、あなたの会社が受けうる最も危険な攻撃を止めるかもしれません。

守りの作業量と費用は何で決まるのか?

すべての会社に合う一つのプランはありません。作業量はシステムによって違うからです。5ページの会社紹介サイトは、決済があって何千人もの利用者がいるプラットフォームよりも、ずっと少ない作業で済みます。何が作業を増やし、何が減らすのかを知っておけば、届いた見積もりを理解しやすくなります。

基本のルールはこうです。システムの扉が多いほど、中にあるものが大切なほど、守るための作業は増えます。次の項目は、まじめなチームなら作業量を見積もる前に必ず確認する点です。

アプリの規模とデータの重要度

ページの数、利用者の種類、アプリとつながるシステムの数は、どれも調べる範囲を広げます。顧客向けポータル、社員向けポータル、スマートフォンアプリがあり、決済の仕組みともつながっているシステムなら、そのすべての部分を調べる必要があります。少人数の社員が使うログインページが一つだけのシステムは、ずっと簡単です。

データの重要度で話は変わります。患者のカルテ、生徒の成績、支払い情報には、より厳しい暗号化と、より広い監査ログ、ときには法令順守のための書類が必要です。学習管理システムAcadのような教育プラットフォームは生徒のデータを扱うので、料理のメニューを載せるだけのサイトより多くの配慮が必要です。

新しいアプリか、別のチームが作った既存のアプリか?

新しいアプリは守りやすいです。計画の中で、最初から防御層を一緒に作れるからです。既存のアプリ、特に作ったチームがもういない場合は、まず中身を理解する必要があります。コードに説明書がなかったり、ソフトが古かったり、権限がごちゃごちゃだったりするかもしれません。

その場合は、本当の状態を明らかにする調査から始め、危険度の順に修正を並べます。まずデータ流出や業務停止につながりかねない部分をふさぎ、そのあと段階的に危険度の低い部分へ進みます。こうすれば業務は止まらず、重大な問題より先に細かいことへ手間をかけることもありません。

契約の前にどの業者にも聞くべき質問

良い提案ははっきりした質問に答えます。弱い提案はそれを避けます。どんなセキュリティサービスでも、同意する前に次の質問に書面で答えてもらいましょう。

  • 調査の範囲は正確にどこまでか。サイトだけか、アプリ、スマートフォン版、接続部分も含むか。
  • わかりやすい言葉で書かれ、各脆弱性の直し方が載った報告書を受け取れるか。
  • 修正後の再テストは契約に含まれるか、それとも別か。
  • 夜間や休日は誰がシステムを監視し、警告にどのくらいで対応するか。
  • 事故が起きたら最初の数時間に何をし、誰が誰に連絡するか。
  • 契約を終えたあとも、コードとデータは完全に自分のものとして残るか。

経営者がアプリの守りについてよく聞く質問

ここでは、店舗のオーナーやクリニック、学校の管理者からよく聞く質問をまとめました。技術の知識がなくても判断できるよう、短くまっすぐに答えています。

あなたの質問がここにない場合は、この記事の最後にある質問一覧や、私たちのサイトのヘルプセンターをご覧ください。

良いホスティングだけでアプリは守れますか?

良いホスティングは、アプリが動くサーバーを守ります。それは大切な部分ですが、すべてではありません。命令を受け付けてしまうフォームや開きすぎた権限など、アプリ自体に脆弱性があれば、最高のサーバーでも攻撃者がそれを使うのを止められません。本当の守りは、守られたサーバーと安全に作られたアプリを組み合わせたものです。治安の良い地域の家でも、自分の家の鍵は自分でかける必要があるのと同じです。

アプリが侵入されたかどうかはどうすればわかりますか?

わかりやすい兆候もあります。ページの内容が変わっている、誰も知らないアカウントがある、あなたの名前で変なメッセージが届いたとお客様から苦情が来る、などです。わかりにくい兆候もあります。理由のわからない動作の遅さや、訪問者がほかのサイトに飛ばされることなどです。問題は、多くの侵入が何週間も何の兆候もなく静かに続くことです。だから早く気づくには、継続的な監視と監査ログしかありません。

侵入テストの間、業務は止まりますか?

いいえ、ほとんどの場合は何も止まりません。専門家は、テストする部分と時間をあらかじめあなたと決め、業務に影響したりデータを消したりしそうな操作は避けます。大切なシステムでは、お客様が使っている本番ではなく、まったく同じコピーの上でテストすることもできます。こうすれば、お客様に何も気づかれずに結果を得られます。

既存のアプリを安全にするにはどのくらいかかりますか?

アプリの規模と状態によります。小さなアプリなら最初の調査は数日で終わることもありますが、部分の多い大きなプラットフォームは数週間かかります。調査のあとは深刻度の順に修正を進めます。重大な脆弱性はたいてい最初に、数日のうちにふさがれ、残りは段階的に対応します。

社内にセキュリティ専門のチームは必要ですか?

中小企業の多くは、社内に完全なチームを持つ必要はありません。たいていは、社内の担当者一人と、調査、監視、対応を引き受ける専門の外部パートナーで十分です。大切なのは、責任の分担を書面ではっきりさせ、お互いに相手がやっていると思い込まないようにすることです。システムが大きく、データが大切なほど、より近くで見守る必要があります。

今週はこの三つから始めましょう

始めるのに大きな計画は要りません。一つ目は、あなたの仕事がネット上に持っているもの、つまりサイト、ネットショップ、予約システム、スマートフォンアプリと、それぞれに誰がログインできるかを一覧にすることです。二つ目は、すべての管理者アカウントで多段階のログインを有効にし、辞めた社員のアカウントを削除することです。三つ目は、システムを管理している人に一つだけ質問することです。「最後に実際にバックアップの復元を試したのはいつですか?」

その次に専門家による調査です。Linkysoftでは無料のセキュリティチェックと相談を提供しています。私たちがシステムを作った場合でも、別のチームが作った場合でも、アプリを確認し、最も深刻な弱点と最初に直すべき点をはっきりお伝えします。お申し込みはお問い合わせページから。決める前にもっと読みたい方は、ヘルプセンターで実用的な答えを見つけられます。

同じトピックの関連記事をお楽しみください。