検索
連載

本当に攻撃されたら何するの?――クラウド環境での脆弱性検査とサイバー攻撃の検知・確認に関する基礎知識親子の会話から学ぶクラウドセキュリティ(5)

親子の会話で出てくるような素朴な疑問点から、クラウド環境における情報セキュリティの技術を学習する連載。今回は、クラウド環境での脆弱性検査と、サイバー攻撃を受けた場合の検知・確認方法に関する基礎知識について。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 親子の会話で出てくるような素朴な疑問点から、クラウド環境における情報セキュリティの技術を学習する本連載「親子の会話から学ぶクラウドセキュリティ」。初回は、クラウドを始める前に覚えておきたいセキュリティの基礎知識、第2回はネットワーク関連セキュリティ、第3回はセキュリティの運用・監視、第4回は管理アクセスに関する内容について解説しました。

 今回は、クラウド環境での脆弱(ぜいじゃく)性検査と、サイバー攻撃を受けた場合の検知・確認方法に関する基礎知識についてです。

脆弱性検査って何?

機能のテストも終わったし、もうリリースできるね。


あと少しね。脆弱性検査もしましょうね。


脆弱性検査って何?


システムにセキュリティ上の欠陥がないかどうかテストすることよ。インターネットに公開しているサーバやアプリケーションが脆弱性のあるバージョンだったり、WebサイトがSQLインジェクションのような脆弱性を持っていたりしないかどうか、ちゃんとテストしましょうね。


 脆弱性検査とは、Webアプリケーションやネットワーク機器、OS、ミドルウェアなどにセキュリティ上の欠陥(脆弱性)がないかどうか評価することです。システムに脆弱性があると、サイバー攻撃による不正アクセスや情報漏えい、サービス停止などの被害に遭うリスクが高まります。検査方法には、ツールによる検査と、専門の技術者による手動検査があります。

 インターネットにサービスを公開する場合、少なくともツールによって検査しておくことをお勧めします。ツールによる検査で検出されるような基本的な脆弱性について対策できていないと、被害に遭う可能性が高いことはもちろん、信頼の失墜にもつながります。

 特に機密にすべき情報を扱うようなサービスでは、業界のセキュリティ基準として脆弱性検査の実施が求められている場合もあります。例えば、クレジットカード情報を扱うようなサービスでは、「PCI DSS(Payment Card Industry Data Security Standard)」というセキュリティ基準の要件に、脆弱性検査の実施が含まれています。

 脆弱性検査ツールには、ネットワーク型とホスト型といった検査方法の違いもあります。ネットワーク型の検査の場合、攻撃者の立場からスキャンし、顕在化している脆弱性の有無を確認できます。疑似的な攻撃を送りつけ、挙動を確認することで検査します。ホスト型の検査の場合、対象の機器にログインして、動作しているOSやソフトウェアの情報を取得し、脆弱性の有無を確認します。セキュリティパッチの適用状況や設定を見て評価することで、ネットワーク型とは異なる観点で脆弱性を検出できます。


ネットワーク型とホスト型(アイコン:AWS)

 クラウド環境におけるネットワーク型の脆弱性検査の場合、インターネット経由で検査することになると思います。攻撃を模した通信が、クラウドサービスに対して送られることになるので、状況によってはクラウドベンダーに事前に許可を取る必要があります。

 Amazon Web Services(AWS)では、脆弱性検査の実施に関する規定があり、この範囲内での実施については事前に許可を取る必要はないとされています。

 脆弱性診断は、各種テストが完了した後、リリース前に実施することが一般的ですが、新しい脆弱性が次々と公開されるので、リリース後も定期的に実施することが求められます。

どのツールを使えばいいのかな?

脆弱性検査はどうやってするの?


脆弱性検査ツールを使ってみましょうか。Webアプリケーション向けと、プラットフォーム向けの検査、両方やってみましょうね。


分かったよ。でも、どのツールを使えばいいのかな?


