はじめて学ぶバイナリ解析 不正なコードからコンピュータを守るサイバーセキュリティ技術
1,760円 (1,600円+税)
関連サイト
本書の関連ページが用意されています。
内容紹介
近年、総務省や経済産業省では、サイバーセキュリティ人材育成を社会的な課題として重要施策の一環として取り扱っています。しかし、「セキュリティの基本的な解説書」が、英語・国語のような基礎的な科目と比較して、現状十分に揃っていません。そこで、まずはセキュリティの基礎技術であるバイナリの入門的な内容をまとめました。
バイナリ解析が直感的に理解しにくいことを考慮し、プログラミングに詳しくない大学1・2年生や新社会人でも理解できるよう、各章での説明はできるだけやさしい表現を用いました。他方、深い技術的な内容はそれほど取り上げていません。
また、基礎理論の習得だけではなく、自ら演習をすることで、より理解を深める点を重視しています。演習の題材では、バッファオーバーフローと呼ばれる脆弱性(セキュリティホール)を取り上げます。その問題を解く演習により、本書の構成を実行ファイルの解析であるバイナリ解析技術の基礎を得られるようにしています。
本書の目的は、バイナリ解析の基本を理解していただくことです。高度な専門書を読むための前提知識を取得する入門者向けであり、コンピュータが動作する基盤となる原理や仕組みに読者の方々が興味を持つ端緒になれば幸いです。
書誌情報
- 著者: 小林 佐保, 岡田 怜士, 浅部 佑, 満永 拓邦
- 発行日: 2020-02-21 (紙書籍版発行日: 2020-02-21)
- 最終更新日: 2020-02-21
- バージョン: 1.0.0
- ページ数: 178ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス NextPublishing
対象読者
CTF,仮想マシン,仮想環境,VMware,Ubuntu,VirtualBox,脆弱性,バッファオーバーフロー,アセンブラ,アセンブル,アセンブリ言語,コンパイラ,コンパイル,Python,スタック,システムコール,ASCIIコード,リターンアドレス,C言語,シェルコードに興味がある人
著者について
小林 佐保
千葉大学大学院融合理工学府数学情報科学専攻。2016年、ハワイ大学との交換留学協定プログラムにてオートマトンを研究。2017年、千葉大学セキュリティバグハンティングコンテスト最優秀賞と千葉大学理学部後援会長賞を受賞。2018年、トビタテ日本代表プログラムにてシンガポール国立大学で論理学を研究。2018年、GoogleSWEインターンにて機械学習によるデータ解析業務を行った。
岡田 怜士
東京大学工学部計数工学科所属。2016年、東京大学理科1類に入学。東京大学情報学環セキュア寄付講座主催のサイバーセキュリティトレーニング参加をきっかけにセキュリティ技術に興味を持つ。その後、東京大学情報学環で受託している情報処理推進機構産業サイバーセキュリティセンターの人材育成事業の補助アルバイトとして従事し、セキュリティ技術を日々磨いている。
浅部 佑
東京大学工学部電子情報工学科所属。東京大学情報学環セキュア寄付講座主催のプログラムに参加後、セキュリティの奥深さに惹かれ、研究や人材育成事業に携わり始める。アプリ・Webサービス等の開発の経験を活かし、2017年、株式会社Graciaを共同創業し、取締役CTOとしてECサービスをフルスクラッチで作成する。現在は勉学と新しい技術の習得に幅広く励んでいる。
満永 拓邦
東京大学大学院情報学環特任准教授。京都大学情報学研究科修了後、民間企業のセキュリティソリューション事業部にて、ペネトレーションテストやセキュリティインシデント対応などの業務を行う。2011年、JPCERT/CC早期警戒グループに着任し、標的型攻撃などサイバー攻撃に関する分析等に従事する。2015年、東京大学情報学環セキュア情報化社会研究寄付講座特任准教授として着任し、サイバー攻撃防御手法の研究やセキュリティ人材育成、ブロックチェーンなどの研究を行う。『サイバー攻撃からビジネスを守る』や『CSIRT』(ともにNTT出版)等の書籍の共著・監修も行っている。
目次
はじめに
0章 セットアップ
- 0-1 仮想マシンのダウンロード/0-2 Windowsを使っている場合 など
1章 サイバーセキュリティと脆弱性
- 1-1 サイバー攻撃の動向/1-2 脆弱性とは など
2章 アセンブラとコンピュータアーキテクチャ
- 2-1 バイナリ/2-2 CPUとメモリ など
3章 ASCIIコードとバイトオーダ
- 3-1 ビットとバイトと16進数/3-2 ASCIIコード など
4章 スタック領域
- 4-1 メモリとスタック領域/4-2 スタック など
5章 レジスタと分岐
- 5-1 レジスタについて/5-2 ツール紹介:gdb-peda 逆アセンブル結果の表示 など
6章 アセンブリを書こう
- 6-1 コマンドの基本構造と記法/6-2 アセンブリ言語の文法 など
7章 gdb-pedaを用いたプログラムの解析
- 7-1 4章の復習/7-2 ツール紹介:gdb-pedaのスタック構造の見方 など
8章 リターンアドレスの書き換え
- 8-1 関数の呼び出し/8-2 関数呼び出しの実装 など
9章 Return to libc
- 9-1 shコマンドとsystem関数/9-2 実行ファイルの構成 など
10章 シェルコードの送信
- 10-1 シェルコード/10-2 演習:シェルコードの作成 など
11章 バッファオーバーフローに対する防御機能
- 11-1 Stack Smash Protection - canary(カナリア)の挿入/11-2 実行保護 - Executable Space Protection,NX Bit など