2024年5月6日〜9日、ベルリンで開催された OffensiveCon 2024 のトレーニング 「Windows Internals for Security Engineers(WISE)」 を受講しました。講師は Yarden Shafir さんです。
公式ページ:Windows Internals for Security Engineers(OffensiveCon 2024)
トレーニングの内容は NDA の対象なので、具体的な攻撃手法や演習の詳細には触れません。この記事は「4日間でどんな景色が見えるようになったか」という感想です。
ひとことで言うと
「Windows を、ブラックボックスではなく『仕組みの集合』として見られるようになった4日間」でした。
これまでも Windows を触る仕事はしていましたが、カーネルの中で何が起きているかは、ブログや書籍の断片的な知識をつなぎ合わせて想像するしかありませんでした。このトレーニングでは、その断片が一本の線でつながっていく感覚がありました。
WinDbg が「読む道具」から「問いを投げる道具」に変わった
初日はほぼ丸一日 WinDbg に使いました。正直、最初は「デバッガの使い方に一日?」と思っていましたが、終わってみればこれが4日間すべての土台でした。
デバッガのデータモデルを使うと、カーネルのメモリを「データベース」のように扱えます。プロセスやスレッド、ハンドルの集合を条件で絞り込み、必要な項目だけを表で眺められる。さらにスクリプトで拡張すれば、自分だけの調査ツールを作り込めます。
この体験で、カーネルデバッグへの気持ちが変わりました。以前は「構造体を一つずつダンプして目で追う」作業だったのが、「仮説を立てて、システム全体に問いを投げる」作業になりました。
セキュリティは「層」でできている
2日目以降は、ブートからハイパーバイザー、カーネル、ユーザーモードまで、信頼がどう積み上げられていくかを順に見ていきました。
特に印象的だったのは、どの防御機能も単独では完璧ではないと繰り返し強調されていたことです。一つひとつの機能について「何を守るために作られたか」「何は守らないのか」をセットで理解できたのが大きな収穫でした。以前は機能名だけを知っていて「有効にすれば安全」という程度でしたが、今は「この機能は、この層への、この種類の脅威に対するもの」と位置づけて考えられます。
歴史と互換性を知らないと、今の Windows は理解できない
「なぜこうなっているのか」という歴史の話がとても多く、そこが一番面白かったかもしれません。16ビット時代の名残が今の設計に残っていること、別目的で生まれた仕組みが後にセキュリティ機能として使われるようになったこと、「互換性を壊さない」という方針が設計や既定値にどう影響しているか。
技術的負債がなぜ生まれ、なぜ今も残るのかを知ると、攻撃面が「なぜそこにあるのか」がすっと理解できました。脆弱性は偶然ではなく、歴史的経緯の結果として生まれる。そう実感できたのはこの講義ならではの体験です。
カーネルの「地図」が手に入った
3〜4日目は Executive の主要コンポーネントを一気に見ていきました。情報量は圧倒的で、その場ですべてを消化できたとは言えません。それでも、ユーザーモードとカーネルモードの境界で何が起きているか、プロセス同士がどんな信頼関係のもとでやり取りしているか、どのコンポーネントが古く複雑で注目されにくいか——そうしたカーネルの「地図」を手に入れられたのは大きかったです。
AWE(OSEE)の勉強にすごく役立った
一つ確かに言えるのは、このトレーニングが AWE(Advanced Windows Exploitation)/ OSEE の勉強にすごく役立ったことです。
AWE を進めていると「この手順はなぜこうなのか」「なぜこの制約があるのか」が分からないまま手を動かしがちです。WISE でカーネルや CPU、ミティゲーションの仕組みを根本から学んでいたおかげで、そうした場面を背景から理解できました。
- 手順を暗記するのではなく「なぜそうなるのか」から理解できる
- 詰まったとき、どの層のどの仕組みが関係しているか当たりをつけて調べられる
- WinDbg で、自分の理解が正しいかをその場で確かめられる
WISE はエクスプロイト開発のクラスではありません。それでも、エクスプロイトを学ぶための「土台」としてはこれ以上なく相性が良かったと感じています。
これから受講する人へ
- WinDbg に事前に少し触れておくと初日の吸収率がまったく違います。
- 完璧に理解しようとしなくて大丈夫。まず地図を手に入れ、あとで一つずつ深掘りすれば十分です。
- 講義中に出てきた公開資料やブログは必ずメモしておくと、最高の復習教材になります。
おわりに
このトレーニングで得た一番のものは、個々の知識よりも、「Windows の挙動に疑問を持ったら、自分の手で中を確かめられる」という感覚と自信でした。「誰かがそう書いていたから」ではなく「デバッガで見たらこうなっていた」と言える。セキュリティエンジニアにとって、それは何より強い武器だと思います。

