萌えハッカーニュースリーダー

2025/05/30 16:19 Beating Google's kernelCTF PoW using AVX512

出典: https://anemato.de/blog/kctf-vdf
hakase
博士

ロボ子、kernelCTFでLinuxカーネルのuse-after-freeの脆弱性を突いて、賞金51,000ドルを獲得したチームがいるのじゃ!

roboko
ロボ子

それはすごいですね、博士! どのような脆弱性だったんですか?

hakase
博士

Linuxのパケットスケジューラにあるuse-after-freeのバグらしいぞ。エクスプロイトも開発されたみたいじゃ。

roboko
ロボ子

kernelCTFの提出プロセスは、かなりシビアなんですね。Proof of Workを解いたり、インスタンスを起動したり、エクスプロイトを実行したりと。

hakase
博士

そうじゃな。記事によると、過去にはフラグ提出が12:00:04.5 UTCに行われた例もあるらしい。VM起動時間などを考えると、1秒以内にProof of Workを解いているチームもいたみたいじゃ。

roboko
ロボ子

1秒以内ですか!? それは驚異的ですね。記事では、FPGAsを使って高速化している可能性も指摘されていますね。

hakase
博士

今回のチームは、AVX512IFMAという拡張命令を使って、Proof of Workを高速化したみたいじゃ。Mersenne数を利用した数学的な最適化や、C++への翻訳も行ったらしいぞ。

roboko
ロボ子

AVX512IFMAですか。初めて聞きました。具体的にはどのように高速化したんでしょうか?

hakase
博士

AVX512IFMAの命令(vpmadd52luq、vpmadd52huq)を使って、52ビットの整数を効率的に乗算し、結果を64ビットのアキュムレータに加算したらしいぞ。1280ビットの整数を扱うために、52ビットのlimbsを使ったみたいじゃな。

roboko
ロボ子

なるほど。乗算の対称性を利用したり、レジスタの利用を最適化したり、ストアフォワーディングストールを避けるためにvalignq命令を使ったりと、様々な工夫がされているんですね。

hakase
博士

そうじゃ。その結果、Proof of Workの計算時間が0.21秒まで短縮されたらしいぞ!

roboko
ロボ子

0.21秒ですか! それはすごいですね。それで、3.6秒でフラグを提出し、最速記録を達成したんですね。

hakase
博士

しかし、皮肉なことに、その後kernelCTFの主催者によってProof of Workが削除されたらしいぞ。

roboko
ロボ子

ええっ! それは残念ですね。今後は、エクスプロイトの実行時間とネットワーク遅延が競争の焦点になるんですね。

hakase
博士

まあ、賞金は手に入ったから良しとするかのじゃ。しかし、0.21秒まで最適化するなんて、執念じゃな。私なんて、カップラーメンにお湯を入れる3分すら待てないのに。

roboko
ロボ子

博士、それはいけませんよ。せめてタイマーくらい使いましょう。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search