セキュリティ初心者に向けて(学内の新1回生向け)

はじめに

みなさんはじめましてColumbineといいます。(新1回生向けなので初めてという体)

今回は、ぼくが今までどんな勉強をしてきたのか?みなさんにどんな勉強を進めるのか?というテーマでブログを書かせていただきました。

やってきた事

わたしは高校生の時にセキュリティをやりたいと思い趣味として勉強をはじめました。しかし、「ハッカー なり方」とかで調べたら分かるように有益な情報というのは中々見つかりませんでした。そこで、詳しくは大学で勉強しようと思いその分地盤固めとして情報処理技術者試験の受験勉強とかを通して勉強してきました。

大学では、セキュリティを教えてくれるような先生というのはみつかりませんでしたが、先生の紹介で外部の勉強会に行くようになったおかげで多くの方と出会い色んな事を学ぶ事ができたと思っています。大体そんな感じで、私はセキュリティを勉強したいと思いながらも勉強の王道が見つからなかったため自力で周りの人のサポートを受けながら勉強してきました。

オススメする勉強

さて、こっからが1回生たちに読んでもらいたい本題です。

わたしが初学者からセキュリティやりたい人にオススメするのは回り道をする事です。

いきなりセキュリティを勉強しようとしてもうまく行きません。それは実際にわたしがセキュリティだけやろうとして失敗した経験からです。たまに、CTF(Capture The Flagというセキュリティの問題)をずっとやってプロになった方とかもいらっしゃいますが正直かなりの熱意がないとできないと思います。わたしもやろうと思ったのですが結局長くは続きませんでした。そして結局今は、好きな事を好きなように勉強するという形に落ち着いています。

さて、前置きが長くなりましたがわたしが今からセキュリティの勉強をしたいという人に最初にオススメするのは「セキュリティの好きな分野を見つける」と「ITの広くそこそこ深い知識を身に着ける」事です。

一概にセキュリティといっても範囲は本当に広いです。ネットワークも、ハードウェアもWEBアプリもIoTもなんでもセキュリティを気にしないといけません。それらを全て一人で身に着けるというのは不可能です。なぜならセキュリティというのはその分野の人よりも深い知識を持ち、それをさらに正規ではない悪用をする方法を考える分野です。そのため全てのセキュリティを理解するというのは到底不可能なので自分がもっと深く勉強したいと思える分野を見つけましょう。

一つの分野に絞れといっておきながら、一方でITの広い知識を身に着けるというのは相反すると思われるかもしれません。しかし、Webアプリケーションのセキュリティでもネットワークの問題や暗号化の問題、バッファオーバーフローなどのメモリなどの低レイヤーの問題が関係する可能性があります。そのため「セキュリティをやりたいからプログラミングとかやらなくていい」みたいなアホな事を言っていないで(去年言ってる人がいると聞いた)ので、プログラミングを専門にしている人以上にプログラミングなどの情報技術について詳しくなる勢いで勉強しましょう。

具体的な勉強方法

ならばどのような勉強をすれば良いのだろうか?

まずはじめにするのが、大学の授業をちゃんと受ける事です。大学の授業の内容レベルは全部理解するくらいの勢いで勉強しても十分です。個人でも勉強できますが、せっかく大学に学費を払って通っているのだから大学の授業の内容をなんとなくではなく十分に理解できるよう勉強するべきです。

同時にするべきと考えているのがセキュリティの勉強です。学内の去年わたしが立ち上げたセキュリティSlackなどに「おうちで学べるセキュリティの基本」などの初心者向けの本の情報を出しています。そのような簡単な本を読んで勉強すると良いです。いきなり難しい事をやっても簡単には理解できません。また、セキュリティエンジニアになるにはセキュリティの技術だけではなく、法律やそのバックボーンなどの広い意味でのセキュリティの事を勉強する必要があります。これは将来仕事で必要となるからというだけの意味ではなく、使いようによってはいくらでも悪用できる技術のためうっかり逮捕されたりしないように自分の身を守る意味でも法律は最低限勉強しておくべき事です。

 

まとめ

大体、私が思い浮かんだのはこのくらいです。ここ間違っているのではないかや、これも付け足した方が良いのではないかというのがあればぜひ教えていただきたいです。

ネットワークにしてもハードウェアにしてもどの分野でもセキュリティ分野というのは結果が見えづらいクセにかなり難しいです。だから、セキュリティやりたいと言ってもすぐに諦めてしまう人が多いと感じます。それは残念ではあるが仕方ない事ではあります。もし、やるべき事が分からなかったり難しすぎて心折れそうになったら、私をはじめとしてその道の先輩にぜひ聞いて欲しいです。この分野は難しくて人が少ない分人と人のつながりがあると勝手に私は思っています。だから、一人で全部やろうとして心折れる前にぜひ声をかけてください。

