サイバーセキュリティプログラミング 第 2 版
サイバーセキュリティプログラミングダイニハン
Python で学ぶハッカーの思考
- 著者:
- Justin Seitz / Tim Arnold / 萬谷 暢崇 / 新井 悠 / 加唐 寛征 / 村上 涼(ジャスティン サイツ / ティム アーノルド / マンタニ ノブタカ / アライ ユウ / カカラ ヒロユキ / ムラカミ リョウ)
- 出版社:
- オライリー・ジャパン
- 出版日:
- 2022年04月13日頃
- ISBN:
- 9784873119731
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
情報セキュリティ技術者必須のテクニックをマスターする!
情報セキュリティ技術者の必携書が Python 3 に対応して大幅改訂。本書では Python を使ったサイバー攻撃手法について解説します。基本的な通信プログラムから Proxy や Raw データ、Web アプリケーションへの攻撃やトロイの木馬の動作、そしてフォレンジック手法や OSINT まで、攻撃者の実践手法から防御方法を学びます。日本語版オリジナルの巻末付録として「Slack ボットを通じた命令の送受信」「OpenDir のダンプツール」「Twitter IoC クローラー」を追加収録しました。
技書の森解説
『サイバーセキュリティプログラミング 第 2 版』 (Justin Seitz、Tim Arnold 著、萬谷 暢崇 監訳、新井 悠、加唐 寛征、村上 涼 訳、オライリー・ジャパン、2022 年 4 月刊) は、Python を使ったサイバー攻撃手法を題材に、通信プログラムの作成から情報の持ち出し、権限昇格までを自分の手で組み立てながら学ぶ書籍です。副題は Python で学ぶハッカーの思考、原書は Black Hat Python, 2nd edition で、版元の紹介文では、情報セキュリティ技術者の必携書が Python 3 に対応して大幅改訂されたものと説明されています。攻撃側の道具立てを実装として読み解き、防御側の判断材料に変えたい人に向いた一冊です。
全 11 章の構成、通信プログラムの基礎からフォレンジック手法の転用まで
構成は 1 章から始まる全 11 章に、日本語版オリジナルの巻末付録 3 本が続きます。1 章は Kali Linux のインストールと Python3 のセットアップという学習環境の準備、2 章は TCP クライアント、UDP クライアント、TCP サーバー、netcat の代替、TCP プロキシ、Paramiko を用いた SSH 通信プログラムと、通信プログラムの作成の基礎を扱います。3 章はネットワークの raw ソケットと盗聴で、Windows と Linux におけるパケット盗聴や IP ヘッダーパーサーの作成まで踏み込み、4 章は Scapy によるネットワークの掌握、5 章は Web サーバーへの攻撃、6 章は Burp Proxy の拡張へと対象を広げます。後半は 7 章の GitHub を通じた指令の送受信、8 章の Windows でマルウェアが行う活動、9 章の情報の持ち出し、10 章の Windows における権限昇格と続き、11 章はフォレンジック手法の攻撃への転用で、Volatility のプラグインや volshell のインタフェースを扱います。巻末には付録 A の Slack ボットを通じた命令の送受信、付録 B の OpenDir のダンプツール、付録 C の Twitter IoC クローラーが収録されています。
攻撃側の実装を追うことが防御の設計に効く理由
セキュリティ学習でつまずきやすいのは、攻撃の名前と対策の名前を対応づけて覚えても、その対策がどこまで効くのかを自分で判断できない点です。パケットの盗聴やプロキシの挿入、プロセスへのコードインジェクションといった動作をコードとして組み立てると、通信のどの層で何が観測できるのか、どの権限があれば何が成立してしまうのかが具体的な手触りとして残ります。この感覚は、ログの取得箇所を決めるときや、権限を 最小権限 に寄せる判断をするとき、検知ルールの取りこぼしを見積もるときに直接効いてきます。Python はソケットや struct、ctypes といった標準の機能と Scapy のようなライブラリを組み合わせられるため、低レイヤーの挙動を短いコードで観察でき、こうした学習の道具として扱いやすい言語です。
Python と TCP/IP の前提知識、許可された環境で学ぶ条件
読み進めるには、Python の文法と標準ライブラリの基礎、そして TCP/IP の階層と主要なプロトコルの役割を理解していることが前提になります。1 章で環境構築を扱うとはいえプログラミング自体の入門書ではないため、変数や関数、例外処理の扱いに不安があるなら、Python の入門書 を先に一冊通しておくほうが速く進めます。また 8 章と 10 章は Windows を対象とし、3 章では Windows と Linux の双方を扱うため、両方の環境で基本操作を経験していると理解が早くなります。そしてもっとも重要な前提は、扱う手法を試す場所です。自分が管理する環境、あるいは明示的に許可を得た検証環境の外でこれらを動かせば関係する法令に触れるおそれがあり、本書は攻撃の代行を助ける本ではなく、防御と検証のために攻撃側の挙動を理解する本として読む必要があります。
一方で、組織的なセキュリティ管理や規格への準拠、脅威モデリングから統制の設計へ落とし込む方法論を求める人には、本書は目的が合いません。扱うのは攻撃側の道具立てとその実装であり、方針や体制の設計は範囲外です。セキュリティ分野の技術書の中から自分の課題に合う一冊を選び直したい場合は、セキュリティ技術書の選び方 を先に眺めておくと回り道を減らせます。
裏返せば、脆弱性診断やインシデント対応、検知ルールの開発に関わる人、あるいは自社サービスに向けられる攻撃を想像だけで語りたくない開発者にとって、攻撃側の実装を一通り自分の手で追える本書は、投じた時間の回収が早い一冊です。許可された検証環境を用意し、1 章から順に手を動かしていけば、守る側の判断は確実に具体的になります。
言及した記事 (11 件)
Pythonにまつわる3タイプ別オススメ書籍
♡ 133Python, 画像処理, 機械学習, schooペンテスター勉強方法 ロードマップ
♡ 37情報セキュリティ, サイバー攻撃, サイバーセキュリティ, 脆弱性診断, ペネトレーションテスト【勉強メモ】『サイバーセキュリティプログラミング 第2版 ーPythonで学ぶハッカーの思考』3.4節
♡ 1python, security, socket【勉強メモ】『サイバーセキュリティプログラミング 第2版 ーPythonで学ぶハッカーの思考』3.1~3.3節
♡ 0python, security, socket【勉強メモ】『サイバーセキュリティプログラミング 第2版 ーPythonで学ぶハッカーの思考』2.8節
♡ 0python, security, socket, paramiko【勉強メモ】『サイバーセキュリティプログラミング 第2版 ーPythonで学ぶハッカーの思考』2.6~2.7節
♡ 0python, security, socket, paramiko【勉強メモ】『サイバーセキュリティプログラミング 第2版 ーPythonで学ぶハッカーの思考』2.1~2.5節
♡ 0python, security, socket『サイバーセキュリティプログラミング第2版』の読書メモ (4)
♡ 0Python, Security, Python3, サイバーセキュリティプログラミング『サイバーセキュリティプログラミング第2版』の読書メモ (3)
♡ 0Python, Security, Python3, サイバーセキュリティプログラミング『サイバーセキュリティプログラミング第2版』の読書メモ (2)
♡ 0Python, Security, Python3, サイバーセキュリティプログラミング
この本に興味がある方におすすめ
関連する本
関連記事
セキュリティ本ガイド - Web 開発者が読むべき技術書の選び方
Web セキュリティの基礎から実践まで学べる技術書の選び方マトリクスと、読了後にやるべき 3 つのアクションを紹介します。
AWS 本の選び方 - 全体像 / 構築 / 設計 / 運用 / セキュリティの 5 視点
AWS を学ぶ技術書の選び方を「全体像 / 構築 / 設計 / 運用 / セキュリティ」の 5 視点で整理。公式ドキュメントと本の役割分担、資格対策書の位置づけまで、2026 年 8 月時点の定番書で AWS 独学のルートを解説します。
バグを生むのは知識不足ではなく想像力不足である
バグの多くは、コードを書いた時点で「こういうケースもありうる」と想像できなかったことが原因です。想像力を鍛える読書法と、エッジケースへの感度を高める方法を解説します。