ツールにも特徴があるから、自分に合ったものを選びましょうね。有料のツールや、実施をお任せできるサービスもあるわよ。


 脆弱性検査ツールを選定する際は、まず検査対象を決めましょう。サーバのOSやミドルウェアを対象としたプラットフォーム向けのツールや、Webアプリケーション特有の脆弱性を検出できるWebアプリケーション向けのツールなど、検査対象により使用すべきツールが変わってきます。

 下の表はオープンソースソフトウェア(OSS)など無料で利用できる脆弱性スキャナーの例です。

脆弱性スキャナーの例
ツール 対象 備考
OpenVAS プラットフォーム OSSの脆弱性スキャナー。商用ツールであるNessusから派生したもの
Nessus Essentials プラットフォーム 商用ツールであるNessusの制限版。16個までのIPアドレスのスキャンが可能
Vuls プラットフォーム LinuxやFreeBSD向けのホスト型脆弱性スキャナー。IPAから日本語のドキュメントが公開されている
OWASP ZAP Webアプリケーション OWASP(The Open Web Application Security Project)が提供する弱性スキャナー
Nikto Webアプリケーション Webサーバに関する設定チェックやphpMyAdmin、WordPressなどのよく利用されるWebアプリケーションに対するチェックを行う

 AWSでは、プラットフォーム向けの脆弱性検査サービスとして、「Amazon Inspector」が利用できます。また、サードパーティーが提供する脆弱性検査のサービスも利用できます。その場合、クラウドとオンプレミスで大きな違いはありませんが、クラウド特有の問題に対応しているかどうか、クラウド向けの検査を得意としているかどうかはサービスによって異なるので、外注する場合は確認しておくといいでしょう。

 脆弱性検査ツールを実行すると、システムに不具合が生じるなどの影響がある場合もあります。脆弱性検査ツールを使う前に、バックアップやスナップショットを取り、元に戻せるようにしておきましょう。また、本番同等の検証環境を用意し、検証環境で検査すれば、本番環境へ影響を与えず実施できます。

見つけた脆弱性はどうすればいいの?

わあ、ツールを使ったら脆弱性が見つかったよ。見つけた脆弱性はどうすればいいの?


まずは結果が正しいかどうか確認しましょうね。その上で、どの脆弱性をどのように対策すべきか考える必要があるわ。


 脆弱性検査によって脆弱性が検出されたら、まずはその結果が正しいかどうかを確認しましょう。例えば、特定のミドルウェアに関する脆弱性であれば、使用しているのが該当するバージョンなのかどうか、対策パッチが存在するのであれば、それが適用済みか否かといったように確認します。脆弱性にはCVE(共通脆弱性識別子:Common Vulnerabilities and Exposures)が割り当てられており、CVE番号を基にその脆弱性に関連する詳細や対策などの情報を収集できます。

 結果が正しく、脆弱性が存在することが確認できたら、次は対策を検討する必要があります。脆弱性は、CVSS(共通脆弱性評価システム:Common Vulnerability Scoring System)という一律の基準で深刻度を評価できます。攻撃できる範囲(ローカル、リモートなど)や攻撃の容易さなど幾つかの指標からスコアが算出され、深刻度を客観的に判断できます。

 対策を検討する際は、CVSSやそのシステムの重要度、取り扱うデータの重要度などを踏まえて総合的に判断する必要があります。どのような対策を行うか(あるいは対策を行わない判断をするかどうか)、いつ対策を実施するか、対策実施までの間の暫定策などを決定しましょう。暫定策の例としては、IPS(Intrusion Prevention System)やWAF(Web Application Firewall)などで対象の通信をブロックするといった方法があります。

本当に攻撃されたときはどうするの?

Webサービスが本当に攻撃されたときはどうするの?


アラートを設定して、何かあったときにメールなどですぐに連絡を受けられるようにしましょう。その後は、状況を確認して適切に判断しましょうね。


夜中に攻撃されて、すぐに気付けなかったらどうしよう。


