情報セキュリティにおける信頼性とは?
情報セキュリティの6大要素の一つである信頼性。ISO27001 の構築にあたっては、情報セキュリティの3大要素というキーワードはよく耳にすると思いますが、実は6大要素、7大要素というものがあり、以下の項目が情報セキュリティにおいて確保すべき重要な項目とされています。
- ・可用性
- ・機密性
- ・完全性
- ・真正性
- ・責任追跡性
- ・信頼性
- ・否認防止
この7つの項目は、情報セキュリティマネジメントシステムの構築においても要考慮事項です。今回は、その中でも「信頼性」という概念について解説していきたいと思います。
目次
情報セキュリティの信頼性とは
情報セキュリティにおける信頼性とは、情報処理において意図した動作が行われることを確実にすることです。特にコンピューターによって情報操作を行う場合、情報のスペシャリストではない人によってデータが更新されたり、削除されたり、あるいは追加されたりします。
このようなケースではGUI(グラフィカルユーザーインターフェース)からデータを操作することになると思いますが、仮に人為的な操作ミスがなくともシステムのバグやプログラム開発者が意図しない動作によってデータが改ざん・破壊されてしまうことがあります。
このため、システム開発者や管理者は、システムを誰もが安心して使い続けることができるように、システム処理に欠陥や不具合がなく、確実に意図した動作のみが行われるように担保する必要があるのです。
信頼性の欠落によって発生するインシデント
では、情報システムの信頼性が欠落すると、どのようなインシデントが発生するのでしょうか?
データの改ざん・破壊
多くのアプリケーションはJSONやMySQLなどのデータベースを活用しています。このデータベースそのものが、悪意のない動作によって書き換えられたり、破壊されたりしてしまうことが想定されます。
脆弱性を突いた攻撃
MySQL やPostgreSQLを利用したシステムでは、URLなどの情報をもとにデータをインプット、そのインプットされた値によってSLQ文を発行し、表示内容を変更するといったものが多いと思います。このようなシステムでは、プリペアドステートメントなどのメソッドを活用しないと、意図しないSQL文を発行されてしまうことがあります。このような攻撃のことをSQLインジェクション と言いますが、信頼性を損なうと他にも 脆弱性 を突いた攻撃がされてしまう可能性が高くなり、事業継続のリスクをもたらします。
信頼性を確保するためには
信頼性を確保するためには、いくつかの方法がありますが、その多くは「システムの構築、つまりプログラミングによって不具合が発生しない設計・対策を行うこと」によって解決が可能です。
例外処理を定義する
スクリプト系の言語であれば、try…catch…の構文が一般的でありますが、例外を検知して例外が発生した場合の処理を定義することで、信頼性を向上させることが可能になります。
バリデーションを設ける
Webサービスの場合は、JavaScriptなどの言語を用いてバリデーション(入力チェック)を行うことで、ユーザーのブラウザ上での行動を制御し、例外が投げられないようにするという方法も効果的です。
SQLインジェクション対策を行う
多くのプログラミング言語では、SQLインジェクション対策としてプリペアドステートメントというメソッドが搭載されています。SQLインジェクションは、例えばインプットされた値をそのままSQL文に組み込むため発生することがほとんどです。
上記のような構造では、意図しないサブクエリの実行やSQLのWHERE句の書き換えが発生してしまうため、URLを少し変更してリクエストを送信するだけで攻撃を実行することができてしまうのです。このような攻撃が行われないように、プリペアドステートメントというメソッドを利用し、SQL文に制限をかけることでSQLインジェクション対策を行うことが可能になります。
まとめ
今回は、情報セキュリティの信頼性について解説してきました。情報セキュリティマネジメントシステムでは、情報セキュリティの3大要素にばかり注目がされてしまいますが、信頼性や真正性を確保しなければその3大要素も損なうことになるかもしれませんので、リスクを把握してしっかりと対策を講じましょう。
ISOプロでは月額4万円から御社に合わせたISO運用を実施中
ISOプロではISO各種の認証取得から運用まで幅広くサポートしております。
また、マニュアル作成など御社に合わせたムダのない運用を心がけており、既に認証を取得しているお客様においてもご提案しております。
サポート料金においても新プランを用意し、業界最安級の月額4万円からご利用いただけます。
こんな方に読んでほしい