つくりながら学ぶ! Python セキュリティプログラミング

ツクリナガラマナブ パイソンセキュリティプログラミング

つくりながら学ぶ! Python セキュリティプログラミングの表紙
ネットワーク
著者:
森幹太 / 坂井弘亮、SecHack365(モリカンタ / サカイヒロアキ セックハックサンロクゴ)
出版社:
マイナビ出版
出版日:
2019年02月27日頃
ISBN:
9784839968502
在庫:
在庫あり
0
中級者向け
Pythonセキュリティ暗号ネットワーク攻撃手法防御技術ファジングサンドボックス情報セキュリティプログラミング

なぜ注目されているか

総合223位 ↓ 3 ランクダウン 言及 8 件
言及数
327位
01120222023202420252026

書籍紹介

本書は、広範な「情報セキュリティ」という分野について、基礎的な部分を一通り網羅して学べるようにした本です。既存のツールやソフトの使い方を紹介するのではなく、できるだけ自分の手を動かして理解しながら読み進めていく形式にしました。具体的には、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 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: