セキュリティー知恵袋 > セキュリティー担当者でも担当者じゃなくても。誰にでもわかる、はじめての脆弱性診断!

セキュリティー担当者でも担当者じゃなくても。誰にでもわかる、はじめての脆弱性診断!

ここはとある中小企業。
今月からECサイトに携わることになった、ひらのちゃん。
WEBの知識はさっぱりな彼女がECサイトのセキュリティーに立ち向かう!ストーリーです。
気合と根性で乗り切れる…のか。
初心者の方でも簡単にわかる、かつ大事なセキュリティー知識をお届けします。
 
※この話はフィクションです。物語にでてくる会社はISAOではありません。

すがわら:
今日のひらのさんは何だかニヤついて気味が悪いですが、どうかしましたか?
ひらの:
おはようございまーす!
いつもはムカつくすがわらさんの嫌みも、今日は水に流しちゃいます^^
 
私が初めて担当するプリンのECサイトがそろそろ完成するんですよ♬
後は社内で確認したら、いよいよサイトのオープンです!
すがわら:
あ~なるほど。そういうことですか。
だからいつにも増して上機嫌なんですね。
水を差すようで悪いですが、脆弱性診断もとっくに対応していますよね?
ひらの:
ぜいじゃくせい…しんだん?
サイトの構築が終わったので、エンジニアのみなさんにバグチェックだけしてもらって、オープンしようと思っていました。
その診断って何ですか?もしかして、サイトオープン前には必須ですか??
すがわら:
はあ~・・・・・・・・・・・・(深いため息)
サイトをオープンさせる前の今、僕に会ったことを感謝するといい。
ひらの:
何だか私の状況がヤバそうなのは伝わったので、早く教えてください!!
すがわら:
まずは基礎中の基礎、脆弱性(ぜいじゃくせい)について教えてあげよう。
 
脆弱性とは、インターネット・ネットワーク分野の場合、主にソフトウェアの欠陥を指す
主にバグ・ヒューマンエラー・予期せぬ挙動などによって発生し、別名セキュリティーホールとも呼ばれる。
これがプログラム上の抜け道となってしまうことが多く、そこをつかれると攻撃に悪用されることがあるのだ。
ひらの:
ほ~。確かに人間だもの、人が作っているならミスが発生することもあり得ますよね。
すがわら:
そうそう。
では、その攻撃としてどのようなものがあるのかも教えてあげよう。
ウイルス感染・不正アクセスの被害・サイト改ざん・情報漏洩などが考えられ、脆弱性を放って多くと様々な被害を受ける可能性が高くなる!
ひらの:
ひえ~!
こんなに苦労して作ったサイトが、脆弱性を放っておくと改ざんされるかもしれない!?
個人情報の漏洩!?
…考えただけで卒倒しちゃいます(:_;)
すがわら:
そうならない為にも、脆弱性診断が必要になるんだよ。
 
脆弱性が発生するソフトウェアは、人間が作ったもの。
となると完璧だと思っていても、どうしても穴があって(=脆弱性、=セキュリティー的にもろくなっている部分がある)、それを悪意のある人が見つけてしまうと、悪用されてしまう。
そういう悪用されそうで脆くなっている部分がないかを探すのが脆弱性診断と覚えておきたまえ。
 
脆弱体診断をしておくことにより、悪意のある攻撃を未然に防ぐことができる。

どこが攻撃されてしまう弱点になるのか、自分の作ったものがセキュリティー上きちんと守られているかを開始前に探しておくべきなのだよ。
ひらの:
なるほど!(この人、稀にものすごく役に立つな)
脆弱性診断の必要性は十分わかりました。
今すぐやりたいので、その方法を教えてください。私でもできますか?
すがわら:
まあまあ、落ち着きたまえ。
たとえば、他社から提供されたソフトウェアであれば、開発元から脆弱性の報告を受け修正することも可能だけど、自分たちで開発した場合だと、自分たちで発見するしかない。
それって結構大変なのはわかる?
ひらの:
どこが穴になるかなんて開発した自分たちだとわからないですよね。
それに今回サイト構築に関わっているエンジニアの人たちは、既に別のプロジェクトにアサイン予定です…
「あなたが生み出したかもしれない脆弱性を、自分で見つけて今すぐどうにかしてください」なんて、とてもじゃないけど言えません。
すがわら:
ま、そうだろうね。
今回は時間もないだろうし、脆弱性診断アプリか、診断をしてくれる会社に依頼した方が得策だろう。
餅は餅屋ということで。
 
