カテゴリー:防御方法
自前の掲示板などであれば取得は容易であるが、大手のレンタル掲示板や商用サービスの掲示板では明らかな犯罪行為でもなければリモートホストの公開をしてもらうのは無理である。
しかし攻撃者のサイト攻撃の一環として、2ちゃんねるやその他の掲示坂に批難の為のスレッド、或いは掲示板を立て、そこでやじ馬や攻撃支援を求める場合が往々にしてある。
このような場合に荒らしのリモートホストを掴む事ができれば、後の展開は大分楽になる。
手法は以下である。
自分自身でアップローダー、或いは ~~サイト管理者批判の簡易サイトを立ち上げる。
アップローダーに~~サイト管理者の実態、写真公開などと言って批判のまとめや、加工写真などをこちらも自作自演で掲載するのだ。
荒らしが先に作ってしまったら・・・と言う心配があるかも知れないが、荒らしも最初からそのような労力を割くわけではなく、そのようなスレッドを作り騒ぎが大きくなってから、どれまとめのサイトでも作るか・・となるものなので、他の掲示板などに飛び火した段階でこちらが主導権を握ってしまうのだ。
そしてアップローダやまとめサイトにはJAVAスクリプトオフでもIPアドレスが取得できるアクセス解析を仕掛けておく。推奨アクセス解析:XREA.COM等
つまり、荒らし本人に助っ人が来たと誤認させアクセス解析を仕掛けたサイトにアクセスさせる、ソーシャルハッキングである。
一度目は用心してアクセスしない注意深い攻撃者でも定期的に繰り返していればアクセスして来る。
自前の掲示板にはプロキシーの足跡しか残して行かない場合でも、2ちゃんねるやその他であれば、プロキシーの使用しにくさから生」Pで書いている可能性が高く、その合間に書き込まれたアップローダーや批判サイトにはついついプロキシーを使用してアクセスするのを怠ったりする機会があるものなのだ。
書き込むタイミングとしては、攻撃者がなにかを書き込んだ直後など、荒らしが今パソコンの前で書き込んでいるというタイミングで投稿してやるとよい。
何度か繰り返している内に、毎回同じリモートホストかダイアルアップで切り替えていたにしても同一プロバイダ、同一ブラウザでのアクセスが見つかる。
また、荒らしが今パソコンの前で書き込んでいるというタイミングで投稿してやったため、一番最初にアクセスしてくるのがこの荒らし本人のケースが高い。
一度では確信できなくても、2度3度同じ偶然は重ならない。念を入れて3度も確認すれば十分だ。
またこの時、荒らし本人のものと思われるリモートホストが毎回変化のないブロードバンド回線によるリモートホストであったならば、荒らしは2つの回線を使い分けている事がわかる。
ダイアルアップ回線の切断接続を繰り返しながら、本体はブロードバンド回線で書き込んでいることが推測されるのである。
筆者には10年来使っている古いメールアドレスがありますが、先日このメールアドレスを変更しました。
名刺にしか刷らず、大事に温存して来たメールアドレスでしたが、知人がウィルス感染をした数年前からスパムが来るようになり、対策を取ったのですが結局温存して使用しないメールアドレスとなっていたのでメールボックスは99%スパムで埋もれていたからです。
このように温存しても長い期間にはスパムがやってきて、いずれスパムフィルターなどのお世話にならないと使い物にならなくなる現状があります。
サイトの運営において、管理者は各所に連絡用メールアドレスを明示することを推奨しましたが、これはデメリットとしてこのスパムメールを誘っていることになります。
来訪者からのメールに応答しようにも、メールボックスの殆どがスパムで占められるようになるとメールボックスを荒らされているようなもので、肝心のメールの見落としなどもおきかねません。
まして、管理専用メールアドレスを窓口別に複数分けるような必要などがあったりするとますます見落としの危険性が高まります。
このスパムメールがどのようにしてやってくるかと言えば、メールアドレスの収集クローラーというプログラムが日夜新しいメールアドレスをインターネットから収集しています。
通常メールアドレスはHTMLで以下のようなタグで記述します。
~例~
<a href="mailto:webmaster@sample.ne.jp">webmaster@sample.ne.jp</a>
メールアドレスの収集クローラーはこのタグに記述される特徴"mailto:"という文字列やメールアドレスに含まれる特徴的な"@"という文字に目を付け、付近に".com"や"ne.jp"があるとメールアドレスと判定し"xxxxx@xxxxx"という文字列の集まりをメールアドレスだと判定しています。
相手も商売ですからなるべく確実に効率よく拾っていこうとしているのです。
この仕組みを逆手に取れば、"mailto:"や"@"を隠してしまえは素通りして行くという事になります。
実際、こういったスパムメールに晒されている管理者は
例:
メールアドレスはこちらです「ebmaster@sample.ne.jp」の先頭に半角小文字で「w」を足して下さい(スパム対策)
例:
メールアドレスはこちらです「webmaster#sample.ne.jp」「#」の部分を「@」に入れ替えて下さい(スパム対策)
といった表示をして対策を取っています。
これでも一定の効果はありますが、まずクリッカブルではなくなりメールを出す方が面倒という事になります。
また、掲示板などでは"@"が含まれていないとメールアドレスとは見なさず「正しいメールアドレスを入力して下さい」といったアラートで弾かれる場合もあり、管理者としては使い勝手が悪いものです。
そこで数字参照文字という特殊な表記法を使用します。”数値参照文字”とは指定文字をコード数字で表示する方法です。10進や16進数がありどちらでも表記が可能です。
ブラウザはこの数値参照文字を解釈し、普通の文字として表示します。
例:ABCDは数字参照文字(10進)では以下のように表記されます。
A : A
B : B
C : C
D : D
先ほどのメールアドレス"webmaster@sample.ne.jp"をこの方法で表記すると
例:webmaster@sample.ne.jp
数字参照文字(10進):
webmast
er@samp
le.ne.j
p
となります。少々長くなってしまいますが、この表記法でHTMLを書き換えると、ブラウザ上には以前と変わらず"webmaster@sample.ne.jp"と表示されています。
では、以前と同じようにクリッカブルにするためにHTMLタグも含めて記述してみましょう。
タグ以外の"mailto:webmaster@sample.ne.jp"と"webmaster@sample.ne.jp"を書き換えます。
例:<a href="mailto:webmaster@sample.ne.jp">webmaster@sample.ne.jp</a>
数字参照文字(10進):
<a href="mailto
:webmast
er@sampl
e.ne.jp">
webmaste
r@sample
.ne.jp</a>
以上となります。
以上のように表記することで、メールアドレスの収集クローラーは素通りしてくれます。
|
~数字参照文字コード表~
文字 10進 16進 (英大文字) 文字 10進 16進 (英小文字)
|
前ページまででスパムメールと検索エンジンのキャッシュ対策を解説しました。
ロボットやクローラー対策としては以上で十分すぎる程ですが、将来的には数値参照文字やJavaScript内を解析するクローラーが現れるかもしれません。
また、相手が人間であればJavaScriptファイルを開き中のソースを保存する方法をとるかもしれません。
直接人間が保存する場合までは防ぐ手はありませんが、保存されても何が書いてあるのか容易にはわからなくするする手法ならあります。
検索エンジンにキャッシュされないメッセージをつくるで紹介した"nocache.js"の中身を「XORHTML」というツールを使って暗号化して見ましょう。
暗号化といってもパスワードやIDが必要なわけではなくJavaScriptに用意された文字コードの変換関数を用いて記述内容をクローラーや人間の目では判別できなくするわけです。
・先ほどの"nocache.js"の中身は以下の一文でした。
---------------------------------------------------------------------
document.write("このメッセージはキャッシュできません。")
---------------------------------------------------------------------
・".js"ファイルは<script language="JavaScript">~~~~</script>の宣言がいらないため、そのまま記述しましたが、「XORHTML」はページ内記述のJavaScriptを対象としているので、普通のページに記述する為に宣言をつけてやります。
---------------------------------------------------------------------
<script language="JavaScript">
document.write("このメッセージはキャッシュできません。")
</script>
---------------------------------------------------------------------
・このJavaScriptコードを「XORHTML」の上の窓にコピーペーストとし、「F2」をおします。下の窓に暗号化されたコードが生成されています。

