セキュリティキャンプ に関する投稿を表示しています

#upcamp 2014 Tokyo に参加してましたよ

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

ドーモ、ごみばこです。

私立・プログラミングキャンプ 2014 東京大会
https://atnd.org/events/52713

こんなものに参加していました。
スタッフ側だったようです。

  が!9時集合なのに9時に起きて10時着という大失態。。
  ごめんなさいごめんなさい。。。

参加者みなさま、スタッフかたがた、お疲れ様でした!

会場提供してくださった オプティム さん。
ピザ提供してくださった ゲヒルン さん。
ありがとうございます!最高!!

 

1. やったこと

・水運びました
・ジュース類運びました
・ピザ運びました
  サイコー。

・RFC2616をちょこっと眺めました
  >> http://lab.moyo.biz/translations/rfc/rfc2616-ja.txt
  ざっくりまとめると、HTTP/1.1 の仕様書です。

・ソケットよくわからんつらいってずっと言っていました
  >> http://e-words.jp/w/E382BDE382B1E38383E38388.html
  ラップされてるのはちらほらとやる機会があったものの、
  acceptとかrecvとかそのくらいのものはなかった。

・winsockのサンプルコードを眺めました
  >> http://e-words.jp/w/Winsock.html
  WSAなんたらかんたらとか。
  ウィンドウハンドルがどうこうとか。使ってないですけど。

・OfficeTanakaのサイトをあちこち眺めていました
  >> http://officetanaka.net/excel/
  VBAにこまると大体でてくるので強い

・「さっきまで動いてたけど動かなくなった」と言っていました
  よくあるはなし。

 

2. 成果

まずはこちらをご覧ください。

 

3. 技術的なサムシング

・全体像はこんなかんじ。
  ・ひとまず自分だけ見れればいいやのレベルで
  ・ExcelVBAでHTTPサーバを建てる
  ・ワークシート名でルーティング
  ・ワークシート内のコンテンツがレスポンス
  ・(想定)DB.tableなシートを作ってデータを保持する
  ・(想定)POSTデータを読み込んでデータを保存する
  ・(想定)データを読み込んで動的に埋め込む
  ・シンプルに掲示板を作りたかった(白目)

  思いのほか、ソケット周りで詰まってしまってレスポンスを返すのがやっと。
  『さっきまで動いてたけど(変数化|リファクタ|再起動)したら動かなくなった!』

・ワークシート内のテキストを返す
  シート内を全文テキストとして取得するのどうするんだろう
  → 全セルみたら死ぬしなあ
   → いったんtsvに落としこんでから読みこめばいいんだ
    → なんかダブルクオートで囲まれたりなんかつらすぎる…
     → なんかもう、一旦正規表現でよしなに消しとこう…
    → たぶんここでキャッシュしたら早くなるんだろうなー
     → ひとまずいいや

・Declareステートメント
  >> http://msdn.microsoft.com/ja-jp/library/cc376178.aspx
  コピペしないで書いたのは多分初めて。
  必要な関数をMSDNで調べて、引数とか戻り値を合わせて。

・クラスモジュール
  >> http://www.excellenceweb.net/vba/class/what_vba_class.html
  >> http://codezine.jp/article/detail/499

  全部やるとあれな予感がしたので、一旦リクエストとレスポンスだけクラス化した。
  クラス化した直後は最高に穏やかな気分だった。

  Before:
  『あ゛あ゛あ゛あ゛あ゛変数スコープう゛う゛う゛う゛う゛』
  『いや、あの、えっと、その、つらいです、はい、まじで』

  After:
  『こころのやすらぎ』

・振り返るとそんなに書くこと無かった(重要)

 

4. これやることにした経緯

このあたりをご参照ください。

ちがう。
ぼくはcanvasとかsvgとか、オンラインで動くやつを求めていたんですよ。

ですがここで、気付いてしまったわけです。
「Excelってグラフ作れるよなあ、VBAでプログラム書けるよなあ。あっ(察し)」

 

5. 作ってみて思ったこと

もしかして『始めたいです!』な人向けとして意外に需要があるのでは?

