worm演算法
1. 按傳染性方式分類,計算機病毒可分為哪幾種
分類
前言
根據多年對計算機病毒的研究,按照科學的、系統的、嚴密的方法,計算機病毒可分類如下:按照計算機病毒屬性的方法進行分類,計算機病毒可以根據下面的屬性進行分類:
按病毒存在的媒體
根據病毒存在的媒體,病毒可以劃分為網路病毒,文件病毒,引導型病毒。網路病毒通過計算機網路傳播感染網路中的可執行文件,文件病毒感染計算機中的文件(如:COM,EXE,DOC等),引導型病毒感染啟動扇區(Boot)和硬碟的系統引導扇區(MBR),還有這三種情況的混合型,例如:多型病毒(文件和引導型)感染文件和引導扇區兩種目標,這樣的病毒通常都具有復雜的演算法,它們使用非常規的辦法侵入系統,同時使用了加密和變形演算法。
按病毒傳染的方法
根據病毒傳染的方法可分為駐留型病毒和非駐留型病毒,駐留型病毒感染計算機後,把自身的內存駐留部分放在內存(RAM)中,這一部分程序掛接系統調用並合並到操作系統中去,他處於激活狀態,一直到關機或重新啟動.非駐留型病毒在得到機會激活時並不感染計算機內存,一些病毒在內存中留有小部分,但是並不通過這一部分進行傳染,這類病毒也被劃分為非駐留型病毒。
按病毒破壞的能力
無害型:除了傳染時減少磁碟的可用空間外,對系統沒有其它影響。 無危險型:這類病毒僅僅是減少內存、顯示圖像、發出聲音及同類音響。 危險型:這類病毒在計算機系統操作中造成嚴重的錯誤。 非常危險型: 這類病毒刪除程序、破壞數據、清除系統內存區和操作系統中重要的信息。這些病毒對系統造成的危害,並不是本身的演算法中存在危險的調用,而是當它們傳染時會引起無法預料的和災難性的破壞。由病毒引起其它的程序產生的錯誤也會破壞文件和扇區,這些病毒也按照他們引起的破壞能力劃分。一些現在的無害型病毒也可能會對新版的DOS、Windows和其它操作系統造成破壞。例如:在早期的病毒中,有一個「Denzuk」病毒在360K磁碟上很好的工作,不會造成任何破壞,但是在後來的高密度軟盤上卻能引起大量的數據丟失。
按病毒的演算法
伴隨型病毒,這一類病毒並不改變文件本身,它們根據演算法產生EXE文件的伴隨體,具有同樣的名字和不同的擴展名(COM),例如:XCOPY.EXE的伴隨體是XCOPY-COM。病毒把自身寫入COM文件並不改變EXE文件,當DOS載入文件時,伴隨體優先被執行到,再由伴隨體載入執行原來的EXE文件。 「蠕蟲」型病毒,通過計算機網路傳播,不改變文件和資料信息,利用網路從一台機器的內存傳播到其它機器的內存,計算網路地址,將自身的病毒通過網路發送。有時它們在系統存在,一般除了內存不佔用其它資源。 寄生型病毒 除了伴隨和「蠕蟲」型,其它病毒均可稱為寄生型病毒,它們依附在系統的引導扇區或文件中,通過系統的功能進行傳播,按其演算法不同可分為:練習型病毒,病毒自身包含錯誤,不能進行很好的傳播,例如一些病毒在調試階段。 詭秘型病毒 它們一般不直接修改DOS中斷和扇區數據,而是通過設備技術和文件緩沖區等DOS內部修改,不易看到資源,使用比較高級的技術。利用DOS空閑的數據區進行工作。 變型病毒(又稱幽靈病毒) 這一類病毒使用一個復雜的演算法,使自己每傳播一份都具有不同的內容和長度。它們一般的作法是一段混有無關指令的解碼演算法和被變化過的病毒體組成。
2. 計算機病毒有哪些類型
按照計算機病毒屬性的方法進行分類,計算機病毒可以根據下面的屬性進行分類。
一、根據病毒存在的媒體劃分:
1、網路病毒——通過計算機網路傳播感染網路中的可執行文件。
2、文件病毒——感染計算機中的文件(如:COM,EXE,DOC等)。
3、引導型病毒——感染啟動扇區(Boot)和硬碟的系統引導扇區(MBR)。
二、根據病毒傳染渠道劃分:
1、駐留型病毒——這種病毒感染計算機後,把自身的內存駐留部分放在內存(RAM)中,這一部分程序掛接系統調用並合並到操作系統中去,它處於激活狀態,一直到關機或重新啟動
2、非駐留型病毒——這種病毒在得到機會激活時並不感染計算機內存,一些病毒在內存中留有小部分,但是並不通過這一部分進行傳染,這類病毒也被劃分為非駐留型病毒。
三、根據破壞能力劃分:
1、無害型——除了傳染時減少磁碟的可用空間外,對系統沒有其它影響。
2、無危險型——這類病毒僅僅是減少內存、顯示圖像、發出聲音及同類影響。
3、危險型——這類病毒在計算機系統操作中造成嚴重的錯誤。
4、非常危險型——這類病毒刪除程序、破壞數據、清除系統內存區和操作系統中重要的信息。
四、根據演算法劃分:
1、伴隨型病毒——這類病毒並不改變文件本身,它們根據演算法產生EXE文件的伴隨體,具有同樣的名字和不同的擴展名(COM),例如:XCOPY.EXE的伴隨體是XCOPY-COM。病毒把自身寫入COM文件並不改變EXE文件,當DOS載入文件時,伴隨體優先被執行到,再由伴隨體載入執行原來的EXE文件。
2、「蠕蟲」型病毒——通過計算機網路傳播,不改變文件和資料信息,利用網路從一台機器的內存傳播到其它機器的內存,計算機將自身的病毒通過網路發送。有時它們在系統存在,一般除了內存不佔用其它資源。
3、寄生型病毒——除了伴隨和「蠕蟲」型,其它病毒均可稱為寄生型病毒,它們依附在系統的引導扇區或文件中,通過系統的功能進行傳播,按其演算法不同還可細分為以下幾類。
4、練習型病毒,病毒自身包含錯誤,不能進行很好的傳播,例如一些病毒在調試階段。
5、詭秘型病毒,它們一般不直接修改DOS中斷和扇區數據,而是通過設備技術和文件緩沖區等對DOS內部進行修改,不易看到資源,使用比較高級的技術。利用DOS空閑的數據區進行工作。
6、變型病毒(又稱幽靈病毒),這一類病毒使用一個復雜的演算法,使自己每傳播一份都具有不同的內容和長度。它們一般的作法是一段混有無關指令的解碼演算法和被變化過的病毒體組成。
五、破壞性
1、良性病毒
2、惡性病毒
3、極惡性病毒
4、災難性病毒。
六、傳染方式
1、引導區型病毒主要通過軟盤在操作系統中傳播,感染引導區,蔓延到硬碟,並能感染到硬碟中的"主引導記錄"。
2、文件型病毒是文件感染者,也稱為「寄生病毒」。它運行在計算機存儲器中,通常感染擴展名為COM、EXE、SYS等類型的文件。
3、混合型病毒具有引導區型病毒和文件型病毒兩者的特點。
4、宏病毒是指用BASIC語言編寫的病毒程序寄存在Office文檔上的宏代碼。宏病毒影響對文檔的各種操作。
七、連接方式
1、源碼型病毒攻擊高級語言編寫的源程序,在源程序編譯之前插入其中,並隨源程序一起編譯、連接成可執行文件。源碼型病毒較為少見,亦難以編寫。
2、入侵型病毒可用自身代替正常程序中的部分模塊或堆棧區。因此這類病毒只攻擊某些特定程序,針對性強。一般情況下也難以被發現,清除起來也較困難。
3、操作系統型病毒可用其自身部分加入或替代操作系統的部分功能。因其直接感染操作系統,這類病毒的危害性也較大。
4、外殼型病毒通常將自身附在正常程序的開頭或結尾,相當於給正常程序加了個外殼。大部份的文件型病毒都屬於這一類。
(2)worm演算法擴展閱讀:
為了能夠復制其自身,病毒必須能夠運行代碼並能夠對內存運行寫操作。基於這個原因,許多病毒都是將自己附著在合法的可執行文件上。如果用戶企圖運行該可執行文件,那麼病毒就有機會運行。病毒可以根據運行時所表現出來的行為分成兩類。
非常駐型病毒會立即查找其它宿主並伺機加以感染,之後再將控制權交給被感染的應用程序。常駐型病毒被運行時並不會查找其它宿主。相反的,一個常駐型病毒會將自己載入內存並將控制權交給宿主。該病毒於背景中運行並伺機感染其它目標。
常駐型病毒包含復制模塊,其角色類似於非常駐型病毒中的復制模塊。復制模塊在常駐型病毒中不會被搜索模塊調用。病毒在被運行時會將復制模塊載入內存,並確保當操作系統運行特定動作時,該復制模塊會被調用。
例如,復制模塊會在操作系統運行其它文件時被調用。在這個例子中,所有可以被運行的文件均會被感染。常駐型病毒有時會被區分成快速感染者和慢速感染者。快速感染者會試圖感染盡可能多的文件。
3. 分布式存儲極簡藝術Minio解析
MinIO 對象存儲系統是為海量數據存儲、人工智慧、大數據分析而設計,基於
Apache License v2.0 開源協議的對象存儲系統,它完全兼容 Amazon S3 介面,單個對象的最大可達 5TB,適合存儲海量圖片、視頻、日誌文件、備份數據和容器/虛擬機鏡像等。作為一個開源服務,MinIO 在設計上汲取了Glusterfs的相關經驗不教訓,系統復雜度上作了大量簡化,目前大小隻有40+M,部署只需要一個命令即可完成!另外,minio舍棄了傳統分布式存儲擴容所需要的遷移流程,採用聯盟模式添加集群的方式,極大簡化了擴容流程;除此之外,minio還具有糾刪編碼、比特位保護、單寫多讀(worm)、下面來依次簡要解析一下Mioio的特點及具體實現:
元數據和數據一起存放在磁碟上。元數據以明文形式存放在元數據文件里(xl.json)。假定對象名字為key_name, 它所在桶的名字是bucket_name, disk路徑就是/disk,那麼存儲路徑就是:/disk/bucket_name/key_name,windows下C盤存放桶名為test,對象名為minio.exe示例如圖:
其中part.1是實際存儲數據(單機模式為原生數據,分布式為糾刪碼分塊),xl.json是如下所示的json字元串:
在同一集群內,MinIO 自己會自勱生成若干糾刪組,用於分布存放桶數據。一個糾刪組中的一定數量的磁碟發生的故障(故障磁碟的數量小於等於校驗盤的數量),通過糾刪碼校驗演算法可以恢復出正確的數據。MinIO 集成了 Reed-Solomon 糾刪碼庫,MinIO 存儲對象數據時,首先把它分成若乾等長的片段(對於大對象,默認按 5MB 切片),然後每一個片段會糾刪演算法分成若干分片,包括數據分片不校驗分片,每個分片放置在一個糾刪組的某個節點上。對象的每一個數據分片、校驗分片都被「防比特位衰減」演算法所保護。
MinIO 會根據對象名(類似於文件系統的全路徑名),使用 crc32 哈希演算法計算出一個整數。然後使用這個整數除以糾刪組的個數,得到一個余數。這個余數,可以作為糾刪組的序號,這樣就確定了這個對象所在的糾刪組。MinIO 採用 CRC32 哈希演算法,不 glusterfs 的Davies Meyer哈希演算法(性能、沖突概率不md4, md5相近)不一樣的是,CRC32演算法的哈希值分布較不均勻,但運算速度極快,高出 md4 數倍。相對於容量均衡,MinIO 更看重數據的寫入速度。
糾刪組如何配置?
官方文檔說明如下:
也就是說糾刪組的總大小隻能從這7中情況中根據你提供的盤的個數(或者說路徑個數)來自動選取最大值的,我們 不能靈活地配置m+k糾刪存儲格式。但這樣說又不是很准確 ,因為雖然不能配置任意的m+k,但是在系統已經選取好擦除編碼集的的個數後(也就是m+k),可以使用storage class存儲類來自定義m和k的數量,默認是1:1的。
存儲類:
MinIO支持配置兩種存儲類別,精簡冗餘類別和標准類別,默認是標准類別(1:1),可以在啟動MinIO伺服器之前使用設置的環境變數來定義這些類。使用環境變數定義每個存儲類別的數據和奇偶校驗磁碟後,您可以 在上傳對象時通過請求元數據欄位設置對象的存儲類別x-amz-storage-class 。然後,MinIO伺服器通過將對象保存在特定數量的數據和奇偶校驗磁碟中來兌現存儲類。具體配置和使用可以參考官方文檔 https://github.com/minio/minio/tree/master/docs/erasure/storage-class
傳統的擴展方式的劣勢
通過增加節點來擴展單集群,一般需要進行數據均衡,否則群集內各存儲節點會因負載不均而出現新的瓶頸。除了數據均衡操作的時機這個問題以外,在均衡過程中一般需要仍存儲使用率高的節點吐使用率低的節點遷移數據。當集群擴容後,大量已經寫入的文件落點會出現改變,文件需要遷移到真實的落點。當存儲系統容量比較大時,則會發生大量的文件/對象進行遷移,遷移過程可能由於佔用大量資源而導致上層應用性能下降。而且當文件/對象遷移過程中,機器故障可能會導致一些意想不到的情冴,尤其是有大量業務的時候。當然針對此類問題,Gluterfs之類的文件系統有一些比較復雜的處理辦法。
不支持擴展優勢