今回は機密性・完全性・可用性のお話です!
新型コロナウイルスの影響で、すっかりクラウド&リモートワークな世の中になりました。
リモートワークが主流になって来た事もあり、セキュリティに更なる需要が出て来たらしいですね!
今回のテーマは、そんなセキュリティの基本となる重要な3つのポイント!
「機密性・完全性・可用性」について、いつものノリでお話したいと思います!
機密性・完全性・可用性
この3つは、セキュリティの基本となっている三項目です。
その為、セットで覚えさせられる事が多いので、よく初級IT試験の問題にも出てたりしてます。
ただ、試験では以下の様に機械的に覚えると思います。
・機密性=情報漏洩の対策
・完全性=改ざん防止対策
・可用性=継続稼働をする為の対策
しかし実際はこの三項目をどの様に生かしてシステム運用をしているのでしょうか?
そしてどんな課題があるのでしょうか?
機密性
機密性は一言で言うと「情報漏洩」の対策に関する考え方で、「機密情報」は権限のある人しか見れない様にしてますか?って事なんです。
情報漏洩は不正アクセスから発生する事が多い為、ID・パスワード・アクセス権の管理に関わる対策が基本となります。
例えば身近なとこで言うと、PCへの不正アクセスを防止する為に、以下がよく注意喚起されます。
- 推測されやすいパスワードの禁止
- パスワードを定期的に変えましょう
- 机の上にメモ貼るの禁止
- ウイルス対策

思うから、あえて説明する必要は
ないよな
システム管理者目線だと、以下の様な対策になりますね。
- フォルダやファイルへのアクセス権付与
- 情報の保管場所・カギ・入室管理
- OSやソフトウェアのアップデート
- サイバーセキュリティ対策
システムの情報漏洩の原因としてよくあるのは、IDとパスワードを奪って情報を盗む「なりすまし」
もう1つはシステムの弱点(脆弱性)をついてウイルスなどを仕込んで、情報を抜き取る方法です。
脆弱性と一言で言っても本当に色々な種類があって、対象となるのはPCやサーバーだけではありません
中には複合機を狙ったようなものから、シンプルに人の脆弱性を付いたようなものまであるんです。
特にクラウドサービスなんかは、インターネット上にあるので、実は日々ものすごい攻撃を受けています。
そんな中、あなたの情報を守る為に、今日もエンジニアの人たちは不正アクセスと戦っているんです!
不正アクセスは人が油断している部分を巧妙に狙ってきます。
特に個人情報をやられてしまうと、多くの人が被害を受ける事になるので、IDとパスワードの管理は、油断しないよう気を付けましょう!

倍返してるぞ!
完全性
完全性をざっくりいうと、常にデータが正しい状態で維持できているか?って事です。
また、データの一部が壊れていて使えなくなっていたり、最新ではない場合も、「完全」とは言えません。
要は、情報を確認するときに、内容が間違っていたり、一部が壊れてたら「完全」じゃないでしょって事ですね。
では完全性が失われている状態はどんなときか?いくつか紹介します。
データの改ざん・破壊
改ざんの原因としては、機密性同様に、IDとパスワードを破られてしまう事が原因で発生する事が多いんです。
変更権限のある人のPCや、アカウントを乗っ取れば、データを自由に改ざんできちゃいますよね。
対策としては、定期的なパスワードの変更、複雑化、指紋などの生体認証を導入するなどの方法がよく使われます。
また、データの一部分が壊れている場合も「完全性」が満たされてるとは言えません。
いざ見ようって時に、情報が壊れて見えなかったら、意味ないですよね。
この対策としては、バックアップをとっておき、いつでも修復を可能にしておく等の方法がよくつかわれています。
データが更新されていない
内容にもよりますが、みんながみんな、更新の度にリアルタイムに情報を最新にするのは実際問題、なかなか難しいと思います。
なので、システム連携を使って、出来るだけ手動での作業を減らし、自動化を検討しているところも最近では増えているようです!
人的ミスによりデータを間違えている
これは非常に多い話なのですが、大事なのは「間違える」って事じゃなく「間違えたときどうするか」なんです。
一番ダメな例としては、間違えた担当者を責め続ける事。
とある案件でミスが多発したときのチームリーダーの対応として、私過去にこんなの見ました(実話)



言い直せ、そして再発防止策も今すぐ考えろ!
(理由を言っては否定 ・理由を言っては否定を繰り返す)

