هذا الالتزام موجود في:
2026-07-27 22:12:00 +03:00
الأصل fec5a12c36
التزام 38d3735f21
12 ملفات معدلة مع 449 إضافات و0 حذوفات

عرض الملف

@@ -0,0 +1,128 @@
- زهقت من الانجليزي و وقتي ضيق اول ملفين بكفو تعرفو اني فلته ( -)ノ”(<。)
# DevTools
- مجموعة أدوات مدمجة داخل متصفحات الويب
- تستخدم لفحص وتحليل وتصحيح صفحات ومكونات الويب أثناء تشغيلها.
- توفر معلومات عن عناصر الصفحة، الشبكة، التخزين، الكوكيز، الاتصالات، وأداء الموقع.
- تساعد المطورين والباحثين الأمنيين على اكتشاف المشاكل وتحليل سلوك الموقع.
في تقييم الخصوصية، يتم استخدام DevTools لفحص:
- Cookies: لمعرفة البيانات المخزنة في المتصفح.
- Network: لمراقبة الاتصالات والطلبات الخارجية.
- Security: للتحقق من HTTPS وشهادة TLS.
- Headers: لتحليل إعدادات الحماية الخاصة بالخادم.
## موقع مثال
![](methal.png)
## تحليل ملفات تعريف الارتباط (Cookies)
تم فحص ملفات تعريف الارتباط الخاصة بالموقع باستخدام Chrome DevTools من خلال قسم Application.
تم العثور على عدة Cookies، منها:
| اسم Cookie | الاستخدام المتوقع | خصائص الحماية |
|---|---|---|
| APISID | ملف مرتبط بخدمات Google وتفضيلات المستخدم | Secure |
| HSID | ملف أمني مرتبط بجلسات Google | Secure + HttpOnly |
| SID | معرف جلسة/حماية | Secure |
| LOGIN_INFO | معلومات مرتبطة بتسجيل الدخول | Secure |
| PREF | تخزين تفضيلات المستخدم | Secure |
| SSID | ملف أمني للجلسة | Secure |
| _Secure-* | ملفات حماية مرتبطة بخدمات Google | Secure |
## الملاحظات الأمنية
- معظم ملفات Cookies تحتوي على خاصية **Secure**، وهذا يعني أنها تُرسل فقط عبر اتصال HTTPS مشفر.
- بعض الملفات تحتوي على **HttpOnly**، مما يقلل خطر سرقة ملفات Cookies بواسطة JavaScript في حال وجود ثغرة XSS.
- بعض ملفات Cookies لها مدة صلاحية طويلة (حتى عام 2027)، وهذا قد يزيد من المخاطر في حال تم اختراقها أو تسريبها.
- تم ملاحظة وجود Cookies تابعة لجهات خارجية (مثل Google)، وقد تستخدم لأغراض التتبع أو تخصيص المحتوى.
# HTTPS
![](network.png)
بعد إعادة تحميل الصفحة تم تحليل الطلبات (Requests).
## الموارد التي تم تحميلها:
| المورد | النوع | الملاحظات |
|---|---|---|
| styles.css | CSS | ملف تنسيق داخلي للموقع |
| search-form.css | CSS | تنسيق نموذج البحث |
| results.css | CSS | تنسيق نتائج البحث |
| video-carousel.css | CSS | تنسيق قسم الفيديو |
| images.css | CSS | تنسيق الصور |
| footer.css | CSS | تنسيق التذييل |
| common.css | CSS | تنسيقات عامة |
| Noto Kufi Arabic / Noto Naskh Arabic | Font | خطوط من Google Fonts |
| Imagemaxresdefault.jpg | Image | صورة محتوى |
---
## تحليل المتتبعات (Trackers)
خلال فحص طلبات الشبكة لم يتم العثور على خدمات تتبع مشهورة مثل:
- Google Analytics
- Facebook Pixel
- DoubleClick
# 3. مقارنة الخصوصية مع محركات بحث أخرى
تمت مقارنة محرك البحث mithal.space مع محركي بحث آخرين من ناحية الخصوصية:
| المحرك | جمع البيانات | Trackers | Cookies | مستوى الخصوصية |
|---|---|---|---|---|
| mithal.space | محدود حسب الفحص | لم يتم اكتشاف Trackers واضحة | لا توجد Cookies تتبع ظاهرة | جيد |
| DuckDuckGo | لا يقوم بتخزين سجل البحث الشخصي | لا يستخدم Trackers إعلانية | يستخدم أقل قدر ممكن من Cookies | ممتاز |
| Google Search | يجمع بيانات البحث والاستخدام لتحسين الخدمات والإعلانات | يحتوي على العديد من خدمات التتبع والتحليل | يستخدم Cookies متعددة للتخصيص والإعلانات | متوسط |
## التحليل:
- **mithal.space** يقدم مستوى خصوصية جيد بسبب عدم ظهور أدوات تتبع إعلانية أثناء الفحص، لكنه يعتمد على بعض الموارد الخارجية مثل Google Fonts.
- **DuckDuckGo** يعتبر أكثر خصوصية لأنه يقلل جمع بيانات المستخدم ولا يعتمد على الإعلانات الموجهة.
- **Google Search** يوفر خدمات متقدمة لكنه يعتمد بشكل كبير على جمع بيانات المستخدم لأغراض التحليل والإعلانات.
---
# 4. التحسينات الأمنية المقترحة لمحرك mithal.space
## 1. إضافة Content Security Policy (CSP)
**الوصف:**
إضافة HTTP Header للتحكم بالمصادر المسموح تحميلها داخل الموقع.
**الفائدة:**
- تقليل خطر هجمات XSS.
- منع تحميل Scripts غير موثوقة.
---
## 2. إضافة Security Headers إضافية
**الوصف:**
تفعيل Headers للحماية من الهجمات الشائعة.
تشمل:
- `Strict-Transport-Security`
- `X-Frame-Options`
- `X-Content-Type-Options`
**الفائدة:**
- منع Clickjacking.
- إجبار استخدام HTTPS.
- منع بعض هجمات MIME sniffing.
---
## 3. تقليل الاعتماد على الخدمات الخارجية
**الوصف:**
استضافة الموارد مثل الخطوط المستخدمة حالياً من Google Fonts داخل خادم الموقع.
**الفائدة:**
- تقليل تسريب معلومات المستخدم إلى أطراف خارجية.
- تحسين الخصوصية.
- تقليل وقت تحميل الصفحة.

