الجمعة، 30 أغسطس 2019

[بايثونات] - نظام حماية من الفايروسات بسيط الجزء الاول


اُرحب بكم في الحلقة الاولي من سلسلة بايثونات

كما نعرف ويعرف معظم بل كل المبرمجين ان البايثون هي اللغة التي نهرب اليها بعد العذاب الذي نلقاه من اللغات الاخريففي هذه السلسلة سأتحدث عن بعض البرمجيات التي قمت بعملها في وقت فراغي وسأنقاشها معكم بغرض تعليمي ليس الا

دعنا اولاً نتعرف كيف يعمل برنامج الحماية من الفايروسات


اثناء استخدامي لبرنامج افاست الذي يُعتبر من اشهر ان لم يكن الاول في حماية الجهاز فكرت كيف يعمل هذا البرنامج وكيف يعرف ان هذا الملف صالح او فايروس وانه لا يخطأ الا اذا بالطبع كان برنامج لتفعيل احد البرامج فهو يعتبره فايروس
فبعد بحث طويل جداً عرفت انه لعمل مثل هذه البرامج تحتاج الي دراسة معمقة جداً لنظام التشغيل الذي تعمل عليه ولنقل الويندوز
وسأعطيك مثال بسيط برامج الفايروس او التجسس تحصل علي اذونات ليست من حقها مثل كتابة ملفات في النظام والتحكم في الكيبورد والماوس ومراقبة الشاشة وغيره الكثير فبرامج حماية الفايروس كالافاست تقوم بالتنصت علي اي ملف تقوم بفتحه وتقوم بتتبعه لتري ما هي الاذونات التي يحصل عليها فلو حصل علي اذونات غير مرغوب فيها مثل المذكور اعلاه سيعتبره فايروس وهذه الطريقة تعتبر ناجحة لكشف الفايروسات بنسبة 94% هذه نتيجة حقاً ممتازة ولكن ليست هذه الطريقة الوحيدة التي يقوم برنامج مثل افاست بكشف الفايروسات فهناك طريقتين قبل التنصت علي الاذونات الاولي وهي فحص الاكواد وهنا يقوم برنامج افاست بقراءه الملف ومراقبة اي عملية غريبة بين سطور التي بطبيعة الحال تتكون من ارقام البرنامج ولكن ماذا لو قمنا بتشفير الاكواد بطريقة لا يستطيع برنامج افاست فك تشفيرها لا مشكلة في نهاية الامر يجب ان يقوم الفايروس بتنفيذ الاكواد وبالطبع يجب ان يقوم بفك تشفيرها لهذا سننتظر حتي يقوم المستخدم بفتح الفايروس ثم يقوم برنامج افاست بمراقبة العمليات التي تحدث علي الجهاز فقد يجد فايروس وهذه طريقة شبيهه جداً بالاولي

لنرجع الي الموضوع


 لغة بايثون لغة شمولية فهي ليست مختصة فقط بالويب ولا بالحاسوب فقلت لما لا اجرب ان اقوم بعمل برنامج لفحص الملف بأستخدام البايثون


import pandas as pd
import numpy as np
import pickle
import sklearn.ensemble as ske
from sklearn import cross_validation, tree, linear_model
from sklearn.feature_selection import SelectFromModel
from sklearn.externals import joblib
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import confusion_matrix

دعنا نقوم بشرح الكود
السطر 1 قمت بأستدعاء مكتبة pandas التي تقوم بتحليل البيانات
السطر 2 قمت بأستدعاء مكتبة numpy التي تتعامل مع الارقام والعمليات الحسابية
السطر 3 تم استدعاء مكتبة pickle الت تحفظ bytes التي يتم قرائتها
السطر 4 الي 9 تم استدعاء مكتبة skit-learn التي ستعطي النظام امكانية التعلم ويمكن ان نقل انه سيصبح ذكي بعض الشئ

لم اخبركم انه لدي ملف وورد فيه كل البيانات الخاصة بالفايروسات وهذا يقودنا الي الكود التالي


data = pd.read_csv('data.csv', sep='|')
X = data.drop(['Name', 'md5', 'legitimate'], axis=1).values
y = data['legitimate'].values

في السطر الاول اخبرنا النظام انه لدينا ملف وورد بأسم data.csv واننا نريد قرائته واستخراج كل النصوص بين علامات |
وسنقوم بجمع كل الخواص او يمكن قول التشفيرات الموجودة في الملف هذا وطباعة عددها

لنقم الان بترتيب التشفيرات حسب الاهمية


fsel = ske.ExtraTreesClassifier().fit(X, y)
model = SelectFromModel(fsel, prefit=True)
X_new = model.transform(X)
nb_features = X_new.shape[1]

X_train, X_test, y_train, y_test = cross_validation.train_test_split(X_new, y ,test_size=0.2)

features = []

هذا ما لدينا في الجزء الاول وفي الجزء الثاني ان شاء الله سيتم اكمال الباقي
دمتم في امان الله

المرفقات

سيتم وضع المرفقات كلها والمشروع كامل في الجزء الثاني ان شاء الله

ليست هناك تعليقات:

إرسال تعليق