セキュリティ&プログラミングキャンプ・キャラバン2009 名古屋 質疑応答と懇親会

前回の日記に続き、セキュリティ&プログラミングキャンプ・キャラバン2009 名古屋に参加してきましたので最後の質疑応答と懇親会でのメモを書いておきます。
セキュリティ&プログラミングキャンプ

質疑応答・フリーディスカッション(人生相談)

メモが追いついた範囲です。すべて正しい訳ではないです。
聞き間違いも中にあると思います。
参考程度でお願いします。

もしみなさんが高校生か大学生の時にキャンプがあればどのコースに参加しますか?

吉岡先生「プログラミングコースです。特に笹田さんのコースに行きたい。でもLinuxカーネルコースも良いかな。」
川合先生「その時はOS作るのに成功していなかったので、OS自作入門です。」
笹田先生「セキュリティ面白そうだな。」
村上先生「Linuxカーネル組ですね。当時、Linuxカーネルの変なモジュールを書いたりしていたので機会があったら参加していたのだろうなと思います。」
竹迫先生「セキュリティはすごく新鮮なことが多いので、プログラマの人でも目指すのは面白いと思います。」
園田先生「来年新設される予定の村上先生のソフトウェア解析コースが良いかなと思います。」

色んな地域をまわっていると思いますが、地域性って感じることありますか?

園田先生「質問が出ない地域はありますね。東北地方とか。恥ずかしがり屋な方がいらっしゃる。IPAで行ったときは質問が沢山でるのは大阪とか京都。ただじゃ帰れないぞという空気があります。」
吉岡先生「キャンプとかキャラバンにくる人っていうのは相当とんがっている人だと思うんですよね。とんがっている人が集まっているからそういうクラスタで、地域性はあまり感じないです。」

零細企業に勤めています。ネットワーク構築を業者に依頼しました。ですが、SEがあまりセキュアに詳しくないのです。その状態で構築されて、私がたまたま色々な脆弱性に気がついて、パッチあてたり、接続の仕方をいじくりたおしたのですが、通常は中々できないです。今回皆さん、もっとスキルをあげていただいて、個人レベルもそういうことがやれるように、あと行政も働きかけてくれるとありがたいなと思います。肩書きがないから信用されないのです。でも実力はひょっとするとあるかもしれない方が結構そういう所で潰されてしまって、手が出せないという企業がどうしてもあるのですよ。皆さんレベルが高いからこういう所に参加できますが、まだレベルが達していない状態の人、そういう人でも参加できるようなもうワンランク下のレベルのものを構築されるともっと底辺の拡大につながるのかなと思います。というのも私がセキュアのことを勉強し始めた頃というのはまだ日本にインターネットがきたばかりの頃で言葉の意味が分からんくて困ったのですよ。デーモンとは何かから。日本語の教科書がなかったので辞書片手にやってきました。今若手の人もそういう状態だと思うのです。もっと、砕いた解説書があればいいのですが、そこに手がいく前にみんな挫折するというのを良く聞くのです。講師の方々レベルが高い人は初心者でもわかるような説明ができると思うのです。そういうイベントを開いて頂いていると、日本が中国に負けないような、セキュア大国になるんじゃないかなと思います。

吉岡先生「入門書とかいっぱいあると思います。IPAのホームページでも啓蒙的な情報もいっぱいあると思います。10年前とは全然違ってて、勉強したかったら、来たらいいのです。機会がないのではなく、機会はいっぱいあります。勉強は禁止されている訳ではないですし、免許が必要な訳ではないですし、自分が勉強しかったらしたらいいんです。あと、キャンプとかキャラバンはそういう勉強したいと思っている子に、一緒にやろうというものです。勉強したくない人を無理やり首に輪っかをつけて連れていくようなことはしないですし、する気もないです。」
竹迫先生「キャンプの場合は参加者をすくい上げて未来のビルゲイツのような、特にソフトウェアは一人の優秀な人から全世界に広まる何か素晴らしいソフトウェアの製品が出てくるので、それをやろうとするのがキャンプの一つの指標です。また、IPパスポート試験というのもやっているので、普段情報システムを触るシスアドの人たちに最低限こういう知識は持っておいた方がいいですよね。というのをレベルの低いレベルから段階的にどのくらいのレベルか試験で評価すると言う制度があります。」
園田先生「IPAも中小企業向けのセミナーもやっています。入門編からケーススタディのそのまま使えそうなものまで、無料でおこなっております。是非、そういうのを宣伝して頂けると良いかなと思います。」

