リモートBOF攻撃


確保したメモリ領域(スタック領域)を超えて不正なデータを書き込み、システムの侵入や管理者権限の取得を

試みる攻撃手法


C/C++等で開発されたプログラムのバグにより発生する。


開発する上での対策


・入力データをサイズの制限なくメモリにコピーする関数(strcpy等)をできるだけ使用しない。

・入力データのレングスチェックを行なう。


利用者の対策


・OSおよび使用しているソフトウェアのバージョンを最新化し、パッチを適用する


・脆弱性検査を実施し、BOF攻撃に関するセキュリティホールが塞がれていることを確認する



「問題」


Q1 スタックとはなにか。 どのような特徴があるのか。


Q2 C/C++言語のどうような特徴がこの攻撃を成立させているのか。


Q3 BOF攻撃によってなぜ管理者権限がうばわれてしまうのか。


Q4 BOF攻撃への有効な対策としては何があるか。










「解答」


Q1 

 スタックは、データ記憶構造の一種であり、最後に書き込んだデータが最初に読み出される

 後入れ先出し(LIFO)となっている


 スタックはプログラム内でサブルーチンを呼び出す際に、その戻り位置(リターンアドレス)、

 変数の格納など一時的に使用されるデータを確認するのに使用される。


 BOF攻撃では、スタック領域のリターンアドレス、変数が不正に書き換えられる。


Q2

 C/C++言語のstrcpy関数では、サイズの制限なしに入力データをメモリ内の変数領域にコピーしてしまう。

 その結果、確保されていた領域を超えスタック内の他の領域まで上書きしてしまう。

 strcat gets spritfも同じ


Q3

 もし、管理者権限で実行されているサービスに対してBOF攻撃で、不正なプログラムを実行に

 成功した場合には、そのサービスが実行されている権限と同じ権限でホストの操作が可能だから


Q4

 OS及び使用しているソフトウェアのバージョンを最新化しパッチを適用する


 脆弱性検査を実施し、BOF攻撃に関するセキュリティホールが塞がれていることを確保する






DoS攻撃の種類


①CPUやメモリなどのシステムリソースを過負荷状態、またはオーバーフロー状態にする

②大量のパケットを送りつけ、ネットワークの帯域をあふれさせる

③ホストのセキュリティホールを突いてOSや特定のアプリケーションを異常終了させる



DoS攻撃に用いられる手法


TCP SYN Flood攻撃          分類では①(規模によっては②)

UDP Flood攻撃             分類では①(規模によっては②)

ICMP Flood攻撃(Ping Flood攻撃)  分類では①(規模によっては②)

スマーフ攻撃               分類では②

Connection Flood攻撃         分類では①

DDoS攻撃                 分類では②


予防・対策


・ルータやファイアウォールで不要なパケット(UDP,ICMP等)を遮断する

・十分な帯域をもつネットワークを用いる

・十分な処理能力をもつサーバやネットワーク機器を用いる

・ルータやスイッチを用いてプロトコルごとの帯域制限を行う



検知


ネットワーク監視型IDS、IPSを用いてDoS攻撃を検知する



「問題」


Q1 DoS攻撃にはどのような種類があるか。


Q2 実害を及ぼす可能性のあるDoS攻撃として何があるか


Q3 攻撃者の特定が困難な手法にはどのようなものがあるか


Q4 攻撃者の特定が可能な手法にはどのようなものがあるか


Q5 DoS攻撃で用いられる手法によってどのような対策があるか










「解答」


Q1

①CPUやメモリなどのシステムリソースを過負荷状態、またはオーバーフロー状態にする

②大量のパケットを送りつけ、ネットワークの帯域をあふれさせる

③ホストのセキュリティホールを突いてOSや特定のアプリケーションを異常終了させる

Q2

   ②大量のパケットを送りつけ、ネットワークの帯域をあふれさせる

スマーフ攻撃、DDoS攻撃


Q3

  

TCP SYN Flood攻撃

UDP Flood攻撃

ICMP Flood攻撃(Ping Flood攻撃)

スマーフ攻撃

DDoS攻撃


Q4

Connection Flood攻撃 


Q5

・ルータやファイアウォールで不要なパケット(UDP,ICMP等)を遮断する

・十分な帯域をもつネットワークを用いる

・十分な処理能力をもつサーバやネットワーク機器を用いる

・ルータやスイッチを用いてプロトコルごとの帯域制限を行う

パスワードクラックとは、何通りものパスワードを繰り返してOSやアプリケーションプログラムに設定されている

パスワードを破るという古典的な攻撃手法である。


パスワードクラックの種類


・推測によるパスワードクラック


・辞書攻撃によるパスワードクラック


・ブルートフォース攻撃(総当り攻撃)によるパスワードクラック



「問題」


Q1 パスワードクラックはどのような認証システムに対して有効か


Q2 パスワードクラックの予防・防止のための対策として何が有効か


Q3 パスワードクラックを検知するにはどのような方法があるか











「解答」


Q1 パスワードクラックはその仕組み上、固定式パスワード(変更するまでに何回も

   使用可能なパスワード)による認証システムに有効


Q2 ・ワンタイムパスワード方式、バイオメトリック認証システムなどパスワードクラックが困難な

    認証システムにする

   ・固定式パスワードを使用する場合は、アカウントロックアウト設定を有効にする

   ・既知のセキュリティホールに対処し、アクセス権の設定を見直すなどしてパスワードファイル、

    データベースが盗まれないようにする。

   ・推測困難なパスワードを設定し、定期的に変更する

   ・ログインの失敗/成功がログに記録されるようにする


Q3 ・ネットワーク監視型IDS、ホスト監視型IDS、IPSを用いて検知する

   ・ターゲットホストのログから連続してログインに失敗している箇所を探し出し、この攻撃を検知する