スポンサーリンク

ハッカーになる方法を,具体的なスキルセットから考える


ハッカーになるには?

上級者を超越した「超級の技術者」になるためには,
どのようなスキルを習得し,どのような手順を踏んだらよいか。


OS環境やプログラミング言語については,
どのようにステップアップしたら良いのか。


もちろん、ホワイトハッカーのことだ。

ハッカーになるために,必要なスキルのまとめ

求められるスキルを列挙:

  • セキュリティ
  • OS
    • Linuxとカーネル
    • アセンブラ
    • コンピュータの仕組み
    • リバースエンジニアリング
  • プログラミング言語
    • 低レイヤ言語であるC/C++の理解(ただしメインの作業言語ではない)
    • 生産性の高いメインの作業言語,例えばPython
    • Lisp
  • 情報共有
    • Webで発信
    • 上手な人から技を盗む
  • オープンソースへのコミット
  • コードリーディング
  • 自動化
  • 性格
    • 問題解決意識
    • 粘り強さ
  • 英語
    • 技術的な文書の読み書き
    • コードの読み書き
    • 当たり前の作業言語として使いこなすこと
  • 数学
    • 論理的な思考力
    • 集合やブール代数,グラフ理論など,抽象的な構造をうまくあつかう知識
  • 法令・コンプライアンス

根拠

以下は参考になるサイト。


ハッカーになるための具体的なスキルセットについての情報:

サイバー犯罪と戦う注目の職業「ホワイトハッカー」って何だ!? ネットエージェント杉浦隆幸氏に聞く - エンジニアtype
http://engineer.typemag.jp/article/ne...

  • 1人の有能なハッカーは1000人のエンジニアに匹敵するもの
    • ホワイトハッカー=サイバー犯罪を起こすブラックハッカーに対抗するセキュリティエンジニア。
  • セキュリティのプロに対する需要が増えている
    • IT業界では「新しいデバイスやネットサービスが生まれると、大体5年以内にはそれを悪用し た犯罪が一般に蔓延する」という不文律がある
    • セキュリティの専門分野の分類は、SW、web、NW、OSの4つ
  • 数学は重要
    • 10進法、16進法くらいは頭の中でできるレベルの数学力が必要
  • アセンブラレベルの低層の理解と,リバースエンジニアリング
  • 法律・法令への理解と法令遵守
    • 技術だけ優れていても、倫理観や人間性が備わっていないと、堕落してブラックハッカーになってしまう
    • 孤独感を克服したり、未解決の問題を解きたいという欲求から悪の道に走らないことも大事。
  • 性格的に粘り強く慎重なタイプであることも大切


How To Become A Hacker: Japanese
http://cruel.org/freeware/hacker.html

  • ハッカーたちはインターネットを築き,UNIX オペレーティングシステムを今日のような形にまで作りあげ,Usenet を運営し、World Wide Web が使えるようにした。ハッカーはものをつくります。クラッカーは壊します
  • ハッカーになるためには、問題を解決することにゾクゾクするような喜びを感じるようでなければいけません。車輪を発明しなおすような無駄なことをしてはいけません
  • 考える時間は貴重であると信じなければなりません。それをとことん信じて、情報を共有するのがほとんど道徳的な義務であると思えるようになりましょう。問題を解決し、その解答を提供すれば、他のハッカーたちは古い問題にいつまでも取り組みなおし続けずに、新しい問題を解決できるのです
  • 退屈な部分はできるだけたくさん自動化
  • もしコンピュータ言語をなにも知らないなら、まず Python から始めることをおすすめします。設計がきれいだし、ドキュメントもしっかりしているし、初心者にもそこそことっつきやすくできています。でも入門言語として最適でも、おもちゃではありません。強力で柔軟で、大きなプロジェクトにもじゅうぶん対応
    • Java より先にまず C や Lisp を学んだほうがいい
    • 本気でプログラミングをするなら、C を勉強するしかありません。これは Unix の中核となる言語です。C++ は C と密接な関係にあります。片方を知っていれば、もう片方を学ぶのはそんなにむずかしくありません。が、どっちも真っ先に勉強しようとするのには向いた代物ではありません。そして実は、C やC++の低レイヤなリソース管理をなるべく避けられたほうが、その分だけ生産性は増します。マシンの時間を少し非効率に使っても、あなたの時間をずっと効率的に使う言語を使うほうが賢明でしょう。ですから、Python をお奨め
    • LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LISP そのものをあまり使わなくても。
  • 本や講習会のコースではダメ。多くの、いやひょっとしてほとんどのハッカーたちは我流で勉強してきた
  • 新米さんがハッカー技術を習得するための唯一最大の重要な一歩は、Linux かフリーの BSD UNIX 類か OpenSolaris のどれかを入手し、それを自分のマシンにインストールし、動かすこと
    • MS Windows マシンやその他ソースがクローズドなシステムでハッキングを学ぼうとするのは、全身ギプスをつけてダンスを学ぼうとするようなもの
    • 2006-2007 年に、ほんものの最高の選択が登場しました: Ubuntuです。他のディストリビューションも独自の強みはありますが、Ubuntu は Linux 新人にとって圧倒的に一番とっつきやすい
  • 英語はハッカー文化やインターネットでの作業用言語なんだということ
    • ハッカーコミュニティーで役に立つには英語を知らないとダメ
    • 英語は技術用語がほかの言語よりも豊富で、だから英語のほうがとにかくこの仕事に向いている
    • 英語で書かれた技術書を訳した場合、多くは不満足な出来
  • 数学
    • 形式論理やブール代数を多少知っているのはいいことです。有限数学の基礎(有限集合論、組み合わせ数学、グラフ理論)も役に立ちます
    • もっと重要なことがあります。数学者がやるのと同じように、論理的に考えて、厳密な理由づけの連鎖をたどれる必要があります。
  • あなたが新米なら、興味が持てる開発途中のプログラムを見つけて、よいベータテスタになりなさい
  • 多くのハッカーは「geek」という言葉さえ、誇りをこめて受け容れる
  • 遊びと同じくらい熱心に働き、働くのと同じくらい熱心に遊びましょう。真のハッカーにとっては、「遊び」「仕事」「科学」「芸術」の境界はすべて消滅しがちだったり、すべてが高次の創造的な遊技に融合
  • ハッカーに本気でメールして助言を求めるなら、まず一つは、作文がだらしなく手抜きな人物は、通常は思考もだらしなく手抜きなので、よいハッカーにはなれないようだということ。だからスペルはきちんとしましょう。文法も句読点もきちんとしましょう。そうでないとたぶん無視されます