ほら、セルのおかげでしっかり構造化できるし。

インデントもちゃんとできるし。

ハイライトも実装すればできるし。

おや?????

 
あ、この流れしってる。
言い出しっぺの法則ってやつだ。

……そういえば、プログラムエディタをExcelにしよう!って話もありましたね。
  >> http://d.hatena.ne.jp/miya2000/20111221/p0

  あ、ここにシートのテキスト化があった…

 

6. おまけ

名前を書いてあった紙があるじゃろ?

2014-08-17 23.35.50

 

これを、

 

こう、

 

ごみばこの出来上がりじゃ!w

2014-08-17 23.35.30

Mini #seccamp in Yokohama で喋ってたことへの補足とか

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

○全体的

・高橋メソッド
もどきですが。。
文字でっかく1枚に少なく、にしたらすごいサクサクつくれたので、今後も試してみたい。
高橋メソッドについて

・ネタ画像
知ってるネタはググって入れたけど、どこから探すんだろう。
Tumblerをめぐりとかで出てきそう。

・フォント
メインでつかってたフォントは「ゆたぽん(コーディング)
ゆるふわ感がありつつも、見やすさが程よくお気に入り。

一部コード関係のフォントは「Migu 1M
手元のエディタなんかは大体このフォントにしているくらいのお気に入り。


○1回目

・自己紹介
夏キャンプのときは「ごみばこの人」「ごみばこいん」とかで参加者に知られてました。
卒論の影響もあって、JSばかりですが、お仕事はサーバ側(PHP/Java)もやります(やってます)
CTFとか書いてありますが、ガチじゃないです。
ksnctf とか akictf とか Flaggers とか

この前のCSAW CTFに参加したものの、まったく旗取れず知識・技術不足、カンの弱さを実感。
SECCONは名古屋追加募集があるとかでいけるのかしら...(枠じゃなくて、僕の都合が大丈夫かーとか)

・DOM Based XSS
IPAのレポートをみるとよいかも。
IPAテクニカルウォッチ 『DOM Based XSS』に関するレポート

急増してるとあるものの、脆弱性の報告や問題視は昔からある。
jQueryマシマシや、スマホなど、jsの活躍場所や表現力、ライブラリなどががグワッと伸びた結果、
こうなってるとおもう。

HTMLエスケープを施す、が対策になるが、DOMから拾うのが安心安全。
Twitter / bulkneets: そもそも出力時に自動エスケープすべきだしその前提にたったとき ...
Twitter / ockeghem: プログラムとコードの分離という観点、およびCSPの対応という ...

じゃあどうやるの?

function escape(str){
    var e = document.createElement('div');
    e.appendChild(document.createTextNode(str));
    return e.innerHTML;  
}

つぶやくボタンを例にだしたのは、例示でよく見かけたため。
ちょっと前にも、わりと大手サイトのつぶやくエリアが無法地帯だったとの話も聞きます。

・コミットログが2つしかない件
少なくとも、自分でだいたいいいかな、まで書いたところ、コードの見やすさが最高にクソかったので、
書き直しとか設計見なおしも含めてaltJSに移行しているリポジトリです。
元のリポジトリは50くらいでした。


○2回目

にゃんぱすー( '△')/

・経緯
1日目終わった後にまっちゃさんが「見てなかったのでもう一回ね」ということで。

・ネタ
面白さ的に以前参加した残パン会でやったやつがいけるな、と。
Befunge - Wikipedia
残パン会に参加してきました。
残パン会#3にいきました
https://github.com/sters/zanpan

・Befungeについて要約
二次元的にコードを書く
プログラムカウンタ?ポインタ?が縦横に動くことができる
自己改変機能がある
Befunge-93は広さの制限がありチューリング完全ではない
Befunge-98は任意次元の拡張とかよくわからない定義がある(理解してないし資料を読んでもいない)

・デモについて
jsで書いたBefungeインタプリタ。
ブレークポイントが貼れてステップ実行できたりしてどうのこうの。
後日、丸々書き直しをしている。

