攻撃手法
システムの攻撃方法
スタックA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
arr
n
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
リターンアドレス
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
スタックB
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
data
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Cなどに昔から存在する脆弱性。
バッファに対して、意図的にオーバーフローさせてあふれたデータを別なメモリ領域に上書きさせる。
リターンアドレスを書き換えてべつな関数を実行させることも可能。
シェルコード
攻撃者がシェルを起動させてコマンドを受け付けるようにするプログラム。
UnixやLinuxにはsetuid機能がある。すなわち本人ではなくファイルのオーナの権限でプログラムを実行出来てしまう。
対策
OSおよび使用するソフトのバージョンを最新にしてパッチを適用させる。
ファイやウォールで不正アクセスを遮断する。
開発者としての対策
C/C++には脆弱性が多く含まれる。
脆弱性のある関数は使わない。strcpyなど。
バッファのサイズを厳しくチェックする。
バッファードオーバフローを利用した攻撃
1.シェルコード 最初にやること、シェルを起動させる。
2.ルートキット ログなどの侵入した形跡を改ざんする。
3.バックドア 次回侵入が楽になるようにする。
4.キーロガー コンピュータのキー入力を記録するソフト。
■ハニーポット
有益そうな情報や資源がありそうな場所を用意する。
攻撃者をおびきよせる。
■DoS攻撃
Denial of Service attack(サービス不能攻撃)
可用性を侵害する。
想定される被害
CPUやメモリを圧迫する。
原因
セキュリティホールを攻撃。
ネットワーク通信の仕組みを悪用。
■Dos攻撃種類
1.SYN Flood攻撃
SYNパケットを大量に送りつける
2.UDP Flood攻撃
UDPポートにサイズの大きなパケットを大量に送り続ける
3.ICMP Flood攻撃
ICMP echo requestを大量に送り続ける
4.Smurf攻撃
発信元アドレスを偽装し、ターゲットホストが接続されたネットワークに攻撃をする。
すると、レスポンスが偽装されたアドレスに返ってくる。
5.Connection Flood
ターゲットのTCPポートに対してコネクションを確立しつづける
6.DDos攻撃
Distributed DoS
分散型DoS攻撃
7.DRDoS攻撃
Distributed Reflection DoS
分散反射型サービス不能攻撃
DoS攻撃対策
十分な帯域のネットワークを用いる。
十分な処理能力をもつサーバやネットワークを機器を用いる。
ディレクトリトラバーサル
Webサーバ内のファイル閲覧
Webサーバ内のファイルの改ざん
サーバ内のファイルを直接閲覧しているようなサイトで、
http://192.168.2.183:8080/dt/reader?fileName=../../../../../../../etc/passwd
などのパラメーターでファイルが読み取られてしまう脆弱性。
%00は文字列の終端を表す。
対策
OSコマンドインジェクション
外部プログラムを呼び出しているようなシステムの脆弱性。
OSコマンドを呼び出さなければいけなくなったら十分緊張すること。
; cat /etc/passwd
対策
; , [ ,] ,| ,< ,> ,\のサニタイズ
XSS
想定される被害
1.ブラウザが保存しているCookie値の盗み出し。
2.Javascriptによるウイルス
3.画面の書き換え
原因
1.JSのコードを注入できてしまう。
2.入力されたパラメータをそのまま表示させることで、意図せずHTMLの構造が変更される。
フォームが書き替わってしまう。
1.掲示板のシステムでjsが注入できた状態で保存できる (持続型)
2.パラメータを含んだURLを踏まされる (反射型)
※実行例
http://192.168.1.200:8080/xss/input.jsp?name=">
SQLインジェクション
被害
1.データベースの内容が盗まれる
2.データベースの内容が書き換えられる
3. 不正ログイン
4.ストアドプロージャを利用したOSコマンドの実行
原因
1.任意のSQL文を注入できる
2.入力されたパラメーターをそのままSQL文に含めることで意図せずSQL文が変更される