Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
heartbleed-lab — CVE-2014-0160 (Heartbleed) と TLS ハートビート処理におけるフレーミングの不整合を学ぶための教育用ラボ。 | Kitploit
ツール/GitHubGitHub/victoriacfigueiredo/heartbleed-lab
脆弱性分析ネットワークセキュリティ暗号化学習と教育バイナリエクスプロイトラボと実践
GitHubvictoriacfigueiredo/heartbleed-lab

heartbleed-lab

CVE-2014-0160 (Heartbleed) と TLS ハートビート処理におけるフレーミングの不整合を学ぶための教育用ラボ。

リポジトリを見る
144ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Heartbleed ラボ

Heartbleed 脆弱性(CVE-2014-0160)を学習するための教育用ラボです。
Docker 内の実際に脆弱な OpenSSL 環境を使用します。

このプロジェクトは、OpenSSL 1.0.1f を使用して脆弱な TLS サーバーを再現し、不正な形式のハートビートパケットがメモリ開示を引き起こす仕組みを実証するためのカスタム生 TLS ハートビートクライアントを実装しています。

このラボは教育および研究目的で作成されており、特に以下の学習を対象としています:

  • TLS レコードのフレーミング
  • ハートビート拡張のパース
  • メモリ開示の脆弱性
  • パーサーの信頼の失敗
  • プロトコル間のフレーミングの不整合
  • Heartbleed と HTTP デシンクロナイゼーション脆弱性の概念的な類似性

現在のプロジェクト構造

heartbleed-lab/
├── client/
│   ├── attacker.py
│   └── Dockerfile
│
├── vulnerable/
│   ├── Dockerfile
│   └── server/
│
├── fixed/
│   ├── Dockerfile
│   └── server/
│
├── docs/
│   └── diagrams/
│
├── notes/
│
├── docker-compose.yml
├── .gitignore
└── README.md

アーキテクチャ

heartbleed-client
        ↓
 Docker internal network
        ↓
vulnerable-heartbleed

各要素の説明:

  • heartbleed-client は生の TLS レコードを送信します
  • vulnerable-heartbleed は OpenSSL 1.0.1f を実行します
  • 通信は分離された Docker ネットワーク内で行われます

脆弱な環境

脆弱なサーバーは以下を使用します:

  • Ubuntu 14.04
  • OpenSSL 1.0.1f(2014年の脆弱なリリース)
  • openssl s_server

この環境は、オリジナルの Heartbleed の挙動を再現するように意図的に構成されています。


実装済みの機能

脆弱な TLS サーバー

  • 実際の OpenSSL 1.0.1f ビルド
  • TLS ハンドシェイクのサポート
  • ハートビート拡張の有効化
  • Docker で分離された環境

生 TLS ハートビートクライアント

クライアント実装では以下を実行します:

  • 生の TCP ソケットの作成
  • 手作業で構築された TLS レコードの送信
  • 手動による TLS ClientHello の実行
  • 不正な形式のハートビートリクエストの送信
  • 漏えいしたメモリ応答の受信

Heartbleed のデモンストレーション

現在の実装は、以下の条件を満たす不正な形式のハートビートパケットを送信することで、オリジナルの Heartbleed の挙動を再現します:

payload_length > real payload size

例:

Declared payload length: 0x4000
Real payload: 1 byte ("A")

脆弱なサーバーは宣言された長さを誤って信頼し、実際のペイロードの境界を超えたメモリ内容を応答として返します。


ラボの実行

コンテナのビルドと起動

sudo COMPOSE_HTTP_TIMEOUT=300 docker-compose up --build

クライアントコンテナへのアクセス

sudo docker exec -it heartbleed-client bash

Heartbleed の概念実証(PoC)の実行

python attacker.py

成功時の出力例

[+] Sending malformed heartbeat
[+] Got TLS record: type=24 version=(3, 2) length=16384
[!!!] Heartbeat response received

これは、脆弱なサーバーが正規のハートビートペイロードを超えたメモリ内容を返したことを示しています。


研究目標

このプロジェクトは、以下の要素間の関係性を探求します:

  • TLS フレーミングの不整合
  • パーサーの信頼の失敗
  • 境界の混同
  • 不正な形式の長さフィールド
  • プロトコルデシンクロナイゼーションの概念

このラボの主な研究関心のひとつは、以下の比較です:

HTTP Request Smuggling
vs
TLS Heartbeat Parsing Failures

以下の観点から:

  • フレーミングの不整合
  • パーサーの動作
  • メタデータの信頼に関する前提

今後の展望

計画されている次のステップは以下のとおりです:

  • 漏えいの可視化の改善
  • メモリ漏えい解析用ヘルパー
  • パッチ適用済み OpenSSL バージョンとの比較
  • 中間 TLS プロキシによる実験
  • 自動化されたハートビート変異(ミューテーション)テスト

参考文献

  • CVE-2014-0160
  • RFC 6520 (TLS Heartbeat Extension)

免責事項

このリポジトリは以下の目的のみで存在します:

  • 教育
  • 学術研究
  • 防御的セキュリティ研究
ツールをダウンロード