誰にでも実践できる、ハッカーになるための具体的方法—《楽天》技術理事 吉岡弘隆氏からの提言。│CAREER HACK
http://careerhack.en-japan.com/report...

  • 時代の流れが速い業界にあって、技術者としてあり続けるために必要なことは、「ハッカーマインド」を持つこと・「ハッカー」たること。
  • 失敗してもいいんだという前提で,好奇心を大事にしてチャレンジし続けること
  • チャレンジのために必要なベースとなるスキルは学習し続ける。
    • 教科書に書いてないことは上手な人から盗む。例えば勉強会に足を運んで,トップ企業のベストプラクティスや暗黙知を共有する。そして人脈を作る
    • 「チャレンジできる環境を常に探していく。同じ職場で同じ仕事をずーっとしていれば、成長が止まってしまう」
  • エンジニアがやっておくべき準備の一つとして明確に分かっているのは語学,特に英語に抵抗が無いこと。
  • エンジニアにとっての“あるべき姿”というのが、日本ではあまりにも言語化されていない。経験や勘ではなく,キャリアアップしていくための道しるべみたいなものをMBAみたいに形式知化すべき


Googleエンジニアから学ぶ、ハッカーになるための勉強法 - 久保清隆のブログ
http://kiyotakakubo.hatenablog.com/en...

  • ハッカーは共有を善と考え、実践する。 googleも社内での共有が推し進められ、どのソースコードにもアクセスできる
  • 設計しつつ実装。ハッカーはこうしている場合が多い。
  • こまめにマイルストーンを設定。 小さい単位で動くもの・あとで使うものから。サブシステムだけで使えるようなものをまず考え、作る
  • ハッカーはドキュメントはあまり書かない
  • アルゴリズムとデータ構造、デザインパターン。こういう場合はこうすると良い、など知っていると速度があがる
  • 正規表現などの知識
  • コンパイラ、ライブラリ、OS、ハードウェア。下の方で何が行われるか知っていれば、設計する上で無駄なことをしないですむ
  • とにかくたくさんのコードを読むことが大切


ハッカーになるには何を覚えたり、どんな勉強をすればいいのでしょうか?(1/2) | その他([技術者向] コンピューター)のQ&A【OKWave】
http://okwave.jp/qa/q3568089.html

  • コンピュータが好きで好きで24時間365日コンピュータを触っている結果ハッカーの称号で呼ばれるようになる
  • C言語またはC++は必須なので、とりあえず本を10冊読んでみよ
  • MS officeのマクロでも面白いことはできる


ハッカーになる方法 - SSS研究所
http://ssslab.wiki.fc2.com/wiki/%E3%8...

  • スクリプト言語でエラーを出しまくってエラーの対処法を知るところから
  • コンピュータの仕組みを知る。そのためにアセンブラかC言語でPICマイコン
  • 作業環境が整えやすいlinux上でいろいろな言語で開発
  • gentooを手動で全部OSインストールし、足りないものも自前で足してゆく
  • OS自作の本を読んで実際にトライし、linuxカーネルのソースコードを読む
  • オープンソースのパッチを書きまくる
  • この時点で立派なハッカー。単なるスクリプトキディにはなるな。


ハッカーになるには − コンピューター専門犯罪捜査官になるためには
http://cfihacker.blog57.fc2.com/

  • アメリカでは「Computer Forensics Investigator(コンピューター犯罪捜査官)」という地位が確立している。コンピューター犯罪に関する学部も存在し,有名な大学はFBIがバックアップしている。(日本では単なる公務員)
    • 具体的な資格名としては,CISSP,CISM,CISA,CCSP,CEH,CHFI。お金に余裕があれば、アメリカで短期集中コースで1週間で取得できるものもある。


中学生「ハッカーになりたい、真面目な話です、ハッカーになるにはまず何を勉強すればいいんですか?」 【2chまとめ】ニュース速報嫌儲板
http://newskenm.blog.fc2.com/blog-ent...

  • マシン語を読めるのは当たり前
  • ハッカーじゃなくてセキュリティ関連の仕事を目指せばいい
  • 英語を学べ、マジで。