総関西サイバーセキュリティLT大会(第14回)に行ってきた

4月10日の総関西サイバーセキュリティLT大会(総サイLT)に行ってきたので軽く紹介


どんなイベントか?

関西のセキュリティ業界を活気づけるという目的の元で隔月の第2水曜日に開かれる関西1大きいセキュリティのイベントです。(私調べ)

基調講演とLTがあり、基調講演では無償できてくださる講師の方の実際の経験などを含んだためになる講演が、LTでは5分ぴったりという短い時間に面白いセキュリティの話題や経験というのを聞くことができます。

個人的な感想とすると、他の技術的な勉強会などでは「自分が行っても大丈夫だろうか…」という不安があると思います。しかし、このイベントでしたら言い方は悪いが聞くだけなので是非ともセキュリティに興味のある初心者の方などにも行っていただきたいイベントです。また、関西の有名な方などとも出会える珍しい機会なのでただ聞くだけではなく是非とも周りの方と話して見たりして人脈を広げる機会として頂きたいです。

基調講演

What's Security Engineering manager

メルカリのセキュリティのマネジメントをされている方が講演されました。セキュリティのマネージャーとしてどんな事をされて、どのような仕組みの上で行なっているのかというお話しでした。

面白いと感じたのは、MissionやValue、Tenetsといったようにどのような目的を持ったチームなのか?、何をするのか?といった事が全て文章として定義しており、もし業務上で悩む事があれば文章化されたその目的や役割というのと照らし合わせて考えるという点です。なぜそのような事をするのかという理由としておっしゃっていたのが、セキュリティというのはいつも決断が必要となる分野のため悩んだ時に判断の基準となるものを作る事によってより良い判断ができるように助けるという理由でした。

このValueの中には、ただ禁止するのではなく受容できるリスクは受容するというのがあります。この点について「リスクの受容というのは経営陣は了承しているのか?」という質問がありました。それに対しての答えというのが「Valueの説明責任を果たすとある通りに経営陣にも説明して理解してもらった上でする」というもので、文章化するだけでなく実際に行動に影響を与える仕組みが成り立っているのは素晴らしいです。
https://speakerdeck.com/springmoon6/whats-security-engineering-manager?slide=6

海外のサイバーセキュリティ法や個人情報保護観点のトレンド

(会場のみ)

 

LT

面白かったLTを例として上げさせて頂きます。 

脆弱性診断を内製化してわかったこと

開発案件でシフトレフトするプロジェクトの一環として脆弱性診断を内製化する事にした。

多かった脆弱性としてXSS、HTTPレスポンスヘッダ、パスワードの文字数などがあり脆弱性の修正をするように開発者に言っても、脆弱性のこと自体を知らないことも多いという問題が浮かび上がった。

内製化して出来たこと

  • 似た事が多いとフレームワークの時点で潰す事にした
  • 教育をする事で脆弱性についての知識を増やしてもらう
  • 外部に頼むと高いが内製化した事によってリリース後の診断を気軽にできるようになった

https://speakerdeck.com/koujimatsuda11/cui-ruo-xing-zhen-duan-wonei-zhi-hua-sitewakatutakoto
私も脆弱性診断などから社内のセキュリティ技術を高めていけるような仕事がしたいと思っているためこの方のLTがとても興味深かったので上げさせて頂きました。

まとめ

総関西サイバーセキュリティLT大会は技術だけでなく社会情勢や実際の体験を通して得た事など、他の関西圏である勉強会よりも広く浅く知る事が出来ます。是非ともセキュリティに興味ある方やセキュリティやっている人と繋がりたいなどと考える方など参加して見て欲しいです。

(基本的に内容の拡散が推奨されているイベントのためブログに感想として上げさせて頂きましたが、内容など取り上げないで欲しいなどありましたら申し訳ないのですが twitter:@ksusec_hiroの方までお教え頂けますと幸いです…)

 

追記

今回参加させていただいた総関西サイバーセキュリティLT大会と同じく、関西を中心とした有名なセキュリティの集まりであるtktk勉強会さんとのコラボで今年も7月の14日に「Ultimate Cyber Security Quiz」があるそうです。セキュリティに関してのクイズを3部制で競い一位を目指すという熱い競技なので是非こちらも参加してみて下さい。(私も昨年は用事で行けなかったので今年は参加したいです!)

第2回Pwn勉強会開きました

先月行なったPwn勉強会の第2回を行いました。

