いくつか告知です.

今更ですがInterface誌2014/08号に記事を書きました.
pkttoolsの紹介などもあります.

あと,9月に行われる以下イベントに登壇します.

SECCON x CEDEC CHALLENGE 表彰式 / 今昔ハッカー対談

ゲームセンターあらしのすがやみつる先生とのトークセッションです.

あとちょっと前の話ですが,pkttoolsというツールを作成し公開しました.
パケットのRAWデータを送受信できます.

http://kozos.jp/software/index.html

AD
今年のセキュリティキャンプのセキュアなシステムを作ろうクラス・組込みゼミでは,テーマが10個提示されています.
が,タイトルだけでは何をやるのかわかりにくいかと思いますので,クラスの説明のほうに書いてあるゼミ説明を,ここに再掲します.

モノづくりが好きで好きでしょうがなく,昼も夜も寝ても醒めてもモノづくりのことばかり考えているというかた,アセンブラやコンピュータ・アーキテクチャなどの低レイヤーの学習を「面白そう」と思えるかたは,ぜひ応募を検討してほしいです.

アセンブラは事前学習で勉強するので,始めから知っている必要は無いです.ただ学習することに抵抗感が無いことが重要です.

各テーマでは,基本として開発ターゲット(OS,アーキテクチャなど)はしぼりません.自由に使えるものならば,基本,何でもOKです.

テーマは「組込み系テーマ」と「アーキテクチャ系テーマ」の2通りがあります.組込み系はマイコンボードをガシガシいじりたおす感じ,アーキテクチャ系はアセンブラとにらめっこしながらモノ作りする感じです.

■ 選択テーマ一覧

・テーマ#01「マイコンボードでの不正実行の検出機能を作ってみよう」(組込み)

マイコンボード上で脆弱性のあるソフトウェアが外部から攻撃された場合を想定して,
アプリケーション・プログラムの挙動を監視し,不正実行を判断して中断・ログ保存す
るようなセキュリティ機能をマイコンボードに実装します.

ログはマイコンボード上の制限されたメモリ内に保存することと,PC側にアップロー
ドできることが必要になります.

・テーマ#02「セキュリティソフトを作ってみよう」(アーキテクチャ)

UNIX系のシステムではptrace()のようなデバッガ向け機能を利用することで,アプリケ
ーションの挙動を高度に制御することができます.

デバッガ向け機能を利用してアプリケーションの挙動を能動的に監視しチェックするこ
とで,PC上で動作するセキュリティソフト「もどき」を作成してみましょう.

・テーマ#03「アプリケーションの挙動を見える化してみよう」(アーキテクチャ)

「セキュリティソフトを作ってみよう」の発展系です.

ptrace()のようなデバッグ機能によりアプリケーションの挙動を見張り,レジスタやス
タックの状態を動的に取得し変化をリアルタイム表示することで,動作を見える化して
みましょう.さらにバッファオーバーランの脆弱性の攻撃等を実験的に行い,視覚的に
見てみましょう.
なお本テーマはPCでの開発を想定していますが,マイコンボードをターゲットとした
開発でも構いません.(この場合はGDBによるリモートデバッグ機能が利用できます)

・テーマ#04「セキュアな組込みOSを自作してみよう」(組込み)

既存の組込みOSに独自に機能を追加することで,セキュアな組込みOSを自由なアイ
ディアのもとで開発してみます.

何らかのオープンソースな組込みOSが動く,マイコンボードをターゲットとします.

・テーマ#05「アーキテクチャの違いを検証してみよう」(アーキテクチャ)

バッファオーバーラン等による脆弱性の既存の攻撃方法を,様々なアーキテクチャにつ
いて検証し横断的に比較することで,スタックやレジスタの扱い,命令コードの特徴,
命令セットの違いなどによるアーキテクチャごとの脆弱性の特徴を検討します.シェル
コード挿入やROP,Exploitコード作成をエミュレータ環境により実験します.

想定するアーキテクチャはx86,ARM,MIPS,PowerPC,SH,H8,V850,AVR,RX,6502,
Z80,VAXなどですが,可能な限り多く扱い横並びにして比較することを目的とします.

・テーマ#06「エミュレータでの不正実行の検出機能を作ってみよう」(組込み)

エミュレータ上で組込みOSのカーネルやアプリケーション・プログラムを動作させ,
OSへのシステムコールや特権命令の実行,メモリ読み書きなどの詳細なトレースを採
取する機能をエミュレータに実装します.さらに実行中のプログラムの動作のチェック
を行うことを可能にします.

エミュレータでの開発がベースとなるため,マイコンボードは利用しません.

