nekoが書く徒然草的随筆のような日記です。

セキュキャン中なにをやったの?という話【連続投稿4週目】

はじめに

さーてこれでセキュキャン記事の連続投稿も最後です。とりあえず、4週間も頑張った僕はかなりえらいと思います。(普通なら続きません。)

というわけで、今回はセキュリティーキャンプ2018全国大会期間中にやったことを書きます。

もう時間がたってしまったこともあり正確に覚えていないこともありますが、頑張って書いたので是非最後までお読みください。

1日目 全体講義

1日目に関してはきっといろいろな人に取り上げられているので簡単に概要だけ書きます。

1.セキュリティ基礎

これは園田さんによるセキュリティーキャンプをやっていく上で最も大事な基礎の基礎に関する講義でした。

この講義では、どうしたらメールの誤送信を防いで、情報漏えいの対策をすることができるのかなどいろいろな場面で発生しそうな失敗についてを、グループで話し合い考えました。

2.自由なエンジニアとは何か 〜 OSC 開催を 10 年以上続けて分かったこと〜

これはOSCの主催をやっている宮原さんの講義でした。

もしよければ僕のOSCレポートも読んでいただけると嬉しいです。↓

nekoturedure.hateblo.jp

僕はセキュキャンに行く前はOSCというものを知らなかったので、この機会にOSCの話、しかも主催者の方の話を聞くことができてよかったと思いました。OSC、かなりいいのでオススメです!!いろいろグッズもらえるしすごい強い人たちとお話できるし(会場が広く、人口密度が低いので一つのブースに滞在していられる時間が長め)とってもいいです。

この講義ではOSCの会場選びの裏話や、日本全国でやることになってからの話など様々な話を聞くことができました。

3.ハッカーは法律を破るのか

 この日の最後の講義でした。

西村あさひ法律事務所の北條さんの講義でした。

ゲームのチート行為は法律に反するのか、仮想通貨のマイニングは法律に反するかなど、いくつかの問いかけを通してハッカーが学ぶ必要性がある倫理的な問題、法律に関する問題を学びました。

オマケ 懇親会

夕食の後、懇親会がありました。

大学生とかなら気軽にほかの参加者に絡みに行けたと思いますが、さすがに僕にはそれはできず、ふらふらとしていると、いくつかの企業の方に話しかけてもらいました。そこで散々イキリ倒して、いろいろな企業の方からその会社についての話を聞かせてもらいました。そのあとOSCの宮原さんに「少年よ、こっちに来なさい」といって、とあるテーブルへ誘ってもらったので、そこでカメラマンの方と、ほかの受講生の方と話をしました。

オマケ ホームルーム

今回僕はジュニアネットワークゼミで参戦しましたが、小中学生向けということで、夜のLT大会や、グループワークは参加できませんでした。その代わり(?)に、ホームルームが毎日ありました。初日は自己紹介、そのほかの日は少しだけ延長して進捗タイムにしたり、フカシギの数え方をみたり、楽しかったです。

 

2日目 専門講義1日目

午前 手作りパケットでWebサーバと通信しよう(美濃さん)

セキュキャンΔの一番最初の専門講義でした。

具体的にはこの時は、ネットワークのレイヤーの話を聞いた後、TCPの仕組みについて学びました。ネットワークのレイヤーの話というのは、OSI参照モデルTCP/IP階層モデルについてです。そして、最後にscapyを使ったパケットプログラミングをし、実際に送信するということをやりました。TCPの通信はSYN,ACK,FINを送ることでコネクションの確立、データー送信、コネクション開放を行っています。このことを3way handshakeと呼んでいます。僕は3way handshakeをあまり理解できていなかったのですが完全理解しました。(していません。)

Python、普段書かないのでなんもわからんとなりました。

vim使いましょう。

午後 HTTP基礎(庄司さん)

この講義はTCPよりも上のレイヤーのHTTPについて学びました。そして、実際にローカルプロキシを作るということをしました。ローカルプロキシというのは通信の記録や監視をするほか、リクエスト、レスポンスの改変などをすることができるものです。