この例のよくないところは以下です。
・担当者がどんな理由を言っても否定し続ける
・否定しているのに、個人に再発防止策を考えさせる
・実はチームリーダーも他人事だと思ってる
・運用手順を俯瞰で見たうえでの判断をしていない。
そもそも・・人間はミスを起こす生き物です。
ミスを起こさない前提ではなく、ミスが発生する前提で考え、ミスが起きてしまった場合、どうすれば迅速にリカバリーができるかを考えるべきだったんです。
ミスが多発するなら、それを個人に押し付けるのではなく、チームの課題として捉えなければいけません。
目線を変え俯瞰でみたら、ミスを誘発しやすく複雑な運用である可能性だってあります。
そして、発言を否定され続けると、人は考える事をやめます。
思考停止させるような事をしておいて「再発防止策を考えろ」は、今時ではパワハラになる可能性もあるので注意しましょう。
個人を責め続けて、問題が改善されたケースを私は見た事がありません。
それともう1つ!
間違える度、何も考えずにチェックの人数だけを増えやすと、マジでこうなって、逆に完全性を失うので注意です!
※興味のある方はツイッターから「#現場猫」で検索して下さい。
可用性
可用性については、システム管理者よりの話になります。
可用性は一言で言うと「情報を使いたい時にいつでも使える」状態になっている事です。
つまり、サーバーが頻繁に落ちて、しょっちゅう業務が止まってしまうシステムは「可用性が低い」という評価となります。
通常は同じ機器を2台用意しておき「冗長化」という方法を使った対策がよく使われています。
サーバだと冗長化はこんなイメージです。
まず、同じサーバーを「本番用・待機用」として用意します。ユーザーは普段「本番」を利用しています。

ハートビートって言うんだぞ!
知らなかった人は覚えておこう。
もし、本番に問題が発生した場合は、異常を自動で検知して「待機側」で業務がすぐに再開できるように切り替わります。
よく予備電源ってあるじゃないですか?そんなイメージです。

プライマリ(本番)・セカンダリ(待機)とかアクティブ(本番)・スタンバイ(待機)って呼ぶから
これも覚えておくといいぞ
今回は、冗長化の例をサーバーで説明しました。
しかし、冗長化は、電源、ネットワーク機器、ハードウェア、ソフトウェア、データベース、などなど色々な冗長化構成が存在します!
ちなみにクラウドサービスを提供する事業者は、SLAと呼ばれる(Service Level Agreement)サービス品質保証を定義しています。
実はこれも「可用性」に関する話で、これはサービスの稼働時間をどこまで保証できるか?という定義なんです。
参考までにいくつか例を以下に記載します!
SLA | 週間ダウンタイム | 月間ダウンタイム | 年間ダウンタイム |
99% | 1.68時間 | 7.2時間 | 3.65日 |
99.9% | 10.1分 | 43.2分 | 8.76時間 |
99.95% | 5分 | 21.6分 | 4.38時間 |
99.99% | 1.01分 | 4.32分 | 52.56分 |
99.999% | 6秒 | 25.9秒 | 5.26分 |

最後に
セキュリティ対策は、自動化やシステムの話よりも「ルールの決めと運用」の話が殆どです。
「セキュリティ」をガチガチにすればするほど、リスクは大きく軽減されます。
でもね難しいのが、セキュリティで縛れば縛るほど、ユーザーの利便性が下がり、どんどん仕事がしにくくなってくるんです。

また、せっかくルールを作っても、イレギュラーケースが多くなり、作ったルールが意味をなさなくなる。なんて事も当然あります。
これはセキュリティやルール作りにおける永遠のテーマなんです。
それとは別に、私何かの本で見た事あるんですけど、人間の意思決定と行動って、論理的な部分だけではなく、感情部分もすごく影響を受けているらしいんです。
例えば、明日は大事なプレゼンなのに、何も準備せずにスマホ見て遊んでしまったり。
これ明日までにやらなきゃいけないんだよな・・って思ってても、楽しくないしメンドイから、ギリギリまでやらなかったり。
みたいな・・「解っちゃいるけど」系な話し結構ありませんか?

なので、時には感情が優先されて、ルールをつい破ってしまう事もきっとあると思います。
上記みたいな話を考えたとき・・これも感情が優先された結果なのかな?ってちょっと思ったりしました。
ちなみにこんなのもあります!
(オアシス運動)

ネタ投下してすまん!
