自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

異常檢測以及開源工具

安全 應(yīng)用安全
互聯(lián)網(wǎng)的不斷發(fā)展促進(jìn)了人類的發(fā)展和社會的進(jìn)步,人們在享受互聯(lián)網(wǎng)帶來便利的同時(shí),各類安全事件凸顯,安全也越來越受到個(gè)人、企業(yè)以及社會的重視。

[[376210]]

背 景

互聯(lián)網(wǎng)的不斷發(fā)展促進(jìn)了人類的發(fā)展和社會的進(jìn)步,人們在享受互聯(lián)網(wǎng)帶來便利的同時(shí),各類安全事件凸顯,安全也越來越受到個(gè)人、企業(yè)以及社會的重視。異常檢測作為網(wǎng)絡(luò)安全檢測手段之一,可以有效檢測網(wǎng)絡(luò)行為中的異常情況,提升網(wǎng)絡(luò)安全檢測效率,已經(jīng)受到各類安全從業(yè)人員的關(guān)注。然而構(gòu)建異常檢測工具往往需要大量資金的投入,例如需要大量人員參與,聘請軟件需求工程師、安全工程師,產(chǎn)品研發(fā)工程師,測試工程等人員。這對于一般企業(yè)科研機(jī)構(gòu)而言是很難接受的。因此,為了減少在這方面的資金投入,許多安全從業(yè)人員都會選擇使用一些開源軟件來替代。事實(shí)上,無論是學(xué)習(xí),科學(xué)實(shí)驗(yàn),還是在生產(chǎn)基礎(chǔ)上進(jìn)行部署,安全從業(yè)人員長期以來都將開源軟件視為其工具包的重要組成部分。 下文我們?yōu)榇蠹艺硗扑]22款開源軟件和數(shù)據(jù)集,你應(yīng)該了解和值得使用的開源異常檢測工具集。

什么是異常檢測

異常檢測(又稱outlier detection、anomaly detection,離群值檢測)是一種重要的數(shù)據(jù)挖掘方法,可以找到與“主要數(shù)據(jù)分布”不同的異常值[1],具有非常廣泛的商業(yè)應(yīng)用以及學(xué)術(shù)研究價(jià)值。例如,從信用卡交易中找出詐騙案例,從正常的網(wǎng)絡(luò)數(shù)據(jù)流中找出入侵,同時(shí)它可以被用于機(jī)器學(xué)習(xí)任務(wù)中的預(yù)處理,防止因?yàn)樯倭慨惓|c(diǎn)存在而導(dǎo)致的訓(xùn)練或預(yù)測失敗。

 

圖1 異常檢測

什么是異常點(diǎn)

異常點(diǎn)是指其值與其他值存在顯著不同的數(shù)據(jù)點(diǎn)。以時(shí)間序列為例,時(shí)間序列中的異常點(diǎn),其時(shí)間超過了該序列的正常范圍,而不考慮數(shù)據(jù)點(diǎn)之間的時(shí)間關(guān)系。換句話說,即使將所有數(shù)據(jù)點(diǎn)都視為時(shí)間無關(guān)的[2] ,異常點(diǎn)就突出了,如下圖所示。

 

圖2 異常點(diǎn)

然而,并不是所有超出范圍的值都是異常點(diǎn)。在某些情況下,一個(gè)時(shí)間點(diǎn)是否正常取決于它的值是否與它“最近的過去”一致。如果價(jià)值突然增加或減少是暫時(shí)的,則稱為峰值;如果這種變化是永久性的,則稱為水平轉(zhuǎn)移[3]。請注意,雖然峰值看起來與離群值類似,但是峰值卻不能等同于離群值,峰值不是時(shí)間依賴性的,而離群值是時(shí)間依賴性的。如果在不考慮時(shí)間順序的情況下檢查所有數(shù)據(jù)點(diǎn),峰值的值可能是正常的(見下圖)。

 

圖3 峰值