・テーマ#07「組込みシステムをセーフティに設計してみよう」(組込み)

組込みシステムでは「セキュリティ」(脅威対策)に対して「セーフティ」(機能安全)と
いう考え方も重要になります.

エレベータ制御や踏切制御等を題材として制御プログラムを作成し,シミュレーション
動作させ,ドアの開閉・ボタンの押下・人がドアにはさまれたことの検知などをして適
切に振舞うかどうか,検証してみましょう.なおシミュレータも自作することを前提と
します.シミュレータでの確認がベースとなるため,マイコンボードは利用しません.

・テーマ#08「プロセッサのセキュリティアシスト機能を設計してみよう」(組込み)

プログラムの不正実行や不正領域アクセスなどの検出を考えた場合,既存のプロセッサ
に対して専用のハードウェアアシスト機能を搭載しOS側から適切に利用することで,
高速かつ確実に検出できる可能性があります.

既存のプロセッサに追加する形でそのような専用機能や特殊命令を設計し,OSと協調
してセキュリティを確保する方法を検討します.さらにプロセッサのエミュレータ上で
特殊命令の実装を行い,命令の動作やOSからの利用などの動作検証を行ってみます.

エミュレータでの開発がベースとなるため,マイコンボードは利用しません.

・テーマ#09「セキュアなインターフェースを設計してみよう」(アーキテクチャ)

既存のアーキテクチャでもABI(Application Binary Interface)を工夫することで既出の
攻撃手法を無意味にしセキュリティを高めることができる可能性があります.

セキュアなABIを定義し,アセンブラベースでプログラミングすることで効果を確認しま
す.可能ならばコンパイラやリンカを改造し,そのようなABIでコード生成してみます.

アーキテクチャは一つに絞らず,x86,ARM,MIPS,SH といった様々なものを扱います.

・テーマ#10「低レイヤー学習のための教材を作ってみよう」(アーキテクチャ)

セキュリティ理解のための低レイヤー学習の促進を目的として,2013年には「アセンブ
ラ短歌」や「バイナリかるた」「アセンブラ・クロスワード」といった新しいコンテス
トや競技,ゲームが考案され,実施されています.

勉強会で実施できるような題材として,そのような新しい教材を考案し,開発してみま
しょう.アイディア出しだけではなく,自身で実装し普及させることを前提とします.

AD
ええっと今年のセキュリティキャンプの募集がすでに開始されているのは前回書いたとおりなのですが,
募集まっさい中ということで,ちょっとつらつらと何か書いてみます.

私は「セキュアなシステムを作ろうクラス」というのに参加させていただきます.
クラス長は30日でOS作ろう本で有名な,川合秀実さんです.
川合さんはOSECPUという自作VMをテーマにしていろいろものづくりするみたいです.

今年は浅田さんが新たに講師に加わっています.FreeBSD使いとしては,BSD良く知っているかたに加わっていただいてとても嬉しいです.
半田さんのところは見える化,忠鉢さんのところはOSカーネルやハイパーバイザを扱うみたいです.
竹迫さんのところはルータ自作というこれまた面白そうなことをやるみたいです.

システムクラスは分野ごとのゼミ制になっていますが,全体としてはものづくりがメインのクラスなので,セキュリティキャンプに興味はあるけど自分は解析したりするよりもモノをガリガリ作るほうが好きなんだよなーという人むけです.

で,私はそこで「組込みのセキュリティを考えるゼミ」というのを担当させていただきます.
私のゼミについてですが,参加するためにセキュリティの知識は必要かというと,そうでもなかったりもします.
セキュリティバリバリのひとというよりも,普段はものづくりばっかしやっているひとが参加してくれて,セキュリティも意識したものづくりをできるようになってくれるというのがひとつの狙いだったりもします.
むしろとにかく手を動かして,ゼロからモノを作ることができるひとを期待してたりします.

マイコン大好き少年少女にぜひ参加してほしいです.5日間,どっぷりと漬かってひたすらマイコンをいじることができます.
ArduinoでもPICでもH8ボードでもSAKURAボードでもなんでもいいのでいじりたおしましょう.
講師も楽しいくらいだから,きっと参加者はもっと楽しくてしょうがないに違いない.笑

まあ言ってしまうと,他人の作ったものなんぞには興味無し自分が作ったものが一番好き!
車輪の再発明とか言われても全然気にしない!という人向けです.
なにせゼミ長の私自身がそんな感じだったりしますので.笑

あと今年はアーキテクチャ関連のテーマも入れています.コンピュータ・アーキテクチャに興味あるという人はぜひ応募してほしいです.RISCとかCISCとかMIPSとかARMとか命令セットアーキテクチャとかについて,5日間,ひたすら議論してものづくりすることができます.CPUアーキテクチャ大好きな私としては,ちょう楽しそうです.