後で気付いたときは、ログを見てみましょうね。攻撃が収まっているように見えても、普段と違うことがないかどうかを確認しましょう。


 不正アクセスを受けたり、サイバー攻撃によりシステムが影響を受けたりした場合の対応を「インシデントレスポンス」といいます。インシデントレスポンスの対応手順は、事前に組織の中で決めておく必要があります。インシデントレスポンスは「トリアージ」「調査」「封じ込め」「分析とトラッキング」の4つのフェーズに分けて考えることができます。それぞれのフェーズで適切に対応し、被害の拡大防止や再発防止を目指します。

 運用管理者は、少なくともインシデントが発生した直後の報告先を把握しておく必要があります。また、必要に応じて各システムにおける初動のインシデント対応手順や、攻撃の痕跡の含むデータの保全の手順を用意しておくといいでしょう。また、攻撃が収束した後の対応のため、システムの復旧手順も必要となります。

 大規模な組織では、「CSIRT(Computer Security Incident Response Team)」というインシデントレスポンス専門の部隊を作り、組織に関連するセキュリティ情報やノウハウを一元管理することをお勧めします。

 サイバー攻撃に気付かないということは避けなければなりません。IDS(Intrusion Detection System)などのセキュリティ対策機器に異常を知らせるアラートを設定しておくことはもちろん、システムを適切に監視し、不審なアクセスや異常な通信が発生していないかどうかを確認するようにしましょう。通常時のリソース状態や、通信・ログの内容がどのようなものかを把握しておくことで、異常に気付きやすくなります。


不審なWeb通信ログの例(Niktoによるスキャン)

 AWSの場合、「Amazon GuardDuty」や「AWS Security Hub」の機能を活用してみましょう。

もっとセキュリティについて勉強したいな

やったー! ついにWebサービスをリリースできたよ。


やったわね。おめでとう。


セキュリティって奥が深いね。もっとセキュリティについて勉強したいな。


CTF(Capture The Flag)に参加してみるのはどうかしら? セキュリティ技術に触れられるいい機会になるわよ。


 サイバー攻撃の手法やセキュリティ対策、攻撃者の考え方などを実践的に学ぶ方法として、CTFへの参加があります。CTFはセキュリティ技術を競うコンテストの形式で、与えられたセキュリティの課題を解決することで得られる得点を競います。

 例えば、以下のような問題が出題されます。

【問題】

ZIPファイルに数字4桁のパスワードが掛けられています。中身を取り出してください。


【解答】

ツールで総当たりをすれば数秒もかからず解けます。短い、推測しやすい、使用している文字種(数字、アルファベット、記号など)が少ないといった弱いパスワードは、簡単に解読されてしまうので注意が必要です。



パスワード解析の様子(使用ツール:Lhaplus)

 リアルなサイバー攻撃同様、「不親切」な問題になっていることが多く、拡張子のない謎のファイルを手渡されるだけのこともあります。それを自分のセキュリティ技術を総動員して解析し、機密情報や脆弱性を検出する必要があります。

 世界最大のCTFである「DEFCON CTF」や、日本が主催する「SECCON CTF」をはじめ、世界中の学校や企業などが大会を開催しています。オンラインで開催されているもののも多いので、「CTF Time」というWebサイトから開催スケジュールを調べて参加してみましょう。

 また、Web上でCTFの問題を常時公開しているような、常設のCTFも存在します。「flaws.cloud」というWebサイトでは、AWSを使ったクラウド向けのセキュリティ課題に挑戦できます。

 CTFでは、サーバを攻撃する「攻撃者」の立場で、普段体験できないような実践的なセキュリティの問題にも触れることができます。セキュリティ対策やシステムの堅牢(けんろう)化などを行う上で、攻撃者視点の考え方は非常に重要です。ぜひこのような環境を活用し、知識を深めてみましょう。

気になる分野の勉強会に参加してみてもいいかもね。


初めてだからドキドキするけど、参加してみようかな。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る