
はじめに
Software Design 2026年4月号を以って『はじめてのオフェンシブセキュリティ』の連載が終了しました。2025年7月号から連載を開始したため、全10回(10か月)分寄稿したことになります。
『Software Design 2026年4月号』は、今日(3月18日)発売です!
— SoftwareDesign (@gihyosd) 2026年3月18日
●第1特集: PostgreSQL 18に学ぶデータベース高速化機能
●第2特集: MCPサーバー開発成功の秘訣
紙版のほか、電子版(PDF+EPUBリフローのセット、Kindle)もあります。… pic.twitter.com/g4asOWJ6S9
本稿は『はじめてのオフェンシブセキュリティ』の連載内容を振り返りながら、誌面の都合上書けなかった筆者の狙いや想いなどについてまとめたものとなっております。インデックスを見て Software Design の特定のバックナンバーだけを読みたい方などの参考になれば幸いです。
連載のきっかけとテーマ
筆者は以前にも Software Design で脅威インテリジェンスをテーマに連載を経験した経験があるのですが、そのときのご縁で再び声をかけていただきました。今回のテーマは『近年注目されているオフェンシブセキュリティについて、Metasploit などを活用しながらハンズオン形式で初学者がスキルを獲得できるような内容』とのことでしたので、筆者としては『連載を通して基本的な Boot2Root チャレンジが一気通貫で攻略できるようになること』をゴールに設定して連載をデザインしました。結果として連載期間は10か月と、前回の連載期間6か月と比較してほぼ倍の期間となりました。正直めちゃくちゃ疲れましたし一瞬で10か月が過ぎ去って驚いています。
また、今回の連載では新たな試みとして、ハンズオン環境に NFLabs. さんが提供している実践型サイバーセキュリティ学習システム『Purple Flair』*1のベータテスト版を使用させていただくとともに、連載の監修を行っていただきました。
info.purple-flair.nflabs.jp
Purple Flair を活用する大きなメリットは、読者の方々がハンズオンの環境を一切用意する必要がないという点です。従来まではペネトレーションテストのハンズオンを行う場合、VMWare などの仮想化ソフトウェアを導入したうえで Kali Linux といったペネトレーションテスト用の環境を用意する必要がありました。初級者以上の方にとっては当たり前のことかもしれませんが、初学者にとってはまずこのハードルを越えることが困難です。
それに加えて、ペネトレーションテストの学習をする際はエクスプロイトコードを閲覧したり必要なツールをWebサイトからダウンロードする場面も求められます。仮想化ソフトウェアを利用していたとしても、企業や大学の研究室などでそれらのリソースにアクセスした際にネットワーク境界の機器やEDRでアラートがあがるという問題もありました。
Purple Flair はペネトレーションテストのターゲットとなる環境に加えてペネトレーションテストを実施するための Kali Linux 環境も別途用意してくれるため、これらの障害をすべて取り除けるうえに Kali Linux の操作自体はWebブラウザから行うことができます。これは初学者にとって参入障壁を下げる存在となったうえに、環境差分も生じにくいため「なんかわからないけど動かない」といった事態も回避できました。ハンズオン環境として一般では知られていないものの導入と紹介を行ったので世間からの反応が怖かったですが、インターネットからは簡単に学べることに対するポジティブな意見が見られたので、個人的にはいいアプローチだったのではないかと思います。
連載のアジェンダとキーワード
連載の概要は以下となります。ざっくり分けますと第1回が理論編、第2回から第8回までがBoot2Root基本編、第9回と第10回が応用編です。
| 回数 | タイトル | 概要 |
|---|---|---|
| 第1回 | ようこそ、オフェンシブセキュリティの世界へ! | なぜ『オフェンシブセキュリティ』が求められているかの説明や、本連載で扱う"オフェンシブ"のスコープについて定義しました。また、Shodan を利用して世の中の脆弱な機器を探索してみました。 |
| 第2回 | ペネトレーションテストに入門してみよう! | Boot2Root チャレンジについての説明と、ペネトレーションテストの基本である列挙(Reconnaissance) について nmap の出力結果を見ながら学んでいただきました。 |
| 第3回 | Metasploit を使ってサーバに侵入してみよう! | 第2回の列挙で発見した脆弱性に対して、著名な Post-Exploitation tool である Metasploit Framework を使用して侵入してもらう方法を紹介しました。 |
| 第4回 | インターネットからエクスプロイトコードを探して使ってみよう! | エクスプロイトコードを公開情報から収集して環境に合わせてカスタマイズする方法や、Boot2Root で多用する Reverse Shell の原理とその確立方法について紹介しました。 |
| 第5回 | 特権アカウントになってターゲットを掌握しよう!(Linux編) | linPEAS を用いて権限昇格につながる脆弱性を発見し、エクスプロイトまでつなげる手法まで紹介しました。 |
| 第6回 | Boot2Root に挑戦してみよう! (Linux編) | 第5回までのテクニックを駆使して、Linux OS のマシンのBoot2Rootチャレンジを一気通貫で攻略してもらいました。(これができるようになるまでが一つの登竜門だと思います。) |
| 第7回 | 権限昇格に挑戦してみよう! (Windows 編) | Linux OS のマシンとは異なるWindows OS固有の権限昇格方法や Reverse Shell の作成方法について紹介しました。 |
| 第8回 | Boot2Root に挑戦してみよう! (Windows編) | MSSQL やトークンといった、Windows OS固有のテクニックが求められるマシンでの Boot2Root チャレンジに挑戦してもらいました。 |
| 第9回 | 内部ネットワークを掌握しよう | Mimikatz, SOCKS Proxy, Metasploit Framework を駆使して、最初に侵害したマシンを起点にドメインコントローラまで横展開をする方法について紹介しました。(最も難易度が高いです) |
| 第10回 | アンチウイルスソフトを掻い潜ってみよう! | Microsoft Defender の検知を回避するためのエクスプロイトコード作成方法について紹介しました。 |
正直なところ、テーマ段階で連載内容を「初学者向け」に設定しておきながら、最後の方に横展開やEvasionまでスコープに含めるのは少々やりすぎだったかもしれないと思っております。ただその一方で Mimikatz でクレデンシャルを窃取したり Defender 回避のためのスクリプトを修正するような体験も一度はやっていただけると Boot2Root の楽しさを実感できると思うので、内容に入れてしまいました。特にアンチウイルスソフトやEDRの回避はこの時代にペネトレーションテストをやろうとするとまず避けては通れない内容(だけど HackTheBox などではあまり取り上げられない)なので、きちんと紹介したかったという気持ちもあります。 *2 初学者にはたいへん申し訳ありませんが、後半の内容は Boot2Root に慣れてきた後にいつか思い出して読んでみてください。
執筆を通しての苦労
以前の連載終了後の後語りでも「たいへんだった(小学生並みの感想)」という内容を書いた気がするのですが、今回は今回でまた別のたいへんさを感じたので備忘録として書き残します。
8ページの限界
Software Design の1回あたりの連載のページ数は、8ページが目安です。分量に換算すると約1万字前後となります。1万字と聞くと「多くない?」と感じる方もいらっしゃるかもしれませんが、実際には画像やスクリプト、コマンドの実行結果も含まれるため実際の文章量は2/3程度にまで限定されます。これがかなり厳しかったです。「ツールの実行後に出力される結果のどこに着目するか」「成功失敗をどのようなコマンドで判断するか」「何が見えていたら成功で何が見えなかったら失敗か」など、ペネトレーションテストで用いる細かいテクニックなどを紹介していくと、ターミナルの出力結果だけですぐにページが埋まってしまいます。Metasploit Framework の使い方の回は特に顕著で、本当は使い方を説明して初期侵入まで進みたいのにオプションの設定や使い方などを丁寧に説明するとそれだけで8ページを使い切る勢いになりました。Boot2Root の回も同様に、一回の連載で一気通貫の内容を丁寧に取り上げることはほぼ不可能です。コードや出力結果まで丁寧に説明することが求められる連載では、「1回で1ツールの紹介」くらいのスコープまでに絞るのが無難だというのが学びでした。
筆者の場合、編集の方に毎回画像や内容を削って圧縮してもらったり、1ページ増やしてもらったりすることでなんとか対応していただきました。誠にありがとうございました。
AI とは違う付加価値をどこにつけるか
これが連載期間を通して本当に頭を悩ませたポイントでした。おそらく初学者向けの内容を書いたり紹介したりしている人の多くは、同じ事に頭を悩ませているのではないかなと思います。実際に本連載の内容も著名なAIサービスに対して問い合わせたり解説を求めたりしたところ、ほぼ似たような回答が返ってくるため「解説なんてなくてもAIに聞けばいいんじゃない?」と言われたらそれはほぼその通りなのかもしれません。AI エージェントに命令をすれば、連載で取り上げた Boot2Root チャレンジもほぼ自動で攻略してしまうでしょう。しかしながら、AI も万能ではありません。連載よりも難しいエクスプロイトに対して説明を促しても参照情報が少なければ全く違う解説をします。そのため、筆者はなるべく「AI では解決ができなかった課題が立ちふさがった場合」に自力で仮説検証ができるような考え方を身に着けられるよう心掛けながら執筆をしていました。具体的には以下のような点を意識してみました。
- ペネトレーションテスト/Boot2Root の体系的な知識や考え方 (単発の解決策ではなく)
- ツールが想定したとおりの動きをしなかった場合、何を疑ってどう確かめるかといった言語化があまりなされていない経験則
- エクスプロイトの動作概要図といったハルシネーションが発生していた領域の説明
色々書きましたが、筆者は決して AI 否定派というわけではありません。筆者が大切だと思っていることは「自分の手で動かして、確かめて、納得するという経験」であって、これをAIのサポートを介しながら体験できていれば御の字です。
また始まる、常に締め切りに追われる生活
1か月スパンの連載は、余裕があるように見えて実はかなりカツカツです。これは『セキュリティコンサルタントの日誌から』の連載時のブログを読んでいただいても確認できるかと思います。
www.scientia-security.org
筆者もかつて連載したときはプライベートの時間はほぼ全て連載のための記事執筆と修正と技術検証に充てていて、終わった直後は『もう連載はいいかな.....』などと考えていましたが、人間は喉元を過ぎれば熱さを忘れるものです。そして2~3年では習慣は大きく変わりません。再び『技術検証 → 執筆 → レビュー → 校正 → 入稿までの修正 → 技術検証』を締め切りドリブンでループする生活が始まりました。特に今回は前回と異なり監修元の NFLabs. さんのレビューを入れていただいたので、締め切りは早めでかつ修正の回数も多くなり絵にかいたような自転車操業をしていました。
筆者は連載期間中の11月に虫垂炎となって1週間強制入院イベントが発生したのですが、このときが一番原稿が落ちるかどうかピンチの期間でした。入院中はスマホ片手にずっと文章の構成と検証項目を洗い出していて、退院と同時に昼間は仕事への復帰、夜中に病院で蓄えたコマンドを一気に打ち続けながら全体の骨組み作成といった気が気ではない作業をしていました。これでも原稿は落ちなかったので人間何とかなるものだなと思いましたが、このような間違った成功体験がギリギリの生活を作っていると考えると何とも言えません、ハイ。
おわりに
人生2回目の連載を振り返りました。やはり長期連載というのは体力的にもメンタル的にも消耗するもので、ようやく一息つける気がします。本連載の執筆にあたり編集、デザイン、校正様々な面からサポートしていただいた技術評論社様にはたいへんお世話になりました。毎回筆者が書くどうしようもない文章と図を修正していただき、心からの御礼を申し上げます。そして、技術監修および Purple Flair を提供していただいた NFLabs. 様、本当にありがとうございました。毎回とても丁寧にレビューしていただいてレビューを見た筆者本人が勉強になっていました。
最後になりますが、本連載はセキュリティエンジニアの方以外にとっては過剰すぎる知識だったかもしれません。しかしながら、オフェンシブセキュリティの知識を通して、日頃紹介されるセキュリティ関連ニュースの解像度があがったり、普段運用しているシステムに対する脆弱性への見方がクリアになっていただければ嬉しく思う次第です。 *3
*1:https://info.purple-flair.nflabs.jp/
*2:Evasion するための試行錯誤そのものが楽しいという筆者の個人的な感情も入っております(笑)
*3:これをきっかけにプロのペネトレーションテスターを目指したい! という人がいればそれはそれで嬉しいですが