我們可以并排滑動兩個(gè)時(shí)間窗口,并跟蹤它們的平均值或中值之間的差異。這種隨時(shí)間變化的差異是一種新的時(shí)間序列,可以用離群值檢測器來檢驗(yàn)。當(dāng)左右窗口中的統(tǒng)計(jì)數(shù)據(jù)有顯著差異時(shí),則表明在此時(shí)間點(diǎn)附近發(fā)生了突然變化。時(shí)間窗口的長度控制用來檢測變化的時(shí)間尺度:對于峰值,左邊的窗口比右邊的更長,以捕獲近過去的代表性信息;另一方面,對于關(guān)卡轉(zhuǎn)換,兩個(gè)窗口都應(yīng)該足夠長以捕獲穩(wěn)定狀態(tài)。

 

圖4 水平轉(zhuǎn)移

異常檢測開源工具

為了更好的對異常檢測進(jìn)行分析。我們整理了下面6種異常檢測相關(guān)開源工具。

1、Arundo開源的ADTK[8]

ADTK是一個(gè)用于非監(jiān)督、基于規(guī)則的時(shí)間序

列異常檢測的Python包。這個(gè)軟件包提供了一組具有統(tǒng)一通用檢測器、轉(zhuǎn)換器和聚合器的API,以及將它們連接到模型中的管道類。它還提供了一些處理和可視化時(shí)間序列和異常事件的功能。

 

圖5 ADTK包檢測結(jié)果

組件的特點(diǎn):

豐富的算法:包含多種時(shí)間序列異常檢測算法;

標(biāo)準(zhǔn)的接口:支持標(biāo)準(zhǔn)化的對外服務(wù)接口,便于第三方系統(tǒng)調(diào)用

下載地址:https://github.com/arundo/adtk

2、LoudML[14]

Loud ML是一個(gè)建立在TensorFlow之上的開源時(shí)間序列推理引擎。該工具有助于預(yù)測數(shù)據(jù)、檢測異常值,并使用先驗(yàn)的知識使異常檢測過程自動化。

 

 

圖6 Loud ML管理界面

工具特點(diǎn):

  • 內(nèi)置HTTP API,方便與其他應(yīng)用系統(tǒng)集成;
  • 可以通過機(jī)器學(xué)習(xí)引擎處理來自不同數(shù)據(jù)源的異常數(shù)據(jù);
  • 支持ElasticSearch、InfluxDB、MongoDB、OpenTSDB等數(shù)據(jù)庫;
  • 支持JSON配置安裝和管理;
  • 近乎實(shí)時(shí)的數(shù)據(jù)處理,并提供給推理引擎以返回結(jié)果。

下載地址:https://github.com/regel/loudml

3、Linkedin開源的luminol[15]

Luminol是一個(gè)輕量級的時(shí)間序列數(shù)據(jù)分析python庫。它支持的兩個(gè)主要功能是異常檢測和關(guān)聯(lián)。它可以用來計(jì)算異常的可能原因。給定一個(gè)時(shí)間序列,檢測數(shù)據(jù)是否包含任何異常,并返回異常發(fā)生的時(shí)間窗口、異常達(dá)到其嚴(yán)重程度的時(shí)間戳,以及指示該異常與時(shí)間序列中的其他異常相比有多嚴(yán)重的分?jǐn)?shù)。給定兩個(gè)時(shí)間序列,幫助求出它們的相關(guān)系數(shù)。

 

圖7 Luminol API調(diào)用方式

工具的特點(diǎn):可以建立一個(gè)異常檢測分析的邏輯流程。例如,假設(shè)網(wǎng)絡(luò)延遲出現(xiàn)峰值:異常檢測可以發(fā)現(xiàn)網(wǎng)絡(luò)延遲時(shí)間序列中的峰值,并獲取峰值的異常周期,之后與同一時(shí)間范圍內(nèi)的其他系統(tǒng)指標(biāo)(如GC、IO、CPU等)關(guān)聯(lián)獲得相關(guān)指標(biāo)的排序列表,根源候選項(xiàng)很可能位于最前面。

下載地址:https://github.com/linkedin/luminol

4、PyOD[16]

PyOD是用于檢測數(shù)據(jù)中異常值的庫,它能對20多種不同的算法進(jìn)行訪問,以檢測異常值,并能夠與Python 2和Python 3兼容。

 

圖8 PyOD異常檢測庫

