脆弱性とは
脆弱性とはセキュリティ上の欠陥のことです。
- 主な原因
- ・プログラムやコードのミス
- ・基盤となるOSやミドルウェアの欠陥
- ・新しい攻撃手法の誕生
- 脆弱性の種類
- ・技術的脆弱性
- ・組織的脆弱性
- ・人的脆弱性
- ・物理的脆弱性
- 脆弱性による攻撃
- ・クロスサイトスクリプティング(XSS)
- ・クロスサイトリクエストフォージェリ(CSRF)
- ・SQLインジェクション
- ・OSコマンド・インジェクション
- ・ゼロデイ攻撃
- ・ルートキット攻撃
- ・セッションID
- ・その他
この脆弱性が入り口となり様々な問題が生じます。
脆弱性の種類
脆弱性には大きく分けて4つに分けられます。
技術的脆弱性
一つ目は技術的脆弱性です。
上の原因でも紹介したプログラムやコードのミスであったり、
OSやミドルウェア等の欠陥であったりと技術に関するものです。
組織的脆弱性
次に組織的脆弱性です。
組織の中や外との関り方組織での脆弱性についての意識や取組などです。
人的脆弱性
次に人的脆弱性です。
人間の不注意や感情によるものなどです。
不審なメールを開いてしまったり、
気づかないうちにミスをしてしまったりというものです。
物理的脆弱性
最後に物理的脆弱性です。
会社やデータセンターといった建物やサーバーやPCといったハードウェアの管理不足や
セキュリテ―面によるものです。
脆弱性による攻撃
脆弱性による攻撃はたくさんあります。
上記で上げた以外にもありますがここでは2つに絞って紹介します。
クロスサイトスクリプティング(XSS)
Webサイトの脆弱性を利用し、悪用サイトに飛ばすようにし、
個人情報を不正取得したり、マルウェア感染させたりするサイバー攻撃のことです。
例
- 通常のウェブサイトにアクセスをします
- エラーなどを装いアクセスできなくします
- 悪意のあるウェブサイトに飛ばします
- 悪意のあるスクリプトが実行され個人情報紛失やマルウェア感染が起きてしまいます
SQLインジェクション
第三者がSQLコマンドを悪用してデータベースの情報へ不正にアクセスし、情報を盗んだり改ざんしたり、削除したりする攻撃のことです。
例
- ログイン情報入力画面(入力フォーム)に不正なSQL文を入力
- データベース内に侵入成功
- ID、パスワードを用いて不正ログインしたりデータを改ざんする
脆弱性対策
脆弱性診断
脆弱性診断とは上記で紹介した攻撃を防ぐため発端となる脆弱性がないかをチェックしてセキュリティ状態を確認することです。
脆弱性を見つけその脆弱性がどんな害をもたらすかを表したり、
どうすることで脆弱性を対処できるかを教えてくれたり、
検知した脆弱性をランク付けしわかりやすくしたりといった機能があります。
・私が使ったアプリ
サニタイジング
XSSに有効な対策としてあげられるのがサニタイジングです。
サニタイジングとは書かれたコードを文字列に置き換える操作のことです。
万が一悪意のあるスクリプトが実行されるとなっても
その物自体が文字として扱われるため実行されることはなくなるということです。
Java Scriptでのやり方
function htmlentities(str){
return String(str).replace(/&/g,"&")
.replace(/"/g,""")
.replace(/</g,"<")
.replace(/>/g,">")
管理
企業が所有している機器やOSの管理が大切です。
- 常に最新の状態に更新しているか
- 点検や確認はこまめに行っているか
- 他人に変えられないようなセキュリティであるか
知識・情報
脆弱性とは何か、どういった原因で起こりどう対処するかを知っておく必要があります。
また、脆弱性やセキュリティに関する最新の情報を知っておくことも大切です。
新たな攻撃手法が誕生したり新たなセキュリティ対策が生まれることもあります。
事前に知っておくことで対策できることはたくさんあります。
まとめ
ここでは脆弱性についてまとめました。
脆弱性はトラブルの原因となるものです。
未然に防ぐことができるため、
脆弱性についての知識と対策を頭に入れておくことが大切です。
脆弱性についてまだまだ分からないことだらけなのでぜひご教示ください。
最後までご覧いただきありがとうございました。