DDoS 攻擊,不止于網(wǎng)絡(luò)傳輸層
網(wǎng)絡(luò)世界里為人們所熟知的 DDoS 攻擊,多數(shù)是通過對帶寬或網(wǎng)絡(luò)計(jì)算資源的持續(xù)、大量消耗,最終導(dǎo)致目標(biāo)網(wǎng)絡(luò)與業(yè)務(wù)的癱瘓;這類 DDOS 攻擊,工作在 OSI 模型的網(wǎng)絡(luò)層與傳輸層,利用協(xié)議特點(diǎn)構(gòu)造惡意的請求載荷來達(dá)成目標(biāo)資源耗盡的目的。
除了這類在網(wǎng)絡(luò)傳輸層大做文章的 DDoS 攻擊,還有一類 DDoS 攻擊把目光聚焦到了應(yīng)用層。隨著互聯(lián)網(wǎng)的飛速發(fā)展,接入流量逐年攀高,承載這些流量的網(wǎng)絡(luò)應(yīng)用也被黑產(chǎn)、黑客們盯上,在 DDoS 攻擊場景中也不例外。
由于應(yīng)用層流量更貼近業(yè)務(wù)邏輯,在應(yīng)用層發(fā)起 DDoS 攻擊可以同時對目標(biāo)網(wǎng)絡(luò)與目標(biāo)服務(wù)器的穩(wěn)定性造成威脅。除此之外,攻擊者往往只需較小的帶寬成本,實(shí)現(xiàn)更大的破壞效果,這樣的不對稱性自然更受攻擊者們的關(guān)注與青睞。
Cloudflare 在 《DDoS Attack Trends for 2022 Q1》報告指出,全球范圍內(nèi)應(yīng)用層 DDoS 攻擊(主要是 HTTP DDoS)呈現(xiàn)著持續(xù)增長的態(tài)勢。在俄烏的網(wǎng)絡(luò)戰(zhàn)爭中,HTTP DDoS 攻擊也扮演著重要的角色。
與此同時,應(yīng)用層 DDoS 攻擊的攻擊方式與手法在也在不斷演進(jìn)升級。從集中式高頻請求逐步演進(jìn)為分布式低頻請求,從請求報文中攜帶顯著惡意特征變化為重放合法請求流量,偽造搜索引擎爬蟲流量等;而在攻擊的頻率與規(guī)模上,應(yīng)用層 DDoS 攻擊也呈現(xiàn)出不斷增長的趨勢。
針對攻擊手法的升級變化,業(yè)務(wù)防護(hù)可以從兩方面著手應(yīng)對:一是在運(yùn)營對抗上,在攻擊發(fā)生的事前、事中和事后各階段,通過梳理資產(chǎn)信息、分析攻擊報文并進(jìn)行特征提取、配置防護(hù)策略、復(fù)盤防護(hù)數(shù)據(jù)等手段不斷提升防護(hù)對抗效果;二是在防護(hù)能力建設(shè)上,可以引入支持多維度特征組合的限速功能、JS Challenge、驗(yàn)證碼等功能模塊來提升對高級復(fù)雜的應(yīng)用層 DDoS 攻擊的識別處置能力。與此同時,在流量接入鏈路中與 CDN、LB、AGW 等各接入層產(chǎn)品進(jìn)行聯(lián)動合作,通過在不同接入層級落地相關(guān)防護(hù)策略,實(shí)現(xiàn)攻擊流量的分級收斂,在應(yīng)對大規(guī)模應(yīng)用層 DDoS 攻擊時更能凸顯防護(hù)效果。
0 門檻,高收益,一鍵發(fā)起攻擊
上面提到的應(yīng)用層 DDoS 攻擊,是通過向應(yīng)用程序發(fā)送大量惡意請求實(shí)現(xiàn)攻擊效果,以每秒請求數(shù) (QPS) 來衡量攻擊量級與規(guī)模;這類攻擊也稱為 7 層 DDoS 攻擊,可針對和破壞特定的網(wǎng)絡(luò)應(yīng)用程序,而非整個網(wǎng)絡(luò)。雖然這類 DDoS 攻擊難以預(yù)防和抵御,但發(fā)動起來卻相對比較容易,具體有多容易呢?
由于 7 層 DDoS 通常不需要過高的帶寬成本,也無需構(gòu)造復(fù)雜的協(xié)議利用報文,在黑灰產(chǎn)交易渠道,可以非常便捷地獲取到發(fā)起 7 層 DDoS 的工具與服務(wù)。
即便是知名、成熟的互聯(lián)網(wǎng)應(yīng)用,在這類攻擊面前也存在被攻陷的可能與風(fēng)險。
HTTP DDoS 攻擊的類型與特點(diǎn)
攻擊類型
7 層 DDoS 攻擊中,癱瘓目標(biāo)應(yīng)用與服務(wù)是首要目標(biāo),根據(jù) HTTP DDoS(CC)攻擊發(fā)起的原理與方式,可以總結(jié)以下攻擊類型:
HTTP floods
這種攻擊主要分為兩種形式。第一種是 HTTP GET request floods,攻擊者通過構(gòu)造 HTTP GET 請求報文,向目標(biāo)服務(wù)器發(fā)送針對特定資源的大量請求。在客戶端執(zhí)行一條 HTTP 請求的成本很低,但是目標(biāo)服務(wù)器做出對應(yīng)的響應(yīng)成本卻可能很高。比如加載一個網(wǎng)頁,服務(wù)端通常需要加載多個文件、查詢數(shù)據(jù)庫等才能做出響應(yīng);在 Web 業(yè)務(wù)的防護(hù)中,對于有 SSR(Server-side rendering)功能頁面的 HTTP floods 攻擊,其量級與頻率更加突出明顯,也更容易對業(yè)務(wù)造成影響與危害。
第二種是 HTTP POST request floods,與 GET request floods 的顯著區(qū)別是,POST 請求往往需要攜帶表單參數(shù)或請求體信息,而這通常意味著服務(wù)端需要對請求內(nèi)容進(jìn)行相關(guān)解析處理,并將數(shù)據(jù)進(jìn)行持久化(通常需要進(jìn)行 DB 操作)。發(fā)送 POST 請求一般僅需較小的計(jì)算與帶寬成本,而服務(wù)端進(jìn)行處理操作的過程往往消耗更高。可以說這種攻擊形式下,形成這種請求響應(yīng)間資源消耗差異的空間或可能性更大,更容易實(shí)現(xiàn)讓服務(wù)器過載從而拒絕服務(wù)的目標(biāo)。
Large Payload POST requests
這類攻擊一般通過 POST 方法發(fā)送容量大、結(jié)構(gòu)復(fù)雜的請求體到目標(biāo)服務(wù)器,使得目標(biāo)服務(wù)器在解析這些請求內(nèi)容的過程發(fā)生過載(CPU 或內(nèi)存);一般而言,攻擊者通過構(gòu)造特定的序列化請求體,如 xml、json 等,在服務(wù)端執(zhí)行反序列化操作時引起服務(wù)過載。
Asymmetric requests
這種類型的攻擊顧名思義,利用的就是請求與響應(yīng)的非對稱性,請求的目標(biāo)路徑會執(zhí)行高消耗操作而發(fā)起攻擊請求輕而易舉。通常來說,這類攻擊需要對目標(biāo)服務(wù)有一定的熟悉與了解,明確攻擊目標(biāo)哪些地方存在這種非對稱性利用的可能及利用方式。比如通過從數(shù)據(jù)庫服務(wù)器下載大型文件或大量執(zhí)行數(shù)據(jù)庫的查詢等接口,就容易被這種類型攻擊所利用。
Low&Slow attack(Slowloris/Slow Post/Read attack)
這種類型的攻擊更多是面向連接層面,以基于線程的 Web 服務(wù)器為目標(biāo),通過慢速請求來捆綁每個服務(wù)器線程,從而消耗服務(wù)器的線程&連接資源,這類攻擊中主要可分為 Slowloris、Slow Post/Read 幾種攻擊方式。
攻擊特點(diǎn)
根據(jù)上述總結(jié)的 HTTP DDoS 攻擊類型、原理與實(shí)現(xiàn)方式,可以總結(jié)出 HTTP DDoS 攻擊具備以下特點(diǎn):
攻擊門檻、成本低
相較于 4 層 DDoS 攻擊,發(fā)起 HTTP DDoS 攻擊往往無需構(gòu)造復(fù)雜的攻擊報文,僅需較少的帶寬就能實(shí)現(xiàn)強(qiáng)大的攻擊效果。
攻擊目標(biāo)更精細(xì)
攻擊的目標(biāo)可以精細(xì)到服務(wù)接口粒度,例如直播頁面等,而不需要癱瘓目標(biāo)的網(wǎng)絡(luò)也能讓業(yè)務(wù)出現(xiàn)拒絕服務(wù)。
破壞范圍廣,危害程度高
雖然 HTTP DDoS 攻擊的首要目標(biāo)是癱瘓目標(biāo)服務(wù),但并不意味著對目標(biāo)網(wǎng)絡(luò)的可用性沒有威脅。當(dāng) HTTP floods 量級到一定程度時,也存在癱瘓請求接入層網(wǎng)絡(luò)的可能性。
攻擊源分布廣,隱匿性強(qiáng)
實(shí)際的 HTTP DDoS 攻擊中,攻擊者常常利用規(guī)模龐大的肉雞/代理 IP,而 HTTP DDoS 攻擊報文中往往不具備或具備難以察覺的惡意特征。對這些攻擊源進(jìn)行封禁處置效果有限甚至有誤報風(fēng)險,攻擊者卻可以隨時更換新一批攻擊源。
請求特征容易偽裝,防護(hù)難度大
不同于 Web 注入攻擊場景,HTTP DDoS 的攻擊請求的報文特征常常處在一個難以判定好壞的區(qū)間,有時部分的異常特征不足以支撐執(zhí)行攔截決策。攻擊者可通過模擬、重放正常請求來發(fā)起攻擊,即便在請求報文中某些特征被防護(hù)方捕獲并針對性處置,攻擊者也能感知到并作出調(diào)整。
總體而言,一起復(fù)雜的 HTTP DDoS 攻擊,通常不會使用畸形報文,也無需使用偽裝技巧。對比其他類型的 DDoS 攻擊需要更少的帶寬成本就能癱瘓目標(biāo)站點(diǎn)或服務(wù),甚至特定的目標(biāo)集群與接口。在影響目標(biāo)業(yè)務(wù)可用性的同時,也可能對接入鏈路網(wǎng)絡(luò)的穩(wěn)定性構(gòu)成威脅。這類攻擊往往通過使用大量的肉雞+IP 代理池發(fā)起,所以簡單的封禁策略往往難以起到預(yù)期效果。也正因?yàn)槿绱,在進(jìn)行 HTTP DDoS 攻擊防護(hù)過程,要求對業(yè)務(wù)有更深入的理解,對于攻擊定制針對性策略來實(shí)現(xiàn)誤報與漏報的平衡,這也是 HTTP DDoS 難以檢測防護(hù)的原因。
兵來將擋,WAF 如何實(shí)現(xiàn)有效防護(hù)
根據(jù)上述 HTTP DDoS 的類型與特點(diǎn),對于來勢洶洶的攻擊流量,WAF 如何實(shí)現(xiàn)有效防護(hù)呢?
根據(jù)攻擊的原理與類型,可以大致分為三個主要的防護(hù)場景:
連接型 HTTP DDoS
這類型的 HTTP DDoS 攻擊,對應(yīng)上面提到的 Low&Slow attack。由于攻擊是通過建立 TCP 連接后在傳輸 HTTP 報文的過程實(shí)現(xiàn)攻擊效果,因此對于業(yè)務(wù)前面有 7 層接入層設(shè)備的業(yè)務(wù)(CDN、LB 等),這類攻擊會被前面的 7 層接入層設(shè)備所承載。所以對于許多業(yè)務(wù)而言,這類型的攻擊感知可能并不明顯,但并不表明這類攻擊的危害程度低。相反如果針對特定 7 層接入設(shè)備進(jìn)行此類型攻擊,可能造成的業(yè)務(wù)影響面會更加廣泛。
由于這類攻擊的特點(diǎn)是“慢速”,那么WAF 可以對 HTTP 的請求 header 讀取、請求、響應(yīng) body 的傳輸設(shè)置好超時時間。當(dāng)觸發(fā)超時策略時可斷開相應(yīng)的 TCP 連接,釋放連接資源。同時,可對于異常的 header、body 做檢查與限制(如限制 HTTP 請求 header 的數(shù)量)。還可以通過 HTTP 層面的精細(xì)化訪問控制來避免誤傷場景(如正常業(yè)務(wù)的大文件傳輸場景)。
當(dāng)然,要實(shí)現(xiàn)這些能力需要 WAF 與 7 層接入設(shè)備做好聯(lián)動配合才能實(shí)現(xiàn)有效防護(hù)。
特征型 HTTP DDoS
這類型的 HTTP DDoS 攻擊,對應(yīng)上面的 Large Payload POST requests 和 Asymmetric requests,他們的共同點(diǎn)是需要實(shí)現(xiàn)這類 HTTP DDoS 攻擊,在 HTTP 請求報文中往往能夠提取出關(guān)鍵異常特征。
例如,對于 Large Payload POST requests,WAF 可通過限制 body 長度,檢查 body 內(nèi)容合法性等手段來實(shí)現(xiàn)防護(hù);
復(fù)制
{ "title": "Liverpool FC (1 million more whitespace)", "contentFormat": "html", "content": "<h1>Liverpool FC</h1><p>You’ll never walk alone.</p>", "canonicalUrl": "http://jamietalbot.com/posts/liverpool-fc", "tags": ["football", "sport", "Liverpool"], "publishStatus": "public"}
例如針對上述的超大異常 body,可通過 WAF 配置自定義策略限制 body 長度。
對于 Asymmetric requests 攻擊,例如 HTTP Range 頭利用的例子中,WAF 可通過限制 HTTP Range 頭的分片策略實(shí)現(xiàn)異常檢測與防護(hù);對于一些漏洞利用,特別是業(yè)務(wù)使用的服務(wù)框架、中間件產(chǎn)生的漏洞造成的 DDoS,利用 WAF 的 Web 漏洞檢測防護(hù)能力便能實(shí)現(xiàn)有效防護(hù)。
floods 型 HTTP DDoS
floods 類型的 HTTP DDoS 在現(xiàn)實(shí)網(wǎng)絡(luò)流量中更為主流與常見,影響業(yè)務(wù)穩(wěn)定性的風(fēng)險更大,是需要重點(diǎn)關(guān)注的防護(hù)場景;WAF 在面對這類型攻擊時,可根據(jù) floods 類型 HTTP DDoS 攻擊的特征、特點(diǎn),分析拆解防護(hù)策略,通過以下手段、步驟來實(shí)現(xiàn)有效防護(hù):
第一步:鏈路梳理,明確業(yè)務(wù)場景
當(dāng)業(yè)務(wù)面臨 HTTP floods 攻擊防護(hù)需求時,首先需要梳理清楚業(yè)務(wù)的流量接入鏈路。因?yàn)?nbsp;HTTP floods 通常具有持續(xù)、量級規(guī)模大的特點(diǎn),因此最佳的防護(hù)部署是首先通過在最外接入層實(shí)現(xiàn)(例如 CDN),這樣的優(yōu)點(diǎn)很明顯,能將惡意的攻擊流量在最外層收斂,減少后續(xù)接入層的壓力與成本。但這并不意味著后續(xù)接入層無需部署防護(hù),由于防護(hù)的精準(zhǔn)程度與防護(hù)成本往往是正相關(guān)關(guān)系,經(jīng)過收斂的流量在貼近業(yè)務(wù)的接入層做更精細(xì)的檢測、處置,往往收益更明顯;
同時,明確業(yè)務(wù)服務(wù)的使用場景在應(yīng)對 HTTP floods 攻擊時也非常關(guān)鍵且必要,業(yè)務(wù)不同的 host、path 往往有不同的業(yè)務(wù)特征。比如后端負(fù)載能力、是否有登錄態(tài)、WebApp 還是 Native App、是否有 API 調(diào)用場景等,只有在明確業(yè)務(wù)場景后才能更好地制定精準(zhǔn)、貼合業(yè)務(wù)需求的防護(hù)策略。
業(yè)務(wù)鏈路梳理&防護(hù)部署
第二步:負(fù)載兜底,構(gòu)建防護(hù)基線
在 HTTP floods 發(fā)生時,最基本的防護(hù)需求是要保證業(yè)務(wù)的可用性,不能出現(xiàn)因攻擊而造成業(yè)務(wù)癱瘓的情況;在這個需求背景下,最快速有效的策略便是為業(yè)務(wù)制定負(fù)載兜底策略。與業(yè)務(wù)共同梳理清楚需要防護(hù)的目標(biāo)資產(chǎn)(host、server cluster、path 等),根據(jù)業(yè)務(wù)場景先配置全局/粗粒度的限速策略,實(shí)現(xiàn)對攻擊流量的初步防護(hù)收斂;
同時,在明確目標(biāo)防護(hù)資產(chǎn)的負(fù)載能力后,進(jìn)行更細(xì)粒度的限流/過載保護(hù)策略配置,在流量過載的極端情況下優(yōu)先保證服務(wù)的可用性,構(gòu)建一層基線防護(hù)能力。
第三步:特征分析,過濾惡意流量
采取上述策略手段實(shí)現(xiàn)初步防護(hù)后,需要對 HTTP floods 流量進(jìn)一步分析過濾,才能在保障正常業(yè)務(wù)流量的同時將惡意流量拒之門外。這里就需要 WAF 提供基于 HTTP 請求、響應(yīng)報文的多維組合、匹配能力,識別出報文中的異常特征并提供針對性的處置手段。例如,在對抗業(yè)務(wù)遭受的 HTTP floods 惡意流量攻擊過程中,除了提取常見的異常 IP,Params,UA,Referer,Cookie 等特征進(jìn)行封禁或限速處置外,還會將相關(guān)特征進(jìn)行組合關(guān)聯(lián),為策略統(tǒng)計(jì)與響應(yīng)處置提供參考。
通過對攻擊流量特征的分析統(tǒng)計(jì),在 WAF 上進(jìn)行組合策略配置
除了通過 WAF 豐富的特征分析能力識別惡意流量,在面臨 HTTP floods 攻擊時,提供豐富、梯度的處置動作對于在防護(hù)過程平衡誤傷風(fēng)險也非常關(guān)鍵。WAF 可提供封禁、限速、重定向、驗(yàn)證碼、JS Challenge、自定義響應(yīng)等多種處置動作與特征識別能力配合,為防護(hù)的精準(zhǔn)性提供保障。
第四步:能力聯(lián)動,提升防護(hù)效果
對于專業(yè)的 HTTP floods 攻擊,攻擊者會盡可能地模擬、重放正常的用戶請求流量。因此從“HTTP 報文特征”去識別防護(hù)惡意流量,可能還遠(yuǎn)不足以應(yīng)對高級復(fù)雜的 HTTP floods 攻擊。對于 HTTP floods 攻擊手法的持續(xù)升級演進(jìn),除了從 HTTP 報文層面抽絲剝繭識別異常,還需要聯(lián)動其他維度的信息與能力來提升防護(hù)效果,具體而言體現(xiàn)在以下方面:
WAF 的 JS Challenge 功能,就是通過能力聯(lián)動來提升防護(hù)效果的一個例子:
不同于對請求報文檢測來識別異常這種“被動”的防護(hù)方式,JS Challenge 功能通過在防護(hù)檢測過程“主動”向客戶端植入一段 JS 邏輯。通過利用前端瀏覽器的 JS 渲染執(zhí)行能力,實(shí)現(xiàn)對異常流量的識別;在具體的實(shí)現(xiàn)過程中,為了對抗重放攻擊、減少繞過風(fēng)險,可能會引入動態(tài)令牌機(jī)制;為了更全面地覆蓋業(yè)務(wù)場景,減少誤傷情況發(fā)生,可以利用 JS API 調(diào)用判斷瀏覽器環(huán)境與兼容性;為了對防護(hù)情況的實(shí)時掌控,還可能引入埋點(diǎn)、監(jiān)控邏輯等。
在這些技術(shù)細(xì)節(jié)的實(shí)現(xiàn)過程中,WAF 既需要聯(lián)動端側(cè)瀏覽器的能力,也需要聯(lián)動 CDN、LB 等接入組件的能力,最終實(shí)現(xiàn)防護(hù)效果的進(jìn)一步提升。
復(fù)盤反思,如何快人一步
WAF 在對抗 HTTP DDoS 攻擊的過程中,不斷建設(shè)、強(qiáng)化自身能力的同時,也需要不斷復(fù)盤、反思防護(hù)情況,力求更完善、高效的應(yīng)對思路與方案。具體可以總結(jié)成以下三點(diǎn):
豐富特征維度
根據(jù) HTTP DDoS 攻擊的特點(diǎn)可以得知,防護(hù)難點(diǎn)之一在于攻擊流量特征難以捕捉。其中一個原因是依據(jù)現(xiàn)有的特征維度,攻擊流量能實(shí)現(xiàn)高度的模擬偽裝。從這個角度出發(fā),從防護(hù)視角補(bǔ)充更多維度的特征,就更能識別檢測惡意流量。
就 WAF 產(chǎn)品而言,可以從兩方面著手推進(jìn):一方面是豐富報文特征,除了 7 層 HTTP 報文的特征提取,可以嘗試結(jié)合 4 層報文的字段因子來實(shí)現(xiàn)對惡意流量的識別標(biāo)記;另一方面是豐富行為特征,由于 HTTP 是無狀態(tài)協(xié)議,單次請求響應(yīng)的交互所攜帶的信息往往是有限的。通過關(guān)聯(lián)、統(tǒng)計(jì)具有一定聯(lián)系的請求,提取行為特征,也能為制定防護(hù)策略提供參考。
提升 BOT 識別&對抗能力
對于 BOT 流量的識別對抗能力,在 HTTP DDoS 攻擊防護(hù)中,往往發(fā)揮著重要、關(guān)鍵的作用。但現(xiàn)實(shí)業(yè)務(wù)流量中往往也會混雜正常的 BOT 流量,這就要求不僅能識別出 BOT 流量,還能區(qū)分正常與惡意的 BOT 流量,具備與惡意 BOT 流量的對抗處置能力。
在落地相關(guān)方案時,也需要與業(yè)務(wù)場景緊密貼合。對于 WebApp 而言,正常流量多數(shù)通過瀏覽器發(fā)起,可以通過 JS Challenge 的方式實(shí)現(xiàn)對端側(cè)的校驗(yàn)與信息采集。通過該方案實(shí)現(xiàn) WebApp 場景防護(hù)的同時,在技術(shù)實(shí)現(xiàn)上也需要不斷迭代優(yōu)化來滿足更多元的業(yè)務(wù)場景需求。例如對于 JS 相關(guān)邏輯用更高效的混淆方式來避免繞過風(fēng)險,對引入的 JS 資源做好緩存/優(yōu)化策略提升業(yè)務(wù)性能與用戶體驗(yàn)等。
對于 NativeApp 而言,則可以通過 SDK 集成方式來驗(yàn)證、采集端側(cè)信息。但無論是哪種方式、場景,都需要有更完善的誤傷評估、監(jiān)控體系來保障防護(hù)的精準(zhǔn)性。對于無法準(zhǔn)確識別惡意 BOT 流量的情況,也需要更豐富的柔性處置策略,來實(shí)現(xiàn)對流量的進(jìn)一步過濾校驗(yàn)。
策略事前布局
預(yù)防為主,防治結(jié)合,這是人類應(yīng)對疾病威脅的重要方針,在網(wǎng)絡(luò)安全世界中也同樣適用。HTTP DDoS 攻擊發(fā)生時往往來勢洶洶,事先并沒有任何征兆。這就意味著事中、事后的處置策略對當(dāng)前攻擊通常只能起到應(yīng)急補(bǔ)救的效果。因此,對于存在攻擊風(fēng)險的業(yè)務(wù),提前梳理業(yè)務(wù)資產(chǎn),預(yù)先進(jìn)行策略布局就顯得更為重要。
為了實(shí)現(xiàn)這個目標(biāo)可從兩方面著手:一個是與業(yè)務(wù)團(tuán)隊(duì)緊密配合,做好宣傳引導(dǎo),在 WAF 產(chǎn)品中對關(guān)鍵目標(biāo)資產(chǎn)實(shí)現(xiàn) HTTP DDoS 防護(hù)策略的事前配置;另一個是強(qiáng)化 WAF 的自動化分析能力,對承載業(yè)務(wù)的目標(biāo)資產(chǎn)、負(fù)載能力、報文特征等數(shù)據(jù)進(jìn)行自動化統(tǒng)計(jì)分析,輸出對應(yīng)的防護(hù)策略,對生產(chǎn)的策略效果進(jìn)行實(shí)時評估、校準(zhǔn),在提升防護(hù)效果的同時也能大幅降低策略運(yùn)營成本。