AVX512IFMAを活用してkCTFのPoWを最速で解決、$51,000の賞金を獲得 Crusaders of RustチームのメンバーがLinuxのパケットスケジューラに存在するuse-after-freeバグを発見し、GoogleのkernelCTFコンペティションに提出することで$51,000の賞金を狙いました。しかし、提出には時間制限があり、最初のチームだけが報酬を受け取れるというルールがありました。この記事では、著者がAVX512IFMAを使用してPoW(Proof of Work)の解決時間を大幅に短縮し、最速の提出を達成した経緯を詳しく解説します。
500字の主要情報要約 2025年5月、Crusaders of Rustの一員であるWilliam LiuとSavy Dicanosaは、Linuxのパケットスケジューラーに存在するuse-after-freeのバグを発見し、Exploitを開発した。GoogleのkernelCTF競技への提出を目指し、5万1千ドルの賞金獲得を目指すことにした。 kernelCTFでは、提出時間が限定されており、毎週木曜日のノンUTCで提出ウィンドウが開く。初めに接続し、証明作業(「Proof of Work」、PoW)を解き、仮想マシンが起動したらExploitを実行しフラグを取得し、Google Formに提出する必要があった。PoWの解決に4秒程度、VMの起動に2.5秒、Exploitの実行に0.55秒かかっていたため、全体の時間は約7秒となった。 5月2日には、最初のチームが4.5秒でフラグを提出したが、このタイムは理論上不可能なほど速かった。これは、PoWの制限時間前の11:59:59にVMが起動するというサーバーのバグによるものであり、PoWの計算が1秒以下で完了したことによるもの推测された。 5月13日、 Timothy HerchenはWilliamからPoWの最適化について相談を受け、「sloth」VDFの乗算を高速化するためにIntelのAVX512IFMA拡張機能を使用することを提案した。AVX512IFMA拡張機能は大整数演算の高速化に特化しており、特別な命令により52ビット幅の乗算と加算を効率的に行うことができる。 Herchenは、1280ビットの整数を52ビット幅のリムブに変換し、乗算結果の下位1279ビットと上位1279ビットの合計算出を行うことで最適化を行った。最適化の途中で、AVX512のレジスタ確保問題や、ストアフォワーディングのストールなどを解決し、最終的にPoWの解決時間を0.21秒まで短縮した。 5月16日、5時00分に最終提出が行われ、Herchenの最適化コードを使い、Exploitを実行しフラグを取得した結果、史上最速の3.6秒でGoogle Formに提出に成功し、賞金を得た。 100字の業界関係者コメントや会社概要 今回の最適化は、高性能ハードウェアの使用や高度なプログラミング技術が求められる業界において注目に値する成果であり、Timothy Herchenの技術力を示すものとなった。彼は今後もプログラムの最適化や新たなVDFの研究を続ける予定である。