OS作ろう組の川合さんに質問なのですが、どうしてOSを作ろうと思ったのですか?今、OSを作ろうと思ったら何に一番気をつけて力をいれますか?

川合先生「最初はOSが簡単に作れると誤解していたことが最初のきっかけです。MS-DOSは高々100KBくらい。これならCコンパイラカリカリやればなんとかできると思ったのが運の尽きで、作ってみたら終わらない。どうしよう。友達にできるって言っちゃったしな。というのが動機です。次に、気をつけるのは既存のOSに無い機能を実装するのが最優先です。後追いはいつも負けっぱなしなので、人が作っていないところから作って、すごいだろう!俺のOSこんなことできるんだぜ。他のこと何もできないけど。で段々完成度あげていけばその内一通りのこともできるようになる。そんな感じです。」

脆弱性に関して竹迫さんに質問があるのですが、脆弱性の窓口の信用度や優先度の質問なのですが、脆弱性の報告窓口が沢山あるので開発の方が目に止める機会が多くあると思います。ブログで言われている、Twitterで言われているなど、それを正しいや緊急性があるやクリティカルであるというのを確認するのは難しいと思うので正しい報告窓口から入ってきたものから優先的に確認するのか、ブログやTwitterで書かれていても、これは直した方がいいなと思ったら報告や確認をするのかについて実際の所を聞かせて頂きたいです。

竹迫先生「サイボウズでは不具合といった報告をTwitterで受け付けるようにしています。会社によってやっていると思います。」

Twitterを選択したのはタイムリーだからですか?

竹迫先生「そうですね。あと、Twitter自体がインフラになりつつあって、その特定の製品のキーワード、ハッシュタグなどで担当者がチェックできる。というのが重要かと思います。」

会社によってケースバイケースなことが多いですか?

竹迫先生「会社によって、メールや電話、お手紙とか、営業の方経由となると思います。会社の中で開発者の人にお客さんから直接報告がいくというのは中々やっていないと思います。なので、営業の方が受けて、経済的なことを考えてどれくらい売上が伸びるか。お客さんの需要度によって、フィルタリングされて会社の方に入ってきたりします。時間というのは有限なので、どこを優先するかという考え方の違いが存在します。報告した人にとっては自分しか見えないので、自分が一番待遇してほしいと思いますが、同じように報告してきた人が10人や100人いると、どういう順番で対応するかというのは考えなくてはいけません。脆弱性の客観的な評価指標もあります。JVN」ではそういったことも公開しています。」
吉岡先生「Twitterで受付はしてないですが、Rakuten-CERTというのがあります。そこにはメール窓口がありますので、楽天脆弱性に関してはそこに送って頂けると専門家チームが動きます。楽天メールマガジンを登録するとスパムがくるようになったという、そういう話もありましたらそういうことも報告していただけると、調査します。当たり前です。企業にとってお客さんの満足度というのは一番利益に直結するのでわざわざ満足度をさげるようなことを積極的にするということは企業としてはありえないことですが、結果としてバグでご迷惑をお掛けしたとするならばそれをフィックスする方が経済効率性が高いです。ですので、もしそういうことがありましたら教えて頂ければ調査した上で対処します。」

違法な手法で脆弱性を発見した時に保護されないとありましたが、具体的に違法な手法というのはどういったものがありますか?法律家ではないので、こういったことで違法だと言われた人がいるなど聞きたいです。

園田先生「不正アクセス禁止法に抵触することがあげられると思いますが、IDとパスワードによって守られたコンピュータにネットワークごしに不正にアクセスしたら違法ですよね。IDとパスを他人のものを勝手に盗むやexploitのコードで認証を回避してログインすると違法です。形式が成立したら違法なので動機はほとんど関係ないです。動機が正規のものでも違法ととられる可能性が高いです。違法になることを避ける手段は寸止めしてください。怪しい兆候が見えたら、その時点で報告してもらえば、IPAの窓口はそういったのものを受け付けるような仕組みにしています。脆弱性があるというのではなく、脆弱性っぽいよというのを報告して頂ければ良いと思います。」
竹迫先生「違法も刑法と民法に分かれていて、不正アクセス禁止法は刑法ですが、民法の方も大事です。例えば、SQLインジェクション脆弱性をついて、ユーザの登録を10万人全部消すと、データを消したということで、個別に損害賠償の請求があったりして、民事裁判になったりします。だから、刑法に違反してないから何をしても良いということはそんなことはないです。これから先はヤバい微妙だなと思ったらそこからはしない方がいいです。」

マルウェアでIDA Proのプラグインにもあったと思うのですが、機械語高級言語に直すデコンパイラの最前線の研究について教えて頂きたいです。

