dan演算法
① 9 非對稱加密
目前為止,本書中只討論到對稱加密。假設一個密碼系統不只有一個密鑰,而是有一對密鑰,其中公鑰可以自由地發布,而私鑰由自己保管。其他人可以使用你的公鑰來加密數據,這個信息只有你的私鑰可以解密,這個被稱為 公鑰加密(public-key encryption)
很長一段時間,這都被認為是不可能的。然而從1970年開始,這一類型的演算法開始出現。第一個廣為流傳的是MIT的三位密碼學家:Ron Rivest,Adi Shamir 和Leonard Adleman提出的RSA。
公鑰演算法並不僅僅用來加密,實際上本書之前的部分已經提到過公鑰演算法而其不是直接用在加密上。有三個與公鑰演算法相關的主題
從表面來看,公鑰加密好像可以淘汰之前提到的對稱密鑰演算法。對於任何事情都可以使用公鑰加密,也不需要對稱密鑰系統中的密鑰交換過程。然而在實際的密碼學系統中,可以看到到處都是混合的加密,公鑰加密在其中起著重要作用,但是大部分的加解密以及認證工作還是基於對成密鑰演算法的。
目前來看最重要的原因是性能。與流密碼(原生的流密碼或者其他)演算法相比,公鑰加密機制實在是太慢了。RSA通常情況下需要2048位也就是256個位元組。其加密需要0.29百萬次循環,解密需要11.12百萬次循環。而對稱加密和解密只需要每位元組約10次循環。這也意味著在對稱密鑰演算法中,解密256位數據,只需要3000次循環,這個效率是非對稱版本的4000次。而目前的密碼系統使得對稱加密更快了,在AES-GCM硬體加速或者Salsa20/ChaCha20隻需要2或者4次每位元組,更大程度上提高了性能。
實際的密碼系統中還有更多其他的問題。例如對於RSA來說,它不能加密任何比它大的信息,通常情況是小於或者等於4096位,比大部分的需求要小的多。當然最重要的問題依然是上述的速度的問題。
本節簡單描述RSA背後的數學問題。其本身並不能產生安全加密機制。之後會看到在其上構造的密碼指導OAEP。
為了產生一個key,需要挑選兩個大素數p和q,這些數需要隨機私密的挑選。將兩者相乘的到N,這個是公開的。然後選擇一個加密指數e,這個也是公開的。通常這個數是3或者65537.因為這些數的二進制形式中僅有很少量的1。計算指數會更有效。(N,e)是公鑰,任何人都可以用公鑰來加密消息M,得到密文C。
接下來的問題是解密,有一個解密指數d,可以將C轉化會M。如果指導p和q,d很容易計算。可以使用d來解密消息:
RSA的安全性依賴於對於不知道d的人來說解密操作是不可能的,並且在只知道(N,e)的情況下d的計算是非常難的。
類似於很多密碼系統,RSA依賴於特定數學問題的難度。給定密文C,和公鑰(N,e),反推出明文M。這被稱為RSA難題。
最直接的方法是將N分解為p*q。給定p和q,攻擊者只需要重復密鑰擁有者的過程來計算產生d即可。
幸運的是,沒有一個演算法可以在合理的時間內分解這么大的數。不幸的是,目前也無法證明該演算法一定不存在。更加糟糕的是,有一個理論上的演算法,被稱為Shor's Algorithm,可以在量子計算機上在合理的時間內分解一個數。目前,量子計算機還離我們有些遠,但是未來某天可能就會成為現實。到時候RSA就變得不再有效。
本節中僅僅提到了分解大數這個最直接的方式來攻擊RSA。在接下來的部分可以看到一系列針對RSA的實際攻擊,其主要依賴於一些具體的實現。
目前,沒有已知的實際的攻破RSA的方法。但這不意味著使用RSA的系統沒有被攻破過。和其他被攻破的系統一樣,應用中有很多組成部分,一旦其中的某部分沒有恰當的使用,就會使整個系統變得不可用。更多有關RSA實施的細節的,參考【Bon99】和【AV96】,本部分只提及一些有趣的部分。
Salt是一個用python寫的供應系統。它有一個模塊叫做 cypto ,它沒有使用已有的密碼學系統,而是實現了一個自己的,其中使用的RSA和AES由第三方庫提供。
很長一段時間里,Salt使用的公鑰指數e是1,這也就意味著P e=P 1=P(mod N)。這也就意味著結果的密文就是明文。目前該問題已經被修復,這里只是為了提醒大家,不要實現自己的加密系統。Salt現在支持了SSH作為傳輸蹭,但是先前提到的DIY的RSA/AES系統依然存在,並且還是默認的傳輸層。
OAEP是Optimal asymmetric encryption padding的簡稱,是RSA填充的一種。它的結構類似於下圖(文檔中這個圖有問題,下面是正確的圖):
最終產生的需要被加密的數據是X||Y,是n位長,這個n是N的位數。它使用一個隨機的塊R它的長度是k,在這個標准中,k是一個定值。消息首先需要用0填充被擴充到n-k位。圖中左邊的長度為n-k位,右邊的長度為k。隨機塊R和以0擴充的M,M||000...使用兩個陷阱函數,G和H。陷阱函數都是從一個方向計算非常簡單,但是逆轉非常的難。世紀中通常為hash函數。
G的輸入是k位,輸出是n-k位,H的輸入是n-k位,輸出是k位。
然後結果的X和Y被連接在一起,然後由標準的RSA來進行加密產生密文。
解密的時候,要反過來操作。接收者收到X||Y,他們是指導k的,因為這個是協議里的定值。所以前n-k是X,後k位是Y。
想要得到M,M||000...,需要去計算
可以看出,對於一些H和G來說,需要所有的X和Y才能找到M。對於H和G有很多種基於Hash函數的選擇。
絕大多數的公鑰加密只能一次加密一小塊,一般都遠小於要發送的信息。另外這些演算法還很慢,比對稱加密要慢的多。通常非對稱加密用來連接密碼系統。
有了公鑰密碼和密鑰交換,是密碼學裡面兩個非常重要的部分,因為人們總是需要與其他人交換私密的信息。有了這兩個技術就可以安全地和其他人交流。
目前為止討論的加密都沒有任何形式的身份認證。這也就意味著對消息進行加密和解密,並不能驗證得到的消息確實是發送者發送的原本的消息。
沒有身份認證的加密可以提供隱私性,但是如之前章節所言,沒有身份認證,盡管攻擊者不知道任何原文的信息,他任然可以修改加密的信息。接收這些消息會泄漏一些私密的信息,這也就意味著私密性不在。例如之前第7章提到的CBC的填充攻擊。
綜上所言,出了加密私密的信息之外,還需要對其進行身份認證。通常身份認證都是對消息增加一些額外的可計算的信息。類似於加密,身份認證也分為對稱類型的和非對稱類型的。對稱類型的通常被稱為消息認證(message authentication),非對稱類型的通常被稱為數字簽名。
下一章先介紹一下另一個密碼學中的重點:hash函數。hash在產生簽名和消息認證等過程中都需要用到。
[Bon99] Dan Boneh. Twenty years of attacks on the RSA cryptosystem. Notices of the AMS , 46:203–213, 1999. URL: http://crypto.stanford.e/dabo/papers/RSA-survey.pdf .
[AV96] Ross Anderson and Serge Vaudenay. Minding your pʼs and qʼs. In In Advances in Cryptology - ASIACRYPT』96, LNCS 1163 , 26–35. Springer� Verlag, 1996. URL: http://www.cl.cam.ac.uk/~rja14/Papers/psandqs.pdf .
② 高考中求數列的通項公式共有幾種方法。
高考中求數列的通項公式主要有以下七種方法,具體情況說明如下:
1.
公式法,當題意中知道,某數列的前n項和sn,則可以根據公式求得an=sn-s(n-1).
2.
待定系數法:若題目特徵符合遞推關系式a1=A,an+1=Ban+C(A,B,C均為常數,B≠1,C≠0)時,可用待定系數法構造等比數列求其通項公式。
3.
逐項相加法:若題目特徵符合遞推關系式a1=A(A為常數),an+1=an+f(n)時,可用逐差相加法求數列的通項公式。
4.
逐項連乘法:若題目特徵符合遞推關系式a1=A(A為常數),an+1=f(n)•an時,可用逐比連乘法求數列的通項公式。
5.
倒數法:若題目特徵符合遞推關系式a1=A,Ban+Can+1+Dan·an+1=0,(A,B,C,D均為常數)時,可用倒數法求數列的通項公式。
6.
其他觀察法或歸納法等。
③ 石高是石高制,指日本在豐臣秀吉時的分封形式的標准。"石高"如何讀
中文的話shi gao 或者 dan gao 應該都可以,dan gao 應該更准確,畢竟這里的石是糧食的計量單位而不是當石頭講。日語的話,こくだか(KOKUDAKA)
④ 現在的1.5錢有唐朝的多少錢呢
摘要 古今中葯劑量的換算問題 漢 唐宋 清代 經方中葯兩 錢 分換算
⑤ 旋轉矩陣是怎麼回事哪個朋友用數字舉個例子,詳細點謝謝啦!
旋轉矩陣旋轉矩陣(Rotation matrix)是在乘以一個向量的時候有改變向量的方向但不改變大小的效果的矩陣。旋轉矩陣不包括反演,它可以把右手坐標系改變成左手坐標系或反之。所有旋轉加上反演形成了正交矩陣的集合。旋轉矩陣是世界上著名的彩票專家、澳大利亞數學家底特羅夫研究的,它可以幫助您鎖定喜愛的號碼,提高中獎的機會。首先您要先選一些號碼,然後,運用某一種旋轉矩陣,將你挑選的數字填入相應位置。如果您選擇的數字中有一些與開獎號碼一樣,您將一定會中一定獎級的獎。當然運用這種旋轉矩陣,可以最小的成本獲得最大的收益,且遠遠小於復式投注的成本。旋轉矩陣的原理在數學上涉及到的是一種組合設計:覆蓋設計。而覆蓋設計,填裝設計,斯坦納系,t-設計都是離散數學中的組合優化問題。它們解決的是如何組合集合中的元素以達到某種特定的要求。其最古老的數學命題是寇克曼女生問題:某教員打算這樣安排她班上的十五名女生散步:散步時三女生為一組,共五組。問能否在一周內每日安排一次散步,使得每兩名女生在一周內一道散步恰好一次?寇克曼於1847年提出了該問題,過了100多年後,對於一般形式的寇克曼問題的存在性才徹底解決。用1~15這15個數字分別代表15個女生,其中的一組符合要求的分組方法是:星期日:(1,2,3),(4,8,12),(5,10,15),(6,11,13),(7,9,14)星期一:(1,4,5),(2,8,10),(3,13,14),(6,9,15),(7,11,12)星期二:(1,6,7),(2,9,11),(3,12,15),(4,10,14),(5,8,13)星期三:(1,8,9),(2,12,14),(3,5,6),(4,11,15),(7,10,13)星期四:(1,10,11),(2,13,15),(3,4,7),(5,9,12),(6,8,14)星期五:(1,12,13),(2,4,6),(3,9,10),(5,11,14),(7,8,15)星期六:(1,14,15),(2,5,7),(3,8,11),(4,9,13),(6,10,12)在此領域內做出了突出貢獻的主要組合數學家有1,Patric Ostergard他的主要貢獻是用了全新的模擬冷卻演算法解決了旋轉矩陣的構造問題,運用他的模擬冷卻程序,可以很迅速的產生許許多多的旋轉矩陣。2,Alex Sidorenko他研究出了許多旋轉矩陣和幾種產生旋轉矩陣的基於禿嶺瀏覽的一般方法。3,Greg Kuperberg他注意到線性的[v,t]編碼的補集可以給出區組長度不定的覆蓋設計,而這可以產生對現有的旋轉矩陣的一系列改進。4,Dan Gordon他收集的旋轉矩陣是迄今為止最全面,最權威的。 [編輯本段]性質設 是任何維的一般旋轉矩陣: 兩個向量的點積在它們都被一個旋轉矩陣操作之後保持不變: 從而得出旋轉矩陣的逆矩陣是它的轉置矩陣: 這里的 是單位矩陣。 一個矩陣是旋轉矩陣,當且僅當它是正交矩陣並且它的行列式是單位一。正交矩陣的行列式是 ±1;如果行列式是 �6�11,則它包含了一個反射而不是真旋轉矩陣。 旋轉矩陣是正交矩陣,如果它的列向量形成 的一個正交基,就是說在任何兩個列向量之間的標量積是零(正交性)而每個列向量的大小是單位一(單位向量)。 任何旋轉向量可以表示為斜對稱矩陣 A的指數: 這里的指數是以泰勒級數定義的而 是以矩陣乘法定義的。A 矩陣叫做旋轉的「生成元」。旋轉矩陣的李代數是它的生成元的代數,它就是斜對稱矩陣的代數。生成元可以通過 M 的矩陣對數來找到。 [編輯本段]二維空間在二維空間中,旋轉可以用一個單一的角 θ 定義。作為約定,正角表示逆時針旋轉。把笛卡爾坐標的列向量關於原點逆時針旋轉 θ 的矩陣是: [編輯本段]三維空間在三維空間中,旋轉矩陣有一個等於單位一的實特徵值。旋轉矩陣指定關於對應的特徵向量的旋轉(歐拉旋轉定理)。如果旋轉角是 θ,則旋轉矩陣的另外兩個(復數)特徵值是 exp(iθ) 和 exp(-iθ)。從而得出 3 維旋轉的跡數等於 1 + 2 cos(θ),這可用來快速的計算任何 3 維旋轉的旋轉角。3 維旋轉矩陣的生成元是三維斜對稱矩陣。因為只需要三個實數來指定 3 維斜對稱矩陣,得出只用三個是實數就可以指定一個3 維旋轉矩陣。生成旋轉矩陣的一種簡單方式是把它作為三個基本旋轉的序列復合。關於右手笛卡爾坐標系的 x-, y- 和 z-軸的旋轉分別叫做 roll, pitch 和 yaw 旋轉。因為這些旋轉被表達為關於一個軸的旋轉,它們的生成元很容易表達。繞 x-軸的旋轉定義為: 這里的 θx 是 roll 角。 繞 y-軸的旋轉定義為: 這里的 θy 是 pitch 角。 繞 z-軸的旋轉定義為: 這里的 θz 是 yaw 角。 在飛行動力學中,roll, pitch 和 yaw 角通常分別採用符號 γ, α, 和 β;但是為了避免混淆於歐拉角這里使用符號 θx, θy 和 θz。任何 3 維旋轉矩陣 都可以用這三個角 θx, θy, 和 θz 來刻畫,並且可以表示為 roll, pitch 和 yaw 矩陣的乘積。是在 中的旋轉矩陣 在 中所有旋轉的集合,加上復合運算形成了旋轉群 SO(3)。這里討論的矩陣接著提供了這個群的群表示。更高維的情況可參見 Givens旋轉。 角-軸表示和四元數表示
在三維中,旋轉可以通過單一的旋轉角 θ 和所圍繞的單位向量方向 來定義。這個旋轉可以簡單的以生成元來表達:在運算於向量 r 上的時候,這等價於Rodrigues旋轉公式:角-軸表示密切關聯於四元數表示。依據軸和角,四元數可以給出為正規化四元數 Q:這里的 i, j 和 k 是 Q 的三個虛部。
⑥ 2、威脅狩獵方法
在我們討論威脅狩獵的定義之前,讓我們通過說明什麼不是威脅狩獵來澄清一些關於這個概念的誤解。首先,威脅搜索不同於網路威脅情報(CTI)或事件響應(IR),盡管它可以與網路威脅情報(CTI)或事件響應(IR)密切相關。CTI可能是一個很好的搜索起點。IR可能是組織在成功狩獵後的下一步。威脅搜索也不是安裝探測工具,盡管這對提高它們的探測能力很有用。此外,它不是在組織的環境中尋找ioc;相反,你將尋找繞過已經被IoCs饋入的檢測系統的東西。威脅搜索也不等同於監視,也不等同於在監視工具上隨機運行查詢。但是,最重要的是,威脅狩獵不是一項只能由一組精選的專家完成的任務。當然,專業知識很重要,但這並不意味著只有專家才能做到。一些威脅捕獵技術需要更長的時間才能掌握;有些是與事件響應和分診共享的。這種做法本身已經存在多年,遠早於它被稱為「威脅狩獵」。進行狩獵的主要必要條件是知道問什麼以及從哪裡找到答案。
那麼,什麼是威脅狩獵?在第一個無白皮書關於狩獵的威脅,「誰,,,,為什麼以及如何有效的威脅狩獵」(https://www.sans.org/reading-room/whitepapers/analyst/membership/36785),由羅伯特·李和羅伯·李在2016年,他們威脅狩獵定義為「專注和迭代方法尋找,識別、以及了解防禦者網路內部的對手。」
讓我們進一步擴展這個定義。首先,我們需要說明,威脅狩獵是人類驅動的活動。作為威脅情報,這也是一種積極主動的安全措施,因為這一切都是為了在為時已晚之前採取行動;也就是說,這不是一種反應性措施。威脅獵殺也就是不斷地在組織的環境中尋找妥協的跡象。它是迭代的,因為它從其他安全活動中為自己提供服務,同時也為其他安全活動提供服務。另外,威脅狩獵是建立在入侵發生的假設上的。
在威脅狩獵中,我們假設對手已經在我們的環境中,而獵人的工作是盡快識別漏洞,以便將其損害降到最低。這個過程涉及到人類的分析能力,因為這取決於獵人找到入侵的跡象,繞過可能已經存在的自動檢測過程。總之,威脅獵人的目標是縮短所謂的停留時間。
停留時間 dwell time 是指從對手侵入環境到被發現入侵之間所經過的時間。根據SANS 2018威脅狩獵調查,對手平均可以在受損環境中自由游盪90天以上。有一件很重要的事要明白,減少停留時間的戰斗是無止境的。敵人將會適應我們的偵測率並將會改進他們的技術以便在不被察覺的情況下潛入我們的系統。社區和捕獵者將從他們的新技術中學習,並將再次減少停留時間,只要敵人的目標是我們組織的環境,這個循環就會繼續:
因此,總結起來,我們可以說,威脅搜索是一種人為驅動的活動,它通過主動和迭代地搜索組織的環境 (網路、端點和應用程序), 以尋找破壞的跡象,以縮短停留時間,並最小化對組織的破壞影響。
此外,如果我們希望了解組織在試圖檢測某些技術時的可見性差距,威脅狩獵是有益的;它將有助於創建新的監測和檢測分析;它可以導致發現新的敵對ttp,為網路威脅情報團隊和社區提供信息;而狩獵本身可能會導致進一步的分析。
Sqrrl團隊(https://www.cybersecurity-insiders.com/5-types-ofthreat-hunting/)區分了五種不同類型的搜索:數據驅動、intel驅動、實體驅動、TTP驅動和混合驅動。同時,這五種不同的類型可以分為結構化(基於假設)和非結構化(基於數據中觀察到的異常):
Sqrrl團隊(https://www.cybersecurity-insiders.com/5-types-ofthreat-hunting/)區分了五種不同類型的搜索: 數據驅動、intel驅動、實體驅動、TTP驅動和混合驅動 。同時,這五種不同的類型可以分為 結構化(基於假設)和非結構化(基於異常)威脅 捕獵者技能集到目前為止,我們已經想出了威脅捕獵的定義。我們已經提到過,威脅搜索並不是只有經驗豐富的安全分析師才能做的事情。那麼,每個威脅獵人都需要具備哪些技能呢?
由於威脅情報是狩獵的觸發器之一,我們可以說,稱職的威脅情報分析員必須至少對網路威脅情報的核心主題有基本的了解: 高級持續性威脅、惡意軟體類型、妥協指標、威脅行動者的動機和意圖,advance persistence threats, malware types, indicators of compromise, threat actor motivations and intents等等。此外,威脅獵手還需要了解攻擊者將如何實施攻擊。熟悉網路殺傷鏈和ATT&CK™框架將有助於這方面的工作。特別是,如果我們希望熟悉在不同技術環境(Linux、macOS、Windows、雲、移動和工業控制系統)中進行攻擊的方式,ATT&CK™框架將非常有用。這些技術(和子技術)提供的粒度允許任何分析人員更好地理解攻擊是如何設計和以後如何執行的。
一般來說,在分析網路活動時,對網路的架構和取證有很好的理解是非常有用的。同樣,執行威脅搜索的一部分是處理日誌——大量的日誌。與此相一致,我們可以說,威脅獵人需要能夠識別網路活動和從端點和應用程序收集的數據中的不尋常模式。在這方面,熟悉數據科學方法和SIEMs的使用將會有所幫助。
我們將在第四章「映射對手」中深入討論這個具體問題。在數據中觀察到):
最後但並非最不重要的一點是,威脅搜索分析師需要對組織使用的操作系統以及它們將要使用的工具有很好的了解。
為了進行搜尋並能夠發現偏離規范的情況,威脅搜尋者需要了解組織的正常活動(基線)是什麼樣子的,以及事件響應程序是什麼。理想情況下, 負責狩獵的團隊不會是負責響應事件的團隊, 但有時,由於資源限制,情況並非如此。在任何情況下,團隊都需要知道在發現 入侵後應該採取什麼步驟,以及如何保存入侵的證據。
威脅獵手還需要善於溝通。一旦確定了威脅,就需要將信息適當地傳輸到組織的關鍵實體。獵人需要能夠溝通以驗證他們的發現,以及傳遞已經發現的東西的緊迫性和它可能對組織產生的影響。最後——稍後我們將深入探討——威脅捕獵者必須能夠有效地溝通如何實現投資回報,以確保威脅捕獵計劃的繼續。
3、痛苦金字塔
大衛·比安科的《痛苦金字塔》(https://detect-respond.blogspot.com/2013/03/the-pyramid-of pain.html)是一個在CTI和威脅搜索中都使用的模型。這是一種表示一旦你確定了對手的妥協指標、網路基礎設施和工具,將會給對手造成多大的「痛苦」,從而改變他們的方式的方法:
最下面的前三層(散列值、IP地址和域名)主要用於自動檢測工具。這些都是威脅行為者可以輕易改變的跡象。例如,一旦一個域名被公開,威脅參與者就可以簡單地注冊一個新域名。比改變域名更容易的是改變IP地址。域名之所以更令人頭疼,主要原因是它們需要付費和配置。
哈希是一種加密演算法的結果,該演算法將原始信息(無論其原始大小如何)映射為另一個值:具有固定大小的十六進制字元串。
hash有幾種類型(包括MD5、SHA-1、SHA-2和SHA-256)。哈希不僅是一個單向的過程——理想情況下,它不能從不同的文件產生相同的結果。對原始文件所做的任何微小更改都將導致生成不同的散列。這就是為什麼威脅行動者更改與其工具相關的散列值並不重要。
為了更改網路和主機構件,攻擊者需要付出更多的努力。這類指示符的例子包括注冊表項、用戶代理和文件名。為了更改它們,對手需要猜測哪些指示器被阻塞,並修改工具的配置。如果團隊能夠檢測到他們工具的大部分工件,對手將被迫更改它。
想像一下,你花了很多時間開發一個軟體,並在分配了很多資源之後根據你的需要對它進行調整,然後有一天你不得不放棄整個項目,開始一個新的項目。盡管這個示例場景可能有點過於極端,但理解為什麼對手更改工具如此具有挑戰性是很有用的。
金字塔的頂端是我們的戰術、技術和程序(TTPs)。在回應這些ttp時,我們並不是在回應響應對手用作工具的東西;我們瞄準的是其核心; 也就是他們的行為 。發現 對手的技術和他們進行的方式 是他們最痛苦的,因為為了改變他們做事的方式,他們必須重新思考;他們必須學習新的做事方式,走出自己的舒適區,重新塑造自己,這轉化為時間、資源和金錢。
威脅狩獵團隊的組成和用於狩獵的時間將取決於組織的規模和需求。當一個專門的團隊沒有預算時,搜尋的時間將來自其他安全分析人員的工作時間表。在這種情況下,分析人員通常是SOC或事件響應團隊的一部分。
所以,如果團隊的資源有限,為了成功實施威脅狩獵計劃,我們必須仔細計劃和准備狩獵,並結合我們的過程和經驗,以及我們正在使用的工具、技術和技術的豐富知識。在這里,David Bianco的威脅狩獵成熟度模型可以幫助我們確定我們所處的位置,以及我們需要做什麼來發展我們的狩獵團隊。
(1)確定我們的成熟度模型
所有組織都可以執行威脅搜索,但為了有效地執行,它們必須在必要的基礎設施和工具上進行投資。然而,為了獲得良好的投資回報,組織需要在他們的過程中足夠成熟。如果團隊不提供必要的技能、工具和數據,威脅捕獵計劃的效果將是有限的:
威脅捕獵成熟度模型定義了用於對團隊檢測能力進行分類的五個級別:初始、最小、過程、創新和領導initial, minimal, proceral, innovative, and leading。該模型可用於確定組織處於哪個階段,以及需要哪些步驟才能提升到另一個級別。該模型評估已建立的自動化水平、數據收集程序和數據分析程序。
最初階段和最低階段嚴重依賴自動檢測工具,但在最初階段,一些網路威脅情報被用於執行狩獵。
有兩種類型的威脅情報來源可以用於威脅狩獵: 內部和外部 。 內部來源 可以是過去事件的記錄或針對組織基礎設施的偵察嘗試。
外部來源 可以是威脅情報小組使用OSINT或付費供應商報告或反饋進行的分析。任何有關對組織環境的可能威脅的信息,如果不是來自組織本身,都被認為是外部的。
程序、創新和領導級別 都是由高水平的數據收集決定的,它們之間的區別取決於團隊是否能夠創建自己的數據分析程序,以及他們是否能夠滿足這些自動化程序,以避免重復相同的搜索。
有幾種安全信息和事件管理(Security Information and Event Management, SIEM)解決方案可供選擇,已經編寫了一些文章,介紹了它們的工作方式以及如何選擇適合組織需求的解決方案。在本書的後面,我們將使用一些使用Elastic SIEM開發的開源解決方案。您應該使用這種類型的解決方案來集中從系統中收集的所有日誌,以幫助您分析數據。確保收集的數據質量是很重要的。低質量的數據很少導致成功的狩獵。
另一個好的起點是搜索已發布的可以合並到您自己的流程中的搜索過程。您還可以創建新的狩獵過程,同時牢記組織的需求和關注點。例如,您可以創建聚焦於與您的組織行業相關的特定威脅參與者的搜索流程。盡可能多地記錄和自動化這些操作,以防止狩獵團隊一遍又一遍地重復相同的狩獵。
記住,總是假設一個入侵已經發生,思考威脅行動者是如何操作的,為什麼要這樣做,依靠狩獵活動來開啟新的調查線,並根據與威脅相關的風險級別來優先考慮狩獵。不斷搜索;不要等待警報的發生。
威脅搜索過程的最早定義之一是由Sqrrl在他們稱之為「威脅搜索循環」的內容中做出的
第一步是建立我們狩獵所依據的假設。通過這樣做,我們可以使用我們可以使用的技術和工具開始調查。在執行分析時,威脅搜尋者試圖發現組織環境中的新模式或異常。這一步的目的是試圖證明(或反駁)假設。循環的最後一步是盡可能地自動化成功搜索的結果。這將防止團隊重復相同的過程,並使他們能夠集中精力尋找新的漏洞。在這個階段,記錄這些發現是一個重要的階段,因為文檔將幫助團隊更好地理解組織的網路。對組織環境中什麼是正常的,什麼是不正常的有很好的把握,這將有助於團隊更好地進行狩獵。
Dan Gunter和Marc Setiz在《進行網路威脅搜索的實用模型》(https://pdfs.semanticscholar.org/4900/ .pdf)中提供了一個更詳細的模型,區分了六個不同的步驟,並強調了威脅搜索過程的迭代性質:
•目的:在進行威脅搜索時,應牢記組織的目標;例如,搜索可能受到長期業務目標的制約。
在這個階段,我們需要說明搜索的目的,包括執行搜索所需的數據以及期望的結果是什麼。
•范圍:這一階段包括定義假設,並確定我們想要從中提取數據的網路、系統、子網或主機。范圍應該事先確定好,以減少可能幹擾我們成功的「噪音」。它不能過於具體,因為我們可能會忽視環境中攻擊者的存在。這個假設應該可以防止我們偏離狩獵,從而幫助狩獵者在從一個數據轉向另一個數據時保持焦點。
•裝備:在這個階段,重點是如何做到。數據將如何收集?收集是否足夠徹底?我們要怎麼做分析呢?
我們如何避免偏見?在這個階段結束時,威脅獵人應該對這些問題都有一個深入的回答。收集管理框架collection management framework (CMF)的實現可以幫助我們跟蹤所收集的數據及其來源。
•計劃審核:顧名思義,團隊的負責人或者亨特將審查所有的計劃,到目前為止已經完成,以確保狩獵將滿足組織的目標,而團隊所需的所有資源(人員、數據、工具和時間)成功進行狩獵。
•執行:執行階段是指計劃被批准後的搜索本身。
•反饋:此階段與之前的所有階段相關聯。分析結果將有助於團隊在未來以更高的效率進行狩獵。反饋階段的目的是改進前面的所有階段。它不僅幫助我們確定目標是否已經實現,而且還幫助我們確定團隊可能陷入的任何可能的偏差,可能的可見性和需要修改的收集差距,是否正確地分配了資源,等等。
在這兩個模型之上,Rodriguez兄弟Roberto (@Cyb3rWard0g)和Jose Luis (@Cyb3rPandaH)在2019年Insomni'hack期間提出了一種數據驅動的方法(https : //www. youtube. com/watch?v=DuUF-zXUzPs)。他們設計的過程還包括六個不同的階段,幸運的是,他們還設計了四個開源項目,您可以使用它們來組織和執行您的狩獵。
羅德里格斯兄弟定義的六個階段如下:
1. 定義研究目標:為了在執行數據驅動的搜索時定義研究目標,理解數據並將數據映射到對手的活動是很重要的。羅伯托·羅德里格斯提出了一系列優秀的問題,為了確定我們的研究目標,我們應該能夠回答這些問題:
2. 數據建模:這個階段的過程圍繞著理解的數據從哪裡來,將日誌發送到數據湖咨詢,通過創建數據字典和結構化數據,每個數據源的「需要映射到一個事件」。這個過程是非常有用的,如果你想真正了解你收集的數據。
OSSEM:為了幫助完成創建數據字典的繁重工作,Rodriguez兄弟創建了開源安全事件元數據Open Source Security Events Metadata (OSSEM),用於記錄和標准化安全事件日誌。這個項目是開源的,可以通過項目的GitHub庫(https://github.com/OTRF/OSSEM)。
3. 模擬對手:對手模擬是紅隊在其組織環境中復制對手行為的一種方法。為了做到這一點,需要映射對手的行為,並將他們使用的技術鏈接在一起,以創建一個行動計劃。MITRE ATT&CK™框架提供了一個如何創建基於APT3的模擬計劃的示例(https://attack.mitre.org/resources/adversary-emulation-plans/)。
mordor:在這個狩獵階段,羅德里格斯兄弟創建了魔多項目(https://github.com/hunters-forge/mordor),以JSON格式提供「由模擬對抗技術生成的預先記錄的安全事件」。https://github.com/OTRF/Security-Datasets
4. 定義檢測模型:支持基於步驟2中創建的數據模型的搜索,我們建立了執行搜索的方式。在前面的步驟中定義了如何進行檢測之後,我們將在實驗室環境中驗證檢測。如果我們沒有得到任何結果,我們應該返回並回顧我們在前面步驟中所做的工作。
5. 驗證檢測模型:一旦我們對在實驗室環境中獲得的結果感到滿意,並評估了數據的質量(完整性、一致性和及時性),我們就可以在生產中嘗試我們的檢測。有三種可能的結果:零結果,即對手的行為不在生產環境中;至少有一個結果,我們需要仔細查看結果,以確認漏洞;搜索的輸出會產生大量的結果。最後一種情況通常意味著需要對我們的流程進行進一步的調整。
Helk:這是一個狩獵平台,由羅伯托·羅德里格斯設計,基於Elasticsearch, Logstash和Kibana。它還通過Jupyter筆記本和Apache Spark提供高級的分析功能。你可以在其GitHub知識庫中找到更多信息(https://github.com/Cyb3rWard0g/HELK)。
6. 記錄和交流發現:如果您正確地遵循了前面的步驟,您可能已經完成了一半的工作。記錄搜索過程應該在執行搜索的同時進行。
威脅狩獵劇本:這個開源項目由羅德里格斯兄弟維護,旨在幫助文檔項目和共享威脅獵人概念,開發某些技術,並建立假設。你可以在項目的GitHub倉庫(https://github.com/hunters-forge/ThreatHunter-Playbook):
目標狩獵綜合威脅情報(TaHiTI)方法是幾個荷蘭金融機構共同努力的結果,以幫助建立一個共同的方法,以威脅狩獵活動。
顧名思義,TaHiTI的方法與威脅情報密切相關。
它是一種方法,用於以 威脅情報提供的對手信息為起點 進行狩獵,使用威脅情報來上下文化在狩獵中發現的內容,甚至為對手找到相關的已知ttp(旋轉)並驅動新的狩獵。此外,按照這種模式,捕獵本身可以用來豐富威脅情報,因為它可能被用來發現與對手有關的之前未知的ttp和IoCs。
TaHiTI也分為八個步驟,同時可以分為三個階段:
階段1:初始化
a. 觸發狩獵
b.創建抽象
c.存儲代辦事項backlog
階段2:狩獵
d.定義/重新定義
(1)豐富調查抽象
(2)確定假設
(3)確定數據來源
(4)確定分析技術
e.執行
(1)獲取數據
(2)分析數據
(3)驗證假設
階段3:最後
f.移交
g.文檔化發現
h.更新代辦事項
可視化過程如下:
第一階段:啟動 Initiate
在此階段,搜索的觸發器將轉換為調查的摘要,並存儲在待定項中。塔希提的方法區分了五個主要的觸發類別:
•威脅情報
•其他狩獵調查
•安全監視
•安全事件響應: 從歷史事件和紅隊演習中收集數據。
•其他: 例子包括找出什麼是皇冠寶石以及它們如何被破壞,研究MITRE ATT&CK™框架,或者只是獵人的專業知識。
調查摘要是對假設的一個粗略描述,在接下來的階段將會被完善。建議您包含關於創建日期、摘要、搜索觸發器和優先順序級別的信息。
第二階段:狩獵hunt
該方法的第二階段指的是實際 的狩獵;也就是說,調查假設。 在執行之前,必須對假設進行定義和細化。這意味著最初為狩獵而創造的摘要將會被更多的細節所擴展,然後,在調查過程中發現新的證據。重要的是要包括數據源、選擇的分析技術和確定的范圍。
我們掌握的關於威脅情報的信息,分配的資源,以及狩獵的分類也應該包括在內。
對正在執行的狩獵的分析將用於驗證最初的假設。每次狩獵都有三種可能的結果:
•假設被證實 ,安全事件被發現。
•假設被推翻。 這種狀態是很難達到的,因為沒有找到某樣東西並不一定意味著它不存在。在聲明假設已經被推翻之前,獵人必須真的確定他們沒有錯過任何可能的場景。
•不確定的結果 。當沒有足夠的信息來證明或反駁假設時,搜索就會達到這種狀態。在這個階段,有必要繼續完善假設,直到達到狀態1或狀態2。
階段3 - Finalize
TaHiTI方法的最後一個階段是記錄你的發現。文件必須包括狩獵的結果和從中得出的結論。這可以包括改進組織安全的建議,也可以改進團隊的狩獵過程。一旦編寫完畢,這些文檔需要在相關各方之間共享。報告可能需要根據不同的接收者進行調整,關於報告的信息可能需要根據他們的安全許可進行編輯或分類。
TaHiTI區分了威脅狩獵調查可能引發的五個過程:
•安全事件響應 :啟動IR進程。
•安全監控: 創建或更新用例。
•威脅情報: 發現一個新的威脅行動者的ttp。
•漏洞管理: 解決發現的漏洞。
•對其他團隊的建議: 向其他團隊發出建議,以改善整個組織的安全狀況。
在這一章中,威脅捕獵的主要特徵之一是它是一種由人類驅動的活動,它不能完全自動化。這個過程的核心是生成狩獵假設,這是指組織環境中的威脅符合威脅獵人的預感,以及如何檢測它們。假設部分基於觀察,即我們注意到偏離基線的情況,部分基於信息,這些信息可能來自經驗或其他來源。
完善這個假設對於獲得好的獵物是至關重要的。一個定義不明確的假設將導致錯誤的結果或結論。這很可能會對組織產生負面影響,因為防禦和可視化漏洞將被忽略,並為對手提供一條安全通道。缺乏足夠的可視化是一個組織最大的敵人,因為這會產生一種錯誤的安全感,從而引發錯誤的假設,認為沒有發生入侵。
一個定義明確的假設必須是簡明和具體的。它必須是可測試的,不需要假定時間和資源的無限可用性。一個獵人無法驗證的假設是沒有用的,所以必須考慮他們使用的工具和所需的數據。它不能太寬泛,也不能太具體,但它必須指定數據將從哪裡收集,以及將搜索什麼。
Robert M. Lee和David Bianco寫了一篇關於生成成功威脅狩獵假說的SANS白皮書(https://www.sans.org/reading-room/ whiteppapers /threats/paper/37172)。在本文中,他們區分了三種主要的假設類型:
•基於威脅情報的假設: 這類假設考慮了 良好的ioc; 也就是說,合理地將破壞的指標、威脅狀況和地緣政治背景結合起來。這種假設的主要危險在於,我們過於關注IOCs,所以最終會生成低質量的匹配。最好關注威脅行動者的ttp,而不是包含數百個指標的提要。
•基於態勢感知的假設: 這類假設依賴於我們識別組織中 最重要的資產。這也被稱為皇冠寶石分析 。獵人試圖弄清楚對手可能在組織環境中尋找什麼, 包括他們的目標 。從這個角度來看,威脅獵人必須考慮他們需要什麼類型的數據和他們要尋找的活動。重要的是要記住,並非所有事情都應局限於網路領域。在執行情景感知假設時,還應該考慮人員、流程和業務需求。
•基於領域專業知識的假設: 這類假設是威脅獵人專業知識的產物。 獵人產生的假設是由他們自己的背景和經驗決定的。 獵人過去進行的狩獵也會影響他的假設。對於記錄已經獲得的經驗教訓並與團隊的其他成員分享這些經驗教訓,文檔化過程在這里特別重要。有經驗的獵人必須非常清楚偏見。盡量避免不良的分析習慣,並實施偏見預防技術。
⑦ 如何評價Word2Vec作者提出的fastText演算法
astText簡而言之,就是把文檔中所有詞通過lookup table變成向量,取平均後直接用線性分類器得到分類結果。fastText和ACL-15上的deep averaging network [1] (DAN,如下圖)非常相似,區別就是去掉了中間的隱層。兩篇文章的結論也比較類似,也是指出對一些簡單的分類任務,沒有必要使用太復雜的網路結構就可以取得差不多的結果。
文中實驗選取的都是對句子詞序不是很敏感的數據集,所以得到文中的實驗結果完全不奇怪。但是比如對下面的三個例子來說:
The movie is not very good , but i still like it . [2]
The movie is very good , but i still do not like it .
I do not like it , but the movie is still very good .
其中第1、3句整體極性是positive,但第2句整體極性就是negative。如果只是通過簡單的取平均來作為sentence representation進行分類的話,可能就會很難學出詞序對句子語義的影響。
從另一個角度來說,fastText可以看作是用window-size=1 + average pooling的CNN [3]對句子進行建模。
總結一下:對簡單的任務來說,用簡單的網路結構進行處理基本就夠了,但是對比較復雜的任務,還是依然需要更復雜的網路結構來學習sentence representation的。
另外,fastText文中還提到的兩個tricks分別是:
hierarchical softmax
類別數較多時,通過構建一個霍夫曼編碼樹來加速softmax layer的計算,和之前word2vec中的trick相同