os指紋匹配演算法

2021-09-22 13:53:31 字數 1822 閱讀 7452

1.ipv4 matching

nmap用於檢測匹配的演算法相對簡單。它需要乙個受試者指紋,並針對nmap-os-db中的每個參考指紋進行測試。

當針對參考指紋進行測試時,nmap依次檢視來自受試者指紋(例如seq或t1)的每個探針class行。跳過參考指紋中不存在的任何探測行。 當參考指紋確實具有匹配行時,將對它們進行比較。

對於探測行比較,nmap依次檢查主題類別行中的每個單獨測試(r,df,w等)。 跳過參考行中不存在的任何測試。每當找到匹配測試時,nmap會將possiblepoints累加器增加分配給此測試的點數。然後比較測試值。 如果參考測試具有空值,則受試者測試僅匹配其值是否為空。如果參考測試只是乙個普通的字串或數字(沒有操作符),則受試者測試必須完全匹配。如果引用字串包含運算子(|, - ,>或

一旦測試了所有探測線的指紋,nmap就會將nummatchpoints除以possiblepoints。結果是描述受試者指紋與該特定參考指紋匹配的概率的置信因子。例如,1.00是完美匹配,而0.95非常接近(95%)。

測試點值由nmap-os-db中的特殊matchpoints條目(可能只出現一次)指定。此條目看起來很像普通指紋,但不是為每個測試提供結果,而是為每個測試提供點值(非負整數)。 matchpoints結構中列出的測試僅在列出的相同測試中找到時才適用。因此,t1中w(視窗大小)測試的值不會影響t3中的w測試。通過為點值指定0可以有效地禁用測試。示例8.10中給出了示例matchpoints結構。

一旦評估了所有參考指紋,nmap就會對它們進行排序並列印完美匹配(如果沒有太多)。 如果沒有完美匹配,但有些非常接近,nmap可能會列印出來。 如果給出–osscan-guess選項,則更有可能列印猜測。

ipv6 matching

ipv6 os分類使用稱為邏輯回歸的機器學習技術。 nmap使用liblinear庫進行此分類。該過程從一大組訓練示例開始,這些示例是nmap使用者提交的指紋,並通過其作業系統進行了仔細標記。每個訓練示例由特徵向量表示,該特徵向量可以被認為是多維空間中該os的「座標」。 訓練演算法計算每個os類的成員與每個其他類的成員之間的最佳邊界。然後它將這些邊界中的每乙個編碼為向量。 每個os類都有不同的向量。

匹配時,引擎依次獲取這些邊界向量中的每乙個,並計算它與特徵向量之間的點積。 結果是乙個實數。 數字越高(越正),匹配的可能性越大。 負數不太可能匹配。 使用邏輯公式100 /(1 + ex)將數字x從範圍[-∞,∞]對映到[0,100]。 (這是「邏輯回歸」這個名稱的**。)

通常,具有最高分數的os類最有可能匹配,但是在前所未有的作業系統的情況下,可能具有非常高的分數但是仍然是不準確的匹配。 因此,第二個「novelty detection」演算法檢查觀察到的指紋是否與該類別的其他代表非常不同。 該演算法找到從觀察到的特徵向量到該類成員的特徵向量的平均值的歐幾里德距離,在每個維度上通過該特徵的方差的倒數進行縮放。與已經看到的特徵向量相似的特徵向量將具有低novelty,並且那些不同的特徵向量將具有高novelty。

具有最高分數的os類被報告為匹配,但僅當新穎性低於15時。另外,如果兩個最高os類具有相差小於10%的分數,則分類被認為是不明確的並且不是成功匹配 。 針對mac os x 10.6.8的執行的示例邏輯和novelty得分顯示在表8.9「os對mac os x的猜測」中。

沒有包含ipv6 os資料庫的單獨資料檔案,他們與ipv4放在一起。 資料庫儲存在c ++源**檔案fpmodel.cc中。 該檔案包含縮放常數(用於將特徵值大致置於[0,1]範圍內)和上述邊界向量。

ZKT指紋識別演算法

zkfinger 演算法是一種快速 準確的 1 1 和 1 n 指紋識別演算法,面向軟體 開發商和系統整合商全面開放,客戶可以根據需要選擇使用 zkfinger10.0 9.0 演算法引擎 在使用 zkfinger 10.0 引擎進行指紋識別時,不需要對指紋通過姓 名 pin 等預先分類就可以達到 ...

網頁排重演算法 資訊指紋演算法

2009 11 13 11 04 1.1資訊指紋演算法 判斷重複網頁的思想 為每個網頁計算出一組資訊指紋 fingerprint 若兩個網頁有一定數量相同的資訊指紋,則認為這兩個網頁的內容重疊性很高,也就是說兩個網頁是內容複製的。判斷內容複製的方法中最關鍵的兩點 1 計算資訊指紋 fingerpri...

OS 程序排程演算法

最近學習自考學到程序排程,其中的排程演算法看著很複雜,細想又很簡單,接下來簡單介紹一下 先來先服務演算法 理論定義 我的理解 排程演算法 從就緒佇列的隊首選擇最先到達就緒佇列的程序,為該程序分配cpu 排隊,先到先得 效能分析 適合長程序,不利於短程序,短程序等待時間相對於執行時間而言太長 排隊要做...