2010年07月15日(木)<< 前の日記 | 次の日記 >>
この日の詳細

■1 続・他のサイトのパスワードを聞き出すことを禁止できないものだろうか[http://www.nantoka.com/~kei/diary/?20100713S2][セキュリティ][mashup]次の記事 >> このエントリーをはてなブックマークに追加

旧ログイン画面新ログイン画面
「さすが電通」と言っても良いだろう。件のサイトの仕様が変更されており、Twitterのホームから直接、書き込む形式になっていた。
当然、パスワードを第三者サイトで入力する必要はないし、このサービスの場合、その場限りの書き込みだから、OAuthよりも好ましいだろう。
この変更によって、第三者サイトでパスワードを入れるのに抵抗があった人も、このサービスが利用できるようになったことだろう。
この方法が、Twitterとハッシュタグを連携したキャンペーンを実装する際のデファクトスタンダードになることを期待する。

■ 関連記事

■2 シリーズ・クロールとDoSの違いと業務妨害罪と(3)[http://www.nantoka.com/~kei/diary/?20100714S1][電子自治体][DoS][mashup][セキュリティ]<< 前の記事 このエントリーをはてなブックマークに追加

タイトルを付け直そうかと思ったが、まだ続くかも知れないのでシリーズ化することにした。
初出の時に
サーバ側から観測した時に、相手が行っているのが過剰なクロールか、あるいはDoSなのかは、Webサーバのログでも大体見当は付く
と書いたが、この点を改めて強調しておきたい。

レガシー世界とインターネット:

インターネットでは、専用線接続やクラサバとは根本的に異なり、ネットの向こうには何があるのか分からないというのがスタートラインだ。これは、インターネット全盛の今にあっては当たり前のことだが、レガシー世界からすると、クライアントが何かも分からないというのは確かに別世界だ。
レガシー世界のサーバとクライアントは一対のものとして実装され、お互いの挙動を把握しながら動いていた。
ところが、インターネットの世界では、 RFC[http://ja.wikipedia.org/wiki/Request_for_Comments] で提案されたプロトコルを拠り所に、サーバとクライアントがばらばらに実装される。
プロトコルが決められていると言っても、 全銀協手順[http://ja.wikipedia.org/wiki/%E5%85%A8%E9%8A%80%E5%8D%94%E6%A8%99%E6%BA%96%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB] とか、ISO 8583とか、 CAFIS *1 の様な厳密さは無いし、ましてや接続のための認定等もない。
それでも動いているのは、サーバ - クライアント共に、なるべく広い相手と話せるように努力した結果だし、話せなければそれでも良いという割り切りの結果でもあるだろう。
これだけ別世界だと、レガシー世界の方から、 サービス提供側が意図しない使い方をして被害が生じれば罪になる[http://twitter.com/hatsanhat/status/18574777672] とか、 提供側が意図しない使い方を戒めて欲しい[http://twitter.com/hatsanhat/status/18575234658] といった、インターネット以降の常識からすると、首を傾げるような意見が出てくるのだが、これは、まさに世界観の違いによるものなので仕方がない。
今回の事件が、図書館に置いてある検索端末を意図しない使い方 *2 をして、検索端末が使えなくなったとか、システムが使えなくなったという話であれば、まだレガシー世界の話かも知れないが、 今回はインターネットで起きた話なので、インターネット以降の常識をベースに話を進めたい。レガシー世界の方は、別世界の話にしばしお付き合い頂きたい。

サーバが落ちるということ:

サーバにどれだけの能力が要求されるかについては、キャパシティプランニングとして、今も昔も上流工程で検討される事項の一つであろう。
レガシー世界では、キャパシティは絶対のスペックであって、それを超えるとシステムが動作しないというのは、望ましくは無いけれども仕方がない事だった *3 。 万が一、キャパシティをオーバーする可能性が生じたら、利用者に協力してもらって、運用で回避をするしかなかった *4
インターネットでは、何しろサービスの利用者はネットの向こうにいるのだから、いつ、どれだけアクセスが来るかは分からない。アクセスが集中して困ったとしても、アクセスをやめてもらう方法も無い。
処理できないほどのアクセスが来たらどうするか。 答えは簡単で、 処理できるようになるまで待ってもらうか、返事をしないか、余裕があればエラーだけ返すかだ *5 。 インターネットでは、できないときはできる範囲でやるというポリシーによって、リソースを有効活用しており、このポリシーがあるからこそ、高速なインターネット接続を、専用線とは比べ物にならないほどの低価格で利用できている。
もしも、年に一度あるかどうかのアクセス集中時にも遅延なくインターネットが使えなければならないとしたら、月額数十万円払って128Kbpsという世界で、多くの人の手元にインターネットは届いていないに違いない。 できないことはできる範囲でやる、ベストエフォートというポリシーがネットの低価格化と普及を実現し、今日のインターネットの隆盛がある。
サーバについても同様だ。 インターネットに対してサービスを提供する以上、処理能力を超えたアクセスの集中は必ず起こるとして、処理できないアクセスが来たら、待ってもらうか、返事をしないか、エラーを返し続けて、アクセスの集中が去れば定常状態に回復するというのが、インターネットに接続されるサーバとしての要件だ。
遅くなっても、返事をしなくなっても、それは処理能力の一時的な低下であり、それは「落ちた」とは言わない。一方、アクセス集中という原因が取り除かれても、なお復旧しない様な障害が発生した時に「サーバが落ちた」と言う。
今回のケースについては、報道等を通じて見る限りでは「サーバが落ちた」と言うのは事実のようだが、これまで述べたように、 アクセス集中によってサーバが落ちるのは、インターネットに向けてサービスを提供するサーバとしての要件を欠いている と言わざるを得ない。

ブラウザとクローラとヒトとロボットとネコ:

「Webサービスとは何か」と突き詰めて行くと、究極的には「HTTPサービスです」ということになる。「Webサーバ=HTTPサーバ」と言い直せるくらいだ。
HTTPサービスを利用するためのプログラムは、「HTTPクライアント」で、ブラウザもクローラも、HTTPクライアントであるという点に違いは無い。
当然、HTTPサービスを提供する側から見ても、HTTPクライアントである点に違いは無い。
一方、HTTPクライアントを使って、サービスを受けているのが、ヒトかロボットかネコかということも、HTTPサービスを提供からする側から見れば、みな「HTTPサービス」を受けているという点で等価だ。なおこのネコは後に重要な役目を帯びて再登場する。
サーバが提供するのは「HTTPサービス」であって、「IEサービス」でも「FireFoxサービス」でも無い。HTTPサービスを提供するということは、HTTPクライアント向けのサービスを提供するということであって、その中には、行儀が良いのも悪いのも *6 、実装にバグがあるものも、標準と違う動きをするものもあるけれど、そういう多様なクライアントからアクセスされるのが、インターネット上のサーバだ。
もちろん、一つ一つのクライアントに合わせてサーバを実装するわけではないし、そんなことができるはずもない *7 。サーバは、ただHTTPサービスを提供すれば良い。
この様に、通信プロトコルとユーザーインターフェイス等の表現を分離したところも、Webが広く普及した理由の一つであると考えられるが、とにかく、ここで理解して頂きたいのは、 Webサーバ(=HTTPサーバ)は、HTTPサービスを提供するサーバである ということに尽きる。
従って、 Webサービス(=HTTPサービス)を提供することは、HTTPサービスを提供すること になる。
そもそも「HTTPサービス」を提供しているのだから、HTTPクライアントからアクセスされることが想定されていて、 同じHTTPクライアントである、ブラウザとクローラを分けて考えることには無理がある。 この問題には、ヒトとロボットを判断する際にも直面して、その技術的な解決の一つとして CAPTCHA[http://ja.wikipedia.org/wiki/CAPTCHA] が使われているが、これも前述したように、ブラウザとクローラを判断するのが難しいからこそ利用されている技術である。

アクセスとアタックと:

原点に帰ろう。「ブラウザかクローラか」は、実はどうでも良い問題で、 焦点は「アクセスかアタックか」だったはずだ。
アクセスなのかアタックなのかはサーバ側で見当が付く[http://www.nantoka.com/~kei/diary/?20100624S1] という趣旨のことを書いたが、ここをもう少し詳しく書いてみたい。
パターンとしては、大まかに次のパターンが考えられる。
  1. ブラウザによる通常のアクセス
  2. クローラによる目立たないアクセス
  3. ブラウザによる過激なアクセス(だが、DoSではない)
  4. クローラによる過激なアクセス(だが、DoSではない)
  5. ブラウザによるDoSを意図したアクセス
  6. クローラによるDoSを意図したアクセス
1,2の中には、「怨念を込めて密かに1日1回アクセスを繰り返すことによって、サーバの負荷を上げてやろう」というものが混じっているかも知れないが、実害は生じないので無視することにして良いだろう。そもそも、霊感が無ければログから怨念を感じ取ることは不可能なので、気づかないケースがほとんどだろう *8
実際に問題になるのは、3,4と5,6を分離することだろう。 どこに違いが生じるかと言えば、 リクエストしたデータを利用しているかどうか だ。
例えば、常識的に更新頻度が高いことが想定されない同じページを、ノーウェイトで取得していれば、これは怪しいと見ていいだろう *9
クローラの場合、リクエストしてくるURLが異なると判別が難しいかも知れないが、クライアントまでのRTT *10 を得て、ローカルで同じページをアクセスした時に掛かる時間と足せば、クライアントからWebページを取得したときの大まかなRTTが分かる。これより長い間隔でのアクセスであれば、迷惑ではあるかも知れないが、恐らく意図はクロールだと判断できる。
今回のケースは恐らくこのパターンだったはずで、この程度の検証もしないで攻撃だと判断したのも、それを鵜呑みにして逮捕したのもあまりにも杜撰だ。
一方、これより短い間隔でアクセスしてくるとしたら、複数プロセスあるいはスレッドを使っているか、バグっているか、アタックしようとしているかだろう。サーバの応答時間を長くして、リクエスト数が変わらない様だったら、怪しいと見て良いだろう。
怪しいケースについては、あくまで「怪しい」であって、これが直ちにアタックの証拠になるものでは無い。バグによるものだったかも知れないし、「ブラウザでF5アタック」と思ったら、キーボードの上にネコが寝ていただけかも知れない。
IPアドレスやUserAgentで弾くことができないような形で続く様だったら、アタックと見なすことになるかも知れない。
なお、専用の攻撃ツールを使うと、効率的にアタックできる分、アタックとしか考えられない挙動を示すので、この場合は一回でアタックだと判断できるだろう。
*1: (7月24日)PIAFSとtypoしていたのを修正。
*2: 勝手にプログラムをインストールしたとか、設定を変えたとか。
*3: 例えば、夜間バッチ処理は、翌朝の業務開始までには絶対に完了していなければいけないだろう。
*4: 極端な例を取り上げております。
*5: HTTP Error 500のInternal Server Errorだが、文字通り、内部で何らかのエラー(リソースの不足、あるはずのファイルが見つからない、内部矛盾)を検出して、詳細は伝えない(攻撃に悪用される恐れがあるから、クライアントにはあえて詳細な原因を通知しないことが多い。)ながら、エラーが発生したという事実を正しく応答している。あくまで、クライアントに向けて、期待した応答が返せない理由として通知する「エラーコード」であって、サーバの管理者に対してのエラーでは無い。致命的な障害をクライアントに通知したからと言って、クライアントにはサーバを救う手だては無い。
*6: クローラが行儀が悪い訳ではない。ブラウザが行儀が良い訳でもない。無関係に、行儀が良いのも悪いのも存在する。
*7: 細かく言えば、ブラウザ向けに最適化することはあるが、本筋ではないので割愛。
*8: 不能犯になりそうでもあるし。
*9: 一方、ある時刻に予約の受付開始を行うようなサイトでは、リロードを繰り返すのは、当然、想定される操作だろう。
*10: 目安であるから、tracerouteして、クライアントよりいくつか手前でも構わない。

■ 関連記事

詳細はこの日の詳細から

2005年07月15日(金)<< 前の日記 | 次の日記 >>
この日の詳細

■1 私はセックスしてはいけないんですか?〜小学校6年生(12歳)[http://www.lovecomi.net/cgi-bin/cbbs/cbbs.cgi?mode=al2&namber=2798&rev=&no=0&KLOG=23]次の記事 >> このエントリーをはてなブックマークに追加

「ネタ」だと思いたいのだけれども、最近の性の低年齢化を見ていると、あながちあり得ないとも言い切れない。
「避妊に失敗することもある」「妊娠したらどうするのか」という点に立脚した、批判が多いけれども、「じゃぁ、ペッティングだったら良いのか」という問題には答えていない。早すぎるものは早すぎるのですよ。
相手も同じクラスの様だけれども、男の子の側に対する責任の教育も必要かも知れない。

この記事に頂いたコメント

精神的成長も足りない by 茄子    2005/07/20 09:35
TB失敗。リンク先に本文書きましたが 私は精神的な事を言いたいですね。快楽に対する...

■ 関連記事

■2 日本でも「Googleマップ」と「Googleローカル」が開始[http://internet.watch.impress.co.jp/cda/news/2005/07/14/8416.html][GIS]<< 前の記事 | 次の記事 >> このエントリーをはてなブックマークに追加

スペースモラトリアムノカミサマ[http://pmakino.jp/tdiary/20050714.html#p02] より。
なかなか詳細な情報が得られますな。写日記のリンクに追加しようかな。

■ 関連記事

■3 ヒント: 伝票番号に「ヤマト」を付けると宅配状況が検索できます[http://www.google.co.jp/search?num=100&hs=mfw&hl=ja&c2coff=1&client=firefox-a&rls=org.mozilla%3Aja-JP%3Aofficial&q=%E5%AE%85%E6%80%A5%E4%BE%BF&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja]<< 前の記事 | 次の記事 >> このエントリーをはてなブックマークに追加

Google[http://www.google.co.jp/] やるな。他にもこういうのが色々あるのだろうか。

■ 関連記事

■4 Proposal for "Ajax"[http://pear.php.net/pepr/pepr-proposal-show.php?id=275][Ajax]<< 前の記事 このエントリーをはてなブックマークに追加

どこかでやるだろうなぁって思ってたプロジェクト。要マーク。

■ 関連記事

詳細はこの日の詳細から

2001年07月15日()<< 前の日記 | 次の日記 >>
この日の詳細

■1北海道旅行(2日目)[旅行] このエントリーをはてなブックマークに追加

富良野に出発です。

フラノラベンダーEXP:

に乗るつもり。

フラノラベンダーEXP3号:

チケットの都合で指定券を持っていないので、早めに並んで自由席を確保。 3号車はハイデッカー車両(?)で、1階がラウンジになっていました。
札幌発0913、富良野着1106。
フラノラベンダーEXP3号ロビーカー

富良野:

ぽっぽや号が止まっていたので写真撮影したりして時間を過ごしてノロッコ2号(1152発)。 これは指定券が確保できていなかったので、早めに行って並びつつ写真撮影。 しばらくしてツアー客が集団で着たので、これは大正解。 ツアーといえども指定券が確保できていないことがあるんですね。
このノロッコ号は、旭川→富良野と来て、富良野と美瑛間を折返運転、 最終は旭川まで戻るという運転をしているのですが、 機関車をどうやって付けかえるのか不思議に思っていました。
結局、推進運転と言うんでしょうか、機関車が後ろについたままで進み出したときは少し驚きました。 前が見えないのに運転できるのかなぁ等と考えていたのですが、 降りるときに見てみると、機関車は無人。 先頭車両の運転台から運転できるんでしょうね。 *1 素人考えですが、後ろから推すのと前から引くのでは、安定性が違ってくるような気もします。 ノロッコ列車だからできる運転なのでしょうか。
ちなみに、この列車に乗っている女性の客席乗務員の方は「ノロッコレディ」という、 なんか菱沼さん *2 を連想させるネーミングをされていますが、 この日のアナウンスは、天然だったらごめんなさいですが、「ノロッコ」を感じさせる口調でした。 録音しておけばよかった。
臨時停車場のラベンダー畑駅で下車(1214)。
ノロッコ列車

ファーム富田:

ファーム富田を散策。経験者によると、まさにオンシーズンということで、 見事に咲き誇っていました。これで天気が良かったら言うことなしです。
お花畑で写真撮影なのですが、ものすごい人出の上に、 花畑の中まで入って記念撮影 *3 する人が絶えなくて、カメラポジションの確保に苦労しました。
ノロッコ列車

美瑛:

ラベンダー畑1320発、732Dで美瑛へ(1342着)。 どういう風に時間を過ごそうか迷ったのですが、持ち時間にピッタリはまったので、 ツインクルバス丘コースに乗ることに。JR券を持っていれば、 600円で美瑛の丘の見所を1時間ほどで回ることができます。 発券は駅の窓口で。券面には指定席券となっていたのがちょっと不思議。
ツインクルバス丘コース指定券

ばんごはん:

今日の晩御飯はサッポロビール園で。 北海道の食べ物早巡りコースといった様相。満腹。
ツインクルバス丘コース指定券

スーパーホワイトアロー20号:

美瑛発1552、旭川着1555の734Dで旭川へ、 5分の乗換に間に合ったので、スーパーホワイトアロー号(1600発)。 車内は通路側席だったので睡眠時間に充てましたが、 キハとかサハとか一見謎のメモを取る少年を発見したのがちょっと嬉しかったです。

フィルム消費:

今日までで6本(36枚撮り)。予定よりローペース。 ちょっとスケジュール厳しすぎの上に、天候が残念でした。 サーキュラーPLが活躍していない。
*1: 解説希望!
*2: 「動物のお医者さん」参照
*3: するのはもちろんマナー違反。 誰かが入って踏み跡がついたところは、気兼ね無く入りやすいせいか見るも無残な状態になっていました。

■ 関連記事

詳細はこの日の詳細から

2000年07月15日()<< 前の日記 | 次の日記 >>
この日の詳細

■1 続・Aiboにバッファー・オーバーフロー攻撃[http://www.nantoka.com/~kei/diary/200007.html?to=200007142#T200007142][セキュリティ]次の記事 >> このエントリーをはてなブックマークに追加

うーん。ちょっといたずらが過ぎましたかね。ごめんなさい。 とってもツボにはまったんだけど。
詳しくは、 c|net[http://japan.cnet.com/News/2000/Item/000714-1.html?mn] 参照。

■ 関連記事

■2おでかけ[i-mode]<< 前の記事 このエントリーをはてなブックマークに追加

今日はJRでおでかけです。長崎本線は本線なんだけど単線なんで、列車待ち合わせで待ち。

JRでおでかけなのは:

飲み会だから。どこになりますかね。兎さんはいないだろうなぁ。

■ 関連記事

詳細はこの日の詳細から

以上、12 日分です。

指定日の日記を表示

前月 2020年01月 翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

最近の日記

2019年04月01日

新元号「令和」について

2019年03月23日

DXアンテナ ワイヤレスチューナー メディアコンセント DMC10F1

2019年02月17日

#例のグラボを活用する

2019年01月03日

シリーズ5・myHomeAlexaで自分のCDをかける

2018年12月25日

シリーズ4・英語の楽曲・アルバム・アーティスト名をカタカナに直す

2018年12月23日

シリーズ3: Echo Dotがやってきた

2018年12月19日

続・Echo Dotがやってきた

分野別タイトル一覧


全て
CLIP
SYA!nikki
book
freebsd
hns
magic
おさけ
おしごと
お買いもの
ぐる
ごはん
アクセシビリティ
オープンソース
セキュリティ
音楽
地域情報化
電子自治体
日記

予定

    ToDo

      link

      keikuma on Twitter

      keikuma Name:前田勝之
      Location:長崎市
      Web:http://www.nantok...
      Bio:前田勝之(まえだかつゆき)。長崎在住。コンサル、SE、プログラマー、 なんとか株式会社代表、非常勤講師(情報セキュリティ)。 セキュアド、テクニカルエンジニア(SV,NW)。サーバ管理とWeb日記を10年ほど。 ネットとリアルの接点に関心あり。食べること・歌うこと・愛すること・作ること・飲むこと。おいしいものがぜんぶすき。

      サイト内検索

      Google AdSense

      Powered by hns-2.19.9, HyperNikkiSystem Project