工具特點(diǎn):

  • 包括近20種常見的異常檢測算法,比如經(jīng)典的LOF/LOCI/ABOD以及最新的深度學(xué)習(xí)如對抗生成模型(GAN)和集成異常檢測(outlier ensemble);
  • 支持不同版本的Python:包括2.7和3.5+;支持多種操作系統(tǒng):windows,macOS和Linux;
  • 簡單易用且一致的API,只需要幾行代碼就可以完成異常檢測,方便評估大量算法;
  • 使用即時(shí)編譯器(JIT)和并行化(parallelization)進(jìn)行優(yōu)化,加速算法運(yùn)行及擴(kuò)展性(scalability),可以處理大量數(shù)據(jù);

下載地址:

https://pyod.readthedocs.io/en/latest/

5、PyOdds[17]

PyODDS是一個(gè)端到端的異常檢測Python組件。PyODDS提供異常檢測算法,滿足不同領(lǐng)域的用戶需求,無論是數(shù)據(jù)科學(xué)還是機(jī)器學(xué)習(xí)背景。PyODDS提供了在數(shù)據(jù)庫中執(zhí)行機(jī)器學(xué)習(xí)算法的能力,而無需將數(shù)據(jù)移出數(shù)據(jù)庫服務(wù)器。它還提供了大量基于統(tǒng)計(jì)和深度學(xué)習(xí)的異常檢測算法。

 

圖9 PyOdds異常檢測庫

組件的特點(diǎn):

  • 全棧服務(wù),支持從輕量級的基于SQL的數(shù)據(jù)庫到后端機(jī)器學(xué)習(xí)算法的操作和維護(hù),使得吞吐量速度更快;
  • 先進(jìn)的異常檢測方法,包括統(tǒng)計(jì)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)模型與統(tǒng)一的API和詳細(xì)的文檔;
  • 強(qiáng)大的數(shù)據(jù)分析機(jī)制,支持靜態(tài)和時(shí)間序列數(shù)據(jù)分析與靈活的時(shí)間片(滑動窗口)分割;
  • 自動化機(jī)器學(xué)習(xí),首次嘗試將自動機(jī)器學(xué)習(xí)與異常檢測結(jié)合起來,并屬于將自動機(jī)器學(xué)習(xí)概念擴(kuò)展到現(xiàn)實(shí)世界數(shù)據(jù)挖掘任務(wù)的嘗試之一。

下載地址:

https://github.com/datamllab/pyodds

6、Twitter開源的AnomalyDetection[4]

AnomalyDetection是一個(gè)R語言程序包,Twitter通常會在重大新聞和體育賽事期間用AnomalyDetection掃描入站流量,發(fā)現(xiàn)那些使用僵尸賬號發(fā)送大量垃圾(營銷)信息的機(jī)器人。

 

圖10 AnomalyDetection 入站流量異常檢測

下載地址:

https://github.com/twitter/AnomalyDetection

其他開源工具包情況如下表所示:

 

 

開源異常檢測(入侵檢測)數(shù)據(jù)集

為了更好的研究異常檢測,數(shù)據(jù)集是必不可少的,我們整理了下面9種異常檢測(入侵檢測)相關(guān)數(shù)據(jù)集:

 


 

 

參考文獻(xiàn)

[1] V. Chandola, A. Banerjee, and V. Kumar, “Outlier detection: A survey,” ACM Computing Surveys, 2007.

[2] D. Hawkins, Identification of Outliers. Chapman and Hall, London, 1980.