今回の講義ではbad図書館というサンプルWebアプリのタイトルにあるBadの文字をGoodに変換して表示させるということを行いました。

あと、Basic認証が常に通るようにしました。

Basic認証の危険さがよくわかりました。特にHTTP。

Java Scriptキモイとか何とか言いながら作業してました。まあ、いうほどでもないかもしれませんが…

ただ、vimは使いましょう

オマケ Xトラックのお菓子タイム

Xトラックでは、川合さんがお菓子タイムになると、作業をやめて、みんな食べるように促すのですが、異様にXトラックはお菓子の消費が早く、後半大人はハッカー飴で我慢したりなんてことにもなっていました。

3日目 開発

午前 完全に虚無になりかけた

ネットワークを完全になめていた僕、いや、難しく考えすぎてた僕は、サーバー実装出来たらいいかなと思っていたのですが、centOS使えば割と簡単にできることが分かってしまいました。

おっと、完全にピンチだ。この日からは本格的に集中開発をしていくのでテーマが決まっていないと終焉を迎えます。

 

午前9:00 完全に虚無の顔

      ↓

午前10:00 完全に虚無の顔

      ↓

午前10:30 美濃さんにUDP/IPでパケット送るやつ作ったら?と助言される

      ↓

午前10:31 やること決定した顔

 

って感じでした。

完全変人C言語信者なのでPythonなんて使いたくないよ…とか言いながらCで書きました。翌日の午後はもう発表なので時間がありません。さらに言うと、

GCC仮想マシンに入れ・・・①

2台のパソコンをLANケーブルでつなぐ・・・②

ということをするのにかなり時間を割いてしまいました。(もちろんvimは2日目の時点で入ってます。)かなりピンチです。

かなりピンチです。昼ごはん前は①しか終わりませんでした。

午後 急ピッチ開発とだれよりも早く終わる

午後になると②の続きに取り組みました。ping通ったときはかなり感動しました。

次はソースコードを書きます。送信側はコピペしました。受信側はサイトを見ながら書きました。(逆だったかもしれませんが。)こういうことをすると何が起きるか、そう、スタートが一番遅くて、一番早く終わってしまったわけです。いくら多少のブラッシュアップを行ったとはいえ、それでも時間を余らしてしまいました。(コピペしなければよかった。)いや、本当に終わらないという危機感しかなかったのでコピペしちゃったんですけどね。この日か、次の日の午前にカメラマンさんの100万円のカメラを見せてもらいました。(昔のカメラマンの裏話とともに。)

開発にはvimを使いましょう

4日目 開発&プレゼン資料作り&トラック内成果発表

午前 資料を気楽に作る時間

タイトルこんなですが、ちゃんとやることやりましたよ?ここでいくつか更新した点もありますし。ただ、プレゼン資料作りにかけた時間が多めですが。vimは使いましょう

午後 資料確認と心の準備と少し練習それから発表

タイトルが深夜テンションみが強いですが、これ本当です。心の準備してないと本当に何もしゃべることができなくなるので。

発表はデモも含めてうまく言った感じです。もう少し聞く人の心をつかめるような話をしたかったですが、話術がない…

オマケ セキュキャンΔは360°カメラが大好き

キャン中に複数回登場した360°カメラ、例えばXトラックの発表会とか、全体写真の時とかも使ってました。あれはなかなかいいんですよね~

5日目 発表、発表、発表

最終日はみんな大好き発表でした。(午前午後には分けません)

ジュニアは一人1分半(覚えていない)くらいで自分がやったことを発表しました。まあ、僕はちっこかったわけですが、そこで発表したことで後ほどひばりさんから声をかけていただけるなどの特典がありました。

それにしてもあれは本当に緊張しました。あんなたくさんの人の前で話すことはそうそうないし、下手なこと言うと突っ込まれる世界なので…

まとめ

というわけで長かったじおねこのセキュキャンΔ記事連続投稿も最終日です。

駄文にお付き合い下さりありがとうございました。

いい感じにこの記事がこれから小中学生のジュニアネットワークゼミを受け八日と思っている人に見てもらえると嬉しいですね。

