見出し画像

脆弱性と脆弱性診断


アイシーティーリンクの堀井と申します。
未経験入社の観点から「ITについて良く分からないよーって方でも分かるような読み易い記事を書く」をモットーに記事を作成、公開していきたいと思ってます。
今回は、前職のお話をしようと思っておりましたが、過去の記事に繋がりのあるお話を…と思い、セキュリティについて興味をもったキッカケでもある
「脆弱性と脆弱性診断」について、分かり易く解説していければなと思います。

【脆弱性とは】

脆弱性(ぜいじゃくせい)とは、Webアプリケーション、OS、ミドルウェア、ネットワークに潜む、セキュリティ上の弱点、欠陥、問題点のことです。
Webサイトや、Webアプリケーション(ソフトウェア)等、人間が設計したものには、欠陥や不具合があるのは当たり前です。


画像3

上記の画像は救いようのない脆弱性(?)ですねwww


僕なんかで例えると、会話の主語が抜けてしまったり、すぐ忘れてしまったり…
その対策として、日頃の会話から主語を意識するようにしたり、メモを取ったりします。

画像4

新型の車がリリースされた当初に購入して、あれ?提示されてるよりだいぶ燃費が…静音性が…なんて事だってあります。(体験談w)

ゲームアプリでもリリースしたばっかりだと画面が固まったり、ガチャが引けなかったり…ずっとloading画面だったり…(体験談ww)


また、脆弱性と似た言葉で「セキュリティホール」があります。
本来出来ないはずの操作が出来てしまったり見えるべきではない情報が第三者に見えてしまったり…


例として、昔流行った「ぼくのなつやすみ」の「32日目」とかが分かりやすいですね…
ある事をすると、32日目以降に進めるんです。
開発者さんがコメントしてる記事がありましたので載せておきます。

画像2

『通常、絵日記画面では画面左上に電気スタンドのヒモが表示されていて、クリックすると絵日記を書いて寝る(次の日に行く)ことができます。
しかし「夜以外はヒモのグラフィックが表示されていないから、まさかそこにカーソルが移動できて、クリックできるバグが潜んでいるとは誰も思いませんでした」と綾部氏。
まあ、これだけなら「就寝せずに翌日へ行ける」というだけで済んだのですが、問題はクリア後に「思い出」として見られる「8月31日の絵日記」からも同じことができてしまった、ということでした。
当たり前ですが、ゲームは8月31日で終了ですから、8月32日に行けたところで参照するデータがありません。
しかし、ここで普通のゲームなら動かなくなってしまいそうなところ、「ぼくなつ」はそうではありませんでした。
「8月32日なんてデータは用意されていませんから当然むちゃくちゃになりますが、その部分はプログラミングが優秀なので、ドライバーが堅牢で、データが存在しない日時に突入してもボロボロになりながら動いてるんです。
ある意味すごいことなんだけど…
データがないまま動き続けるのは無理なので、ああいうホラーな見た目になっているんです。
メモリーの狭間にある各種のドライバーにとっては無意味な情報を、無理やり視覚化するとああいうグラフィックになるということですね。』
綾部氏のツイートより


まとめると、ずっと夏休み状態ww
ただ、そこにデータがないから、かき集めのグラフィックで再現されていて、崩れてしまっていると…



だいぶ話が逸れてしまいましたが、
悪意のある攻撃者は、企業や団体が保有するITシステム、Webサイト、Webアプリケーション内の重要情報、機密情報、個人情報を搾取するために、脆弱性やセキュリティホールに対して攻撃を仕掛け、情報を盗み取ろうとします。
1つの情報は安いですが、数百万、数千万という大規模で盗み取ることができれば、高額で取引されるため、金銭目的の犯行が多いことも特徴です。
また近年はブロックチェーンを利用した仮想通貨が流通しているため、直接金銭に関係するデータを盗み取ってしまう大胆な犯行も実在します。


【脆弱性診断とは】

画像5

上記で説明した「脆弱性」、「セキュリティホール」の特定、ランク付け、報告をします。
自分の弱点を知る事で、その危険度や直ぐに講じるべき対策が見えてきます。
似たようなものに「ペネトレーションテスト」というものがあります。システムに侵入し、脆弱性を悪用してシステムコンポーネントのセキュリティ機能を回避、または無効化の可能性の特定することです。
ペネトレーションテストは、システム全体の観点で、侵入できる弱点が存在し悪用できてしまうことを確認することで講じる対策方法を理解できます。
以上の内容から分かるように、脆弱性診断の必要性は、診断後に発見された脆弱性の種類(カテゴリ)や危険性(重要度)を、「共通脆弱性評価システム(CVSS)」というもので評価し、ランク付けすることで、講じるべき対策方法が理解できるためです。
ユーザに安全なWebサイト、Webアプリケーションを提供することや、情報セキュリティ対策のコスト低減、情報セキュリティインシデントの発生防止の為に、脆弱性診断は必要とされています。
悪意のある第三者から脆弱性を利用され、外部から不正アクセスされ機密情報の漏えいや、パソコンがウィルスに感染するなどの深刻な事態を招くことになります。


画像6

上記の例で言うと、
まず、写真の欠陥は改修工事が必要ですよねw

僕の主語抜けや、ド忘れ等は対策を講じないと、
顧客との会話が成り立たない。
会社の大事な案件を忘れていた。
そして契約自体無しになった…なんて事になり得る可能性もあります。

車だってリコールがあり改善されたりします。
リコールを行わないオーナーもいますが、それで故障した。原因となった故障箇所にはリコールが出ていた。なんてなったら自己責任です。

