AI有助于使网络安全在2023年变得简单
#python #ai #网络安全 #scripting

当涉及到2023年的AI和网络安全时,我不得不说,数我!我不仅谨慎乐观;我很热情。实际上,我认为AI可能只是网络安全现在需要的英雄。

随着网络威胁变得越来越复杂,不幸的是,防火墙和防病毒软件(例如防火墙和防病毒软件)的传统安全措施已不再足够。为了跟上不断发展的威胁,我在这一领域的其他人等中越来越开始转向人工智能(AI)来帮助防御攻击。在本文中,我探讨了可用于网络安全专业人员有效利用AI的特定工具和技术。

请注意,在本文中,我都使用英国拼写词,必须使用美国英语编写。

机器学习威胁检测

AI在网络安全中最有希望的应用之一是威胁检测。通过在过去攻击的大型数据集中培训机器学习模型,这些模型可以学会识别新威胁并比传统的基于签名的方法更快,更有效地做出反应。

例如,请查看以下Python代码,该代码使用scikit-learn library在已知恶意软件样本的数据集上训练机器学习模型:

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import pandas as pd

# Load the malware dataset
malware_data = pd.read_csv('malware.csv')

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(
    malware_data.drop('class', axis=1),
    malware_data['class'],
    test_size=0.2,
    random_state=42
)

# Train a random forest classifier on the training data
clf = RandomForestClassifier()
clf.fit(X_train, y_train)

# Evaluate the performance of the classifier on the testing data
score = clf.score(X_test, y_test)
print(f"Classifier accuracy: {score}")

这将加载一个已知的恶意软件样本的数据集,将数据分为培训和测试集,并在培训数据上训练随机的森林分类器。然后,它使用Score()方法来评估测试数据上分类器的性能。

显然,训练机器学习模型以进行威胁检测的过程比这个简单的例子要复杂得多。但是,基本思想仍然是相同的:通过利用机器学习算法,可以比传统方法更有效地检测新威胁。

自然语言处理以进行欺诈检测

可以使用AI来对抗数字威胁的另一个领域是欺诈检测。自然语言处理(NLP)技术可用于分析大量文本数据,例如电子邮件和社交媒体消息,以识别欺诈活动的迹象。

此脚本使用Natural Language Toolkit (NLTK)库来分析电子邮件样本并确定欺诈的潜在迹象:

import nltk
import pandas as pd

# Load the email data
email_data = pd.read_csv('emails.csv')

# Tokenize the text of each email
tokenized_emails = [nltk.word_tokenize(email) for email in email_data['text']]

# Identify named entities in the text of each email
named_entities = [nltk.ne_chunk(nltk.pos_tag(email)) for email in tokenized_emails]

# Extract the organisation entities from the named entities
organizations = [[entity for entity in email if isinstance(entity, nltk.tree.Tree) and entity.label() == 'ORG'] for email in named_entities]

# Count the frequency of each organisation entity
org_counts = pd.Series([org[0][0] for email in organizations for org in email]).value_counts()

# Print the top 10 most common organisation entities
print(org_counts[:10])

该脚本从CSV文件加载电子邮件数据,将每个电子邮件的文本归为文本,使用词性词性标签标识文本中的命名实体,从命名实体中提取组织实体,然后计算每个组织的频率实体。最后,它在电子邮件数据中打印了十大最常见的组织实体。这对于诸如确定潜在的网络钓鱼目标或检测大型电子邮件数据集中特定公司的任务可能很有用。

异常检测算法

在大量数据中寻找异常时,可以有效地使用隔离森林算法。我将带您通过实现这种更复杂的算法,以用于应对高维数据集的异常检测。

首先,导入必要的库:

import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest

接下来,从日志文件中加载数据:

with open('system_log.txt') as f:
    data = []
    for line in f:
        # Parse the log line and extract the relevant features
        feature_1, feature_2, feature_3 = parse_log_line(line)
        data.append([feature_1, feature_2, feature_3])

然后使用标准缩放范围将数据归一化:

data = np.array(data)
scaler = StandardScaler()
data = scaler.fit_transform(data)

现在,在归一化数据上训练隔离森林模型的乐趣AI-EY部分,并使用该模型预测异常:

model = IsolationForest(random_state=0)
model.fit(data)
anomaly_scores = model.decision_function(data)
threshold = -0.5

,结果应打印为:

for i, score in enumerate(anomaly_scores):
    if score < threshold:
        label = 'anomaly'
    else:
        label = 'normal'
    print(f"Data point {i} has an anomaly score of {score:.3f} and is classified as {label}.")

隔离森林算法非常受欢迎,因为它是一种无监督的机器学习算法,它通过随机分区数据点和建造隔离树来隔离数据中的异常来起作用。

此代码以及来自my articles,的大多数代码可以很容易地适应与不同的日志文件和群集算法一起使用。

AI网络防御系统

您的网络可以通过深度学习系统来辩护;实际上,most companies现在正在使用AI来保护其网络(包括媒介!)

这是使用深度学习模型的最新AI驱动网络防御系统的一个示例:

import numpy as np
import tensorflow as tf

# Load the network traffic data
data = np.loadtxt('traffic.csv', delimiter=',')

# Preprocess the data
x = data[:, :-1]
y = data[:, -1]
num_classes = len(np.unique(y))
y = tf.keras.utils.to_categorical(y, num_classes=num_classes)

# Define the deep learning model
model = tf.keras.Sequential([
    tf.keras.layers.Dense(32, activation='relu', input_shape=(x.shape[1],)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dropout(0.5),
    tf.keras.layers.Dense(num_classes, activation='softmax')
])

# Compile the model
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# Train the model
model.fit(x, y, epochs=10, batch_size=32)

# Use the model for network defence
def defend_network(new_data):
    # Preprocess the new data
    x_new = np.array(new_data)
    x_new = np.expand_dims(x_new, axis=0)

    # Predict the class of the new data
    prediction = model.predict(x_new)
    return np.argmax(prediction)

# Test the network defence system
test_data = [20, 300, 1000, 50, 200, 400, 800]
print(defend_network(test_data))

traffic.csv文件包含预处理的网络流量数据,其中最后一列包含类标签。数据分为输入功能(x)和类标签(y),它们是一个hot编码的。

深度学习模型是使用TF.KERAS.Sequinential API定义的,具有密度层和软磁输出层。该模型是使用ADAM优化器和分类横向渗透损失进行编译的。使用批量大小为32和10个时期的FIT方法训练该模型。 Defend_network函数被定义为预处理新数据,使用训练有素的模型预测新数据的类,并返回预测的类标签。定义了一个测试数据阵列,并调用了Defend_Network功能来预测测试数据的类标签。

我展示了AI是一种强大的工具,可以通过实现更快,更准确的威胁检测和响应来大大增强网络安全防御。从异常检测算法到自然语言处理以进行欺诈检测,AI对打击数字威胁的斗争产生了重大影响,而不仅仅是为蓝色团队人士带来更多问题。重要的是要继续开发和实施新的基于AI的技术,以保持不断发展的威胁格局。