損失を生まないためのセキュリティ知識
インターネットはとても便利な一方で、セキュリティ面の不備が招く情報流出などの事案が次々に発生している現状があります。システム運用にしっかりとコストをかけている大企業などでも、少しのミスや油断で大きな問題へと発展してしまうことがあるので、企業や組織の規模に関係なく、情報システムの運用に関わるすべての人が強く意識しなければならないのがこのセキュリティ問題です。
持っておくべきセキュリティ知識
システムエンジニアは、システムの設計段階でセキュリティ面を強く意識する必要があります。しかし、セキュリティの重要性よりも、コストカットの方が優先されてしまい、結果として脆弱なシステムを世に出してしまうケースも少なからずあります。何も起こらなければ損失はありませんが、一度問題は起きれば重大な責任問題に発展し、大きな代償を払うことになりかねません。そうならないためにも、セキュリティ知識の基礎についてしっかりと学び、安全なシステムを設計できるエンジニアを目指しましょう。そうすることで市場価値も高くなり、結果的に自分にとって大きなメリットをもたらすことになるでしょう。
では、システムエンジニアとしてどのようなセキュリティ知識を持っておけば良いでしょうか。いくつか代表的なものを以下にご紹介します。
セキュリティの種類と対策
ショッピングサイトなどの個人アカウントへの不正ログインなどを可能にしてしまうのが「XSS」(クロスサイトスクリプティング)です。XSSはWebサイトの脆弱性を利用して不正な動的スクリプトを実行させ、個人情報を詐取します。ユーザー側が注意することで被害を防ぐことが可能ですが、根本的に解決するにはWebサーバー側の対処が必要です。
「強制ブラウジング」は、アクセス制限の不備があるファイルに、外部から直接アクセスすることができてしまう攻撃方法です。この攻撃を受けると、ファイル内に含まれている機密情報が一気に大量流出してしまう危険があります。これに対処するには、サーバー上にあるファイル全てにアクセス制限を行う必要があります。
「SQLインジェクション」は、外部からの入力によって不正にSQLが実行されてしまい、データの詐取や改ざん、削除などの被害を受けてしまうものです。根本的な対策としては、言語ごとに用意されているSQLインジェクション防止用の仕組みを活用することが最も確実です。
その他にも、システムの乗っ取りを可能にしてしまう「OSコマンドインジェクション」や任意のディレクトリを使ってファイルにアクセスする「ディレクトリトラバーサル」など、様々な攻撃方法があります。IT技術進歩するのと同時に、悪意あるIT技術も進歩してしまっているので、最新のセキュリティ関連情報に通じておくことはシステムエンジニアの責務でもあります。