dポイントプレゼントキャンペーン実施中!

クライアントアプリケーションへの攻撃について質問です。

いつもお世話になっております。

サーバアプリケーション(サービス)の場合、特定のポートでクライアントからの接続を常に待っているためセキュリティに配慮しないとそのポートから攻撃されると思います。

私が気になったのは、クライアントアプリケーションも起動しているときはポートを使用していると思うのですが、そこは攻撃されないのでしょうか。
例えばNAPTを使っていても、LAN側からインターネットに接続すれば、その間クライアントアプリケーションのポート宛のパケットはPCに届くと思うのですが。まあ、実際どうやってそのポート番号を知るのかは置いておいて。

よって、
(1)ネット上に何の防御もせず晒していても、クライアントアプリケーションが攻撃されることはないのでしょうか(ポートへ接続といったらいいのか、正規の返信に似せた何かを送りつけるとか)。クライアントPCのサービスへの攻撃ではなく、クライアントアプリケーションへの攻撃です。

(2)(1)で攻撃される場合、現実的にどのレベルの対策を打てばそれなりに安心と言えるのでしょうか。
何もいらないのか、NAPTでいいのか、ファイヤーウォールをいれればいいのか、プロキシが必要なのか。
普通の家庭だとパーソナルファイヤーウォールにルータのNAPTくらいだと思うのですが。

なお、サーバに接続して、そこからウィルスをもらうとかそういう攻撃ではなく、あくまでもクライアントアプリケーションへのポートへ直接なんらかの攻撃をされて被害にあうことがあるのかどうかです。今までの事例ですとか、プログラムソースやポート番号がわかっていれば可能であるとかそういうことが知りたいです。

わかりにくければ補足します。

よろしくお願いします。

A 回答 (2件)

多分いっぱい勘違いしていると思うんだけど何からどう説明すればいいのか‥。



まず、Webサーバの多くは80番ポートでリクエストを受け付けますが
これって通信している間、クライアントはずっとサーバの80番ポートとやり取りしていると思ってないですか?
例えば、あなたがokwaveのトップページを開くとき、
ブラウザは今仮に33333番ポートを使用し、okwaveは80番ポートを使用している、
このときokwaveが80番ポートに向かって攻撃を受けることがあるなら
自分も33333番ポートに向かって攻撃されるんじゃないの?
っていうふうに思っていますか??

>ネット上に何の防御もせず晒していても、クライアントアプリケーションが攻撃されることはないのでしょうか
>クライアントアプリケーションへのポートへ直接なんらかの攻撃をされて被害にあうことがあるのかどうか

クライアントアプリケーションへの攻撃というか、
クライアント起点攻撃を総称して受動的攻撃なんていいますね。
通信にはTCP/IPを使うことがほとんどなわけで、
通信内容からクライアントアプリケーションが何かわかることなんてほとんどできませんよね。
※だからおのずと攻撃対象のクライアントアプリケーションは広く使われているブラウザとなるわけで。

ほかにクライアントへの攻撃という意味で例をあげればPoDやPing floodなんか有名です。
同時にspoofingも押さえておきたいですね。
実際にはこういったものの組み合わせで攻撃が行われますから。

質問者さんのほしい回答になっていないかもしれませんが
もう少しネットワークに詳しくなってもらわないと
なかなか難しいですね。全部書くのは大変だし。

この回答への補足

お礼への補足です。

>このときokwaveが80番ポートに向かって攻撃を受けることがあるなら
自分も33333番ポートに向かって攻撃されるんじゃないの?
っていうふうに思っていますか??

の部分で、お礼に違うと書きましたが、よく読んでみると違くありませんでした。
33333番ポートに攻撃を受けることがないか知りたいのです。受動的攻撃ではなく。

それが無いなら無いでOKです。一応理由もお願いしたいです。

よろしくお願いします。

補足日時:2010/04/29 21:11
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

あんまりわかっていないためお見苦しいところもあると思いますが、お許しください。

>このときokwaveが80番ポートに向かって攻撃を受けることがあるなら
自分も33333番ポートに向かって攻撃されるんじゃないの?
っていうふうに思っていますか??