村上先生「IDAは逆アセンブラでしかないのですが、真のデコンパイラを作っているところもあります。IDAで変数や関数の名前をつけられると思いますが、同じように情報を与えた状態でデコンパイルすると、比較的読める、というか少し修正すればデコンパイルしたものをまたコンパイルできるくらいの精度が出せるものができつつあります。というか製品としては出てます。」

笹田先生に質問したいのですが、プログラムの品質や検証に興味があるのですが、型による検証の研究についてお話を伺いたいです。

笹田先生「研究の最前線の話しをしたと思うのですが、私はあまり良くわからないです。実際にやられている人の話を聞くかぎりではすごく熱心にやられている所もあります。具体的にどういうところまでやっているかは分からないのですが、例えば組み込みの分野で携帯電話で何万台、何十万台、何百万台となると思いますが、そこにバグがあると回収のコストがものすごくかかりますよね。だからプログラムの解析や検証による動作の正当性に関しては実際にその研究にたいして投資をして分野を進めていこうという動きがあるらしいです。あまり答えになっていませんが。」

おすすめの情報系の職業を教えてください。

川合先生「人によってすすめるものが変わってくるので何か要望はないですか?」

仕事量に対してお金が沢山もらえるもの。

竹迫先生「それは仕事しないのが一番です。分母が零だから無限大になります。」
村上先生「それは情報系がいいですか?情報系以外の方がありそうな気がします。」
川合先生「私がすすめられるのは一つしかないですが、適当に本を書いて、まぐれでいっぱい売れてあとは寝て過ごす。」
吉岡先生「今、学生さんですか?」

学生です。

吉岡先生「何年生?」

2年生です。

吉岡先生「今日はどういう動機でここに来たのですか?」

本で見て、2009年度に参加しようと思っていたのですが、応募し忘れたので。

吉岡先生「今、いくつでしたか?」

高校2年生です。

吉岡先生「いいですね。じゃ今年まだ応募の資格ありますよね。応募したいと思いました?」

はい。セキュリティ…

吉岡先生「是非、応募してください。おすすめの職業は自分がやりたいことをできる職業がいいのではないですかね。例えば今、セキュリティに興味があるのなら、そういう道に進むのがいいのではないですかね。」

ここで、本の紹介がありました。
PHPMVCフレームワークに関するCodeIgniter徹底入門
PHP 逆引きレシピ

キャンプの中でPHPが出たりというのはあったのですか?

園田先生「ウェブアプリというコースがあって、監査のテストをするのですがそこでサンプルのターゲットとしてPHPが取り扱われるということはあったのですが、コードを書くというのはPHPはないです。」

学習には向かない言語だという話しを聞くのですが、ウェブのビジネスで採用が増えてきていると聞いて、プログラミングとセキュリティの観点から色々な話しを聞ければと思います。

竹迫先生「昨年はやってなかったのですが、一昨年までセキュリティの中のウェブプログラミングコースを担当していたのですが、そこで作るいくつかのプログラムではPHPPerlCGIをいくつかやっていました。あとはPHPエスケープ漏れやSQLインジェクションエスケープに貼った入力文字をそのまま渡しちゃうとすぐ起きちゃいますよね。なので、気をつけないといけないですよねという教え方をしました。またPHP特有ですと、テンプレート言語がHTMLとは限らないです。画像の中にPHPのコードを書くこともできる。リモートファイルインクルード攻撃といった話しとかも一昨年までは少ししました。」
園田先生「もしかしたら今年復活するかもしれないです。こちらの本を読めば効率がアップするのではないかと思うのですが。フレームワークとか出てたとおもうのですが、ツールや環境を使うという手もあると思います。言語が云々というのではなく道具と知恵を使えば、それなりに安全に書けると思います。」
PHP 逆引きレシピの8章がセキュリティだという紹介が入りました。

ウェブのセキュリティの話しが今日の講義でも出てたと思うのですが、PerlCGIに関するセキュリティのお話があれば教えてください。

竹迫先生「ウェブサーバの言語に依存した攻撃はかなり少ないですね。では、PHPに関してなぜ多いのかというのは他の言語にない特徴を色々持っている。例えば入力文字を円マークをつけて自動でエスケープしてくれるような設定ファイルがPHPにはあったり、インクルードができるのですが、http:でもインクルードできる、つまりリモートでもインクルードできる。これは他の言語にはないんですよね。そういった意味でPHPはすぐにフォーカスをあてられるのですが、PerlとかJavaとかはそういった実装依存のものはないです。金床さんの出された本とかはjavaを題材にされていますがそれだとブラウザとサーバの一般的な話しの中で語られているのでPHP,Javaなどでも考えられる。それと、C言語で書かれたプログラムっていうのはバッファオーバーラン脆弱性があるのですがそういうのは10年前に研究し尽くされた分野があります。ウェブアプリというかUNIXデーモンに近いものですね。」
川合先生「もしそういうサイトがどこにもないなら、もし自分が作れば世界No.1ですよね?そういう気持ちで私はOSを作ってしまったのですが。以上です。」

