こんにちは、だいきです。
日常的にコードを書いているプログラマーにとって、日々エラーとの戦いです。プログラマーが見つけることができなかったエラーは、市場に出るとバグと言われるものになります。しかし、アプリケーションにバグがあると様々な悪いことがあります。今回は、そのバグがあるとどうなるのかについて書いていこうと思います。
バグには、間違った値を返すもの、処理がずっと終わらないもの、突然違うページに飛ばされるもの、エラーが起きてしまうものなど様々なものがあります。その中で、悪用されてしまうバグがあります。そのようなバグのことを脆弱性やセキュリティバグと呼ばれています。
脆弱性を突かれ、悪用される例として以下のようなものがあります
などなどがあります。
脆弱性のことを全く知らずにアプリケーションを作ってしまうと、以上のようなアプリケーションを作ってしまう可能性があります。そのようなことが起きず、利用者が快適にサービスを受けられるように、プログラマーは脆弱性の勉強をし、安全なアプリケーションを作ることが大切になるのです。
脆弱性のデメリットとして、脆弱性を悪用され、サービス運営者が受ける経済的損失があります。例えば、サービスが停止してしまった時の機会損失、利用者が受けた損失の補填、信用問題による売上の低下などがあります。
このような損失は、数億を軽く超えてしまうケースもあります。
利用者は、このサービスは信頼ができると考えて、そのサービスを利用しています。しかし、個人情報の漏洩が起きた時、利用者は、サービスや運営に対して不信感を抱くようになり、2度とそのサービスを使わない可能性が出てきます。なた、クレジットカード番号が漏洩した場合、利用者が多額の損失を受ける可能性があります。
以上のような問題は、お金で解決することができない問題で、ビジネスにおいて最悪の結果を招くことがあります。
脆弱性が生まれる原因として、主に2つをあげることができます。
1つ目は、新たな脆弱性は発見される
2つ目は、チェック不足によるもの
1つ目は、今まで脆弱性と思われていなかった箇所に脆弱性が発見され、それを悪用されるというケースです。開発段階では、過去に脆弱性が発見されている場所は、あらかじめバグを無くし、脆弱性を防ぐことができますが、新たな脆弱性は防ぐことができません。新たな脆弱性が発見された場合は、脆弱性箇所を見つけ出し、いち早く対策することが大切になります。
2つ目は、今まで発見されていた脆弱性を対処しておらず、開発してしまった時に、脆弱性がサービスに介在してしまうことです。納期がきつい時や予算が少ない時は、とりあえず動くものを作ることが優先され、セキュリティーは後回しになる機会が多く、最終的に脆弱性のチェックを行わずに、納品してしまうことがあります。
脆弱性により、様々な被害を利用者にも、運営側にも与えてしまいます。全ての脆弱性を対処するのは難してくも、今発見されている脆弱性を対処することで、被害に遭う確率を減らすことが大切なのです。忙しい中でも、脆弱性をしっかり対応するようにしましょう。
以上、だいきでした。