ثنائية
Privacy_Assessment/methal.png Normal file

ملف ثنائي غير معروض.

بعد

العرض:  |  الارتفاع:  |  الحجم: 174 KiB

ثنائية
Privacy_Assessment/network.png Normal file

ملف ثنائي غير معروض.

بعد

العرض:  |  الارتفاع:  |  الحجم: 163 KiB

78
miniSIEM/README.md Normal file
عرض الملف

@@ -0,0 +1,78 @@
# هيكل المشروع
- **Log Sources**
- تمثل مصادر السجلات (Logs) التي يجمع منها النظام البيانات.
- في هذا المشروع سيتم استخدام **3 ملفات `.log` وهمية** لتجربة النظام ومحاكاة بيئة حقيقية، ويمكن توليدها بسهولة باستخدام ChatGPT.
- أمثلة على المصادر:
- `auth.log` : محاولات تسجيل الدخول.
- `nginx.log` : طلبات خادم الويب.
- `app.log` : أخطاء التطبيق.
---
- **Log Collector (Python)**
- مسؤول عن قراءة السجلات من جميع المصادر بشكل دوري.
- يجمع كل سجل (Log Entry) ويمرره إلى مرحلة التحليل دون إجراء أي قرار أمني بنفسه.
---
- **Parser + Detection Rules**
- يقوم الـ Parser بتحليل كل Log واستخراج المعلومات المهمة مثل:
- عنوان IP
- الوقت
- نوع الحدث
- الرسالة
- بعد ذلك يتم تطبيق مجموعة من **قواعد الكشف (Detection Rules)** لتحديد ما إذا كان الحدث طبيعياً أو مشبوهاً.
- أمثلة على القواعد:
- أكثر من **5 محاولات تسجيل دخول فاشلة** خلال دقيقة واحدة → **Brute Force**.
- طلب يحتوي على كلمات مثل `UNION SELECT` أو `' OR 1=1`**SQL Injection**.
- محاولة الوصول إلى `/admin` أو ملفات حساسة بشكل متكرر → **Directory Enumeration**.
- إرسال مرفق بريد إلكتروني بامتداد `.exe` أو `.bat`**احتمال Malware**.
- عدد كبير من الطلبات من نفس عنوان IP خلال فترة قصيرة → **Suspicious Activity**.
---
- **Alerts Database / File**
- عند اكتشاف حدث مشبوه، يتم إنشاء Alert يحتوي على:
- الوقت
- عنوان IP
- نوع الهجوم
- مستوى الخطورة (Low / Medium / High)
- تُحفظ التنبيهات في ملف `alerts.json` (أو قاعدة بيانات في الأنظمة الأكبر) ليتم عرضها لاحقاً.
---
- **Dashboard (HTML / CSS / JavaScript)**
- واجهة رسومية تعرض التنبيهات التي اكتشفها النظام.
- تعرض معلومات مثل:
- عناوين IP المشبوهة.
- نوع الهجوم.
- مستوى الخطورة.
- وقت اكتشاف الحدث.
- يتم تحديث البيانات من ملف `alerts.json` الذي ينتجه برنامج Python.
---
# تشغيل المشروع
1. شغّل برنامج تحليل السجلات:
```bash
python siem.py
```
سيقوم البرنامج بقراءة ملفات الـ Logs وتحليلها وإنشاء ملف `alerts.json`.
2. بعد ذلك شغّل خادم HTTP لعرض لوحة التحكم:
```bash
python -m http.server 8000
```
3. افتح المتصفح وانتقل إلى:
```text
http://localhost:8000/dashboard/
```
ستظهر لوحة التحكم وتعرض جميع التنبيهات التي اكتشفها النظام.

