我在Node.js服務器上運行的Web應用程序中發現了一個小漏洞。
它通過向應用程序服務器發送一些精心設計的有效負載來工作,這會使應用程序服務器代碼拋出錯誤並且由於缺乏錯誤處理-崩潰(直到有人再次運行它)。
我不確定這種攻擊的合適名稱是什麼。我假設它是DOS(拒絕服務)攻擊,因為它使服務器拒絕服務成為其客戶端。另一方面,到目前為止,我只聽說過 flooding 某種程度上是服務器(此處不是這種情況)。
因此,將其視為DOS攻擊是否正確?如果回答為“否”,那麼應如何調用它? ?
我在Node.js服務器上運行的Web應用程序中發現了一個小漏洞。
它通過向應用程序服務器發送一些精心設計的有效負載來工作,這會使應用程序服務器代碼拋出錯誤並且由於缺乏錯誤處理-崩潰(直到有人再次運行它)。
我不確定這種攻擊的合適名稱是什麼。我假設它是DOS(拒絕服務)攻擊,因為它使服務器拒絕服務成為其客戶端。另一方面,到目前為止,我只聽說過 flooding 某種程度上是服務器(此處不是這種情況)。
因此,將其視為DOS攻擊是否正確?如果回答為“否”,那麼應如何調用它? ?
是的。任何旨在拒絕合法用戶正常使用服務的攻擊,就其定義而言就是DoS(拒絕服務)。
DDoS(分佈式DoS)的特徵是洪災創建了DoS(在所有可用的定義中)。單個節點成功導致洪災的情況很少見。
但是DoS可能由多種觸發因素引起。
由於RPC命令的處理程序功能存在缺陷,則可以在虛擬機可執行(VMX)流程中操作數據指針。此漏洞可能允許來賓虛擬機中的用戶崩潰 VMX進程,從而導致主機上的拒絕服務(DoS)或潛在地在主機上執行代碼。 [empasis mine]
拒絕服務攻擊的特徵是攻擊者明確嘗試防止合法使用服務。 DoS攻擊有兩種一般形式:崩潰服務和泛洪服務。最嚴重的攻擊是分佈式的。
因此,是的,一個簡單的崩潰就是DoS。
通常將安全性視為提供三個屬性:
經常會失敗的服務會自動重新啟動。這些可以減輕偶發的崩潰,但是重新啟動服務通常比處理連接的通常開銷高得多。在這種情況下,每秒執行“崩潰服務器”請求五到六次可能不會佔用太多帶寬,但在普通服務器上可能仍然很困難。
我想添加一個在其他答案中未明確說明的重要細節。您是這樣說的:
它通過向服務器發送一些精心設計的有效負載來工作,這使得服務器代碼拋出錯誤,並且由於缺少錯誤處理而導致崩潰-(直到有人運行)。
(強調我)。該警告很重要,因為此類服務對崩潰的響應方式在不同的技術集之間可能千差萬別。
不是DoS
例如在PHP或大多數情況下在cgi實現中,單個崩潰的請求絕對不會影響其他請求。服務器無法為崩潰的請求發送適當的響應,但是來自合法用戶的其他請求將繼續由服務器正確處理。在這種情況下,崩潰只會影響您自己,而不會影響他人,因此很難將其視為DoS攻擊。當然,這裡有一個錯誤,您在拒絕自己的服務,但是如果服務器繼續對其他所有人正常運行,那麼實際上就沒有拒絕服務的發生。
拒絕服務(DoS)
但是,如果您的有效負載導致實際服務中斷,並且服務器在採取某些措施來還原服務之前(無論是管理員還原還是自動還原)都無法再接收到更多請求一小段時間後),您肯定會拒絕服務,因為造成的崩潰使服務無法響應合法用戶(如其他答案所述)。
在某些情況下,如果您可以“誘騙”合法用戶訪問帶有惡意有效負載的URL,則可能導致沒有關閉服務器的“非DoS”攻擊升級為實際的DoS攻擊。儘管在大多數情況下,此類攻擊並沒有太大的實際影響,因為當它們以後正常使用該服務時,該服務將繼續正常運行。但是,在極少數情況下,有效負載會保留在會話中,從而永久鎖定用戶(我之前見過人們在現實生活中不小心觸發了這種情況)。
根據您的描述,這很難告訴您特定的有效載荷屬於哪些類別,但是有一個重要的區別。
您的攻擊基本上是DOS的定義,它實際上是拒絕服務的,您使用的是正確的術語。
使用帶寬是一種幼稚的方法,不需要服務器具有特定的漏洞,但是當然不是唯一的。
這是一個關於Apache的真實CVE,它使用該術語描述了類似的DOS攻擊(帶有segfault的崩潰):
http:// cve .mitre.org / cgi-bin / cvename.cgi?name = CVE-2018-8011
甚至更複雜的攻擊有時也屬於普通的DOS攻擊,並且也帶有該標籤。沒有shellkit的堆棧可粉碎遠程代碼執行程序錯誤,仍然會用不正確的值來粉碎堆棧,從而導致段錯誤。
是的,這可以稱為DOS漏洞。我聽說這被稱為“應用程序DOS攻擊”。 。使用所有可用內存打開和掃描的超小型zip文件。
如果您拒絕合法用戶使用資源[CPU,Ram,磁盤,網絡帶寬(密碼重置?),您可以將其稱為DOS攻擊。
如果該攻擊只是破壞了應用程序的狀態(例如,讓未經授權的用戶將應用程序設置為只讀模式),那麼我可能會傾向於只調用該應用程序(或安全)漏洞。
將服務器軟件崩潰視為DOS攻擊是否有意義?
任何行為者在任何活動方面的行為都至少在兩個方面:能力
和權限
。
能力有兩種可能性: able
和 unable
。
權限也有兩種可能性: allowed
或 denied
。
因此,一個好的參與者僅在 able
和 allowed
。
從我的角度來看,軟件崩潰
= 不可用
和 DOS
= 拒絕
。由於這兩個是不同維度上的“值”,因此即使對最終用戶的影響可能相似,也不能將它們視為相似。但是,網絡管理員看到的效果可能完全不同-解決方案通常是不同的。
此外,DOS攻擊可能導致軟件崩潰,但是它們仍然不相似-它們是
示例:即使沒有任何攻擊,任何軟件也可能因數不清的原因而崩潰。
注意:軟件崩潰通常意味著該過程是由於操作錯誤而被操作系統停止。 DOS通常是可能的,因為該軟件只是行為不當,但不會崩潰。