チャットは残パン会でつくったもの。あの時はちゃんと動いてたはずなんだが....

サーバ側はPHP/MySQLで飛んできたデータをしまうか、Befungeで扱いやすいフォーマットで返すだけ。
認証機構なんてなんにもない。

クライアント側をフルBefungeで作ったという話。
ただし、通信周りを一から書くのは謎いので、命令を追加している。
入室、発言、取得。

・しゃべりたかったこと
いろんな時代を経て進化してきたプログラミング言語もいいですが、esolangという世界もあります。
いろいろ楽しい、面白いので覗いてみましょう

はろーわーるどかいたよー^^って言って縦横に記号並んでたら面白いでしょ?

複雑なesolangだとそもそも実装が少なかったりするので、そういったことにチャレンジするのも、ね。


というあたりで。

Mini #seccamp in Yokohama

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

Mini #seccamp in Yokohama

○前置き

「セキュリティ・キャンプについて」
http://www.security-camp.org/outline/#index07

日曜日・月曜日と行われたセキュリティミニキャンプへと参加してきました。
今年の夏にキャンプに参加してたので、参加者側ではなくチュータとして参加しました。

本来チュータ枠はありませんでしたが、川合先生が円滑に進めたいとのことで、
コミュニティで募集をしてました。

内容は公式のpdfを見てもらえればわかると思いますが、
実習がOSとか組み込みな、低いレイヤなので、
普段はWebに住んでるぼくからすると、世界が違うのでちゃんとチュータできるかどうか...

という点も含めて、アセンブラもちらほらやってみたかったのでチュータに名乗りあげました。

/* 逆に誰も手を挙げなかったのは一体...? */

○講義内容

『プログラミング言語の歴史』 西尾講師(60分)
『セキュリティ・キャンプとCTF』 園田講師、竹迫講師(60分)
『事例に学ぶ危険なシステム設計』 園田講師(60分)
『Arduinoでの組込みOS自作体験』 坂井講師(60分)
----------Day1↑----------↓Day2-----------
『超簡易PC用OS自作体験』 川合講師(160分)
『新しい暗号技術』 光成講師(110分)

ということで、
キャンプ勢のなかでもこのあたりをピンポイントに興味ある人、
横浜開催に来れる人、
になるとまったくいなかったてオチでしょうか。

結果として、タイトルのまんまで、超専門的でまったくついていけねぇなんてことはなく、
ぼくでも大丈夫だったので、逆にそれがメインの人からすれば真新しいことはないのかなあと。
むしろちょっと興味あるけど機会がなあ、みたいな人推奨みたいな感じです。

講義の話はタイトル通りなので、実習の部分を主に。