関係ないかも知れないですが、攻撃する人達に対する考えをお聞かせください。

村上先生「コードを作る人全員が悪い人という訳ではないです。例えば、脆弱性を見つけて報告する人というのは製品を良くしようというのもありますし、脆弱性を見つけること自体が実績になるということもありますので実績を積もうという人もいますし、見つけて実際攻撃コードを書こうという人もいます。なので経路が一括りにはできないのですが。悪いことをする人をどう思っているか。そういう人は仕方がないね〜そういう感じですね。そういう人に直接何かを伝える術がないのですが見えない所に一定数いるので、致し方ないなという感じです。あと、お金になっているというのもあります。攻撃する側も攻撃コードを書くことがお金になっていたりだとか、依頼されて攻撃コードを作ったり、マルウェアを書いたり、が仕事になっちゃったりというのが苦しい所ですね。ですから、そういう仕事の方が稼ぎが良かったりだとか、その人の生き方だったり、生きていく術だったりする所まで考えると致し方ない。あまり作る人のことを見てないです。いるのはいるんでしょうけど、その人を見てどうとか、その人を考えてどうとかはあまり考えてないです。」
園田先生「村上先生が言った通り、あんまり人のことは考えてないですし、そういうコードを書いて売ったりする人っていうのは大雑把に言ってあまりイノベーションに寄与しないんですよね。ビジネスでやってるわけだから、一般的にそういう犯罪者や闇の組織に対する意識くらいしかなくて人が云々とは思わないですね。直してやろうなんでおこがましいことも考えないし、色んな事情もあるんでしょう。逆にそういう人たちが知恵を絞ってきた時にどうやって上回るかということしか考えないです。」
川合先生「もしかしたら我々は質問の意味を勘違いしているのでは?攻められるから守っているのか?攻められなくても守っているのか?つまりプログラムに問題があるから修復しているセキュリティのモチベーションなのか?いや、あいつらが攻めてこなけりゃこんなことしなくて済んだのにと思っているのか?その辺を聞きたかったのですか?」

あんまりそこまで考えて無かったです。

吉岡先生「イノベーションは常にコミュニティなどのかなりエッジの所だと思います。例えばGoogleが全世界の情報を整理するという理念のもとで色々すると権利を持っている人とそごが生じる。絶版になった本をスキャンしてインターネットで公開するというのはユーザから見ればすごく便利になって良いと思いますが本を書いた人にとってみれば止めてくれと言うかもしれない。それは法律がどう規程しているとかしていないとかじゃなくて、ある種のコンフリクトは常に発生する可能性があると思います。明確に犯罪というのを積極的にやるのは私は理解できないが、自分が信じて何かを表現したときに、それが今の社会的機関と対立する場合があるだろうとは感じています。ところがそういう規範などと対立したとしても自分の信念とか良心に従って何か作った人が時代を変えてきたのかと思います。例えば、Googleのようにナイーブな会社だと、情報を整理することが我々の一つの価値だということで、全世界の本もスキャンするだろうし、地図も作るだろうし、ストリートビューも作るだろうし、衛生写真で自分の街が見えるようにするだろう。それと同様でセキュリティに関してもプライバシとアンチプライバシの間に何かあるのかなと思います。それとWinnyという典型的なプログラムは、私は技術としては無色透明なものだと思います。ある人にとってみれば、それは犯罪行為を助長しているものだというし、ある人にとってみればP2Pという新しいテクノロジを広めるものだと言うし、だからその一つ一つ検討してみないと一概に白や黒とは言えないのではないかと思います。」

IPv6がこれから普及してくのかと思いますが、全家庭機器にグローバルIPが付与されたらセキュリティがどういうように変化していくのか教えて頂きたいです。