ちなみに脆弱性診断は、攻撃者に成り代わり様々な角度から脆弱性を発見する。
WEBサイト・サーバー・アプリなど幅広く網羅しているから、まずは、自分たちがどこまで携わっているのかを考慮して、どの部分に対しての脆弱性診断が必要なのかを考えよう。
ひらの:
了解しました!
具体的に、脆弱性を使った攻撃ってどのようなものがありますか?
すがわら:
診断できる種類はどのツールや会社を使用するかによって異なるけれど、下記のような既知の攻撃手法はわかるかな。
 
  • クロスサイトスクリプティング
  • クロスサイトリクエストフォージェリ
  • ブルートフォース
  • SQLインジェクション
  • OSコマンドインジェクション
  • バッファーオーバーフロー
  • パラメータ改ざん
  • ディレクトリトラバーサル
 
ついでに、診断の流れ的についても教えておいてあげよう。
 
<脆弱性診断の流れ>
  1.脆弱性診断をする会社と、どの項目をチェックするか事前に打ち合わせ
  2.ツールまたは人が脆弱性診断を実施
  3.診断結果をレポートでもらう
  4.レポート結果を基に修正する
 
サービスに携わる人であれば、スケジュールを組むときに、サービスを作った後の脆弱性診断・修正期間も考慮しておくのが当然さ。
ひらの:
こ、今回はサイト構築がスムーズにいってスケジュールに若干余裕があるから大丈夫です!
すがわら:
たまたま今回のエンジニアたちが優秀で、周りの人に助けられてよかったね。
ひらの:
(無視)
どこに頼めば診断していただけますか?
超特急でお願いしなくては…!
すがわら:
セキュリティー診断を行っている会社は数多く存在する。
何を基準に会社を選べばいいのか、以下の視点で見ることをお勧めしよう。
 
①なんのセキュリティー診断をしたいのか
先ほどの説明でも言ったけど、下記のように広い範囲での脆弱性が考えられる。 
 
・WEBサイト
・サーバー
・アプリ

何を目的とした脆弱性診断なのかはっきりさせて、それを得意とする会社を選びたいね。

②報告の仕方
脆弱性診断を行う最大の目的は、事前にセキュリティーの穴をふさぐこと。
セキュリティーに対する知識がないエンジニアでも、その報告書をみればどんな危険性があり どのような対応をすればいいのか、わかりやすいレポートを出してくれる会社が望ましいね。

③再診断の可否
通常、診断を受けた結果に基づいて、脆弱性を修正する。
できればそのあと再診断を受けて、本当に問題がないのか確認した方がいいだろう。
再診断の費用がかかるのか、かからないのか。
ここも会社を選ぶ際のチェックポイントにしたらいいと思うよ。
ひらの:
助かります~。教えてもらったことを基準に、会社を選びますね!
それで、具体的にどのように診断しているんですか?
すがわら:
診断方法は、主に①人の手作業による診断②ツールを使用した診断の2種類に分けられる。

①人の手作業による診断
セキュリティーに長けたエンジニアが手動で診断を行います。
メリット:ツールでは発見できない脆弱性でも発見可能
複数の脆弱性を組み合わせた攻撃など、総合的な危険性を診断できる
デメリット:コストがかかる

②ツールを使用した診断
セキュリティー診断用のツールを用いて診断を行います。
メリット:比較的安価で早く診断できる
デメリット:ツールでは発見できない脆弱性がある
ひらの:
それぞれメリット・デメリットがありますね…
まず、何を目的とした脆弱性なのかと費用感をみて、どちらを選択するか決めたいと思います。
今日すがわらさんに出会ってよかったです!ありがとうございました。
すがわら:
君が担当するサイトの脆弱性のせいで、我が社にリスクが発生するのを防げてよかったよ。
あ、そうそう。最後に一つ。
脆弱性診断は定期的に実施した方がいいから。
ひらの:
え?最初だけ診断して対策しておけば、それで十分だと思っていました。
すがわら:
はあ~・・・・・・・・・・・・(深いため息)※本日2回目

当たり前だけど、脆弱性診断では、診断を受けた時点の脆弱性しか発見できない。
ということは、未知の手法は発見できないから、診断後翌日に発生した新たな脆弱性は見つからず、そのサイトはリスクを持ったままとなる。
常に脆弱性を使った新しい攻撃がうみだされるから、定期的な診断が必要だということだ。

じゃ、時刻表を買いに行かなくてはいけないから、これで失礼するよ。
ひらの:

攻撃手法は日々進化しているので、脆弱性診断をしたからといって100%安全なわけではありません。
しかしながら既知の手法に対しては、攻撃の火種になるかもしれない箇所を事前に把握し、対策をとることができます。

脆弱性診断は定期的に実施しよう!

Tweet @mamoru_secureをフォローする
このエントリーをはてなブックマークに追加

その他のセキュリティー知恵袋