つくりながら学ぶ! Python セキュリティプログラミング
ツクリナガラマナブ パイソンセキュリティプログラミング
- 著者:
- 森幹太 / 坂井弘亮、SecHack365(モリカンタ / サカイヒロアキ セックハックサンロクゴ)
- 出版社:
- マイナビ出版
- 出版日:
- 2019年02月27日頃
- ISBN:
- 9784839968502
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
本書は、広範な「情報セキュリティ」という分野について、基礎的な部分を一通り網羅して学べるようにした本です。既存のツールやソフトの使い方を紹介するのではなく、できるだけ自分の手を動かして理解しながら読み進めていく形式にしました。具体的には、Web、暗号、ネットワークなど、情報セキュリティにおいて取り扱われることの多いトピックについて、プログラミング言語 Python による実装を交えながら、攻撃手法や防御技術の原理を理解していきます。本書で攻撃者の手の内を知ることができ、またそれを防御に生かすという意味で非常に役に立つでしょう
世の中には既に便利なツールやライブラリがあるのに、「ファジングツールの自作」や「簡易サンドボックスの実装」をあえて行う目的は、その原理をより深く理解するためです。このことがきっかけとなって、情報セキュリティをさらに深く学んだり、「これは面白い!」と感じられる興味分野を見つけるきっかけになってくれたら幸いです。
本書を読み終えたならば、新しい技術を創造できるエンジニアになるための一歩を踏み出したといえるでしょう。
技書の森解説
『つくりながら学ぶ! Python セキュリティプログラミング』 (森 幹太 著、坂井 弘亮 / SecHack365 監修、マイナビ出版、2019 年 2 月刊) は、情報セキュリティの基礎を Web、暗号、ネットワークなどの分野ごとに、Python で実際にコードを書きながら学ぶ入門書です。版元の紹介文は、既存のツールやソフトの使い方を紹介するのではなく、自分の手を動かして攻撃手法と防御技術の原理を理解していく形式だと説明しています。監修に名を連ねる SecHack365 は情報通信研究機構 (NICT) が実施する若手のセキュリティ人材育成の取り組みで、国立国会図書館の書誌にも同機構が関与者として記録されています。
0 章の環境構築から 9 章の総合演習まで、全 10 章の構成
目次は 0 章から 9 章までの全 10 章です。0 章で Windows、macOS、Linux それぞれの環境を整え、1 章「Python チュートリアル」で変数、リスト、関数、クラス、フロー制御、コマンドライン引数までを一通り確認します。2 章「基礎知識」では OSI 参照モデル、IP、TCP、HTTP といったネットワークの基礎と、本書で使う scapy、bottle、Numpy の 3 つのライブラリを紹介します。ここまでが準備で、3 章「ネットワークセキュリティ」以降が本題です。3 章はポートスキャンとステルススキャン、Ping スキャンと ARP スキャンを、4 章「Web セキュリティ」は XSS の 3 種類、CSRF、クリックジャッキングを扱い、CSRF の節では脆弱な Web サイトと罠サイトを自分で作って攻撃を検証し、対策までを確かめる流れになっています。
暗号、ファジング、無線、仮想化を実装で理解する章
5 章「暗号」は共通鍵暗号として RC4 と AES の実装と AES の暗号化モードを、公開鍵暗号として RSA 暗号の実装とそれに対する解読手法を扱います。6 章「ファジング」はファズの生成方法と対象プラットフォームによる種類分けを整理したうえで、コマンドラインのプログラムと Web アプリケーションに対する簡易ファザーを実装します。7 章「無線技術とセキュリティ」は無線 LAN、Bluetooth、LPWA、RFID を概観し、自分で構築したアクセスポイントを流れるパケットを監視する検証を行います。8 章「仮想化技術とセキュリティ」はハイパーバイザ、コンテナ、サンドボックスの仕組みと仮想環境の判別を説明し、Python からシステムコールを呼び出して監視し、システムファイルへのアクセスを制限する簡易サンドボックスの自作まで進みます。9 章「総合演習」は情報収集、任意コード実行、フラグの取得という段階をたどる問題形式で、CTF に近い形で前の章の知識をつなぎます。
暗号を自分で実装してみる価値は、アルゴリズムの手順そのものより、どこで安全性が崩れるかを体感できる点にあります。RC4 や RSA のように仕組みが比較的短いコードで書けるものは、鍵の長さや乱数、パディングの扱いを少し変えるだけで解読が現実的になることを確かめやすく、実務で暗号ライブラリを自作せず検証済みの実装を使うべき理由も腹に落ちます。ファジングも同様で、既製のファザーを動かすだけでは入力の生成と異常の検知がどう分担されているかが見えにくいため、最小限の実装を一度書いておくと、本格的なツールの設定項目の意味が読めるようになります。
Python の初学者から入れる幅と、深さを求める人への注意
1 章で Python の文法を一通り確認するため、言語経験が浅い段階でも読み始められます。2 章でネットワークの基礎も押さえるので、TCP/IP を体系的に学んだことがない読者にも足場があります。一方で、分野を広く一巡りする設計のため、各章は原理をつかむための入口にとどまり、たとえば Web アプリケーションの脆弱性診断を業務水準で身につけたい人や、暗号理論を数学から学びたい人には、それぞれの専門書が別に必要です。2019 年 2 月時点の環境を前提とした本でもあるので、ライブラリの版やセットアップの手順は手元の環境に合わせて読み替える場面があると考えておくのが安全です。演習は自分で用意した環境の中で行う前提であり、許可のないシステムに同じ操作を向けることはできません。
セキュリティのどの分野に進むかをまだ決めていない学生や若手エンジニアが、ネットワーク、Web、暗号、ファジング、仮想化を一冊で手を動かしながら試し、興味の持てる分野を見つけるには、本書の守備範囲の広さがそのまま利点になります。分野ごとの専門書を選ぶ手がかりは セキュリティ本の選び方 にまとめています。まず 0 章で環境を整え、関心のある章から実装を始めてみてください。
言及した記事 (8 件)
【保存版】データサイエンティスト転職を決めるポートフォリオのガイドライン【書籍化決定】
♡ 1335機械学習, MachineLearning, データ分析, データサイエンス, GoogleCloud【生成AIの学習ロードマップ】最近やたら羽振りのいいやつが生成AIを極めてた件について。
♡ 930Python, AI, 生成AI, ChatGPT2024年版機械学習・データ分析の必須10冊+ガチ90冊+Next5冊=105冊
♡ 868本, 機械学習, データ分析, データサイエンスPythonにまつわる3タイプ別オススメ書籍
♡ 133Python, 画像処理, 機械学習, schooWeb系エンジニア新卒1年目が入社半年後に感じた、初学者エンジニアに必要なスキルまとめ
♡ 71PHP, Web, 初心者, バックエンド, 新卒エンジニア34歳未経験でWebエンジニアに転職した話(受託開発・地方都市・週3〜4リモート)
♡ 43初心者, ポエム, 転職, 未経験エンジニア, 実務未経験4ヶ月にわたる社内ソフトウェア技術者研修で学んだこと(2020年11月〜2021年2月)
♡ 10Python, C, 初心者向け, 研修, コンピューターサイエンス何もIT知らない初心者は文部科学省の授業動画を見て勉強してみませんか?
♡ 6勉強, IT, 情報, 高校生, オンライン学習
この本に興味がある方におすすめ
関連する本
関連記事
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。
セキュリティ本ガイド - Web 開発者が読むべき技術書の選び方
Web セキュリティの基礎から実践まで学べる技術書の選び方マトリクスと、読了後にやるべき 3 つのアクションを紹介します。
ChatGPT に聞けば済む時代に、あえて本を開く理由
生成 AI で何でも聞ける時代に、技術書を読む意味はあるのか。AI の回答と書籍の知識の決定的な違いを掘り下げ、両者の使い分けを提案します。