メンバーは京都駅の近くの場所で3人slackを通じて1人の4人で開きました。内容としては、前回LSE CTFのstackoverflow0と1をやったためその続きとしてstackoverflow2をやることにしました。常設問なので問題には触れられませんが、0と1に比べてはるかに難しかったです。しかもexploitcodeを改造しようと思ったが、libcのbaseアドレスをどこから読み取ればいいのかというのが分からず悩んでたら終了の時間に…

先輩に聞いてみてもその方法では難しいらしくもう少し工夫する必要があるようだ。定期的にまた勉強会を開いたりして少しずつ勉強していきたい。

第5回研究室進捗報告会報告(という名の最近のまとめ)

第5回研究室進捗報告会

進捗報告会とは

某研究室で場所と機材を貸してもらっている、正規の研究室配属が行われる前の3回生以下のメンバーにて行われる最近の近況報告のようなものです。研究室としてやっている事はネットワークなのですが、出入りしているメンバーのやっている事はバラバラです。ゲーム系であったりインフラ系であったりと本当に思い思いにやっているので日頃お互いに教えあってというのは少ないですが、それではせっかく人がいるのにもったいない!という意見があったため日頃何しているのかというのをお互いに教え合うための場です。

発表内容

前回の報告会からの一ヶ月で何をしたのかというのが報告のテーマです。
てな訳で、このブログでは僕が報告したこの一ヶ月何したかをメモついでにまとめて書き留めときます。

サイバーセキュリティテスト完全ガイド読み終える

前回、だいたい半分のネットワークの所までやり終えたのでその続きをした。ネットワーク内の移動や管理者権限の奪取、無線ネットワークへの攻撃など前半の部分と比べて環境構築を行いにくい部分が多かった。そのため読んで大まかな部分をまとめてメモしておくだけに留まった。John the Ripperやmimikatzは(特に後者は)実際によく使用した際の攻撃事例の話や、攻撃者によるダウンロードの痕跡があったなど耳にする事が多いため今は後々やって起きたい。今やらない理由としてはこの後にハッキングラボのつくりかたという本をやるつもりなのでその本の中で解析を行なっている部分があるようなのでそちらでやりたい。

部活の研究発表会とサポーターズでLT

私の所属している部活では研究発表というのがありそこで発表をしたがこれに関しては別の記事で詳しく上げているので割愛。
サポーターズでLTという方も別の記事で上げているはずなのでこちらも割愛。
こう言ったLTをすると感じるのがやはり一般的な学生の中ではセキュリティというのはあまり認知されていないという事である。気をつけないとというのはわかっていても実際にどのような事が起きるのかよくわかっておらず、LTを聞いた人達から「気をつけないと怖いと思った」という感想をもらう事が多い。こう言った、「セキュリティというのは気をつけないと怖いものだ」というのを知ってもらうだけでも大きな意味があると考える。そのため、今後もできるだけ機会を作ってLTをして「セキュリティについての認知を上げる」という形で社会貢献していけたらと思う。

CTFの勉強会を企画して実施

以前から交友関係のある他大学の先輩と共にPWNの勉強会を開いた。お互いPWNをやる気はあるがあまりできておらず勉強会という形で一緒にできたら面白そう!という思いから開催することにした。参加メンバーとして私と同じ学校の後輩と先輩を呼んで開いた。上を目指すというだけでなく仲間と一緒に楽しむというために今後もこういう集まりを開くつもりだ。

バグバウンティ の勉強を始めた

勉強を始めた。とは言っても実際にバグバウンティ をし始めるというよりかはWEBアプリケーションの脆弱性診断の知識としてもっとバグについて詳しくなろうと思ったのがきっかけである。勉強方法としてはSlideShareを使った。他にも色々と方法はあったのですが一番最初の難易度としてはちょうどいい難易度だったと思う。
実際に勉強していくと実際にアプリ制作の経験が無いと理解しにくいところもあるためとりあえずPHPを勉強する事とした。

ToDo

PHPの簡単なWEBアプリ作って流のでそれを完成させる。
ハッキングラボのつくりかたやる。
バグバウンティの勉強続ける。
ブログやLTなどでやった事を外部に出す。


こんな感じの内容を報告しました。他の人の奴を勝手に載せるのもいけないと思うので上げられないですがそれぞれ自分の専門の分野を突き詰めようと努力していてやっぱすごい。最近インターン受けて「セキュリティだけでは…」みたいな事を言われてダメージ受けていたが今まで通り好きな事をがんばろうと思えました。就活の時にどう役に立つのかというのはそろそろ考えていく必要はあるとは思うんですが、自分のやりたい事を大学生活中は突き詰めていけたらいいなと思います。