ゼミとしては,参加者が,自分で考えて自分のアイディアで何か作ろうとするのを推進したいです.私は基本的に参加者が自分で考えて作ろうとするものは否定せず「面白そうだねーいいねーもっと作ってみてよ」って感じのノリです.

あと毎年この時期になると「キャンプ参加したいけどレベル高そうで応募を躊躇」みたいな話をよく聞くのですが,まーなんとしてでも応募しろ!みたいなことを言うわけではないですが,ひとつ思うこととして,
「講師の私だって,やれば絶対成功したり受かったりするようなことばっかり挑戦しているわけではないですよー」
ってのがあります.
むしろ失敗したり落ちたりするほうが多いし,そんなの日常茶飯事です.
ただ,あんまし落ちるのとか気にしてなくて,失敗してもむしろLTでのネタが増えたかくらいにしか思ってない,っていうのがあります.

だから,興味はあるけど躊躇して応募しないというのは,講師としてというよりも,フツーの一技術者として,もったいないなーと思いますね.技術力ついてから応募すれば一発合格するってもんでもないですし,受かった人も全員一発合格してるわけでもないですし(むしろ何度も応募してというのが普通かと),応募自体が次へのステップでもありますし.

成功しているように見える人っていうのは実力あるから成功してるのではなく,失敗してるから実力が自然とついてきていて,それでたまに成功したのが目立っているだけです.フツーにその10倍くらい,あたりまえのように失敗しているもんです.ただ,本人がそれをあまり気にしてないしいちいち言わないので失敗が目立たないだけ.そもそも落ちることや失敗が悪いことだとは全然思わないです.失敗しても気にせず,むしろLTネタが増えてラッキー,とか思うくらいでちょうどいいです.失敗するほうが技術者としての幅が広がるもんですほんとに.

応募することで応募人数多ければ,たとえ落ちたとしても来年からは人気ってことで人数枠が増えて次から受かりやすくなるかもしれないし,そういう良い副作用もあるかもしれないです.別にだから応募しろとかいうわけではないですが,何か行動を起こすということは,本人の気がつかないところで,けっこう良い副作用があったりするもんです.

AD
今年もセキュリティ・キャンプの募集が開始されました.

名前は「セキュリティ」ですが,私の担当するゼミで組込みやCPUアーキテクチャも扱います.
なのでマイコンボードいじり好きなひととかも興味持てるイベントだと思います.
今年はCPUアーキテクチャのテーマも設けましたので,コンピュータ・アーキテクチャに興味ありという硬派な(笑)かたもどうぞ.
モノ作りが大好きで,寝ても冷めてもモノ作りのことばっかり考えているというひとはぜひどうぞ.

スケジュールは例年通り,お盆の時期に4泊5日で行う学生・生徒向けの集合研修です.
教材費,宿泊,食事,交通費などすべて提供されるので無料で参加できる点と,各方面で有名な方々が講師をつとめることによる高度でユニークな演習が魅力です.
卒業生の縦横の繋がりも非常に強く,ひとつの大きなコミュニティになっています.

今年のセキュリティ・キャンプには,以下の4つのクラスがあります.

・ソフトウェア・セキュリティ・クラス
・Web・セキュリティ・クラス
・ネットワーク・セキュリティ・クラス
・セキュアなシステムを作ろうクラス

私は昨年同様,「セキュアなシステムを作ろうクラス」の「組込みのセキュリティを考えるゼミ」を担当させていただきます.

「セキュアなシステムを作ろうクラス」はものづくり色が強く,分野ごとにゼミに分かれて,開発テーマを各自で設定しての「ものづくり演習」になります.
また,新しい講師のかたも招いています.

「組込みのセキュリティを考えるゼミ」は,昨年までは主にマイコンボードなどの実機を扱い,マイコンボードを使ったものづくりにどっぷりとはまる感じでした.昨年はArduinoや秋月電子のH8マイコンボードなどを利用しています.

今年はさらにテーマ幅を広げ,組込みに加えてコンピュータ・アーキテクチャの視点からセキュリティを考えるテーマも盛り込みました.こちらは各種CPUのアセンブラや機械語コードやシミュレータをガリガリ使う感じです.

マイコンボードいじりが好きなかた向けのテーマと,アセンブラや機械語・CPUアーキテクチャといったものに魅力を感じるかた向けのテーマを多数用意してありますので,そうした方面に興味のありそうな学生や生徒のかたがいれば,ぜひ応募していただければと思います.
もちろん他ゼミや他クラスへの応募も大歓迎です.

以下,私が担当するゼミのテーマ一覧です.(詳しい内容はホームページの応募案内にあります)

テーマ#01「マイコンボードでの不正実行の検出機能を作ってみよう」(組込み)
テーマ#02「セキュリティソフトを作ってみよう」(アーキテクチャ)
テーマ#03「アプリケーションの挙動を見える化してみよう」(アーキテクチャ)
テーマ#04「セキュアな組込みOSを自作してみよう」(組込み)
テーマ#05「アーキテクチャの違いを検証してみよう」(アーキテクチャ)
テーマ#06「エミュレータでの不正実行の検出機能を作ってみよう」(組込み)
テーマ#07「組込みシステムをセーフティに設計してみよう」(組込み)
テーマ#08「プロセッサのセキュリティアシスト機能を設計してみよう」(組込み)
テーマ#09「セキュアなインターフェースを設計してみよう」(アーキテクチャ)
テーマ#10「低レイヤー学習のための教材を作ってみよう」(アーキテクチャ)

開 催 日:2014年8月12日(火)~8月16日(土) (4泊5日)
場 所:千葉 幕張
応募〆切:2014年6月16日(月) 17:00必着

「セキュリティ・キャンプ全国大会2014」応募要領など
http://www.ipa.go.jp/jinzai/camp/2014/zenkoku2014.html

(セキュリティ・キャンプ実施協議会)
http://www.security-camp.org/

セキュリティ・キャンプは毎年夏に行われていて,例年だと5~6月くらいに募集が行われているが,応募を考えているひとは,そろそろ準備をはじめるといいかと思う.

ここで書くのはキャンプ講師としてではなく,自分もいろいろ技術的活動をしている一人の技術者としての考えです.

準備というのは何かというと,別に受験対策みたいなことしろとか応募用紙を書く練習しろとかそういうのではないです.

まあ1年間いろいろやってきたものづくりや技術的活動をまとめてブログとかで公開するとか勉強会で発表してみるとかそういうのをやっておくといいよ,ということだ.

この手の募集ものというのは,受験ではない.このような解答を書けば受かるとか,こう書かないと落ちるとかいうものではない.いかに自分をアピールできるかが重要だ.

そしてアピールのためには,やはり手を動かしていることが重要だとぼくは思う.これはべつにキャンプの応募がそうだとかいう話ではなく,一般的にそうおもう.「やる気はあります.でも手は動かしてないし成果物はありません」ってのはちと説得力無いように思うし,そもそもやる気ないじゃん,と思われてもそれではしかたがない(だって手を動かしてないんだから).とくにセキュアナシステムクラスのような,ものづくりのクラスだったらなおさらだ.

ほんとにやる気があるのなら,実績作りやネタ作りのために1年間かけていろいろ技術的活動とか手を動かすようなことをしているはずだし,単に「キャンプ行きたいです!」だけではなく,そういうのを「やる気」って言うのだと思う.

そしてそのようなことを継続的にやっていれば,「自分のネタ」というものがいろいろできているはずだ.で,それをブログとかに書くことで目に見える形にして,ちゃんとアピールできる形にしておくということだ.

これはキャンプに限った話ではなく,他に何か別のやりたいこととか見つかったときのためでもある.技術系ブログとかホームページとかに書き貯めておけば,いざというときのアピールにとても役に立つ.ホームページのURL示して「こんな活動しています」の一言は,千倍の「やる気はありますやる気はありますやる気はあるんです!」よりも通じやすい.

こういうのは最終的にキャンプに残念ながら行けなかったとしても,他のことに役に立ったりする.キャンプのためにがんばって準備する,というのではなく,普段からいろいろネタ作りしていて,キャンプの募集があったらそれに使ってみるか,くらいの考えがいい.キャンプは目標ではなく過程のひとつであると考えたほうがいいと思う.

そういうネタのストックが無いとしたら,今年のキャンプに間に合うかどうかとかは気にせず,今からでもネタづくりを始めることを考えてみるといいだろう.継続して勉強していたら,意外に自分でも気づかなかった技術ネタがけっこうできてたりするものだ.今まで無意識にやってきたなんらかの技術的活動や勉強したベースがあれば,意識して「ネタづくり」を始めてみることで,アピールできるものが予想外にいろいろ出てくるかもしれない.

それに今から始めれば,来年の今ごろには1年分のストックができていることになる.キャンプは目的ではなく過程なのだから,キャンプのためにとか考えずに,今からでも始めてみるといいかと思う.「今からじゃ今年のキャンプには間に合わないから…」なんていう短絡的なつまんないことは考えず,今からでも始めて,地道に継続するといい.そういうのが身になるものなのだと思う.