Bug Bounty 獎金地圖:Google、Hyper-V、Meta TEE、Apple 與 Mozilla 的價碼在付什麼
獎金要連同產品、漏洞類別、攻擊情境與證據要求一起看;各計畫上限與品質規則不能混用。
第 24 頁,共 129 頁
獎金要連同產品、漏洞類別、攻擊情境與證據要求一起看;各計畫上限與品質規則不能混用。
讀規則先回答四個問題:能測什麼、獎勵條件是什麼、禁止哪些行為、如何回報。列在資產清單上,不代表所有方法都獲得授權,也不保證發獎。
瀏覽器送出方法、請求目標、標頭與適用的 Cookie;伺服器回傳狀態、標頭和內容。認出使用者只是身分驗證,每筆訂單仍須另外檢查存取權限。
XSS 是網站把使用者輸入原樣放進網頁,讓別人的瀏覽器把它當程式執行,修法是輸出時轉義。IDOR 是伺服器收到 id 就給資料,沒檢查這筆資料是不是你的,修法是伺服器端檢查擁有者。Google 獎金表把 XSS 放在「在受害者瀏覽器執行程式碼」(C0),一般 Google 應用基準 10,000 美元;IDOR 放在邏輯漏洞(S2),價位看洩漏的資料多敏感,同樣在一般 Google 應用上是 3,133.7 到 31,337 美元。
RCE 是讓外人在別人的機器上執行程式。Google 獎金表裡,同樣是一般 *.google.com 應用,RCE 基準 75,000 美元,XSS 是 10,000。入門的兩條路是把使用者輸入拼進 shell 指令,以及反序列化不可信的資料;修法是參數陣列和 JSON。
程式載入記憶體後,CPU 靠一個記錄「現在跑到哪」的位址一條條往下執行;呼叫函式時,stack 會留下一張寫著「做完回哪裡」的返回位址。用一支小 C 程式印出位址,就能自己驗證。
緩衝區溢位是資料寫過了預留空間的邊界,蓋到隔壁的東西。教學範例裡,名字多寫一個字元就讓 is_admin 從 0 變成 65;修法是檢查長度並改用限制長度的函式。canary、ASLR、NX 是補強而不是保證,AddressSanitizer 能抓到獨立陣列的溢位,但我實測抓不到同一個 struct 內的欄位溢位。
Hypervisor 是夾在硬體與多個作業系統之間、替每台虛擬機隔出獨立執行環境的軟體。MSRC 的 Hyper-V 獎金表把 guest 逃脫分成 L1(最高 25 萬美元)與 L2(最高 15 萬美元),差別在被穿過的是哪一道牆。
CVE-2021-28476 是 Hyper-V 虛擬網路交換器驅動的一個漏洞:guest(虛擬機)送出特製封包,host(宿主)的程式照著封包裡的位址去讀、沒有檢查,結果是 host 當機。Akamai 宣稱有當機與程式碼執行兩種利用情境,但公開 PoC 只展示當機,程式碼執行沒有公開展示。CVSS 9.9,2021 年 5 月修補。放到獎金表上,公開展示的結果對應 DoS 那格(最高 15,000 美元);L1 逃脫那格最高 250,000 美元,要有可運作的 RCE exploit,沒有 exploit 時同一格仍有 200,000、100,000、50,000 美元三列。
反向傳播不是新的數學,是把連鎖律裡各層共用的那一段只算一次。線性層的前向是乘 W、反向是乘 W 的轉置、權重梯度是「輸入 × 回傳的梯度」;計算圖分岔時梯度相加,所以共用參數的梯度也是相加。文末用一個 2-2-1 的小網路手算一次更新,損失從 0.0175 降到 0.0076。
參數數量與 VC 維度都解釋不了深度網路的泛化:網路能把隨機標籤背到 100%,VC 界因此變成沒有資訊的空話;參數加到超過插值門檻後測試誤差反而再降一次。Isola 的解釋是「擬合資料以外還有別的壓力」,他認為最重要的是架構內建的對稱性與組合性。這個問題到現在還沒有定論。
生成模型加上它的潛在空間可以當成一份能操作的資料:沿潛在方向移動可以產生反事實影像、少量人工標註可以擴成整份分割資料集(一張標註過的 GAN 影像約抵 100 張一般標註影像)。但用生成資料訓練表示目前仍輸給真實資料(課堂引的數字是 42.6% 對 43.9%),而且稀有類別正好是生成模型最不可靠的地方。
測試損失對資料量、參數量、算力都近似冪律,但指數很小:Kaplan 等人量到的資料指數約 0.095,資料加倍只讓損失降 6%,要砍半得多 1,400 多倍。算力該怎麼分,兩篇論文答案不同:Kaplan 是參數 ∝ C^0.73、資料 ∝ C^0.27,Chinchilla 改成各約一半。公開錄影只涵蓋到第二個發現,後面的內容本文依投影片整理,沒有講者的口頭說明。
語言模型只做一件事:給前文,輸出下一個詞的機率分布。規模夠大之後,控制它的手段變成改輸入:放幾組範例(in-context learning)、要它先寫推理步驟(chain-of-thought,課堂引的例子是一句 Let's think step by step 把算術題正確率從 18% 拉到 80%)。但聽懂指令、會說不知道,都不是光靠預測下一個詞就會有的,要另外用 instruction tuning 與 RLHF 補。
梯度下降等於假定權重空間是歐氏的,而神經網路多半不是。Bernstein 的做法是替每一層選一個範數(線性層用依形狀縮放的譜範數),再用兩條組合規則算出整個網路的範數;用它正規化更新,最佳學習率就不隨寬度與深度漂移。把同一個想法推到對偶映射,線性層的更新變成「把梯度的奇異值全設為 1」,這也是當時 nanoGPT 訓練速度紀錄用的做法。
訓練完的模型不是只能做一次前向傳遞。貪婪取樣不保證找到模型認為最可能的序列(本文的例子裡它拿到 0.30,最佳是 0.36),所以多取樣幾次挑最好的就會進步;評分標準換成驗證器,還能挑出真的對的答案。再把搜尋到的好答案拿回去訓練模型,就是 AlphaGo 與 STaR 的迴圈,Isola 推測 o1 也是這樣做的。
CS229 Spring 2026 的開場課只有 37 分鐘、沒有推導。它用 Tom Mitchell 的「經驗 E、任務 T、衡量 P」定義機器學習,再把整門課分成監督式、非監督式、強化學習三類,三者的差別在於資料裡有沒有答案、資料是不是模型自己收集來的。大型語言模型在這個分類裡同時出現三次。
第 2 堂把監督式學習拆成三件事:假設函數 h、最小平方成本 J(θ)、把 J 壓低的演算法。梯度下降每步要掃過全部 n 筆資料,minibatch SGD 只看一小批就更新,代價是在最佳解附近晃動;線性迴歸另有封閉解 θ = (XᵀX)⁻¹Xᵀy,前提是 XᵀX 可逆。
假設誤差是零均值、獨立同分布的高斯雜訊,對概似函數取 log 之後,最大概似就等於上一堂的最小平方。同一套做法換成 0/1 標籤與 sigmoid,得到邏輯斯迴歸,梯度仍是「誤差乘上輸入」。最後用 Newton 法對照 SGD:步數少,但每步要付 n·d² + d³ 的計算量。
只要 y 的分布能寫成 b(y)·exp(ηᵀT(y) − a(η)),對 a(η) 微分一次就是期望值、兩次就是變異數;再令 η = θᵀx,線性迴歸、邏輯斯迴歸與 softmax 的更新式都是同一條 θ ← θ + α(y − h(x))x。後半堂用四個類別的例子講 softmax、交叉熵與 label smoothing。