XAMPP使ってMySQLとPHP繋ごうとしたらエラー出た

PHP学習RTAしてるんですが、その中でMySQLを使う際にエラーが出たのでその解決策(とりあえず何とかした方法ともいう)をメモる。

環境は

  • XAMPP 7.1.27
  • PHP 7.1.16
  • myssql 8.0.15

で合ってるはず。最初はXAMPPの古いバージョン(xampp-osx-7.3.2-2-vm)を使っていたようだ。これをインストールした理由としてはとりあえず、公式サイトでmac用にと書いてある奴を何も考えずダウンロードしたためである。いや、まさかこれが6時間にも及ぶ戦いの原因となるとなんて思ってもみなかった。

とりあえず、起きた現象とするとphpよりPDOを使用してMySQLを使用しようとするとERROR 2002 No such file or directoryが発生した。

最初はmysql.sockのパスがおかしいのかと思いそっちの設定をググりながらやってみた。一応書くとmysqlコマンドの中で(?)socketファイルのパスを探すコマンドを使用して、そこで出たパスをphp.iniに書き込むという奴だ。多分これはググったらすぐに出て来ると思う。

だが、これでは解決しなかった。

他の方法を探しているとnew PDO(. . .)をする際に設定する値の一つにhostというのがある。これを本ではhost=localhostとしていたが、これだとポートの関係とかうんたらで接続できないという記事があった。そのためhost=127.0.0.1にするとNo such file or directoryは消えた。

だが、これだけでは終わらなかった。

動作を確認すると次はConnection Refusedというエラーが出た。これがどこから出ているのかが分からず、new PDO(. . .)をする際のパスワードやテーブル名が間違ってないかとかを入念に確認していたが上手く行かなかった。

しかし、どうもMySQL側のエラーだというのが分かったのでMySQLを入れ直す事にした。その時にふと、もしかするとXAMPP側で何かしらの依存関係とかあるってそれを今のMySQLの入れ方では壊してるのかなと思いXAMPPを入れ直す事にした。

その時に、先ほどはとりあえずmac用のをとしていたのをやめてダウンロードページ(Download XAMPP)より最新のを用意した。

この状態でbrewにてインストールしたmysqlコマンドを使ったのだがデータベースへの接続が行えず使えなかった。そのため、XAMPPに備えられているmysqlを使用する事にするとコマンドが正常に使えた。

参照(データベース環境構築(Mac版) MySQLの設定 | ITエンジニア"が作るメディア Tech Fun Magazine)

もう一度データベースを構築し直したところエラーもでず正常に動いた。

POSTしたはずなのになぜか書き込みがされないという問題も合ったが、それは単に書き込み側のphpファイルではhost=localhostにしたままだったためであった。

 

正直この何が原因だったのか分からないまま使い続けるのは低レイヤーの民としてすごくもどかしいが、とりあえずPHPを勉強する方が優先順位が高いため今回はこれでクローズとしよう。。。

Kansai Engineer Students’ MeetupでXSSのLTしてきました

つい先日に引き続きスライドあげたよ報告です。

サポーターズさんの所で学生向けのLTしたりする交流会のようなものがありせっかくだからというので行ってきました。内容としてはアイデアソンしたりピザ食べたりLTしたりお寿司食べたりお酒飲んだりととても楽しい(美味しい)イベントでしたww

日頃勉強会によく行っているわたしですが、今回の勉強会では初めてこう言った勉強会とかエンジニアの集まりに来たという人が多い印象でした。そのため、会場の雰囲気もいつもとちょっと違う、初めて大学の授業を受けた日の教室のような初々しさのようなものが漂ってて新鮮でした。

さて、イベントの感想はこの位にしておいて話した内容の方にうつりましょう。今回話す時間制限が5分から10分程度と言われていたのと、ターゲットが本職の技術者ではなく割と一般程な学生だったためあまり深く技術について掘り下げる事はしませんでした。その分、(勝手に拾って来た画像で著作権的にアウトなため消したが)攻撃の図解とかも使って初めてXSSという技術に触れるという人でもわかるように優しくしました。本当は対策の部分で同一オリジンポリシーの話とかsession.cookie_httponlyとかの話しとかもしたかったのですが発表練習の際に大幅に時間オーバーしたので泣く泣く削る事に…。けど、発表の反応をみるとこの内容のレベルくらいでちょうどよかったっぽかったので結果オーライ!

(LTしたら登壇のお礼としてAmazonギフト3000円分もらえました!貧乏学生だから思わぬ収入が嬉しいw)

www.slideshare.net