| <SCRIPT LANGAGE="JavaScript">s="K 4 D 5 N 7 3W K F I @ 2 F @ BJU= F 1 F T D 5 N 7 3UIz!0z!0!1 C H D 2 J B I 3Y 0 5 N 3 B_U$ TG$ IG$!IG$!gG$#?G$!>G$#BG$ HG$#MG$!GG$!gG$#3G$!EG$ @G$:G$ 9G$,G$#WG$uGU^z!0z!0KX 4 D 5 N 7 3I";k=119;t="";r=0;for(i=0;i<s.length;i++){a=s.charCodeAt(i);if(a==36){++i;r=1;a=s.charCodeAt(i);}if(a==32){++i;a=(s.charCodeAt(i)-48)^k;}else if(a==33){++i;a=(s.charCodeAt(i)+77)^k;}else if(a==35){++i;a=(s.charCodeAt(i)+141)^k;}else a=a^k;if(r==1){r=2;e=a;}else if(r==2){r=0;t=t+String.fromCharCode(a*256+e);}else t=t+String.fromCharCode(a);}document.write(t);</SCRIPT> |
| "nocache.js"------------------ s="K 4 D 5 N 7 3W K F I @ 2 F @ BJU= F 1 F T D 5 N 7 3UIz!0z!0!1 C H D 2 J B I 3Y 0 5 N 3 B_U$ TG$ IG$!IG$!gG$#?G$!>G$#BG$ HG$#MG$!GG$!gG$#3G$!EG$ @G$:G$ 9G$,G$#WG$uGU^z!0z!0KX 4 D 5 N 7 3I";k=119;t="";r=0;for(i=0;i<s.length;i++){a=s.charCodeAt(i);if(a==36){++i;r=1;a=s.charCodeAt(i);}if(a==32){++i;a=(s.charCodeAt(i)-48)^k;}else if(a==33){++i;a=(s.charCodeAt(i)+77)^k;}else if(a==35){++i;a=(s.charCodeAt(i)+141)^k;}else a=a^k;if(r==1){r=2;e=a;}else if(r==2){r=0;t=t+String.fromCharCode(a*256+e);}else t=t+String.fromCharCode(a);}document.write(t); |