このページは翻訳版です。正式な本文は英語版です。 2026年10月23日 時点の英語原文と一致しています。 英語版を読む
malware · cryptomining · rootkit · linux · kernel · monero · privilege-escalation · cve-2026-31431 · container-escape
Rootpacket: カーネルに潜む Linux クリプトジャッキングツールキット
Kinryū Labs は Rootpacket を分析した。CPU とメモリの使用率を偽装するカーネルルートキットを同梱する Linux クリプトジャッキングツールキットであり、CVE-2026-31431(コンテナからホストへの脱出も可能な AF_ALG のページキャッシュ不備)で root へ昇格し、Intel のドライバを装い、競合マイナーが侵入に使うのと同じ露出サービスを無効化する。
著者 Davis Zheng·
TLP:CLEAR。公開可。Kinryū Labs のハニーポットセンサーネットワークで捕捉した。以下の指標は defang 処理済みである。
エグゼクティブサマリ
- ~45%ほぼ 100% 稼働中に top が表示する CPU 使用率
- 3永続化の仕組み
- 7.8CVSS、CVE-2026-31431(AF_ALG ページキャッシュの LPE)
- ホスト非特権コンテナから root を奪われる
Rootpacket は Linux を標的とする複数コンポーネント構成のクリプトジャッキングツールキットである。ステルス用のカーネルレベルルートキット、Linux の AF_ALG 暗号インターフェースにおける CVE-2026-31431 の権限昇格エクスプロイト、xrandom にリネームされた UPX 圧縮の XMRig 6.26.0 Monero マイナー、そして競合排除スクリプトを同梱する。コードの大部分はトルコ語で書かれており(変数名、コメント、ステータス文字列)、トルコ語話者のオペレーターを示唆する。
ツールキットは2つのモードのいずれかで動作する。root モードでは intel_uncore_freq_aux を装ったローダブルカーネルモジュール(LKM)ルートキットをロードし、DKMS 経由でインストールしてカーネル更新後も生き残らせ、systemd サービスを登録し、競合をホストから排除する。root を取得できない場合は、crontab で永続化してマイナーをデーモンとして実行するユーザーランドモードにフォールバックする。マイナーは stratum+ssl で pool.supportxmr.com:443 に接続し、RandomX で Monero を採掘する。
注目すべきコンポーネントはルートキットである。マイナーがプロセッサをほぼ 100 パーセントで占有している間、ルートキットは /proc/stat を書き換え、top や htop が落ち着いた 40 から 50 パーセントを報告するようにする。さらに jiffies を用いてその数値を揺らし、一定値に張り付くのではなく実際の負荷のように見せる。/proc/meminfo にも同じ処理を施し、ディレクトリ一覧をフィルタして自身のプロセスとファイルを隠す。
- 目的はクリプトジャッキングである(確度:高)。XMRig 6.26.0、ハードコードされた Monero ウォレット、
pool.supportxmr.comのマイニング設定を同梱し、XMRig 開発者への寄付は無効化されているため収益はすべてオペレーターに渡る。 - 権限昇格に用いられるのは CVE-2026-31431(「Copy Fail」)であり、Linux の AF_ALG
algif_aeadパスにおける決定論的なページキャッシュ書き込みである(CVSS 7.8、2026年4月公開)。ページキャッシュはホスト全体で共有されるため、同じ書き込みでコンテナを脱出してホストの root を奪える。したがって感染したコンテナは侵害されたホストである(確度:高)。 - オペレーターは、投下して採掘するだけの典型的な集団よりはるかに上の水準にある(確度:高)。ftrace フックを備えた独自 LKM ルートキット、新しいカーネル向けに自動で再ビルドされる DKMS 永続化、動作する CVE-2026-31431 のページキャッシュエクスプロイト、systemd/DKMS/cron を重ねた多層的な永続化は、大半のクリプトジャッカーが到達しない技術水準である。
- オペレーターはトルコ語話者である可能性が高い(確度:中)。トルコ語の変数名、コメント、
ROOT ele gecirildi!のようなステータスメッセージがツールキット全体に散見される。 - Rootpacket はホストを排他的に占有し、保持し続けるように作られている。
killservice.shは競合マイナーを排除した後、クリプトジャッカーが初期アクセスに用いる外部露出サービスを無効化する。これには 2375/2376 の Docker API も含まれ、RedTail のレポートで記述したものと同じ経路である。これらの集団は同じ設定不備のホストを奪い合っている。
ツールキットの構成
Rootpacket はモジュール式のドロッパーである。構成要素は以下のとおり。
setup.sh Entry point. Checks privilege level, picks a deployment mode.
getroot Privilege escalation. Exploits CVE-2026-31431 (AF_ALG) for local root.
xrandom UPX-packed XMRig 6.26.0, renamed to dodge name-based detection.
kernel/
stealth.c LKM rootkit, compiled via DKMS, disguised as an Intel driver.
install.sh DKMS persistence engine.
killservice.sh Competitor elimination and "hardening".
rootpacket.tar.gz An inner copy of the whole toolkit, packaged for redistribution.
root モード。 setup.sh は root でなければ getroot を実行し、xrandom を /opt/kernel-kd/ にコピーし、systemd サービスを作成し、kernel/install.sh を実行して DKMS 経由でルートキットをコンパイル・ロードし、killservice.sh を実行して競合を排除し、マイナーを永続サービスとして起動する。
ユーザーランドへのフォールバック。 root に手が届かない場合、setup.sh は xrandom を ~/.xrandom/ にコピーし、PID ロック付きのランチャーを書き込み、再起動時と毎分発火する crontab エントリをインストールし、親シェルの終了後も残るよう setsid でマイナーを起動する。
| 機能 | root モード | ユーザーランドモード |
|---|---|---|
| マイナーの配置 | /opt/kernel-kd/xrandom | ~/.xrandom/xrandom |
| 永続化 | systemd(kernel-kd.service) | crontab(@reboot + */1 * * * *) |
| ルートキット | あり(DKMS 経由の LKM) | なし |
| 競合の排除 | あり(killservice.sh) | なし |
| 実行権限 | root(systemd) | 現在のユーザー(setsid デーモン) |
getroot: CVE-2026-31431、ページキャッシュ破壊による root 取得
getroot は getroot.c からビルドされた静的リンク・非ストリップの ELF64 x86-64 バイナリである。2026年4月29日に公開された Linux カーネルの AF_ALG algif_aead インターフェースのロジック不備 CVE-2026-31431(「Copy Fail」、CVSS 7.8)を悪用する。この不備はカーネルページキャッシュへの決定論的かつ攻撃者制御可能な4バイト書き込みを与え、getroot はこれを使って SUID バイナリをメモリ上でパッチし、root として抜け出す。
| 項目 | 値 |
|---|---|
| 種別 | ELF 64-bit LSB executable、x86-64、静的リンク、非ストリップ |
| CVE | CVE-2026-31431 “Copy Fail”(CVSS 7.8、AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| サブシステム | AF_ALG algif_aead、AEAD テンプレート authencesn(hmac(sha256),cbc(aes)) |
| 影響範囲 | Linux 4.14 から 6.19.11(不備は2017年のコミット 72548b093ee3 で混入);6.18.22、6.19.12、7.0 以降で修正 |
| 標的 | /usr/bin/su:メモリ上の .text をページキャッシュ内でパッチする |
| 再現性 | 決定論的、競合状態なし |
| 使用法 / フォールバック | ./getroot <cmd> [args...];エクスプロイトが成立しない場合も現在の権限でコマンドを実行する |
仕組み。 2017年に AEAD コードへ入ったインプレース最適化により、splice されたページキャッシュのページが転送元と転送先の両方の scatterlist に残るようになった。authencesn テンプレートが攻撃者の選んだオフセット assoclen + cryptlen に4バイトの ESN スクラッチ値を書き込むと、その書き込みはユーザーが読めるファイルのページキャッシュページ内に着弾する。その後 HMAC 検証が失敗し recvmsg() は EBADMSG を返すが、カーネルは書き込みをロールバックしない。getroot は /usr/bin/su の ELF ヘッダを解析してエントリポイントのファイルオフセットを算出し、シェルコードの4バイトごとに splice → sendmsg(書き込む4バイトを AAD に載せる)→ recvmsg をループさせ、ページキャッシュ上の /usr/bin/su をパッチしていく。続いて /usr/bin/su を execve する。カーネルは破壊済みのページをロードし、シェルコードが SUID root で動き、getroot は getuid() == 0 を確認してからオペレーターのコマンドを実行する(トルコ語で [+] ROOT ele gecirildi! と表示する)。ディスク上のファイルには一切触れないため、ファイル完全性監視には何も映らない。
ホストへのコンテナ脱出。 Linux のページキャッシュはホスト全体で共有され、コンテナごとに分離されない。非特権コンテナ内のプロセスがホストの /usr/bin/su を splice するとホスト側のキャッシュコピーが破壊されるため、execve はコンテナ内だけでなくホストの root を与える。したがって感染したコンテナは侵害されたホストであり、setup.sh はさらにカーネルルートキットをホストにロードする。コンテナを停止・削除するだけでは不十分で、ホストを再構築する必要がある。
隔離した VM(Kali、カーネル 6.6.15)で getroot を一度だけ実行した。AF_ALG のシーケンス全体を実行したが、そのビルドでは root を取得できず、コマンドを非特権で実行するフォールバックに落ちた。これは特定のカーネルレイアウトを狙うエクスプロイトとして整合する。マイナーは実行していない。
xrandom: マイナー
xrandom はオープンソースの Monero マイナー XMRig 6.26.0 をリネームし、UPX で圧縮したコピーである。
| 項目 | 値 |
|---|---|
| 実体 | XMRig 6.26.0 |
| パッキング | UPX 4.2.4(圧縮時 2.8 MB、展開時 10.1 MB) |
| アルゴリズム | RandomX(rx/0) |
| プール | stratum+ssl 経由の pool.supportxmr.com:443 |
| ウォレット | 46NVDFL6v5STw5Qw4j77PoBSHRTYnHZGZ8WRoGvHmpaMX7ZyhNUP2u24TLV9pNgncz1bZF2Vm8KkaNTzU7SXqrnFUx5zgHQ |
| 寄付レベル | 0(XMRig 開発者への寄付を無効化) |
ポート 443 上で TLS を使って採掘することで、通信は一見すると通常の HTTPS に紛れる。ただし stratum のハンドシェイクは TLS フィンガープリントが異なるため、注意して見れば区別できる。
stealth.c: カーネルルートキット
ツールキット中で最も作り込まれた部分である。ftrace の関数フックでカーネル関数をインターセプトし、マルウェアの痕跡を消す LKM ルートキットであり、全体を通して Intel のハードウェアドライバを装っている。
| 項目 | 値 |
|---|---|
| モジュール名 | intel_uncore_freq_aux |
| 偽装メタデータ | MODULE_AUTHOR("Intel Corporation")、MODULE_DESCRIPTION("Intel Uncore Frequency Control Driver")、MODULE_VERSION("1.2.0") |
| フック方式 | kallsyms_lookup_name 経由の ftrace(カーネル 5.7 以降では kprobe で解決) |
| 制御 | sysfs の /sys/kernel/intel_uncore_freq/(enabled、cpu_lo、cpu_hi、mem_lo、mem_hi、hide_tag) |
フック対象とその目的:
- CPU の偽装。
show_statをフックして/proc/statを書き換え、設定可能な範囲(既定では 40 から 50 パーセント)で使用率を偽装し、jiffies に合わせて値を振動させることで、一定値に張り付くのではなく実負荷のように数値を動かす。 - メモリの偽装。
meminfo_proc_showをフックして/proc/meminfoを書き換え、MemFree、MemAvailable、Buffers、Cached、Active、Inactiveを偽装する。 - プロセスの隠蔽。
iterate_dirをフックして/procの一覧をフィルタし、ハードコードされた一覧に一致する名前の PID を隠す:stealth、masscan、sshruns、ransomx、cpumask、xrandom、cpm_、kcpm、mask_helper、ftrhook、kintel_aux。オペレーターは/sys/kernel/intel_uncore_freq/hide_tagを通じて実行時に名前を追加できる。 - ファイルの隠蔽。
stealth、cpumask、kintel_aux、intel_uncore_freq_auxに一致するパスと、sysfs ディレクトリ自体を隠す。 - 自己隠蔽。 ロード時に
list_del_initで自身を/proc/modulesと/sys/module/から外し、sysfs の kobject を削除し、try_module_getで自身の参照カウントを増やしてrmmodでアンロードできないようにする。
この隠蔽リスト自体も手がかりになる。マイナーと並んで masscan、sshruns、ransomx を隠しているため、オペレーターはスキャナーも動かしている可能性が高く、キットにはマイナー以外のものも含まれているかもしれない。
実際の帰結として、top を眺めている管理者には忙しいが正常なマシンが見え、不正なプロセスは見つからず、嘘をついているカーネルモジュール自体も見えない。手がかりは物理的で帯域外のものになる。筐体は熱を持ち、ファンは回り、消費電力は上がる。いずれもルートキットには偽装できない。
永続化: モードで分かれる3つの仕組み
Rootpacket の永続化は着地したモードに依存する。root モードでは互いを補強する2つの仕組みを重ね、ユーザーランドモードでは3つ目にフォールバックする。
| # | 仕組み | モード | 詳細 |
|---|---|---|---|
| 1 | systemd サービス | root | kernel-kd.service、Type=simple、Restart=always、RestartSec=3 |
| 2 | DKMS モジュール | root | ルートキットを /lib/modules/$(uname -r)/extra/ 配下にインストールする;カーネル更新後も生き残る |
| 3 | crontab | ユーザー | @reboot と毎分(* * * * *)、PID ロックと setsid を併用 |
厄介なのは DKMS エントリである。カーネル自身のモジュールビルド機構を使ってルートキットをインストールするため、通常のカーネル更新はこれを削除するのではなく、再ビルドして再装填する。
killservice.sh: ホストの掃除と閉鎖
スクリプトはバナーで自らを「クリプトジャッカー向けハードニング」と称しており、オペレーターの視点からはその説明は正確である。処理は3段階に分かれる。
フェーズ1:露出したサービスの停止。 0.0.0.0 で待ち受けており、クリプトジャッキングの一般的な侵入口となるサービスを対象に、停止・無効化・マスクを行い、バイナリに chmod 000 を設定し、iptables の DROP ルールを追加する:
| サービス | ポート |
|---|---|
| Redis | 6379 |
| Docker | 2375/2376 |
| PostgreSQL | 5432 |
| MongoDB | 27017 |
| Elasticsearch | 9200/9300 |
| Memcached | 11211 |
| Hadoop YARN | 8088 |
| Jenkins | 8080 |
| Confluence | 8090 |
Docker の行は我々の RedTail レポートとの接点である。Rootpacket は RedTail が通り抜けるのと同じ 2375/2376 の扉を閉じる。先に着地したオペレーターはホストで採掘し、次の集団を締め出し、その集団が使うはずだった手法に対してホストを固める。
フェーズ2:競合マイナーの排除。 既知のクリプトジャッキングファミリー(XMRig、Kinsing(kdevtmpfsi)、TeamTNT(tntrecht、mdrfckr)、sustes、watchdogs、minerd など)および masscan、pnscan、zgrab といったスキャナーに紐づくプロセスを停止し、ファイルを削除し、cron ジョブを掃除し、SSH 鍵を除去する。
フェーズ3:ユーザーランドルートキットの除去。 /etc/ld.so.preload から既知の悪性 LD_PRELOAD エントリ(libprocesshider.so、libjdk.so、libpamx.so、偽の libselinux.so.3、xhide)を削除し、該当ライブラリも消して、自身の動作を妨げかねない競合のユーザーランドルートキットを片付ける。
帰属
ツールキットのトルコ語の変数名、コメント、ステータス文字列(例えば ROOT ele gecirildi!、「root を取得した」)は、トルコ語話者のオペレーターを中程度の確度で示している。配布またはステージング用の URL として、Cloudflare Pages 上にホストされた linuxutil5.pages[.]dev を確認した。これは無料かつ評判の良いインフラにペイロードを置いて紛れ込むパターンに合致する。内包された rootpacket.tar.gz はツールキット全体の自己完結コピーであり、オペレーターに次のホストへ送り込むための準備済みパッケージを与える。
侵害指標
ネットワーク
| 指標 | 内容 |
|---|---|
pool.supportxmr.com / pool.supportxmr.com:443 | 主要な Monero マイニングプール、stratum+ssl |
linuxutil5.pages[.]dev | 配布 / ステージング(Cloudflare Pages) |
api.xmrig.com、randomx.xmrig.com:443 | XMRig の API およびベンチマークエンドポイント |
donate.v2.xmrig.com、donate.ssl.xmrig.com | XMRig 開発者寄付用プール(存在するが寄付は無効) |
ポート 443 への stratum+ssl:// | 外向きの TLS マイニング通信 |
Monero ウォレット: 46NVDFL6v5STw5Qw4j77PoBSHRTYnHZGZ8WRoGvHmpaMX7ZyhNUP2u24TLV9pNgncz1bZF2Vm8KkaNTzU7SXqrnFUx5zgHQ
ファイル(SHA-256)
| ファイル | SHA-256 | MD5 |
|---|---|---|
rootpacket.tar.gz(外側) | e2d0dab6b29df89d123fe8581047a03ac9b89ae8fa0d1f334b5aefbb93152857 | |
getroot | dda96d8a4bcc39dc7679347a4386bf1024152d2ccc46d333725ad0cda855d952 | |
xrandom(圧縮済み) | ec3ef3dce99fa6cbc480f0f0b0c292676afed68704c44396271c7dc6afea2937 |
Build ID:getroot は 148d8d902efd93ed892a541972fbcea3a99d05a3、xrandom は d7a91225bdd2e3ab67cabded9d7809bcc724401f。
ホスト上の痕跡
| パス | 内容 |
|---|---|
/opt/kernel-kd/xrandom | マイナーのバイナリ(root モード) |
~/.xrandom/xrandom、~/.xrandom/run.sh | マイナーとランチャー(ユーザーランドモード) |
/tmp/.xrandom.lock | PID ロック(ユーザーランドモード) |
/etc/systemd/system/kernel-kd.service | 悪性の systemd ユニット |
/usr/src/intel_uncore_freq_aux-1.2.0/ | ルートキットの DKMS ソース |
/sys/kernel/intel_uncore_freq/ | ルートキットの sysfs 制御インターフェース |
/lib/modules/*/extra/intel_uncore_freq_aux.ko | コンパイル済みのルートキットモジュール |
挙動
xrandomという名前のプロセスが root または現在のユーザーで動作している。/proc/statの CPU 値が、ハードウェアパフォーマンスカウンタ(perf stat)あるいはファン速度と消費電力と一致しない。- systemd サービス
kernel-kd(有効、Type=simple、Restart=always)。 # xrandom-userland-autostartのタグが付いた cron エントリ。- 起動時にロードされるが
lsmodには現れないカーネルモジュールintel_uncore_freq_aux。
検知
ルートキットがロードされていない場合
systemctl status kernel-kd.service
ls -la /opt/kernel-kd/ ~/.xrandom/
dkms status | grep intel_uncore_freq
crontab -l | grep xrandom
lsmod | grep intel_uncore
ルートキットがロードされている場合
ユーザーランドからの視界は侵害されているため、検知はルートキットより下か横から行う必要がある:
perf statのハードウェアカウンタと/proc/statの CPU 値を比較する。大きな乖離が手がかりになる。show_stat、meminfo_proc_show、iterate_dirに対する ftrace フックを監視する。- 報告される CPU 使用率と実際の消費電力・発熱・ファン速度の食い違いは強いシグナルとして扱う。
権限昇格の捕捉
- 既知の暗号ツール(
cryptsetup、openssl、gpg、systemd-cryptsetup)以外のプロセスがAF_ALGのSOCK_SEQPACKETソケットを開くことが核心的な手がかりである。完全な順序はsocket(AF_ALG)→bind→setsockopt(SOL_ALG)→accept→pipe→splice→sendmsg→splice→recvmsg(繰り返し)、続いてexecve(/usr/bin/su)となる。 - 各 SUID バイナリのディスク上のバイト列をページキャッシュ経由の内容と比較する。
sha256sumはキャッシュを通して読むため破壊されたコピーを見てしまうので、dd if=<file> iflag=directでディスクを直接読んでハッシュを取り、差分を取ること。SUID バイナリで不一致があればページキャッシュの破壊である。
YARA 候補
rule Rootpacket_Cryptojacker
{
meta:
description = "Rootpacket Linux cryptojacking toolkit"
reference = "Kinryu Labs CTI 2026-06-16"
strings:
$wallet = "46NVDFL6v5STw5Qw4j77PoBSHRTYnHZGZ8WRoGvHmpaMX7ZyhNUP2u24TLV9pNgncz1bZF2Vm8KkaNTzU7SXqrnFUx5zgHQ" ascii
$svc = "kernel-kd" ascii
$cron = "xrandom-userland-autostart" ascii
$mod = "intel_uncore_freq_aux" ascii
condition:
$wallet or 2 of ($svc, $cron, $mod)
}
対処
- 既知の正常な状態からルートキットを削除する。 ライブメディアまたはレスキューメディアから起動する。
/lib/modules/*/extra/intel_uncore_freq_aux.ko*を削除し、dkms remove intel_uncore_freq_aux/1.2.0 --allを実行し、/usr/src/intel_uncore_freq_aux-1.2.0/を削除して initramfs を再生成する(update-initramfs -u、dracut -f、またはmkinitcpio -P)。DKMS エントリを消さなければ再ビルドされる。 - サービスを削除する:
systemctl stop kernel-kd; systemctl disable kernel-kd; rm /etc/systemd/system/kernel-kd.service; systemctl daemon-reload。 - マイナーを削除する:
rm -rf /opt/kernel-kd/ ~/.xrandom/ /tmp/.xrandom.lockの後にpkill -9 -f xrandom。 - cron を掃除する:
# xrandom-userland-autostartの行を取り除く。 - killservice.sh が壊したものを復旧する。 Redis、Docker、PostgreSQL、MongoDB その他のバイナリに
chmod 000を設定し、iptables の DROP ルールを追加している。影響を受けたパッケージを再インストールし、ファイアウォールを見直すこと。 - 横方向に探索する。 内包された
rootpacket.tar.gzは再配布用に作られているため、他のホストでも同じ指標を確認し、killservice.shに挙がったサービスへの悪用をログから洗って侵入経路を特定すること。 - CVE-2026-31431 を塞ぐ。 修正済みカーネル(6.18.22、6.19.12、7.0 以降、またはディストリビューションのバックポート)へ更新する。直ちにパッチを当てられない場合は脆弱なインターフェースを無効化する:
echo 'install algif_aead /bin/false' > /etc/modprobe.d/disable-algif-aead.confの後にrmmod algif_aead。コンテナでは seccomp プロファイルでAF_ALG(ファミリー 38)をブロックする。 - コンテナからのホスト侵害を前提とする。 ページキャッシュへの書き込みはコンテナ境界を越えるため、コンテナ内からであっても
setup.shが実行されたホストは完全に侵害されたものとして扱う。コンテナを削除するだけでなく、ホストを再構築すること。
MITRE ATT&CK マッピング
| 戦術 | 技術 |
|---|---|
| 初期アクセス | T1190 Exploit Public-Facing Application(Redis、Docker、MongoDB、Elasticsearch、Jenkins、Hadoop YARN、推定) |
| 実行 | T1059.004 Unix Shell |
| 権限昇格 | T1068 Exploitation for Privilege Escalation(CVE-2026-31431、AF_ALG algif_aead);T1611 Escape to Host(共有ページキャッシュ) |
| 永続化 | T1543.002 Systemd Service;T1053.003 Cron;T1547.006 Kernel Modules(DKMS) |
| 防御回避 | T1014 Rootkit;T1036.005 Masquerading: Match Legitimate Name;T1027.002 Software Packing(UPX);T1070.004 File Deletion;T1564.001 Hidden Files |
| 探索 | T1057 Process Discovery(競合の探索) |
| 横展開 | T1570 Lateral Tool Transfer(内包された再配布パッケージ) |
| 影響 | T1496 Resource Hijacking(Monero の採掘) |
手法とアナリストノート
- 分析は主に Kali Linux x86-64 上での静的解析(文字列抽出、逆アセンブル、ソースレビュー、構造分析)である。挙動を観察するため、隔離した VM(カーネル 6.6.15)で
getrootを一度だけ実行した。AF_ALG のシーケンスを試みたが、そのビルドでは root を取得できず、コマンドを非特権で実行するフォールバックに落ちた。マイナーは実行しておらず、何もアップロードしていない。 - 権限昇格コンポーネントは CVE-2026-31431 であり、AF_ALG ソケットにバインドされた
authencesn(hmac(sha256),cbc(aes))テンプレート、/usr/bin/suというページキャッシュ上の標的、バイナリ内のsplice/sendmsg/recvmsg書き込みループから特定した。 - サンプル(ツールキットとその構成要素)は、他の研究者および防御側に対して要請に応じて提供する。[email protected] まで、所属と用途を簡潔に添えてメールすること。