Shibuya.pm #11 にいってまいりました
「僕スピーカーなんだけど」
うわぉ、弾さんだ。(18:15 頃 2Fロビー にて)
から始まった、Shibuya.pm #11 に参加してまいりました。
勇気を出して弾さんに話しかければよかったよ。ちょっと後悔。
今回は "no Perl; use x86;" というタイトルを裏切らず、”まとめ” を書くにはちょっとマニアックすぎる内容でした。
とゆーか、x86 のコードなんて大学の時に少しさわったくらいで、わかったようなわからないような部分が多く、まとめる力が圧倒的に不足してますね。。。
あ、あとアレですね、自分が1週間で使うバックスラッシュを今日1日で見た気がします。
というわけで、以下殴り書きです。ゆっくり整形していこうかな。
バイナリ畑で捕まえて - inside lleval (dankogai)
http://colabv6.dan.co.jp/lleval.html
のお話し。
というか、システムコールをどこで止めるんだってゆーお話でした。
1 while 1;
とか
fork while 1;
とかゆーのを実行されるのは困る。
そんなのを崖っぷちで捕まえてあげたい。
そんなサービスを提供するために、FreeBSD::i386::Ptrace をつくった。
FreeBSD だとシステムコールした後でもスタックの値を書き換えられるのでそれを利用して、止めたいコードを止めてしまおうといったお話。
任意のコードを安全に eval する方法の実装方法と、突破方法について (tokuhirom)
こっち(壇上)の方が目立つじゃないですか。
Perl で SandBox をつくりたい。
lleval (dan さんの) はいいんだけど Linux でも動かしたい。
そんなときは Sys::Protect。
が、非常にアンセキュア。
じゃ、どうすればいいか?
とりあえず危険なシステムコールをつぶしまくればいい。segv が出るのはしかたない。
SandBox では新しいプロセスを作ってその中で eval して実行していき、ある程度時間がたったら Kill する。
じゃあそれをどうやって制限(マスク)しようか?
それは、PL_op_mask、PL_ppaddr をマスクしてあげればいい。
op_mask にフックする関数を追加すれば任意のコードを防げる。
以下で確認できる。(未確認)
$ perl -M-ops=system
これで system 関数を止めれる。しかもこれは標準の機能としてある。
DynaLoader (DLLやらXSを読むためのモジュール) は非常に危険。
XSは完璧にVMの外で動作するため防ぐのは難しい。
JSON::XS や autobox は許可してあげたい。
まとめると PurePerl は危ないので XS で書きましょう。
Perl じゃなくて x86 で書きましょう。
# あれ?途中のメモが抜けてる。。。
How about Kindle hacking? (obra)
アマゾン・キンドル (Amazon Kindle) を Hack してしまおうというお話。
# メモとりながら、英語を聞けるほどではなかったので集中して聞いてました
# が、半分くらいしか分かりませんでした。。。
世界のセキュリティコンテスト(Capture the Flag)ってどんなもの?(kenji)
ハッキングして隠されたパスワードを入手せよ!
みたいなことをやっているらしい。
ある程度王道みたいな解析 & それを複雑怪奇にする方法があるようだけれど、経験とひらめきみたいなのが大切そうな気もしました。
Native Client Hacks (Fukumori Daiki)
ActiveX はなんでもありだった。
脆弱性を利用して電卓が起動できちゃう。
バックドアをしかけられちゃう。
ブラウザ上での SandBox はこれで崩壊した。
そこへ、Google Native Client が登場した。
x86バイナリを安全に実行する枠組み。
なのでいろんな脆弱性とか仕様をついてみた。
SandBox は破られるほど強くなるから、みんなで破りましょう。
オレオレPerlVM (gfx)
CPUの気持ちは大事だけど、VMの気持ちも考えよう (Yappo)
Devel::BindPP をつかって簡単に C++ で Perl の拡張モジュールをつくろう! (tokuhirom)
XS を書きたいのに、XS のお作法を覚えるのはばかばかしい。
しかも難しいし、汎用性がないし。。。
そんなわけで C++ で XS を書けるラッパを作ったよ!
使ってね!
Devel::NYTProf (clkao)
Devel::NYTProf はみやすくて便利!
今は HTML で表示しているけど、GUI で表示する機能が追加されたよ!
# みたいなお話しだったと思う
マルウェアの検出 (sonodam)
最近のマルウェアは必要な機能は後から DL してくるタイプが多く、他の setup.exe との違いが分からなくなってきた。
ヒューリスティックに対処するには限度がある。
なんか、いい案ない?
ブラマンのブラックな話 (isidai)
5分で danbot server を立ち上げる方法 (Yappo)
Windowsユーザのための初めてのPerlプログラミング (HASEGAWA Yosuke)
-
-
- -
-
最後に
21時頃終了し、21時半の新幹線にのって帰るというせわしない日程で、ゆっくり余韻に浸る暇もありませんでしたが、今回もとてもおもしろかったです。
あ、あと会場がすごかった!
スピーカーの皆様、会場の手配、提供をしていただいた皆様、その他関係者皆様、本当にありがとうございました。
次回も是非参加したいです。
あ、あと今回初挑戦で IRC に挑戦したんですが、なんかちょっと意味がわからなかったデス。
Yappo さんの発表のときに IRC っぽい画面が見えたけど、自分のつないでみたチャンネルと違ったのかな?
うーん?
LimeChat で検索したら #shibuya-pm が出たんですが、そっちじゃなくて #shibuya.pm のほうに JOIN すればよかったみたいです。
なるほど!
わーい。