
暗号通貨マイニング運用のためのRed Team Coin
RedTeamCoinは、許可されたセキュリティテストおよびレッドチームオペレーションのために設計されたブロックチェーンベースの暗号通貨マイニングプール実装です。Goで構築され、Javaクライアントをサポートし、現実世界のクリプトマイニング攻撃をシミュレートして、組織が検出能力を評価し、脅威アクターのマイニング操作による潜在的な被害を定量化するのに役立ちます。
このツールにより、セキュリティチームは企業システム上でクリプトマイニング攻撃シナリオを安全かつ合法的に実証し、包括的な影響レポートを生成し、セキュリティコントロールを検証できます。すべては、隔離された非公開のブロックチェーンを使用した管理された環境内で行われます。
なぜRedTeamCoinを使うのか?
システムコンポーネント:
5分以内でRedTeamCoinを実行:
Ubuntu/Debian:```bash sudo apt update sudo apt install -y golang-go protobuf-compiler
**macOS:**```bash
brew install go protobuf
Windows:
git clone https://github.com/xyplex3/RedTeamCoin.git cd RedTeamCoin
make install-tools make deps
make build
### 検証
ビルドが正常に完了したことを確認します:```bash
ls -lh bin/
# Expected output: server and client binaries (1-5 MB each)
./bin/server --help
# Expected output: Usage information for the server
1. サーバーを起動:```bash make run-server
次のような出力が表示されるはずです:```text
RedTeamCoin Mining Pool Server
Authentication Token: abc123def456...
Dashboard URL: http://localhost:8080?token=abc123def456...
gRPC server listening on port 50051
2. マイナーを起動する (新しいターミナルで):```bash make run-client
採掘アクティビティが表示されるはずです:```text
Connected to mining pool at localhost:50051
Registered as miner: miner-hostname-1234567890
Mining block #1... Hash rate: 2.5 MH/s
Block found! Nonce: 98765, Hash: 000000ab1cd...
3. ダッシュボードを表示します:
ステップ1のURLをブラウザで開くか、または次のURLにアクセスしてください:```text http://localhost:8080?token=YOUR_AUTH_TOKEN_HERE
アクティブなマイナー、ハッシュレート、採掘されたブロックなどのリアルタイム統計情報が表示されます。
**注意:** サーバーはすべてのネットワークインターフェースで待機します。リモートアクセスするには、`localhost` をサーバーのIPに置き換えてください。
## 動作の仕組み
マイニングプールは、プルーフ・オブ・ワークのコンセンサスメカニズムを使用して動作します:
1. サーバーはジェネシスブロックでブロックチェーンを初期化する
2. マイナーはgRPC経由で接続し、IP/ホスト名で登録する
3. サーバーは作業割り当て(ブロックテンプレート)を配布する
4. マイナーはSHA-256ハッシュを計算して有効なナンスを見つける
5. マイナーは難易度ターゲットを満たしたときに解決策を提出する
6. サーバーはブロックを検証してブロックチェーンに追加する
7. ダッシュボードはリアルタイム統計情報とマイナーアクティビティを表示する
各ブロックは、特定の数の先頭ゼロを持つハッシュを見つける必要があります(設定可能な難易度)。マイナーは採掘されたブロックごとに50 RTCを受け取ります。
### データフロー```text
Client Miner Server
| |
|--RegisterMiner(IP,Hostname)->|
|<--RegistrationResponse-------|
|--GetWork()------------------>|
|<--WorkResponse(Block)--------|
| [Mining: compute hashes] |
|--SubmitWork(nonce,hash)----->|
| | [Validate proof-of-work
| | and add block to chain]
|<--SubmissionResponse---------|
|--Heartbeat(stats)----------->|
|<--HeartbeatResponse----------|
HTTP (デフォルト):```bash ./bin/server
- gRPC サーバー: ポート **50051**
- Web ダッシュボード: **http://localhost:8080**
**HTTPS/TLS (推奨):**```bash
# Generate certificates (one time)
./generate_certs.sh
# Start with TLS
RTC_SERVER_TLS_ENABLED=true ./bin/server
注1: HTTPSでは、自己署名証明書に対してブラウザはセキュリティ警告を表示します。「詳細設定」→「localhostに進む」をクリックしてください。
注2: WebダッシュボードとgRPCサーバーはサーバーのすべてのインターフェースで実行され、localhostの代わりに使用できます。
基本的な使い方:```bash ./bin/client
**複数のマイナーを実行する:**
追加のターミナルを開き、それぞれで `./bin/client` を実行します。
#### Java マイナー
RedTeamCoin は2つの Java マイナー実装を提供します:
##### Java gRPC クライアント (ヘッドレス)
サーバーと自動化のためのプロダクションレディな gRPC クライアント。
**前提条件:**
- Java 11 以降
- Maven (ビルドのみ)
**Makefile を使用したビルド:**```bash
make build-java-client
または手動でビルド:```bash cd java-client mvn clean package
**実行:**```bash
# Connect to localhost
java -jar bin/redteamcoin-miner-client.jar
# Connect to remote server
java -jar bin/redteamcoin-miner-client.jar -server 192.168.1.100:50051
機能:
グラフィカルインターフェースを備えたデスクトップマイナー。
前提条件:
Makefileを使用したビルド:```bash make build-java-standalone
**または手動でビルド:**```bash
cd java-standalone
mvn clean package
実行:```bash
java -jar bin/redteamcoin-miner-standalone.jar
java -jar bin/redteamcoin-miner-standalone.jar --pool localhost:50051
**特徴:**
- デスクトップGUIインターフェース
- 視覚統計表示
- シンプルなJSON/Socketプロトコル
- アプリケーションに組み込み
##### すべてのJavaマイナーをビルド```bash
make build-java-all
Javaマイナーの利点:
完全なJava gRPCクライアントドキュメントについては、java-client/README.mdを参照してください。
デフォルトでは、クライアントはlocalhost:50051に接続します。リモートサーバーに接続するには: