-
大小: 10.83MB文件類型: .zip金幣: 2下載: 0 次發布日期: 2023-11-18
- 語言: Python
- 標簽:
資源簡介
機器學習驅動的Web應用程序防火墻以高精度檢測惡意查詢

代碼片段和文件信息
‘‘‘
FWAF?-?Machine?Learning?driven?Web?Application?Firewall
Author:?Faizan?Ahmad
Performance?improvements:?Timo?Mechsner
Website:?http://fsecurify.com
‘‘‘
from?sklearn.feature_extraction.text?import?TfidfVectorizer
import?os
from?sklearn.cross_validation?import?train_test_split
from?sklearn.linear_model?import?LogisticRegression
from?sklearn?import?metrics
import?urllib.parse
import?matplotlib.pyplot?as?plt
def?loadFile(name):
????directory?=?str(os.getcwd())
????filepath?=?os.path.join(directory?name)
????with?open(filepath‘r‘)?as?f:
????????data?=?f.readlines()
????data?=?list(set(data))
????result?=?[]
????for?d?in?data:
????????d?=?str(urllib.parse.unquote(d))???#converting?url?encoded?data?to?simple?string
????????result.append(d)
????return?result
badQueries?=?loadFile(‘badqueries.txt‘)
validQueries?=?loadFile(‘goodqueries.txt‘)
badQueries?=?list(set(badQueries))
validQueries?=?list(set(validQueries))
allQueries?=?badQueries?+?validQueries
yBad?=?[1?for?i?in?range(0?len(badQueries))]??#labels?1?for?malicious?and?0?for?clean
yGood?=?[0?for?i?in?range(0?len(validQueries))]
y?=?yBad?+?yGood
queries?=?allQueries
vectorizer?=?TfidfVectorizer(min_df?=?0.0?analyzer=“char“?sublinear_tf=True?ngram_range=(13))?#converting?data?to?vectors
X?=?vectorizer.fit_transform(queries)
X_train?X_test?y_train?y_test?=?train_test_split(X?y?test_size=0.2?random_state=42)?#splitting?data
badCount?=?len(badQueries)
validCount?=?len(validQueries)
lgs?=?LogisticRegression(class_weight={1:?2?*?validCount?/?badCount?0:?1.0})?#?class_weight=‘balanced‘)
lgs.fit(X_train?y_train)?#training?our?model
##############
#?Evaluation?#
##############
predicted?=?lgs.predict(X_test)
fpr?tpr?_?=?metrics.roc_curve(y_test?(lgs.predict_proba(X_test)[:?1]))
auc?=?metrics.auc(fpr?tpr)
print(“Bad?samples:?%d“?%?badCount)
print(“Good?samples:?%d“?%?validCount)
print(“baseline?Constant?negative:?%.6f“?%?(validCount?/?(validCount?+?badCount)))
print(“------------“)
print(“Accuracy:?%f“?%?lgs.score(X_test?y_test))??#checking?the?accuracy
print(“Precision:?%f“?%?metrics.precision_score(y_test?predicted))
print(“Recall:?%f“?%?metrics.recall_score(y_test?predicted))
print(“F1-Score:?%f“?%?metrics.f1_score(y_test?predicted))
print(“AUC:?%f“?%?auc)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-05-15?00:24??Fwaf-Machine-Learning-driven-Web-Application-Firewall-master\
?????文件??????????65??2017-05-15?00:24??Fwaf-Machine-Learning-driven-Web-Application-Firewall-master\.gitignore
?????文件?????????294??2017-05-15?00:24??Fwaf-Machine-Learning-driven-Web-Application-Firewall-master\README.md
?????文件?????3374922??2017-05-15?00:24??Fwaf-Machine-Learning-driven-Web-Application-Firewall-master\badqueries.txt
?????文件??????296126??2017-05-15?00:24??Fwaf-Machine-Learning-driven-Web-Application-Firewall-master\firewall_fsecurify.jpg
?????文件????24063954??2017-05-15?00:24??Fwaf-Machine-Learning-driven-Web-Application-Firewall-master\goodqueries.txt
?????文件????????2276??2017-05-15?00:24??Fwaf-Machine-Learning-driven-Web-Application-Firewall-master\sc
評論
共有 條評論