32
miniSIEM/alerts.json Normal file
عرض الملف

@@ -0,0 +1,32 @@
[
{
"time": "2026-07-27 21:59:27.947124",
"ip": "10.0.0.5",
"attack": "Brute Force Login",
"severity": "HIGH"
},
{
"time": "2026-07-27 21:59:27.947161",
"ip": "10.0.0.5",
"attack": "Brute Force Login",
"severity": "HIGH"
},
{
"time": "2026-07-27 21:59:27.947285",
"ip": "10.0.0.8",
"attack": "Web Attack Attempt",
"severity": "MEDIUM"
},
{
"time": "2026-07-27 21:59:27.947295",
"ip": "10.0.0.9",
"attack": "Web Attack Attempt",
"severity": "MEDIUM"
},
{
"time": "2026-07-27 21:59:27.947408",
"ip": "LOCAL",
"attack": "Application Error",
"severity": "LOW"
}
]

33
miniSIEM/dashboard/app.js Normal file
عرض الملف

@@ -0,0 +1,33 @@
fetch("../alerts.json")
.then(res=>res.json())
.then(data=>{
let table=document.getElementById("alerts");
data.forEach(alert=>{
table.innerHTML +=
`
<tr>
<td>${alert.ip}</td>
<td>${alert.attack}</td>
<td>${alert.severity}</td>
</tr>
`
});
});

عرض الملف

@@ -0,0 +1,45 @@
<html>
<head>
<title>Mini SIEM Dashboard</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Security Alerts</h1>
<table>
<thead>
<tr>
<th>IP</th>
<th>Attack</th>
<th>Severity</th>
</tr>
</thead>
<tbody id="alerts"></tbody>
</table>
<script src="app.js"></script>
</body>
</html>

عرض الملف

@@ -0,0 +1,24 @@
body{
font-family:Arial;
margin:40px;
}
table{
border-collapse:collapse;
width:80%;
}
td,th{
border:1px solid black;
padding:10px;
}

1
miniSIEM/logs/app.log Normal file
عرض الملف

@@ -0,0 +1 @@
ERROR database failed

2
miniSIEM/logs/auth.log Normal file
عرض الملف

@@ -0,0 +1,2 @@
Jul 27 Failed password for root from 10.0.0.5
Jul 27 Failed password for admin from 10.0.0.5

2
miniSIEM/logs/nginx.log Normal file
عرض الملف

@@ -0,0 +1,2 @@
10.0.0.8 GET /admin.php
10.0.0.9 GET /sql?id=1

104
miniSIEM/siem.py Normal file
عرض الملف

@@ -0,0 +1,104 @@
import re
import json
from datetime import datetime
LOG_FILES = [
"logs/auth.log",
"logs/nginx.log",
"logs/app.log"
]
alerts = []
def create_alert(ip, attack, severity):
alert = {
"time": str(datetime.now()),
"ip": ip,
"attack": attack,
"severity": severity
}
alerts.append(alert)
def analyze_auth(line):
pattern = r"Failed password.*from ([0-9.]+)"
result = re.search(pattern,line)
if result:
ip = result.group(1)
create_alert(
ip,
"Brute Force Login",
"HIGH"
)
def analyze_web(line):
if "admin" in line or "sql" in line.lower():
ip = line.split()[0]
create_alert(
ip,
"Web Attack Attempt",
"MEDIUM"
)
def analyze_app(line):
if "ERROR" in line:
create_alert(
"LOCAL",
"Application Error",
"LOW"
)
def collect_logs():
for file in LOG_FILES:
with open(file) as f:
for line in f:
if "auth" in file:
analyze_auth(line)
elif "nginx" in file:
analyze_web(line)
else:
analyze_app(line)
collect_logs()
with open("alerts.json","w") as f:
json.dump(
alerts,
f,
indent=4
)
print("SIEM Scan Completed")
print(len(alerts),"alerts found")