目次
第1章 なぜ脆弱性は生まれるのか,なぜ攻撃は減らないのか
第1講 攻撃が多いわけ,防御が難しいわけ
- 1.1 これまでのコンピュータへの侵入/攻撃
- [コラム]セキュリティと利便性はトレードオフの関係
- 1.2 標的型攻撃,APT攻撃
- 1.3 標的型攻撃の防御策
- 1.4 根本的な問題は昔から変わらない
第2講 攻撃は自動化され大規模化している
- 2.1 攻撃は日常風景
- 2.2 デフォルト設定をねらう
- 2.3 WordPressへのアクセスを分析してみる
- 2.4 攻撃が失敗していても負荷は上がる
- [コラム]SSHでの接続を制限する
- 2.5 SSHへのブルートフォース攻撃の頻度を見てみる
- 2.6 今もこの瞬間に攻撃されている
第3講 知らない間に攻撃に加担してしまう危険性
- 3.1 DoS攻撃
- [コラム]SYN Flood攻撃
- 3.2 DDoS攻撃
- 3.3 大規模DDoS攻撃の脅威
- 3.4 オープンリゾルバによるDDoS攻撃
- 3.5 NTPサーバのmonlist機能を悪用したDDoS攻撃
- 3.6 UDPとIPアドレス詐称
- 3.7 小さくても大きな意味がある
第4講 普及した機材が悪用されると駆逐するのは難しい
- 4.1 DNSサーバをねらったDDoS攻撃
- 4.2 DNSのしくみ
- 4.3 DNSは障害に強い?
- [コラム]多重性/多様性を持たないDNS運用が招いた結果とは
- 4.4 オープンリゾルバ
- 4.5 これまでのオープンリゾルバ問題
- 4.6 オープンリゾルバを使うDNS水責め攻撃
- 4.7 現状での対策
第5講 ソフトウェアの脆弱性ができるわけ
- 5.1 脆弱性という言葉
- 5.2 ソフトウェアの脆弱性
- 5.3 どの工程で発生するか
- 5.4 どれくらいの頻度で発生するか
- 5.5 ブラックボックステスト
- 5.6 ソフトウェアの脆弱性のインパクトは
- 5.7 セキュリティアップデートをしましょう
第6講 セキュアコーディングの難しさ
- 6.1 バグと脆弱性との境界線
- 6.2 セキュアコーディング
- 6.3 動的メモリアロケーション
- [コラム]mmap()で仮想記憶を利用するときの注意点
- 6.4 動的メモリアロケーションで起こりがちなバグ
- 6.5 動的メモリアロケーションのライフサイクル
- 6.6 動的メモリアロケーションライブラリのバリエーション
- 6.7 セキュアコーディングの本質とは
第7講 ソフトウェアのライフサイクルとセキュリティ
- 7.1 QuickTime Windows版にゼロデイ攻撃の恐れ
- [コラム]当時のQuickTime Windows版の状況
- 7.2 ソフトウェアのライフサイクルを意識する
- 7.3 減価償却資産の耐用年数
- 7.4 アップグレードは攻めの脆弱性対応
第2章 そのセキュリティ技術は安全か
第8講 パスワードは安全な認証方法か
- 8.1 パスワードとは
- 8.2 パスワードの実現方法
- [コラム]PAMとlibpam-cracklib
- 8.3 ひどいパスワード
- 8.4 本来の役目を果たしていないパスワード
- 8.5 適切なパスワードの管理とは
- 8.6 安全なパスワードなのだろうか?
- 8.7 パスワードに代わる認証方法
第9講 Webサービスからのパスワード漏洩に備えよ
- 9.1 パスワードはどのようにクラックされるのか
- 9.2 Ashley Madison顧客情報流出事件
- 9.3 ハッシュ関数の危殆化
- [コラム]MD5が破られた瞬間
- 9.4 Ashley Madisonのパスワードクラック
- 9.5 パスワードシステムに求められること
- 9.6 パスワード向けハッシュ関数に求められること
- 9.7 ユーザに求められること
- 9.8 Webサイトのセキュリティレベルを意識する
第10講 TLS/SSLデジタル署名の落とし穴
- 10.1 人は簡単にだまされる
- 10.2 TLS/SSLによる安全性の確保
- 10.3 デジタル証明書
- 10.4 デジタル署名における疑問点
- 10.5 TLS/SSLは魔法の杖ではない
第11講 SSHが危険にさらされるとき
- 11.1 telnet
- 11.2 SSH
- [コラム]各ディストリビューションのOpenSSHサーバのバージョン
- 11.3 SSHのユーザ認証
- 11.4 SSHから侵入されるケース
- 11.5 SSHをもう一度確認してみよう
第12講 1人の技術者が支えている暗号技術?
- 12.1 暗号技術が保証するもの
- 12.2 暗号方式
- [コラム]登場人物の名前の付け方
- 12.3 GNU Privacy Guard
- 12.4 gnupgはオープンソースの認証基盤
- 12.5 GnuPGプロジェクトが危機的状況!?
第13講 暗号技術の正しい使い方
- 13.1 gnupg
- 13.2 共通鍵暗号方式を使ってみる
- 13.3 公開鍵暗号方式を使ってみる
- [コラム]gpgにエントロピーを供給する方法
- 13.4 すべての人たちのための暗号技術
第3章 今後深刻化するであろう脅威
第14講 国家規模の盗聴
- 14.1 スノーデン事件が意味するもの
- 14.2 NSA
- 14.3 DNIとNSA
- 14.4 PRISM
- 14.5 陰謀論ではない現実
第15講 IoTセキュリティについて考える
- 15.1 Internet of Thingsとは
- 15.2 事件は現場で起こっている
- 15.3 組み込みデバイスでのマルウェア
- 15.4 命に関わりかねない脆弱性
- 15.5 Raspberry Pi
- 15.6 IoT時代への提案
- 15.7 すでに秒読み段階
第16講 家電化した情報機器が持つ情報漏洩の危うさ
- 16.1 NASの個人情報がうっかり公開されていた
- 16.2 情報機器の普及の影に潜む問題
- 16.3 IoT時代のセキュリティ問題
- [コラム]どんなセキュリティの問題が予想されるのか
- 16.4 SHODAN..インターネット接続機器の検索サイト
- 16.5 簡単に得られるサーバなどの情報
- 16.6 多数存在する無防備な機器たち
- 16.7 SHODANは公開されているのが利点でもある
第17講 FBIさえも根絶できないマルウェアと犯罪組織
- 17.1 トロイの木馬とは
- 17.2 Zeus
- 17.3 本格的なサイバー犯罪マルウェア
- [コラム]マネーミュールのシナリオ
- 17.4 Zeusの中心地アメリカ
- 17.5 Gameover ZeuS
第18講 日本に忍び寄るランサムウェアの影
- 18.1 ランサムウェアとは
- 18.2 今どきのランサムウェアの技術
- [コラム]言語の壁
- 18.3 CryptoLocker
- 18.4 CTB-Locker
- 18.5 非暗号ロック系ランサムウェア
- 18.6 初の日本語ランサムウェアの使用者は17才の少年
- 18.7 日本でも蔓延する可能性
第19講 ファームウェアにも入り込むroot kitの脅威
- 19.1 root kitを理解するための準備
- [コラム]初期のUNIX root kitの情報
- 19.2 どのように感染するのか
- 19.3 どうやって隠れるのか
- [コラム]root kit対応にはWindows Defenderオフライン
- 19.4 ソフトウェアだけでは守れない
第20講 BlackEnergyによるリアルな世界への攻撃
- 20.1 物理的な被害をもたらしたマルウェア
- 20.2 ウクライナだけの問題ではない
- 20.3 コンソールを止めれば全体が止まる
- 20.4 産業システムとはいえ,通常のPCと変わらない
- 20.5 電力会社のシステムの脆弱性
- 20.6 感染シナリオ
- 20.7 実際の攻撃
- 20.8 物理的な破壊もあり得る
- 20.9 電力会社だけではなかった攻撃対象
- 20.10 物理的にダメージを与える可能性のある攻撃が現実に
第4章 一番の脆弱性は人間
第21講 人の注意力だけでは防げないフィッシング
- 21.1 フィッシングとは
- 21.2 すべては電子メールから始まる
- 21.3 しかけるのは意外と簡単
- 21.4 フィッシングは目的が明確
- 21.5 フィッシングする立場で考える
- 21.6 フィッシングの電子メール対策
- 21.7 フィッシング対策は情報共有から
- 21.8 問題はタイムラグと情報の拡散
- 21.9 人の判断だけに頼らないこと
第22講 システム最大の脆弱性は人である
- 22.1 一番弱いところが攻められる
- 22.2 正面攻撃には強くても
- 22.3 クライアントに対するさまざまな脅威
- 22.4 攻撃は身近なところで起こっている
- 22.5 セキュリティを高めるためには
第5章 セキュリティ情報の収集/読み解き方
第23講 脆弱性情報を共有するしくみ
- 23.1 セキュリティアップデートが同時期に行われる理由
- 23.2 脆弱性のハンドリング
- 23.3 脆弱性情報をハンドリングする組織「MITRE」
- 23.4 脆弱性情報「CVE」
- [コラム]CNA認定組織となったJPCERT/CC
- 23.5 脆弱性の影響度「CVSS」
- [コラム]世界規模でセキュリティに取り組むきっかけを作ったワーム
- 23.6 脆弱性対応の流れ
- 23.7 脆弱性対応を巡る議論
第24講 脆弱性の数と影響度を読み解く
- 24.1 2014年4月はHeartbleedに注目が集まったが
- 24.2 統計から見る脆弱性数の推移(世界)
- 24.3 統計から見る脆弱性数の推移(国内)
- 24.4 脆弱性の影響度を示す指標「CVSS」
- 24.5 開発者と連絡がとれない脆弱性の扱い
第6章 2014~2016年の5大セキュリティ事件詳説
第25講 OpenSSLの脆弱性“Heartbleed”
- 25.1 Heartbeat Buffer Overreadが騒がれた理由
- 25.2 Heartbeat Buffer Overreadの第一報
- 25.3 Heartbeatとは
- 25.4 OpenSSLとは
- 25.5 そして,OpenSSLにHeartbeatが入った
- 25.6 コードから見る脆弱性
- 25.7 大きなリスクとして考えるべき
- 25.8 Heartbeat Buffer Overreadの問題点
第26講 bashの脆弱性“Shellshock”
- 26.1 CVSSの最大値と評価された脆弱性
- 26.2 シェルとは
- 26.3 GNU bash脆弱性の動作と影響
- 26.4 開発段階で見つけるのは難しかったはず
- 26.5 バグのないソフトウェアはない
第27講 米国暗号輸出規制が生んだ負の遺産“FREAK攻撃”
- 27.1 またもやSSLに脆弱性
- 27.2 安全ではない鍵にダウングレードされる
- 27.3 AppleやMicrosoftの製品にも波及
- 27.4 EXPORT_RSAとは
- 27.5 中間者攻撃のシナリオ
- 27.6 影響
- 27.7 対策
- 27.8 EXPORT_RSAは政治的理由で加えられた
- 27.9 余計な機能を付け加えたツケ
第28講 クラウドサービスを揺るがす脆弱性“VENOM”
- 28.1 仮想マシンから別の仮想マシンを操れる脆弱性
- [コラム]CVSS v2 10.0は「Shellshock」や「VENOM」だけではない
- 28.2 QEMU FDCを使っているハイパーバイザが影響を受ける
- 28.3 原因は些細なコーディングミス
第29講 インターネットの新たな脅威 IoTボットネット“Mirai”
- 29.1 記録的なDDoS攻撃
- 29.2 インターネット接続の監視カメラ/ビデオレコーダー
- 29.3 攻撃元の統計
- 29.4 公開されたMiraiのソースコード
- 29.5 CNCのソースコード
- 29.6 ボットのソースコード
- 29.7 ボットの役割
- 29.8 telnetを使っての乗っ取り
- 29.9 ボットの攻撃
- 29.10 Miraiとは何だったのか