あとvim使いましょう。

それでは~~

セキュキャン期間中の話【連続投稿3週目】

連続投稿3週目(?)のnekoでーす。

一日遅刻しました。今回はようやくセキュキャン中の話になります。

 

 

 

 

 

こういうツイートしたらあたがわさんに絡まれました。はい。

 

 

しょうがないじゃん僕打つの遅いから

ごはんは非常においしいです。

 

hikalium proにhikaliumステッカーおねだりするの忘れた

 とか言ってたら

 

 

 

爆速になりました。()

 

 

 でもわからなくもなかったですが…

 

 某緑の本で有名なKさんが「進捗!進捗!」といっていました。

 

 ジュニアネットワークゼミ、就寝時間が早く設定されているのにこの日だけは少し部屋待機があったので暇でした。

 じゃんけんで勝ったチームからとかいうやり方だったのですが、なんでよりにもよってじゃんけんが弱い僕が担当になったのでしょう…

 

 いや~悔しかったです。はい。

 これは最終日にやった成果報告の時の発表のことです。

参加者+講師陣+チューターの皆さん+αだったのでかなり緊張しました。

 

 

 ひねくれ者なので看板の裏側も撮りました。というのも初日にsksatさんがオタクが撮った画像でモデリングできそうとか言っていたので、それなら裏側のデーターもと思いやりました。

まとめ

来週はついにセキュキャンでやったことを書きます。

お楽しみに~!!

僕が好きな言語

この記事はいい加減に、かつ、某言語の記事に影響を受け書いたものなので、流しちゃってください

 

C++,C

あまりプログラミングしてないからプロの人達に怒られそうですが、本当に好きです。

ありがとうございました。

あと、JavaJavaScript混同はよくない

セキュキャン、事前課題の話【連続投稿2週目】

セキュキャンからもうどれだけ経ったでしょうか。

ようやくこの記事を書くことのできる時間ができてきたので公開します。連続投稿2週目の記事です。

それでは目次から行きましょう。

 

事前学習

セキュリティキャンプには事前学習というものがあります。(それがきちんとできていないと当日苦しむことになります。)恐らく難易度は選択するトラックによるかと思いますが、ジュニアネットワークゼミでは比較的わかりやすいものだったかと思います。

事前学習1

パケットを見る

一番最初はパケットを読みました。

詳しくは書きませんが、講師の方が用意したパケットをダウンロードしてWiresharkなどで読みました。

この課題で最も難しかったことはこのパケットに隠された秘密のメッセージを読むというものでした。これに関しては僕は不正解でした。

ネットワーク無理無理の無理なので…

事前学習2

パケットを作る

次の課題はパケットを作ることをしました。

これが本当に難しく、そもそも僕の非力なマシン(Think Pad X250 Intel Core i3-5010U,RAM4GB)でVirtualBoxを使うことに多少無理があり、Ubuntuなどを動かすとすぐに落ちました。苦労しながらhost only networkをつなげたもののそこからscapyなれるなどかなり壁があり、結局キャンプ前に終了しませんでした

事前学習3

 HTTP通信を観察する

この課題ではHTTP通信を観察しました。

node.js とか使いました。

難しかったことはあまりなかったのでやりやすかったです。書くこと特にないので次行きます。

事前学習4

3-way handshakeのことを学ぶ

この課題では3-way handshakeのことを学びました。正直この時は理解が厳しかったのですが、今は割とわかります。

このときはIP、port、Flag、Seq、Ack、Lenを確認しました。

事前学習5

TCP Echo serverを作る

これがセキュキャン前最後の課題でした。この課題ではTCP Echo serverを作りました。Echo serverはクライアントが送ってきたメッセージをオウム返しするサーバーのことです。周りの皆さんはPythonなどの言語を使っていましたが、ひねくれ者の僕はRubyを使いました。(しかも最初はC or C++を使おうと思っていました。)

今回のまとめ

さて、かなり短めですが、まとめをさせていただきます。

事前課題をしっかりとやることは大事です。

