Я создал искусственную нейронную сеть с 4 категориальными функциями и двоичным результатом: 1 для подозрительных или 0 для не подозрительных:
ParentPath ParentExe
0 C:\Program Files (x86)\Wireless AutoSwitch wrlssw.exe
1 C:\Program Files (x86)\Wireless AutoSwitch WrlsAutoSW.exs
2 C:\Program Files (x86)\Wireless AutoSwitch WrlsAutoSW.exs
3 C:\Windows\System32 svchost.exe
4 C:\Program Files (x86)\Wireless AutoSwitch WrlsAutoSW.exs
ChildPath ChildExe Suspicious
C:\Windows\System32 conhost.exe 0
C:\Program Files (x86)\Wireless AutoSwitch wrlssw.exe 0
C:\Program Files (x86)\Wireless AutoSwitch wrlssw.exe 0
C:\Program Files\Common Files OfficeC2RClient.exe 0
C:\Program Files (x86)\Wireless AutoSwitch wrlssw.exe 1
C:\Program Files (x86)\Wireless AutoSwitch wrlssw.exe 0
Я использовал sklearn для кодирования меток и одну горячую кодировку наданные:
#Import the dataset
X = DBF2.iloc[:, 0:4].values
#X = DBF2[['ParentProcess', 'ChildProcess']]
y = DBF2.iloc[:, 4].values#.ravel()
#Encoding categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
#Label Encode Parent Path
labelencoder_X_1 = LabelEncoder()
X[:, 0] = labelencoder_X_1.fit_transform(X[:, 0])
#Label Encode Parent Exe
labelencoder_X_2 = LabelEncoder()
X[:, 1] = labelencoder_X_2.fit_transform(X[:, 1])
#Label Encode Child Path
labelencoder_X_3 = LabelEncoder()
X[:, 2] = labelencoder_X_3.fit_transform(X[:, 2])
#Label Encode Child Exe
labelencoder_X_4 = LabelEncoder()
X[:, 3] = labelencoder_X_4.fit_transform(X[:, 3])
#Create dummy variables
onehotencoder = OneHotEncoder(categorical_features = [0,1,2,3])
X = onehotencoder.fit_transform(X)
Я разделил данные на обучающий и тестовый набор и запустил их на своем GPU Box с NVIDIA 1080. Я настроил гиперпараметры и теперь готов использовать модель, котораяобучение в производственной среде с одновременным испытанием одного образца.Допустим, я просто хочу протестировать один образец:
ParentPath ParentExe ChildPath ChildExe
0 C:\Windows\Malicious badscipt.exe C:\Windows\System cmd.exe
Проблема, с которой я сталкиваюсь, состоит в том, что в учебном наборе ChildPath "C: \ Windows \ System" и ChildExe "cmd.exe"что является нормальным, но обучающий набор не видел ParentPath "C: \ Windows \ Malicous" или ParentExe "badscipt.exe", поэтому они не были помечены или записаны в горячем виде.Мой большой вопрос: как мне обработать один тестовый объект, где его часть не была обучена?
Я видел примеры, использующие хеширование объектов, но я не уверен, как это применить или если это вообще решит эту проблему.Любая помощь или указатели будут с благодарностью.