セキュリティホールとは、コンピュータ上のOSやソフトウェアなどの「欠陥」を指す言葉です。セキュリティホールを無視してコンピュータを稼働させていると、セキュリティホールを突いてコンピュータがハッキングされるなどの被害を受けることになります。
もし後になってSOやソフトウェアのセキュリティホールが見つかった場合は、そのセキュリティホールをふさぐパッチなどをインストールして、セキュリティホールの防御を万全な状態としてください。
※本ページにはPRが含まれます。
目次
セキュリティホールと脆弱性の違い
セキュリティホールと似た言葉に、システムの「脆弱性」という言葉があります。セキュリティホールと脆弱性、これらの言葉にはどんな違いがあるのか。それぞれの違いを知っておきましょう。
脆弱性
脆弱性とは、性質上システム稼働後に判明することが多い、「OSやソフトウェアの弱さ」を指す言葉です。
脆弱性があると、その弱点を突いて外部からの攻撃にさらされることがあります。
セキュリティホールは具体的なセキュリティ面の弱点を指すのに対し、脆弱性はもっと広い「ソーシャルエンジニアリング」のような弱点も含まれます。さらに、ハードウェア面の弱点も含まれます。脆弱性はセキュリティホール含めた「コンピュータの弱点」を指す言葉です。
セキュリティホール
セキュリティホールとは、ソフトウェアの欠陥を指す言葉です。
セキュリティホールは、システム稼働前事前にわかることもある、システムの穴を意味します。システムの開発が進み、機能が増えてくるとどうしてもシステムに欠陥が生まれてしまうものです。
開発者はあらゆる努力をして、事前にこの欠陥のない状態でソフトウェアを世に送り出す努力をしています。
なぜセキュリティホールが生まれるのか
どうしてエンジニアが日々努力、開発環境も発達している今、セキュリティホールが生まれてしまうのかその理由を調べましょう。
エンジニアの知識・経験不足
基本的に、ソフトウェアやシステムの開発はとても複雑な作業。
一から設計して、多くの人の手を借りながら設計を進めていくのは、実際はとても大変なことです。プログラマーなどエンジニアは、過去の経験や知識を持って、システムを組み上げていきます。
そしてシステム開発に携わるエンジニア個人には経験が蓄積されていくわけですが、新人エンジニアには経験が蓄積されにくいです。そうした開発スキルが未熟なエンジニアの細かいミスが、セキュリティホールを作ってしまう原因になってしまうことは、十分考えられることです。
システムの機能が多すぎる
システム開発技術があがり、ソフトウェアの機能が増えていくにつれて、セキュリティホールが発生しやすくなります。
複雑な機能を持つシステム開発は、かなり難しいからです。
他所にない、新しい機能を付随させれば当然、今まで見つからなかったセキュリティホールが発生しやすくなるのです。
途中でシステムの開発者が変わった
IT業界は、開発環境において人の流入がとても多いです。
開発途中であっても、開発担当者が変わってしまうなんてのは日常茶飯事。極端な例を出すと、熟練のプログラマーが担当を外れ、新米のプログラマーがソフトウェア開発にあてがわれたとしたら。
その場合は当然、プログラマーの経験不足によるセキュリティホールが生まれてしまうのです。
テスト不足
ソフトウェア開発において、ソフトウェアテストを行うのは当たり前ですが、中にはテストでみつからないバグやセキュリティホールがあります。
しかしシステムの機能をすべてテストするのは、理論上不可能です。テストはあくまで想定できる場面を開発者が入力して、その限られたケースのみをテストします。
そのため、想定外のバグには対応することができないのです。
セキュリティホールを見つけた際の対策
セキュリティホールが実際に見つかってしまったら、どんな対応をとるのが一番理想的なのか。対応策を考えてみましょう。
パッチをあてる
セキュリティホールが見つかったソフトウェアをアップデートで、セキュリティホールに対応したパッチをあてることで、セキュリティホールを「ふさぐ」ことが可能です。今後はセキュリティホールを狙った外部攻撃を受けないためにも、早めのパッチ対応を行うようにしてください。
対策ソフトをインストールしておく
あらかじめ、セキュリティホールから受ける外部攻撃や障害に対応するための「対策ソフト」を導入しておくことで、セキュリティホールの脅威を防ぐことが可能です。
まとめ
セキュリティホールは脆弱性と違い、明確に原因を突き詰めたシステムの「弱点」のことです。
セキュリティホールはあらかじめ開発者が見つけておくのが理想ですが、100%すべてのセキュリティホールを見つけるのは理論上不可能。セキュリティエンジニアなどと協力しながら、セキュリティホールを埋める努力をしてください。