これがきちんとできていないと困ったりもします。これを読んでいる皆さんで、これからセキュリティーキャンプへ行く人はここ大事です。

それでは今回はこれで。

OSC行った話

皆さんこんにちは。
僕は先日OSCに行ってきました。今日はこのときのことでも書こうかと思います。

0.誰も来ない

  

 

1.とにかく僕は行くっ!

 

 

 

結局一人で向かいました。最初のほうにuchanさんを見かけたのでまあ一人でも大丈夫でした。

この日僕はリュックにメモリを付けけていたのですが、何人かのブースの方に突っ込んでいただけてうれしかったです。

あとマストドン始めたくなりました。

 

 

 

ここでmegmishさんが

 

 無事この日あうことができました。

  

 

 

時間もあまりないのでここらへんでまとめなしで失礼します。

セキュリティ・キャンプ応募課題をさらして、おすすめをする【連続投稿1週目】

はじめに

セキュリティ・キャンプの存在をを僕は昨年知りました。

僕の部活の先輩が教えてくれました。そして、今年、セキュリティキャンプのホームページを見てみたところ、ジュニアネットワークゼミとかいうものができているではないですか!!!というわけで大してネットワークに興味もなかった僕は申し込んでみることにしました。僕はプロじゃないのでプロじゃないのでプロじゃないので(大切なことなので3回言いました)安心してください。その時の選考の解答用紙をさらすのが伝統(?)としてあるみたいなので、僕もやります。

www.ipa.go.jp

まず簡単に説明

今年はgoogle formで回答を入力しました。

問題は4問構成で、書き方は自由でした。

 

[問1]

問 WebブラウザでWebサイトを見るときの通信のうち、80/TCP(HTTP)以外のポートを教えてください。
また、それらのポートを使う理由を教えてください。

 

僕の解答

443/TCP(HTTPS) HTTPSのSはSecureの頭文字。HTTPでは情報を暗号化しない(平文)で通信しているが、それだと改ざんやなりすまし、盗聴など攻撃を受ける恐れがあるので、HTTPSでは暗号化をして通信を行っている。重要な情報を扱うときに使われる。
22/TCP(SSH) 暗号、認証の技術でネットワーク通信を暗号化する。共通鍵暗号で通信を暗号化し、公開鍵暗号でユーザーなどの認証を行う。

 

これは割と前から知っていたことだったのでささっと書くことができました。

次へ行きましょう。

[問2]

問 私たちが普段Webサイトを閲覧するとき、裏ではHTTPやHTTPSと呼ばれる方法で通信が行われています。
HTTPとHTTPSの違いを教えてください。
また、HTTPで通信を行っているショッピングサイトと、HTTPSで通信を行っているショッピングサイトがあるとして、
あなたはどちらのショッピングサイトを利用したいですか?
理由と一緒に教えてください。

 

僕の解答

問1で記入したことと重複してしまうが、HTTPはフォームなどに入力した情報が暗号化されない(平文)で通信している。しかし、それでは第三者による攻撃を受けてしまい、フォームで入力された個人情報への不正アクセスが起きてしまう恐れがある。一方HTTPSではSSLを利用して通信内容を暗号化している。また、SSLには通信データが改ざんされていないか検知する機能もあり安全に通信できる。ショッピングサイトでHTTPのものとHTTPSのものがあればHTTPSのものを利用したいと考える。なぜならHTTPのものだとすべての通信内容が平文なので、フォームに入力したカード番号や住所、名前などすべて第三者に傍受される可能性があるからだ。HTTPSだと暗号化され保護されるので比較的安心して利用することができる。

 

こういう問題は大好きです。というかネットワークょゎょゎにしては良く書けたほうかな~と僕は思います。それでは次へ

[問3]

問 あなたはプログラミングをしたことがありますか。もしある場合、どのようなものを作ったか、
言語は何を利用したか、規模はどの程度か(おおざっぱな行数で構いません)について教えてください。
また、お気に入りの言語があれば教えてください。

 