いや、これは違います。okwaveが以前攻撃をうけて、例えばウィルスをバラマクように改ざん(改ざんという表現なのかよくわかりませんが)されていたら、自分がアクセスしたらウィルスに感染してしまうことはあるだろうとかそういう風に思っています。

で、聞きたいのはたぶん受動的攻撃のことではないです。
受動的攻撃って、上記のように自分がアクセスするっていう行動をとったら攻撃されますよね。

No.1さんのお礼のところにも書いたのですが、普通の使い方をしたときに欠点をつくような攻撃ではなく、クライアントアプリケーション(おっしゃるように、攻撃対象とされるのはWebブラウザがほとんどだと思います)が間違った解釈をするようなパケットを送りつけることで攻撃されることはないのかなと思いました。

それで、ファイヤーウォールとか、どこまでの対策をとれば現実的には攻撃は不可能なのかなと。
そもそもそんな攻撃ができるのかできないのかもわかっていないもので…。
申し訳ないっす。

Ping floodとかいろいろ教えていただきましたが、他に何か事例を知っていましたら教えていただけるとありがたいです。

お礼日時:2010/04/29 13:21

>例えばNAPTを使っていても、LAN側からインターネットに接続すれば、その間クライアントアプリケーションのポート宛のパケットはPCに届くと思うのですが。



ルータがそのパケットを中継する場合、接続に使用した情報を参照します。
つまり、そのポートに届いたパケットの「送信元IPアドレス」「送信元ポート番号」とNAPTでサーバに接続したときの「WAN側IPアドレス」と「送信ポート番号」の両方が「宛先」の情報として入っている必要があります。
ついでに、3ウェイハンドシェークが終わっている「接続済み」のものである必要があります。

LAN内部からどこかのWebサーバにアクセス、データ取得中のコネクションは張られていますが、
そのコネクションで使用しているポート番号宛てに、他から接続することはできません。
# 他からの新規接続を受け付けるように開けているワケではありません。

よって、普通の方法ではファイヤーウォールの内側にいるクライアントへ向けて新規接続を行うことはできません。
UPnPで特別に開けている…という場合は接続可能でしょうが。この場合は一時的にポート解放しているようなものです。

例外としては「セッションハイジャック」等でしょうか…。
http://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%83% …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

># 他からの新規接続を受け付けるように開けているワケではありません。

ここなのですが、私の質問としては、ちゃんとした接続を貼って(ちゃんとセッションを乗っ取って(?))、そこから不正なプログラムとかを送りつけるのではなく、偽装したパケットがファイヤーウォールを通れたとしてクライアントに届いた時に、バッファオーバーフローとかその辺を利用してクライアントに攻撃できたりしないのかなーと。
でもよく考えると、そんなことができたらWEBサーバはポートを開けているだけでいつでも攻撃されることになってしまいますね…。

SQLインジェクションとかって、正規の使い方をして、不正なSQL文を実行させるじゃないですか。
そうではなくて、全くアブノーマルな角度から攻撃とかされないのかなと思いました。

セッションハイジャックも、セッション乗っ取って一旦正常な使い方ができるようになってから攻撃をしかけると思うのです。

セッションハイジャックも調べてみたのですが、ブラインドハイジャックという種類があるようですね。
あんまり検索で出てこなかったのでよくわからないのですが、この手法は不正なコマンドを送りつけるとあるのですが、これをクライアント側に送りつけることができるのであれば、私の質問したいことに近いかもしれません。

セッションハイジャックについて自分でも調べてみようと思いますが、何かいい回答お持ちでしたらよろしくお願いします。

あとNAPTなのですが、家庭用のブロードバンドルータでも、一般的に送信元IPアドレス(WANから戻ってきたアドレス)のチェックもするのでしょうか。ファイヤーウォールがチェックするというのは知っていたのですが、やっぱりNAPTは宛先とポート番号が合っていれば通ってしまうのではないかと思ったので。

お礼日時:2010/04/29 13:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!