>> プログラミング言語~はパンチカードとか、かつてコンピュータができたころの話とかとか。
>> キャンプはそのままキャンプの話
>> 事例に学ぶ~はWinnyの話でした。Winnyにはびこるウィルスを殺すには、みたいな。
>> 暗号技術はすごい簡単に説明していたと思うのですが、やっぱり??となる部分が...数学むずかしい...
>>>> スライドが公開されています => http://www.slideshare.net/herumi/ss-27882746
>>>> 数学ガール読んでたので、ある程度はついていけました。数学ガール読みましょう((

○『Arduinoでの組込みOS自作体験』

Arudinoとありますが、実際はシミュレータを使ってそれっぽいことをやる感じでした。

C言語でかかれたやつをいじくりまわして。
make でコンパイルして。
avr-elf-gdb でシミュレータを走らせて。
別のスクリーンから cuコマンドを使用して、そのデバイスに対してシリアル通信をして。
というような感じだったとおもいます!

若干プログラム周りのやることが追加されてますが、ほぼこのページ通りな気がします。
http://kozos.jp/vmimage/cui.html

・チュータポイント
うまくうごかないーとか、そもそもVM動かないんですけどというあたりから見て、
一緒に悩みながら再起動したり試したりでなんとか。。

あとで聞いた話、シミュレータも完璧ではないので、
タイミングによってはうまく引っかからなくて結果がでないこともあるそうです。

・反省点
"事前にインストールしておくこと.txt"のようなものを受け取っていたので、
そこから自分で発掘して下調べをしておくべきだった。
もしくは坂井先生に個別連絡をとって、下準備を聞いておくべきだった。

screenコマンドを全くしらないのはまずい感あるので、多少なりとも勉強したい。
tmuxとかでも。

歩きまわって各自の様子を見るべきだった。
>> なかなか聞きづらい、手を挙げづらい、という思いがやっぱりあると思う。
>> なので、様子を見て、詰まってるっぽいならこっちから聞いてみる。

・良かった点
NOP

○『超簡易PC用OS自作体験』

はじめはアセンブラを書いて、動いたやったー。
途中からセクタを読み込めるようにして、
あとはC言語でそれっぽい画面をつくる、キー入力をする、という具合です。

「30日でできる! OS自作入門」をさらに説明するのに難しそうな箇所をバンバン削って
「2時間でできる!超簡易PC用OS自作体験」とのことでした。

INT 0x10 とか INT 0x13 とか、なんやねん、て質問があったんですけど、他のレジスタとの兼ね合いで
やる内容が決まってるんですって返ししかできなかったので、こちらをみてください。
http://en.wikipedia.org/wiki/INT_10H http://en.wikipedia.org/wiki/INT_13H

・チュータポイント

資料をまるまるもらっていたので、事前に全部通してやりました。
>> ひたすら紙->目->手->PCの作業

資料にはコードだけじゃなくて、それが何を意味しているかの解説込だったので、
理解の助けになっていたとおもいます。

実施中に何人かにもいったのですけど、
フォント増やすのはかなり地道な作業になるから、
そのあたりを構造体とかポインタとかカッチョいい感じに使って、
リファクタリングとかやってみたらいいんじゃないかなー、なんて話を。
実際にしている人はいなかったっぽいですけども..w

あとは、forまわして動きをつけたりしてる人もいましたね。
他にも、sin関数移してきてゲームっぽいものを作ろうとしてたり、
Brainf*ck専用OS(?)を作ろうとしている人なんかも。
後者についてはこわすぎるので、しかるべき場所にいくべきです((

・反省点
ぼくの事前学習がちょっと不足してた。
エラー対応のパターンとか。

Terapadの行表示をさせるのを忘れていた。

・良かった点
初日からの改善で、演習始まったら見て回ってた。
抜群の目grep力(皆無)でエラーっぽいのを見つけて声をかけるようにした。

エラーが出る方がC言語側に集中していたので、対応しやすかった。
>> コンパイルエラー出たら紙とにらめっこするよりも、エラー文を読んだほうが色々よさそうです。

○その他

最後の人生相談の場にいなくてごめんなさい。
いつでもリプライでもDMでも顔本でもなんでも聞いてくれれば反応します。
もちろん参加者じゃなくても、ちょっとキャンプ興味あるんだよな、
参加した人の話聞きてーなー俺もいけるんかなーくらいの軽いノリでも大歓迎です。

こんなぼくの話でよければいくらでもします。

ぼくのかいた応募用紙についてもちらっと見ると参考になりそーなことが書いてあるかもしれないです。
セキュリティキャンプ2013(web)に参加します+応募用紙のあれ

キャンプ中に言うのを忘れてたことがひとつ。
いろんな知識とか技術とかを受け取ったと思うんですけど、
なにかしらの形でそれらを出力していけるといいですよね。

voidじゃなくて、せめてもbool。うんともすんとも言わねえ...というのはいささか勿体無い気も。

ぼくもここは夏キャンプ分の出力できてないので、まだまだこれからですねって話ですが..w

それともう一つ。チャンスは掴んでいけ、というところです。
最初にも書いたのですが、コミュニティのほうで募集をかけており、
1週間たっても誰も名乗り出ていなかったのでやってみるかーという思いで手を上げました。
結果、チュータのお仕事がちゃんとこなせていたかなんてわかりません
(=講師陣・参加者から見てどうだったか...)
が、面白い話がたくさん聞けましたし、もっとがんばらなくちゃなーって気になりました。

各地のミニキャンプはキャンプ予選みたな形だと思うのですが、
ここにチュータ参加できたのは、ある種のチュータ予選みたいな話でもあってよかったとおもいます。
いきなりLTやって!というのもいい経験ですし、LTとはいえスライドづくりや説明の甘さも思い知りました。

>> 個人的には「にゃんぱすー [反応をみる] はい、ということで2回めのLTをー...」はよかった(やりきった感

LTで喋ったことの補足記事もかきます。
とくに二回目の方はあたふたしすぎてまったくなにがなんだかわからなかったので本当に申し訳なかったです。

○さいごに

@参加者のみなさんへ
ミニキャンプはどうでしたか。
チュータ力不足につきサポートしきれない点もありましたが、
みなさんなんとかやりきったのかなーと勝手に思っています。

できる人できない人が混在していたので、1か0かでさくっと分類してぼくからのメッセージを書きますね。
脳内のメモリは限られてますし、読むだけ読んで、そのまま/dev/nullへでも送ってください。

・簡単だと思った人
もっと勉強して、もっとプログラムを書いて、もっとパケットを読んで、来夏のキャンプに備えましょう。

若干の上下幅はあるものの、同年代のすごい人達がたくさん来ます。
普段できない話や、あたらしい視点、ひらめき、人脈、etc...

キャンプで得られるものは講師陣からの卓越した技術や知識だけではないとおもいます。
過去のキャンプ生...できれば最近なほうがいいですねw、を見るとその様子が見て取れるのではないでしょうか。

そんなセキュリティキャンプ、どうですか。

・難しいと思った人

やったことはすべて与えられています。ゆっくりと復習してみましょう。
そのときに、なにがわからないか、1つずつ調べていきましょう。
必要であればお手伝いします。

そして、やっぱりキャンプなんかむりだろー、という前にまずは手を動かしてみませんか?

とはいえ新しい何かを作るのはアイデアないしなあ、というのであれば、とても素晴らしいアイテムをもっていますよね。

坂井先生のArduinoシミュレータ、川合先生の自作OS。
このプログラムをいじくり倒して、あれこれしてみてはどうでしょうか?

@講師陣、運営なみなさんへ

いろいろと至らぬ点があったかと思いますが、いずれも言い訳をして捨てることはしません。
粛々と受け止め、改善策を考え、あれこれ試して、次の機会に備えます。

ぼくの知らない世界がたくさん見えて、チュータとはいえ参加者側の気分でした。
アセンブラやOSなど、興味がでてきたので、時間をみてちょっとずつ手を出してみようとおもいます。

キャンプ以外にも、いろいろなところで今後もお世話になるかと思います。
そのときはまた、よろしくお願いします。


おまけ。

短歌を読んでみたんですが、思った以上に難しくて白目。
味わい深さどころか、57577の形になっただけの要修行なレベル。ここからがんばります。
DOSです。

C:\DOCUME~1\user\デスク~1>fib.com
-d
2CE5:0100  B3 00 BF 01 00 B4 4C B2-31 B1 06 50 80 EC 4A CD   ......L.1..P..J.
2CE5:0110  21 00 DA 57 89 DF 5B 90-01 FB E2 F3 58 EB F0 00   !..W..[.....X...
2CE5:0120  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
2CE5:0130  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
2CE5:0140  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
2CE5:0150  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
2CE5:0160  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
2CE5:0170  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
-g
112358プログラムは正常に終了しました.
-q

C:\DOCUME~1\user\デスク~1>
B3 00 BF 01 00
B4 4C B2 31 B1 06 50
80 EC 4A CD 21
00 DA 57 89 DF 5B 90
01 FB E2 F3 58 EB F0
あ、あと、ぼくのスライド欲しい人いればリプライとかで直接いってください。
公開するのはあまり乗り気ではない模様...

#upcamp

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

通称セキュリティキャンプ六日目。
私立・プログラミングキャンプ 2013 東京大会 - #upcamp に参加していました。
(いろいろあってスタッフ枠でした)

なにつくろっかなーと思っていたのですが、久しぶりにTypeScriptをやってみたかったので、クライアントサイドで何かやろう、と。
seccamp内でちょっと話があったSQLInjectionChallengeみたいなのやってみようかなーと思ってあれこれ試行してました。
なかなか作れない理由として、サーバサイドで実行する都合でいろいろ危ないのかなーという判断で、クライアント側でやればいいのではーと思いました。
が、そもそもクライアントサイドでSQLってなんやねん、jsでパースしてcookieかなんかに挟むんかなーみたいな感じで

・・・seccamp提出用の感想文とかかくのであとはスライドみてください(適当すぎてごめんなさい)

#seccamp

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

以前の記事 で通知したように、セキュリティキャンプに参加していました。

Webクラスでした。
とてもすばらしい。

CTFはネットワークの方がめっちゃがんばってくれたおかげで3位でした。
ぼくはWebで200/300/100/100くらいと、他のとこで100/100/100くらいとったような気がしました。
400と500ぜんぜんわからんくてしぬ。SQL周りがさっぱりすぎてしぬ。

いただいたものとか、Javascript本たくさんでめっちゃよろこんでます。
アイエエエエ!?ニンジャ!?ナンデニンジャ!?!?っていいながらジャバスクリプトニンジャをいただきました。
あとミクさんのポスターいいっすね^~
それとボウズマンウォーターですね。アパ水には勝てないですけど、なかなか。

と、いうところで「これから」ですね。
いろいろ作ったり考えたりしてアウトプットしていきたいです。

まずは、めっちゃ直近(むしろなう)の私立プログラミングキャンプでちょっと作ってみたいものがあるので、
そこがんばりまーす。

セキュリティキャンプ2013(web)に参加します応募用紙のあれ

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

セキュリティキャンプ2013 Webセキュリティクラスに参加することになりました。
講師、チューター、参加者の皆様よろしくお願いします!
 
残念ながら落ちてしまった方々、これを機に勉強したり何か作ったりしてみてはどうでしょう。
ぼくは昨年、「気付いたら応募締め切りが終わっていた組(?)」の参加者で、来年絶対いくわ!といった感じで勉強したりコード書いたり遊んだりしてました。あとは「そこで学んで、その知識をどうするの?」というところだと思います

もしこれを見ている人がチャレンジしたいのであれば、こういった講師のメッセージも参考になるかとおもいます。

・ネットワークセキュリティクラスの審査後講評

・Webセキュリティクラス、ソフトウェアセキュリティクラスの審査後講評

・セキュアなシステムを作ろうクラスの審査後講評

・審査後、全体としての講評

これらをざっくりとまとめると。
・ アツい
・ そのクラスを選んだ理由、そこで学んだことをどうしたいか
・ 最低限、講義や演習についていける技術力がある
・ 問題についてあれこれ調べて、自分なりの答えを出している
・ 実際に試してみる

といった辺りが、大きな基準になっているのだと思います。

あと、セキュリティキャンプに参加することが目標となってしまうのはまちがいだと思います。
そこで身を持って体験できる貴重なもの、セキュリティだけでなく他の参加者からの情報や意識、そういったものをどうアウトプットしていくか、何を成すのか、そこが目標であり、そのためにセキュリティキャンプに参加するんだ、という思いが必要だと思います。

これに対して、意識たけぇw、と煽って終了なのであれば、まあ、そういうことなんでしょう。

 
来年もきっと開催されると思うので、そこに向けて、その先へ向けて、なにか出来ることをやっておくといいと思います。
 
そして、ぼくの応募用紙をここに貼っつけてみます(いいのかな...だめならごめんなさい...
みなさんの参考になれば、もしくはツッコミなどが飛んでくれるといいですね。
 

《~》と囲ったものは実際の応募用紙には記述していない部分です。
諸事情でさっくりとしか公開できないようなものとかですね。
 


 
「セキュリティ・キャンプ中央大会2013」
Web・セキュリティ・クラス 応募用紙
 
☆ 記述式質問
1. このクラスを希望した自分なりの理由を教えてください。
また、この講義で学んだことを何に役立てたいかを教えてください。(選考上もっとも重視します)

 
《めっちゃ要約で、》
《「この貴重な機会に本場の人からたくさん学んで研究や後輩への指導へ生かします」》
《という400文字くらいの内容》

《出身高校に情報の学科があるので、そこで講義とか何かちょっと、やってみたいかなーなどと》
 
 
2. Webに関連したプログラミング歴を教えて下さい。また、今までに作ったWebに
関連したプログラムがあればどのようなものを作ったのかを、あるいは将来どんな
システムを作ろうと思っているのか、差し障りのない範囲で具体的に教えてください。

・Webに関連したプログラミング歴
クライアントサイド(HTML/CSS/JS, etc) : 4~5年
サーバサイド(PHP/Ruby/Node.js, MySQL): 3年

《美大生的なうぇぶさいとつくった》

・UnityとWebSocket(socket.io)の実験
Unityのネットワーク機能ではなく、ブラウザを経由してsocket.ioを使い同期を取ってみるもの。
《闇鍋#2 旧ブログ参照-> http://stersblog.blog15.fc2.com/blog-entry-427.html》

《インターンとかバイトでつくった》

・作りたいもの
《すごそうなあれ》
《卒研で試行錯誤中のあれ》
《いま一番つくってみたいあれ》
 
 
3. クロスサイトスクリプティングあるいはSame Origin Policyについて自分の
言葉で語ってみてください(これらがどのような脆弱性・技術かの解説は不要です)。

説明は不要とのことなので思うことについて。

まずクロスサイトスクリプティングについて思うところは、確認したことのある紹介・解説しているWebサイトの説明文では、それがどれほど危ないのか、という実感がわかないところにあります。よくあるものは「このようなプログラムを書くと、ほら、alertが実行できますね」程度のもので、それによる状況の深刻さというものがまったくわかりません。その結果として、放置してしまったり、なあなあのままWebサイトを運用していたり、といったことがあるのかもしれません。

Same Origin Policyについては、開発している際には厄介になることも稀にあったりしますが、これがあるおかげでWebにおけるそこそこの安全性を担保してるものだと思います。

どちらにも言えることとして、日本語に訳された時に訳しすぎ、もしくは曲解された翻訳になり、いったいどういうことなんだろうか、となった経験があります。その時は頑張って大本の文章を読んだり、いろいろなページを見て結論を出しました。

《それが何なのか、というものは省き、素直に思っていること》
《SameOriginPolicyが短いのはそんなに思っていることがなかったとおもう》
 
 
4.あなたが読み書きできるプログラミング言語の使用歴、おおまかな習熟度と
好きなところ嫌いなところをお書き下さい。(いくつでも可)
例:C言語(中学○年生のころから。調べながら書けるレベル。○○が好き、○○が嫌い)

共通: ドキュメント/リファレンスがほぼ必須レベル。

《構文とか書き方、一部のメソッドやクラスなど覚えてることもありますが、》
《実際に書く時は大体調べながら書いているので "ドキュメント/リファレンスがほぼ必須レベル"》

《いろいろやってきましたが、》
《いまはRubyとJavaScript(TypeScript)が超超超イイ感じ》
 
 
5. もしもタイムマシンに乗って昔のブラウザの仕様を変えられるとしたら、あなたは何を変えたいですか?
例:HTTPは、そのWebアプリケーションを使用している間ブラウザを閉じるまでコネクションが切れないようにしたい。

"ブラウザ仕様"に限って挙げます。

まず真っ先思いつくものはこれです。
https://twitter.com/NStyles/status/94259222748999680

他に変えたいものとしては、細かい部分ですが、ブラウザ毎に異なるデフォルトのスタイル定義や、JavaScript実装などの統一化が欲しいところです。単にリセットCSSやクロスブラウザに対応できるライブラリを使えばいい話ですが、それが仕様として定められ、標準化されていればまた変わった世界になったかと思います。
他にはプラグインをもう少し作りやすい環境が欲しいです。

《ブラウザ仕様かー、うーん・・・で特に思いつかなかった》
 
 
6. 以下のJavaScriptのコード断片は、とあるWebサイトで利用されていた
ものです。これを見て気付いた点について、自由に書いてください。

 1    try{
 2        var url = location.search.substring(1);
 3        // Check target
 4        if( !url.match( /^[\w\/]+$/ ) ){
 5            return;
 6        }
 7        var xhr = new XMLHttpRequest();
 8        xhr.open( "GET", url, true );
 9        xhr.onreadystatechange = function(){
10            if( xhr.readyState == 4 && xhr.status == 200 ){
11                // complete to load. insert news feed to div elm.
12                var div = document.getElementById( "news" );
13                div.innerHTML = xhr.responseText;
14            }
15        }
16        xhr.send( null );
17    }
18    catch( e ){
19        var div = document.getElementById( "news" );
20        div.innerHTML = "<s>cannot load news from server.</s>";
21    }

なんだか見覚え感のあるコード...
2行目、location.searchはURL末尾の?を含めた文字列を返すので、?を取り除く。
4行目、[A-Za-z0-9_\/] で構成されているか確認。
8行目、以上の処理によって得られた文字列に対してGETリクエストを投げる。
9-16行目、Ajaxのテンプレ。
12-13行目、取得したデータをそのまま div#news 内にHTMLとして入れる

つまるところ、DOM Based XSSの脆弱性が存在しています。プロトコルが省略できること、IPアドレスをDWORDで指定してもアクセスできること。これを利用して攻撃ができます。攻撃用データはHTMLとして用意、header("Access-Control-Allow-Origin:*")を付与した適当な公開場に設置することで使うことができます。

accessURL    : http://example.com/news.html?//2130706433/evilcode
//2130706433/: http://127.0.0.1/
evilcode     : <img src=x onerror="alert(document.cookie)">

対策として、4行目の正規表現を /^\w[\w\/]+$/ とすると良いと思います。
先頭にスラッシュを含めないようにすれば、上記の攻撃はできなくなります。

他の脆弱性が存在している可能性も考えると、div.innerHTML = ~~ ではなく、別のものを使用したほうがいいとも思います。

《ドットなしIPアドレスについて https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Dword_encoding 》
《HTTP Header に "Access-Control-Allow-Origin:*" を付けないとクロスドメインでアクセスができない》
《ローカルとVPSを使って実際にalertがでることを確認しました》

《"別のもの": div.appendChild( document.createTextNode(xhr.responseText) ); 》

《もちろんのことながら、それでも対策ができていない別の脆弱性もあると思います》
 
 
7. そのほかアピールしたいこと、書き足りないことがあれば自由に書いてください。

mixi主催 Scrap Challenge for security 2012 #2 でトップのチームでした。
《xssのセキュリティホールがあるmixiに対して攻撃を仕掛けるCTFチックなイベント》
《就職の選考もうっすらと兼ねているようでした?》

/* 
 * 6JC944Gh44Gf5pa544CF77yL5pyJ5b+X44Gn
 * 44K744Kt44Ol44Kt44Oj44Oz44G/44Gf44GE44Gq5L2V44GL44KS44Gn44GN44Gf44KJ44GE44GE44Gn44GZ44Gt44CC
 *
 * 56eB56uL44OX44Ot44Kw44Op44Of44Oz44Kw44Kt44Oj44Oz44OX44Gv
 * 44OX44Ot44Kw44Op44Of44Oz44Kw6KaB57Sg5YWo6ZaL44Gq5rCX44GM44GZ44KL44Gu44Gn44CB44K744Kt44Ol44Oq44OG44Kj6KaB57Sg44KS44O744O744O7
 *
 */

《上記のコメントは実際に送ったものにも含まれます。深い意味はありません。》
《上記コメントを改めて解読()すると、若干文章が異なるような気がしましたが、まあ、意図はあってるのでいいです》
《マジレスすると暗号化したり難読化したりすると読む人が大変なので真似しないでください、辞めましょう。それで選考結果が変わることはないと思います。》

《行くぜセキュリティキャンプ!》