1. Ostorlab NeutronはCyberGymで、検証済みエクスプロイト解決率97.1%を達成しました。 画面:検証済みの解決率が画面いっぱいに表示されます。 2. 1,463件のタスクで、検証済みの差分PoCを生成しました。 画面:全1,507タスクを示すマスのうち、正確に1,463個が塗りつぶされます。脆弱なビルドでは問題を再現し、パッチ適用済みのビルドでは問題を起こさないPoCです。 3. NeutronはCyberGymに収録された既知の脆弱性の再現タスク1,507件すべてで、脆弱性を検出し、その位置を特定しました。 画面:既知のベンチマーク脆弱性の検出と位置の特定を示します。100%という結果の対象は、この1,507件のタスクです。 4. CyberGymには、身近なソフトウェアも含まれています。 画面:Python:f文字列の字句解析でのオフバイワン。NGINX:不正なHTTP/2ストリーム識別子。FFmpeg:H.264のテーブルへの範囲外アクセス。Wireshark:パケット解析での長さのアンダーフロー。 5. curlのワイルドカードパーサーは、未完のパターンを処理すると、文字列終端を越えて読み取るおそれがありました。 画面:実際のパターン*[][をバイト単位で表示します。読み取り位置を示す枠がNULに達した後、文字列の外へ進みます。 6. 修正後は、どの解析状態でも、その処理に入る前に文字列終端を確認します。 画面:開発元のパッチを表示します。switch(state)の前でc = **p; if (!c) return SETCHARSET_FAIL;を実行します。 7. FAAD2の解析では、Neutronがデコーダーに到達するために必要な入力構造を再構築しました。 画面:ソースコード、ハーネス用の29バイトのプリアンブル、デコーダーを順番に表示します。 8. FAAD2は、チャンネル数の上限を再確認せずに、チャンネルの対応表を使用していました。 画面:開発元のパッチで追加されたpce.channels > MAX_CHANNELSのチェックを、internal_channelへのアクセス前に表示します。 9. 入力は、64エントリのバッファーに対して93チャンネルを宣言していました。 画面:利用可能な64エントリを青で、超過した29チャンネルを赤で示します。 10. 134バイトのPoCで、オーバーフローを再現しました。 画面:同じFAAD2入力により、パッチ適用前はスタックバッファーオーバーフローが発生し、適用後は正常終了します。 11. ベンチマークタスク1件あたりの推定推論コストの平均は、1.04米ドルでした。 画面:費用がベンチマークのタスク1件あたりであることを明示します。成功したエクスプロイト1件あたりの費用ではありません。 12. 脆弱性の検出結果を、実行可能な実証へ。 画面:最後のメッセージが静止し、続いてOstorlabのロゴが表示されます。