僕の解答

 プログラミング経験はある。RubyでDXRubyを利用してWindows用の物が落下してくるゲームを作成した。230行程度の規模のもの。プログラミング自体は昨年の8月ごろに始めたばかりで広く浅く学んでいるというのが現状だが、部活の先輩に勧められて始めたC++が今のところのお気に入りではある。

 

うわっイキってる。このRubyのゲームかなり雑に作ったのであまり成果というほどのものでもないんですよね~

また、C++あまりやってないです。(好きですが)

[問4]

問 このゼミではキャンプ期間中に実習としてネットワークもしくはWebに関するプログラミングを行います。
あなたはどのようなものを作成しようと思いますか。なおキャンプ期間中における実習の時間は
合計で12時間程度です。この設問は、記入さえしてあれば選考結果に一切影響しません。
また、後ほどテーマを変更することも可能ですので、現時点での考えを記入してください。

 

僕の解答

CやC++を使って簡単な通信ができるサーバーを作りたいなと思っている。今はネットワークに関しては最低限の知識しかないかもしれないが、このキャンプでサーバーを作ることを通して少しでもスキルを上げたいと感じている。家で一人だけで作業するのとは違い、たくさん刺激を受けながら開発に取り組むことができそうなのでぜひ参加したいと思う。

 

簡単な通信ができるサーバー、パワーワードではとなっています。

結局セキュキャンでは、UDP/IPのチャットを作りました。

 

まとめ

みなさんセキュキャンは行きましょう

いや、本当に

行かないと損です。多分

というわけで今回はここで失礼します。

技術書典5に行ってきた

こんにちはnekoです。

セキュキャン記事はめちゃくちゃ長くてまだ終わっていません。

今日は技術書典に行ってきました。待機列長かったです。

 

0.オワリの始まり

10/7の夜、sksatさんと行くことにしていた僕はDMで集合時間決めようとしていましたが、sksatさんが

なんもわからん(@sksat_tty)

 といっていたため僕が勝手に色々決めました。すると、

技術書典なんもわからんつってたら後輩に乗換案内やらなんやらをされてるダメオタクやってる (@sksat_tty)

 とかなってました

こんな感じの愉快な会話も

一番面白かったのはヴァネロピさんがmegumishさんのことをツイキャスで煽ってたら夜行バスのチケットを取り本当に東京へ来たことですね。

1.朝

えらいからおきた(@sksat_tty)

 このツイートはちゃんと間に合いそうな時間にされてました

たいへん今家を出ました(@sksat_tty)

 このツイートは前の起きたツイートの2時間後、10時ごろでした。

こんなことをやっていました。

挙句の果てに…

 とかやっていると

無事sksatさんがやってきました。

あとでTwitter見てみたら

とhikaliumさんがツイートしていました。

これは完全に出遅れました。

この時まだ池袋駅にいました。

道分かんないから優秀な後輩についていってる(@sksat_tty)

今じおねこに回収されてる(@sksat_tty)

池袋の道見て「はたらく細胞じゃん」ちゅてる(@sksat_tty)

 

本当になんもわからなくてじおねこについていってる(@sksat_tty)

 僕は何回かミネラルショーで全く同じ展示場へ行ったことがあったので、いい感じに行けました。

本当に長かったです。

本当に僕は貧弱です。

このオタク大イベントにこれを持ってこないの大変なことになることを学びました。

今日は複数回パケロスする場面がありました。

財布がダイエットに成功した(@sksat_tty)

ひどい目にあっている人もいました。

2.昼

好きな言語投票するやつでやってきました。

 これは投票するためだけにメモ帳買いましたが、メモ帳=notepad=windowsのあれでは…?と心の中で思っていました。

お昼はばくすたーさんのおごりでいい感じの洋食屋へ行きました。

ありがとうございました!!

この辺のことから大エンカ大会したいなーと思っていたところ

3.午後

やっていました。

megumishさんを先頭にした限界ご一行様の中にいる(@sksat_tty)

行先も決まらずさまよっていましたが、

適当にファミレスへ入りました。

今日は早めに帰ることにして

4.成果報告

5.まとめ

今日はありがとうございました。