[3] A. Javaid, Q. Niyaz, W. Sun, and M. Alam, “A deep learning approach for network intrusion detection system,” in Proceedings of the 9th EAI International Conference on Bio-inspired Information and Com-munications Technologies (formerly BIONETICS), pp. 21–26, ICST(Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2016.

[4]https://github.com/twitter/AnomalyDetection

[5]https://github.com/pridiltal/oddstream

[6]https://github.com/earthgecko/skyline

[7]https://github.com/hastic

[8]https://github.com/arundo/adtk

[9]https://github.com/tsurubee/banpei

[10]https://github.com/smirmik/CAD

[11]https://github.com/MentatInnovations/datastream.io

[12]https://github.com/KDD-OpenSource/DeepADoTS

[13]https://github.com/NetManAIOps/donut

[14]https://github.com/regel/loudml

[15]https://github.com/linkedin/luminol

[16]https://pyod.readthedocs.io/en/latest/

[17]https://github.com/datamllab/pyodds

[18]https://github.com/selimfirat/pysad

[19]https://github.com/kLabUM/rrcf

[20]https://github.com/khundman/telemanom

[21]https://github.com/ExpediaDotCom/adaptive-alerting

[22]https://github.com/yahoo/egads

[23]https://github.com/netflix/surus

[24]https://github.com/lytics/anomalyzer

[25]https://github.com/facesea/banshee

[26]https://github.com/Stream-AD/MIDAS

[27]https://github.com/pridiltal/oddstream

[28] A. Shiravi, H. Shiravi, M. Tavallaee, and A. A. Ghorbani, “Toward developing a systematic approach to generate benchmark datasets for intrusion detection,” computers & security, vol. 31, no. 3, pp. 357–374, 2012.

[29] Y. Yu, J. Long, and Z. Cai, “Network intrusion detection through stacking dilated convolutional autoencoders,” Security and Communication Networks, vol. 2017, 2017.

[30] A. Adam, E. Rivlin, I. Shimshoni, and D. Reinitz, “Robust real-time unusual event detection using multiple fixed-location monitors,” IEEE transactions on pattern analysisand machine intelligence, vol. 30, no. 3, pp. 555–560, 2008.

[31] C. Yin, Y. Zhu, J. Fei, and X. He, “A deep learning approach for intrusion detection using recurrent neural networks,” IEEE Access, vol. 5, pp. 21954–21961, 2017.

[32] T. A. Tang, L. Mhamdi, D. McLernon, S. A. R. Zaidi, and M. Ghogho, “Deep learning approach for network intrusion detection in software defined networking,” in Wireless Networks and Mobile Communications (WINCOM), 2016 International Conference on, pp. 258–263, IEEE, 2016.

[33] M. Yousefi-Azar, V. Varadharajan, L. Hamey, and U. Tupakula, “Autoencoder-based feature learning for cyber security applications,” in Neural Networks (IJCNN), 2017 International Joint Conference on, pp. 3854–3861, IEEE, 2017.

[34] S. Mohammadi and A. Namadchian, “A new deep learning approach for anomaly base ids using memetic classifier.,” International Journal of Computers, Communications & Control, vol. 12, no. 5, 2017.

[35] M. Lopez-Martin, B. Carro, A. Sanchez-Esguevillas, and J. Lloret, “Conditional variational autoencoder for prediction and feature recovery applied to intrusion detection in iot,” Sensors, vol. 17, no. 9, p. 1967, 2017.

[36] J. Stolfo, W. Fan, W. Lee, A. Prodromidis, and P. K. Chan, “Cost-based modeling and evaluation for data mining with application to fraud and intrusion detection,” Results from the JAM Project by Salvatore, pp. 1–15, 2000.

[37] K. Alrawashdeh and C. Purdy, “Toward an online anomaly intrusion detection system based on deep learning,” in Machine Learning and Applications (ICMLA), 2016 15th IEEE International Conference on, pp. 195–200, IEEE, 2016.

[38] N. T. Van, T. N. Thinh, and L. T. Sach, “An anomaly-based network intrusion detection system using deep learning,” in System Science and Engineering (ICSSE), 2017 International Conference on, pp. 210–214, IEEE, 2017.

[39] R. Fontugne, P. Borgnat, P. Abry, and K. Fukuda, “Mawilab: combining diverse anomaly detectors for automated anomaly labeling and performance benchmarking,” in Proceedings of the 6th International COnference, p. 8, ACM, 2010.

[40] C. G. Cordero, S. Hauke, M. Mühlhäuser, and M. Fischer, “Analyzing flow-based anomaly intrusion detection using replicator neural networks,” in Privacy, Security and Trust (PST), 2016 14th Annual Conference on, pp. 317–324, IEEE, 2016.

[41] “Jamk university of applied sciences,realistic global cyber environment (rgce),” 2009

責(zé)任編輯:武曉燕 來源: 51CTO專欄
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號