「情報セキュリティマネジメント」の資格を取ろうの会【サイバー攻撃手法編】

どーも、勉強とテキーラが嫌いなヨシダです。

僕はセキュリティ会社に勤めてるのにも関わらず、資格とかまったく持っていない。持ってるのは「英検3級」「普通免許」「少林寺拳法初段」くらいだ。まったく活かせない。ちなみにちょっと自慢なのだが、センター試験は82%でした。

( ・´ー・`)どや

ということで「情報セキュリティマネジメント」の資格を取ろうと思っているところだ。セキュリティの仕事をしている人は持っているのが当たり前みたいな風潮なので時代に追いつかなくては。第一回はタイトルにもあるとおり「サイバー攻撃手法編」です。仕事柄、知ってることがほどんどでしたが念には念をだ。重要な語句は太字にしているので、しっかりチェックしてください。


サイバー攻撃手法

クラッカーはレベルの高いIT技術を使って、様々な攻撃をしてきます。この前、サーバーに不正ファイルが置かれていて、少し中身を確認してみたのですが、本当によくできている。自分でつくったシステムなどをそういった攻撃から守るためにも、どんな攻撃の手法があるのかを知って、データを暗号化するなど、セキュリティを高める必要があります。また、隙を見せない行動を取ることが重要です。

不正アクセスの方法

システムを利用している人が、その与えられた権限(パーミッション)によって許された以上の行為をネットワークを利用して意図的に行うことを不正アクセスといいます。セキュリティホールを突いた攻撃は、もちろん不正アクセスと見なされます。また、不正アクセス行為の禁止等に関する法律を不正アクセス禁止法と呼びます。不正アクセス禁止法では、アクセスコントロールされているシステムが保護の対象となっています。

[不正アクセスの該当事例]

  • ネットワークを媒介する
  • アクセスコントロールされているシステムへ攻撃する
  • セキュリティホール(脆弱性)を許可なく突く
  • 不正なIDやパスワードの取得・使用・保管・第三者への提供

システムを守ったり、対処するためにも不正アクセスの手法を確認しておきましょう。

①ネットワークスキャン

不正アクセスをするために、攻撃対象となるコンピュータを特定しなければいけません。そのための準備行動としてネットワークスキャンが行われます。考えられるあらゆるIPアドレスにpingコマンドを実施して、相手ノードの存在確認を行うなどの方法がとられます。また、スキャンより詳細な調査をプローブといいます。ちなみにpingコマンドとはICMPプロトコルに対応した環境において、ネットワークの疎通を確認するためのコマンドです。もしpingに応答しないように対策するためには、ステルスモードでコンピュータを稼働させたり、プライベートIPアドレスをNATと組み合わせて利用したりします。

②ポートスキャン

コンピュータの存在がわかれば、次はコンピュータ内部のアプリケーションの動作確認を行います。稼働しているアプリケーションによっては既知の脆弱性があったりしますしね。使用しているアプリケーションなどの情報を得るために攻撃者はポートスキャンを行います。名前のとおりポートを確認しますが、TCPの3ウェイハンドシェイクを利用して、全てのポートに対して接続要求します。例えば、あるコンピュータは22番ポートと25番ポートが開放されているとわかれば、22番ポートが開いてるからSSH接続ができるとわかったり、25番ポートはSMTPだからメールサーバが動いているんだとわかります。対策としては、不必要なポートは閉じる。または、開放するにしてもIP制限をかけておくなどの措置をとっておきましょう。

③バッファオーバフロー

稼働しているアプリケーションがわかれば、攻撃者は次に侵入を試みてくるでしょう。その時に使われる方法としてバッファオーバフローがあります。Webサーバなどのソフトウェアは、システム上のメモリに配置され実行されています。外部から受け取るデータも当然システム上のメモリに保存されます。このメモリは無尽蔵にあるわけではなく、あらかじめ格納する領域がOSやアプリケーションによって定められています。攻撃者がこの領域(バッファ)を超えるサイズのデータを送信することをバッファオーバフロー攻撃と呼びます。この攻撃が行われると、本来別のデータが格納される領域にデータがあふれる(フローする)ので、システムに誤作動を起こさせることができます。対策としては、ソフトウェア設計・開発時にチェック機能を盛り込む。既知のセキュリティホール情報を常にチェックし、セキュリティパッチを適用します。

 

パスワードの取得

さきほど説明したバッファオーバフローによって管理者権限を奪うことができることもありますが、システムにこうしたセキュリティホールがない場合、攻撃者はシンプルに管理者のユーザIDとパスワードを奪おうとしてきます。また、こちらの「WordPressのサイトをハッキング(クラッキング)する方法と対策」で実際に僕がユーザIDとパスワードを奪う方法を紹介してますので、是非ご覧ください。パスワードを奪う攻撃方法は以下の3つがあります。

①ブルートフォースアタック

管理者のユーザIDはデフォルトで運用されてることが多く(root、adminなど)意外と取得は簡単に行えてしまいます。また、適切なパスワードを設定していても、考えられるすべてのパスワードの組み合わせを試すブルートフォースアタック(総当たり法)によってパスワードを特定することができます。対策としては長いパスワードを利用する。何回かログインに失敗した場合、アカウントロックを行うなどがあります。

②辞書攻撃

ブルートフォースアタックと組み合わせることで効果を発揮する方法です。利用されがちな単語や、管理者の生年月日、電話番号などのパスワードの候補を作成して利用します。総当たり方法になったとしても、パスワードを発見するまでの時間が大幅に短縮されます。対策としては、辞書に載ってるような語はパスワードに利用しない。長いパスワードを使用する。小文字、大文字、数字、記号をランダムに使用してパスワードを設定する。生年月日などの個人情報をパスワードに使用しないなど。

③パスワードリスト攻撃

あらかじめ何らかの手段で入手したアカウントとパスワードの対を用いて、不正ログインを指向する手法です。同じパスワードを様々なサイトで使い回すと、クラッカーがそれを入手したときに、他サイトでも攻撃を成功させてしまうわけです。対策としては同じパスワードを使いまわさないことです。

 

侵入後の危険

不正アクセスに成功すると、侵入者はその証拠の隠滅を図ったり、再侵入のための布石をうつことがあります。

①ログの消去

侵入に成功した攻撃者はログによって侵入を行った経路やマシンを特定される可能性があるので、これを消去して痕跡・証拠を抹消します。ログにも色々種類(アクセスログやエラーログなど)がありますが、アクセスログでいいますと、IPや時間やアクセスしたファイル名などが記載されています。対策としては、攻撃者の推測しにくい場所にログファイルを置くことや、ログファイルの暗号化があります。

②バックドアの作成

攻撃者が管理者権限を取得した場合、また同じシステムにしようと試みるケースがあります。その場合、同じ手順を踏んで再び侵入できるとは限りません。また、侵入にかかる時間と手間を短縮する意味からも、バックドアと呼ばれる侵入経路を確保します。また、パスワードの変更やデータの変更といった事象を攻撃者のもとへ届ける機能や情報を漏洩する機能のプログラムを指す場合もあります。対策はパーソナルファイヤーウォールの導入や、送受信データの情報チェックがあります。

 

盗聴の方法

盗聴とはネットワーク上を流れるデータを取得する行為をいいます。盗聴自体は、そのやり方さえわかってしまえば、それほど高度な技術力がなくても可能です。それだけに確実に基本的な対策を施しておくことが大事です。

①スニファ

ネットワーク上を流れるデータをキャプチャして内容を解読する方法です。パケットのフォーマットはRFCなどで標準化されているため、パケットの取得ができればデータの内容自体は簡単に読み取ることができます。パケットのキャプチャには、コンピュータにインストールするソフトウェアタイプのものや専用ハードウェアであるプロトコルアナライザがありますが、攻撃者はこれらの機器を欲しいパケットが流れるエリアに接続する必要があります。対策としては、暗号化入退室管理の実施、情報資産管理台帳の整備が有効です。

②電波傍受

無線LANなどの通信内容を傍受することを電波傍受といいます。無線LANではESS-IDと呼ばれるグループ名を特定できると通信が可能になってしまいます。対策としては、そのアクセスポイントからはESS-IDを通知しないステルスモードを採用したり、ANYという特殊なESS-IDを使用できない設定を施したり、暗号化をすることです。無線LANの標準的な暗号化方式はWPA2が用いられています。ちなみに、電磁波の盗聴技術の総称をテンペスト技術といいます。

③キーボードロギング

コンピュータにキーボードをタイプしたログを記録するプログラム(キーロガー:一種のスパイウェアといえます)をインストールして、稼働させます。この方法の亜種として、偽のログイン画面を使ってユーザーIDとパスワードをだまし取るログインシュミレータがあります。対策として、不審なプログラムがインストールされていないか、ファイル整合性のチェックを行う。インターネットカフェのような公共のコンピュータで重要な情報を扱わない。

④DNSキャッシュポイズニング

DNSは、問い合わせを簡略化するために、キャッシュ機能を持ちます。これを悪用して、偽の情報をキャッシュに覚えこませ、以降の問い合わせに対して偽情報を回答させる攻撃手法が、DNSキャッシュポイズニングです。DNSサーバは、コンテンツサーバ(オリジナルの名前解決情報を持つサーバ)とキャッシュサーバに分類することができます。キャッシュサーバは、自分の一時記憶領域(キャッシュ)に名前解決情報を持ってる場合はすぐに回答し、そうでない場合はコンテンツサーバに代理問い合わせを行い、その回答をキャッシュとして保存し、次の問い合わせに備えます。この仕組みを利用してクラッカーはコンテンツサーバからの正式な回答以前に、キャッシュサーバに偽の情報を送信することで、偽情報をキャッシュさせるのです。すると利用者は正規のサーバに接続しているつもりで、偽情報に記載された詐欺サイトなどを閲覧してしまいます。対策として、キャッシュサーバーが問い合わせに使う送信ポート番号やトランザクションIDをランダムにして、クラッカーが推測できないようにします。また、名前解決情報にディジタル署名を施すDNSSECの普及が期待されます。

⑤ディレクトリトラバーサル

管理者が意図していないディレクトリにアクセスを行う攻撃手法です。トラバーサルは横断するという意味で,公開されているディレクトリから目的のディレクトリへ横断するイメージから命名されています。対策としては外部からのパラメーターでファイル名を直接指定しないこと。ファイルを開く場合は、固定ディレクトリ+ファイル名にするなどがあります。

 

なりすましの方法

なりすましは攻撃者が正規のユーザになりすまして、不当に情報資源を利用する権限を得ようとする行為です。単純な手段からネットワークを介した技術の必要なものまでさまざまな方法があります。

①ユーザIDやパスワードの偽装

他の手段によって得たユーザIDやパスワードによって、他人になりすます方法です。対策はパスワード利用規程の整備などがあります。

②IPスプーフィング

ユーザIDやパスワードだけでなく、コンピュータのIPアドレスも用いて本人認証を行なっているシステムでは、送信するIPパケットのヘッダ情報を偽装します。対策としては、さらに高位のトランスポート層の情報やアプリケーション層の情報、ステートフルインスペクションによってパケットの正当性をチェックすることです。

③踏み台

第三者のコンピュータをクラックし、そこから本命のコンピュータに不正アクセスをする行為のことをいいます。不正アクセスが発見されても、攻撃対象サーバのログには踏み台のIPアドレスが残るため、追跡されにくくなります。プロキシサーバを何台も経由する踏み台攻撃を多段プロキシなどとよびます。対策として、他のISPなどとの連携によって、攻撃者を特定する情報を順番に追跡できる体制を整える。公開サーバのセキュリティを確保し、踏み台に利用されないようにするなど。

④ARPスプーフィング

ARP(IPアドレスとMACアドレスを関連づけるために使われるプロトコル)に偽の応答をすることで、ある機器に通信を誘導するといった不正行為を行う攻撃手法のこと。対策として、ARPテーブルを監視すること。または、防止機能付きのスイッチハブを導入すること。

⑤セッションハイジャック

二者間で行われる通信を、クラッカーが乗っ取る攻撃手法。サーバになりすましたり、サーバとクライアントの間に入って通信を中継したり(中間者攻撃)する方法があります。セッションハイジャックが成立してしまうと、通信は覗かれ放題になります。対策は、セッション番号の割当てに乱数を使って推測しにくくする。ポート番号をランダムに振り分ける。通信を暗号化するなど。

⑥リプレイ攻撃

ネットワーク上を流れるログイン情報を取得し、そのコピーを使うことで、不正ログインを試みる攻撃手法です。そのままのコピーを使うので、パスワード解読の必要がない点に注意してください。対策は、パスワードを使い捨てる、ワンタイムパスワード(ログインするごとにパスワードを変更する認証方式)を使用すること。

⑦フィッシング

有名なサイトや信頼されているサイトになりすます攻撃方法です。こうしたサイトになりすますことができれば、個人情報や決算情報を取得して、転売や詐欺などを行うことができます。その偽サイトへの誘導方法としてスパムメールに偽URLへのリンクを記入したりします。対策として、メールで送られてきたハイパーリンクを使用しないこと。セキュリティ対策ソフトのフィッシング判別機能を利用するなど。

⑧標的型攻撃

無差別ではなく、最初からターゲットを特定して行う攻撃のことです。また水飲み場型攻撃とは、標的となる企業や利用者が使うサイトを調べておき、そのサイトを改ざんするなどして、標的がアクセスとマルウェアが感染するような方法の総称です。標的型攻撃の中でも特に高度な技術が使われ、持続的に行われるものをAPTと称することがありますが、明確な定義はありません。対策としては、利用者のリテラシをあげるか、機密情報が外部へ漏洩しないよう、外部への通信を監視するしかないです。

 

サービス妨害の種類

サービス妨害(DoS)は、サーバに負荷を集中させるなどしてサーバを使用不能に陥れる攻撃です。重要な情報を盗み出すといった要素はありませんが、営業妨害などに利用されます。

①TCP SYN Flood

TCPの3ウェイハンドシェイクを利用した攻撃方法です。3ウェイハンドシェイクでは、SYNとACKの組合せによってコネクションを確立します。コネクション確立する際には、サーバ側でスタックが用意されCPU資源やメモリ領域が消費されます。この攻撃では、攻撃側が最後のACKに応答しないことでこれらの資源を確保したままにし、サーバの機能を低下させたり、OSのダウンにつなげたりすることが可能です。対策としては、一定時間を過ぎた不成立コネクションは強制的に終了させる。不正なアクセスを行なってるIPアドレスからの通信を遮断すること。

②Ping of Death

pingはIPを利用するため、最大パケット長に制約があります。セキュリティホールのあるサーバでは、これを超えるパケットサイズのpingを送信することによって、サーバに不正な処理をさせることが可能です。対策として、セキュリティパッチを適用することで防ぎます。

③DDoS攻撃

DoS攻撃を拡張したもので、複数のサーバから攻撃を行うことで、攻撃規模や攻撃頻度を増加させます。1台のコンピュータからの攻撃は、処理能力や通信帯域の制約で攻撃規模の予測が可能ですが、DDoS攻撃の場合は、予測不能な数のパケットが送信され、サーバやネットワークなどのシステム資源が飽和する可能性があります。対策としては色々ありますが、IDSを導入するなどがあげられます。

④ICMP Flood

大量の通信を送りつけると、送りつけた先のサーバや、途中の経過に負荷をかけることができます。その中でもICMP Floodは、通信を発生させるためにICMP(ping)を使う方法になります。対策としては、利便性は低下してしまうが、pingに応答しないようにコンピュータを設定することです。また、IDSやIPSの導入も効果的。

⑤smurf

ICMP Floodを効率的に行うための手法です。ブロードキャストを使うことで大量のパケットを簡単に発生させます。返信先に攻撃対象のIPアドレスを指定することで、仮に送信パケットは1つでも、大量の返信を標的サーバに送りつけることができます。対策としては、ブロードキャストアドレスを使ったpingを禁止することです。

 

ソーシャルエンジニアリング

ソーシャルエンジニアリングはIT技術によらず、人的な脆弱性を利用して情報を摂取する手法です。ハッキング能力がなくてもできますよ。

①ショルダーハッキング

ユーザIDやパスワードをタイプしているユーザの肩口からその様子を盗み見て、情報を取得します。めちゃめちゃ原始的ですね。対策としては、パスワードなど重要な情報をタイプする際に、周囲に人がいないことを確かめる。ディスプレイにフィルタを貼り、覗きにくいようにするなど色々あります。

②スキャビンジング

なんかかっこいい名前ですが、ゴミ箱あさりのことです。ゴミ箱に捨てられた情報をつなぎ合わせて本来の重要な情報を復元する作業を指します。対策としてはシュレッダで確実に紙を裁断すること。磁気データの廃棄の際は、消磁や物理的破壊などで確実にデータを抹消してください。

③会話

会話から重要な情報を盗み聞きします。喫茶店などで打合せをする場合、周囲の環境や会話の内容に注意してください。また、不慣れなユーザや権力のあるユーザを装って管理者にユーザIDやパスワードを聞く方法もあります。対策としては、重要な打合せの場合は、公共の場所を利用しないなど開催場所に十分注意してください。

 

その他の攻撃方法

分類できなかったもので、重要な攻撃方法をあげていきます。

①スパムメール

無断で送りつけられてくる広告メールや意味のない大量のメール(ネズミ講、チェーンメールなど)を指します。スパムメールはプログラムによって自動生成され、大量に送信されるため、メールサーバに大きな負荷をかけます。そのため、スパムメールの送信者が自前のメールサーバを用意することはマレで、第三者を中継していることが多いです。受信側はメールボックスの容量がいっぱいになり、正規のメールが受信できないなどの弊害があります。対策としては、メールサーバのセキュリティを強化することや、オプトインを実体化するための法的・技術的環境を整えることです。

②クロスサイトスクリプティング

クロスサイトスクリプティング(XSS)は、スクリプト攻撃の一種です。手順の例としては、まずクラッカーが悪意のあるスクリプトを埋め込んだホームページを作成し、ユーザの利用を待ちます。次に、ユーザが偶然や誘導によりそのホームページを閲覧したとします。スクリプト実行に関する脆弱性のあるサイトに要求が転送され、脆弱性のあるサイトは転送された悪意のあるスクリプトを埋め込んだ形でホームページデータを返信します。すると、ユーザのブラウザで悪意のあるスクリプトが実行されます。サイトを作成する際などは、XSSが発生しないようにエスケープ処理をしっかり行いましょう。

③クロスサイトリクエストフォージェリ

クロスサイトリクエストフォージェリ(CSRF)は、ユーザが意図しない操作をユーザ自身の権限を用いて実行させる攻撃方法です。たとえば、認証によるログインが必要なサイトに対して、そのユーザが実際に投稿などを行うのと同じように意図しない操作を行わせることが可能となります。CSRFも、クロスサイトスクリプティング(XSS)と同様に、外部サイトから攻撃を行うことが可能なのですが、意図しない操作をユーザ自身に行わせてしまうため、操作に対する権限チェックだけでは防ぐことができません。また、XSSと組み合わせることで操作を行っていることをユーザ自身に気付かせないようにできてしまうため、「知らない間に自分のブログの記事をすべて消してしまっていた」「会員サイトのパスワードを知らない間に変更されていた」といった状態が発生します。対策方法としては、ワンタイムトークンによるチェックを用いる。投稿・編集・削除などの操作の際にはパスワードを認証させるなどがあります。

④ゼロデイ攻撃

脆弱性が見つかっているのに、それに対応する手段がない状態での攻撃を指す用語です。セキュリティパッチが公開されるまで、ベンダが脆弱性を公表しないなどの措置をとることがあるのは、ゼロデイ攻撃への牽制です。

⑤SQLインジェクション

データベースに送信するデータの中にSQL文を混入して不正にデータベースを操作する行為のことです。例えばユーザがWeb上のフォームにユーザIDやパスワードなどを入力するとき、認証のためのデータベースへ問い合わせに、ユーザが入力したユーザIDやパスワードを代入したSQLが使われます。悪意を持ったユーザが、そのフォームに「データを削除せよ」とデータベースが誤認するようなSQLの断片を入力すると、SQL文を組み上げる過程で本当にデータを削除する命令になってしまい、そのまま実行されてしまう危険性があります。対策としては、エスケープ処理をしっかり行うことです。

最後に

他にもサイバー攻撃の手法は存在していますが、とりあえず上記の方法だけはしっかり覚えておきましょう。

実際に攻撃する方法は、実行しないように詳しくは記載していません。

それよりもシステムを開発する人は、対策方法をしっかり学んでください。

セキュリティについてはお気軽にご相談ください。

「情報セキュリティマネジメント」の資格を取るためには、他にももっと学ばなければいけないことがあります。

次の「情報セキュリティマネジメント」についての記事を書くかどうかは未定です。

今年の10月に試験があるみたいなので、僕は一度受けてみようかなと思っています。

まあ落ちないでしょ←(フラグ)

 

ありがとうございました。

レオンテクノロジーは現在、一緒に働く仲間を募集しております!
興味がある方はこちらから!

セキュリティに関するご相談はこちらから!

こんな記事も読まれています