私の目から見た PacSec 2010 (0)

今回は PacSec 以前の話となります。自分語り多めどころか全部そうです。

まずは前回 (PacSec 2009) 直後から。

前回も、私は PacSec において発表させてもらった。話題はライブメモリフォレンジックを妨害するための rootkit という、ものすごくマイナーなネタだ。これは Shadow Paging モドキ (←ここは重要。本当の Shadow Paging と使って仮想化支援機能を必要としない。) を使ってメモリの内容をフォレンジックソフトウェアから隠し、正常な取得と、それに依存する解析を妨害するという話だ。
PacSec の前後には、主催者、スタッフ、スピーカ、また一部の参加者を含めた飲み会があったりする。私が参加したのは直前と直後の二回だ。
当時私は学校を中退したままこれといった職を持っていなかった。(今もそうなのだが。) これを知った (主催者である Dragos を含む!) 一部の方が私をセキュリティ専門のチームに紹介するという話になっていった。実のところ、そこでのことは高揚感で一部が曖昧になっている。(その時泥酔していたのもその理由のひとつだ。)

AD/HD

同時に、私は精神に問題を抱えていたようだ。精神科の通院によって全く問題のないところまで回復し、当時も薬の量はおまじない程度だった。しかし―――精神の状態が極めて良くなっても、そして PacSec が終わってしばらくしても、物事に対する集中力だけは回復せず…ロクにプログラムを書くことすらできなくなっていった。このままでは仕事を紹介してもらっても役立てそうにないと、Dragos らにお断りのメールを送ったのは苦い思い出だ。
しばらくして、その症状が注意欠陥多動性障害 (ADHD; AD/HD) によってもたらされるものとそっくりなことに気がついた。これは完治 (あるいは寛解) させる方法こそ見つかっていないものの、適切な投薬さえ受ければ症状をかなり抑えることができる先天性の発達障害だ。しかし、この「適切な投薬」というのが曲者だ。しばらく前まで、AD/HD のための主要な薬はリタリンであった。脳の機能を活性化させ、集中力などの障害を抑えるように働くらしい。しかしこの薬は、依存性の問題などが取りざたされてから AD/HD への適用 (正確には、AD/HD と併発することの多いうつ病への適用) が取り消されてしまった。
ではそれ以外のチョイスは? 2010 年現在、日本で AD/HD に対する適用があるのは次の 2 つだ。

  • ストラテラ (6歳以上18歳未満; 18歳以上に関しては治験が進行中)
  • コンサータ (処方できる医師は登録医に限る; 6歳以上18歳未満)

このうちコンサータは禁止されたリタリンと同一の成分を含む (どころか、コンサータリタリンと同成分の徐放薬である。) ため処方できる医師が限られており、しかも 18 歳以上への適切な処方はできないようだ。ストラテラは 18 歳以上は適用外であるものの処方は容易であり、当時私の選択はこれしかなかった。しかしストラテラという薬に関してあまり良い印象はない。最初は集中力に大してある程度効果を発揮したものの… 3 週間程度で耐性のためか効果を失い、極端な抑鬱症状で回復していた精神を極端に揺さぶることになってしまった。
諦めて数ヶ月し、これ以上引き伸ばしはできない、そういうとき、県外の医師を見つけた。もちろん成人に対してコンサータの処方をするとは公式に謳っているわけではないが、是非もなく私は飛びついた。これで駄目ならセキュリティ分野を諦めて、単なるニートとして過ごすか、あるいは××することすら考えた。
診断ではいくつかの質問をされた。加えて医師は母親に、私に関する生育歴、また出生時の事故や病気がなかったかなどを聞いた。診断結果は――アスペルガー症候群 (診断名には含まれないが、AD/HD との併発)。コンサータの処方も可能とのことだった。投薬の結果は今のところ良好といえる。ストラテラのような酷い副作用はなく、(それでも喉が乾くなどの副作用はある。有名な副作用が食欲の減退と体重減少だが、私の場合抱え続けていたストレスから開放されたせいか、体重は逆に微増した。) ほんの少しずつだがプログラムの実装ができるようになっていった。

PacSec 2010 へ

それなら、去年から思い浮かべていたアレを実現に移すときだ。実は AVTokyo 2009 の資料 (仮想化に関連するモノ) に、その断片がある。読み取ったメモリ内容などを保存して、プログラムのすべての動作を再現するという、いわゆるトレーサだ。あの後実現手段を必死に考えて、より良い手段―― PacSec 2010 の発表におけるものとほぼ同じ ――にまで到達していた。これを応用すれば、1MB/s のトレースでプログラムの全部をキャプチャすることも夢ではない。
形は見えている。実装の手段も手の内にある。それで実装しなければ何なのか。
念の為に言っておくと、コンサータを摂取したとしてもスーパーマンになれるわけではない。あくまで集中力を適切に出すことを「助ける」だけだ。プログラムを長く書いていなかったことによる不慣れさと、自分の怠け癖のおかげで苦労こそしたものの、実装と論文の形が見えてきた。実のところ、論文は実装がほとんどマイクロベンチマークのみという状態で提出したのだが、数値シミュレーションによる結果を掲載することで説得力を高める努力をした。
PacSec 2010 通過の知らせがくるのはかなり遅く、10月5日だった。ぶっちゃけ諦めかけていたところへの突然の通過の知らに、深夜 3 時だったにも関わらず思わず声を出して驚いた。
それでも、実装が進むのは遅い。ずっと前からデモを行うための最低限の機能を実装することを目標に安全性の大部分を切り捨てたにも関わらず、ライブデモを PacSec 会場で行うことは絶望的という状況。…ならライブデモなしで十分面白くしようと、プレゼンはそれなりに凝らして作った。しかし東京に出発するまでに英語版の方を完成させることができず、AVTokyo 終了後から翻訳を徹夜でやるというスケジュール的に厳しいモノとなった。(誰だよライブデモさえなければ余裕とか言ってたのは ←お前だ)
(続く ― 次は AVTokyo 当日〜 PacSec 前日まで。)