園田先生「なってみないと分からないのですが、容易に想像がつくように電子レンジが暴発させるとか冷蔵庫で中身を溶かしちゃうとか。だから今以上にそれを司っている組み込み系などのソフトウェアのクオリティが問われるようになると思います。ただ、そういうことだけに依存しているとセキュリティって中々難しい所があると思うので、DMZが各家庭内にできるとかそういう嫌な時代になっていく気がしないでもないです。通信をフィルタするということをどこかでしないと個々の機体で対応するのは辛いかなと思います。」
吉岡先生「技術というのは何かと言うと僕達はどういう社会を作りたいかなのですよ。IPv6でどういう社会を作りたいのか。インターネットによってどういう社会を作りたいのか。プログラミング側から見るとそれを使って我々はどういう社会を作ってどういう風に幸せになりたいのかということだと思います。だから、IPv6でどうなるかではなく、IPv6で我々は何をしたいのか?そういう設問だと思います。例えばIPv6になると、皆が情報を交換できるようになって幸せになるとか。そういうアプリケーションを作るのは我々なんですよね
誰かに作ってもらうのではなく。例えば10年後にあなたが社会に出てある製品を作った時に僕はこういう製品を作りたかったんだって思ってくれると私は嬉しいです。」
竹迫先生「SF作品を沢山見るといいと思います。例えばハリウッド映画だとダイハード4.0とか。ちょっと前の作品とかですけど、細かく、生活にどういう影響があるのか。っていうのはSFの世界で語られてますので。それは想像力の問題ですので。5年先や10年先、20年先に社会がどうなっているのか、をどれだけイメージできるか。その中でどういうシナリオがあるかにも想像を巡らせる。僕自身研究者なので、5年後や10年後にはどういうトレンドができていて、そのために(…)というので研究とかしています。なのでSFをいっぱい読みましょう。」

名古屋勉強会紹介

毎月第一金曜日。Rubyの勉強会。

名古屋でもたまにしている。2月27日に行う予定。組み込みとアプリケーションのデザインについて。

scalaについての勉強会。第三金曜日。

アジャイルプロセスについてワークショップしながらしている。

読書会。Rubyソースコード完全解説。コンピュータの構成と設計。計算機の構想と解釈。ファインマン物理学。ティアーズワールドHaskell

BSD系のOS。特にNetBSD

2月3日(水):国際センター「中国最新IP事情」

  • オープンハブ

初心者向けの勉強会。PHP,Ruby。プログラミングの未経験者に対して「なでしこ」の勉強会を計画中。

Javascript第5版の読書会。XMLに関しても。

PHPCMSであるXOOPS Cube

皆で地図を書こう。

関数型言語OCamlの勉強会。

ソフトウェアテストエンジニアの勉強会。開発の手法、プロセス。

毎年学生が発表する場を設けている。

オープンソースの勉強会。頭文字のFはフリーソフト

私はいつも敷居が高いので懇親会は参加しないのですが、友人に誘われて初めて参加しました。
周囲はすごい方ばかりで話しかけるのも気が引ける状態でした。
伺う話はどれも面白く、ためになる話しを聞けたので行って良かったです。
ただ、もう少し自分から話せるネタがあればもっと楽しめたのかと思います。
セプキャン自体が22歳以下を対象なので懇親会も学生が多いのかと思っていましたが、
完全に少数派でした。
社会人の方に今の子供は勉強する機会に恵まれていると言われ、その恵まれた環境を活かすも殺すも自分たち次第だなと思いました。
吉岡先生とお話させて頂き、どうして今回参加したか?という問いから「学校という閉じた空間からどうしたらこういう外の世界に気付くのだろう?」という興味深い問いを頂きました。
Mozillaに関するお話しを伺ったのですが、ネットは時間と空間をこえるという話しは感動しました。
また、川合先生のお話しも伺いました。
次に川合先生が目指すのはJavaのようなクロスプラットホーム言語の軽量化だそうです。
ただ、VMがどうしてもボトルネックになるのかなと思いますが、挑戦甲斐がありそうです。
高校生もいて驚きましたが、今の時代あまり年齢は関係ないのかも知れないですね。
興味があるかないかが大きい気がします。
やりたいことについて聞かれましたが、それについて私は恥ずかしくてまだまだ人に言えるようなレベルに達していないので、しばらくは自分の中でためておこうと思います。

関係のない話しですが、今日は1月26日です。EDVAC上でソフトウェアが稼働し一般公開されたのが1952年1月26日と言われています。
既に1951年に部分的に稼動していたようですが。
コンピュータの歴史はまだ浅く、まだまだ発展途上の技術です。
日々というか時々進歩し続ける技術に色々な可能性を感じつつ、私も最前線の人たちに加わっていきたいです。
 
# 追記(2010-02-24)
はせがわようすけさんにTwitterでご紹介頂きました。ありがとうございます。
この記事をきっかけにキャンプやこの分野に興味を持って頂けたら幸いです。