ゲームアプリだって、何度も何度もメンテナンスして、みんなが楽しい!と思えるゲームアプリになっていきますよね。
メンテナンスが無かったらプレイユーザーは離れていきます。
だって画面固まるんだもん…笑笑


画像7

どんな素晴らしい制作物にも穴が必ずあるんです。
だって人間が作ったものなんですから…
たくさんの「人の手」が加えられて、すばらしい作品に仕上がるんです。


脆弱性を放っておくとどうなるのか。
マイホームを例にしてみます。
家の全く使わない窓の鍵が壊れていた...
これが、マイホームの脆弱性ですね。
それを知らずに放置するとどのようなリスクがあるのでしょうか。
泥棒などの犯罪者が、それに気付いたとしたら、いつでも自由に侵入できることになってしまいますよね。
しかし、そういった犯罪者は、なかなか形跡を残しません。
(今、自分家の窓の鍵確認したくなった人いると思います。笑)
マイホームの脆弱性を知らない本人は「あれ?こんな所にこれ置いたかな?」位しか疑わず、そのまま放置してしまうかもしれません。
またそのドアから侵入できると犯罪者が知ったら、同じようなことを何度も繰り返すことができます。
本来は、鍵がちゃんとかかっているかを定期的に確認して、容易に侵入できないようにしておくのが当たり前です。
同じく、サイトも常に脆弱性がないことを確認しておく必要があります。

画像8

家の場合は金品の窃盗が目的の場合が多いでしょう。
それではサイトやWebアプリケーションの脆弱性を狙う犯罪者はどのようなことをするのでしょうか?
目的や狙いは色々あります。
改ざんすることで自己顕示するような愉快犯から、政治的な主張をしたり、後述するような金銭目的の犯罪も増えています。
イメージを傷つけるような情報やデータの改ざんという場合もありますが、多くの場合は、いわゆるマルウェアと呼ばれる、不正な動作や本来の意図とは別の有害な動作をさせるような悪意のあるソフトウェアを忍び込ませます。
ワーム、トロイの木馬。スパイウェア、キーロガーなどいろいろなマルウェアがありますが、もっとも一般的なものはウイルスといわれるものです。
サイトやアプリケーションにアクセスした場合に感染し、被害が拡大していきます。
つまり、脆弱性があるサイトやWebアプリケーションとそれを管理、運営している会社だけでなく、そこにアクセスしたり、利用したりするお客様にも被害が広がる事になります。
このような問題への対策やツールはいろいろとありますが、まず脆弱性がないか確認して、解消しておくことが第一歩になります。
人間で言えば健康診断です。
病気になったら薬を飲んで治すのではなく、未病の段階で早めに対策をして健康を管理することが大切です。

画像9


脆弱性を利用したサイトやWebアプリケーションへの侵入は、当初は改ざん目的などが多かったのですが、近年は金銭を目的にした犯罪が多くなっています。
不正アクセスによって搾取された個人情報が売買されたり、クレジットカード情報が盗まれて不正利用されたりしています。
また管理者権限を乗っ取ったり、不正にダウンロードした個人情報をもとにして、身代金を要求する、ランサムウェアと呼ばれるマルウェアが増えてきています。
当初は個人が対象だったランサムウェアも、近年は企業が対象になっており、WannaCryと呼ばれたマルウェアは多くの企業や公的機関が攻撃の対象になり、社会的な脅威として広く知られるようになりました。
サイバー犯罪は、ビットコインなど仮想通貨の広まりとも関係し金銭がからんだビジネスの様相を呈しており、このような被害にあわないためにも、脆弱性を調べ、発見し、修正するなど対策を講じておくことが急務になっています。




脆弱性診断には「ツール診断」と「手動診断」の2種類があります。
「手動診断」は文字通り人の手を使って行うもの、「自動診断」は何らかの自動検査ツールを利用して検査するものです。厳密に言えば、「手動診断」でツールを使うこともありますし、「自動診断」でも完全自動と言うわけにもいきません。あくまでも「人の手とツールの、どちらが主か」でカテゴライズされていると理解ください。

手動脆弱性診断

サイバーセキュリティの専門知識を持つ診断員(セキュリティエンジニア)が、対象のWebアプリケーションを自らの手で検査することを意味しています。もちろん実際にはすべてを手動で検査するわけではなく、何らかの(自動)ツールを用いることがほとんどですが、その際もツールのみに頼らず、診断員の知見を駆使しながら労働集約的に検査します。


ツール脆弱性診断

ツールによる自動脆弱性診断は、大きく2種類に分かれます。

・リリース前診断用ツール

自社内の開発部門において、Webアプリケーションのリリース前に自動検査ツールを用いて実施する脆弱性診断を「リリース前診断」と定義します(自社内で行う場合でも、セキュリティ部門のエンジニアなどが手動で行う診断は「手動診断」に分類されます)。

・リリース後診断用ツール

ツール診断はコーポレートサイトを費用を抑えて診断する場合やWebアプリケーションを開発時に手早く検査したい場合におすすめです。

最後に

画像9

今回は1番身近にある脆弱性についての説明を記事にさせていただきました。
「便利」が増えれば「不安」も増える。
その「不安」に対して「対策」を考え実行し「改善」に導く…
これを日々繰り返し行い安心してご利用いただける環境を提供する。
アイシーティーリンクでは様々な事業のインフラ構築から運営時のトラブル、セキュリティ診断まで、しっかりサポートいたします!
言葉足らずで至らないところもあったかもしれませんが、最後までお付き合いいただきありがとうございました。
当社でも「Web健康診断」というものをやってますので
少しでも気になったり、不安に思った方はお問い合わせください!

↓ICTLINK 「Web健康診断」↓

https://www.ictlink.jp/ictlink-web-scan/

この記事が気に入ったらサポートをしてみませんか?