ابو نورة
./عضو جديد


السمعة:
- إنضم27 مارس 2025
- المشاركات 9
- مستوى التفاعل 17
- النقاط 3
بسم الله الرحمن الرحيم
الحمد لله الذي علم الإنسان ما لم يعلم، وميّزه بالعقل والإدراك ليحمي نفسه من الشرور والمخاطر، وقال سبحانه: ﴿وَلَا تَقْفُ مَا لَيْسَ لَكَ بِهِ عِلْمٌ إِنَّ السَّمْعَ وَالْبَصَرَ وَالْفُؤَادَ كُلُّ أُولَٰئِكَ كَانَ عَنْهُ مَسْئُولًا﴾ [الإسراء: 36]. ومن هذا المنطلق، يجب علينا أن نكون على دراية بالأساليب التي يستخدمها المخترقون لإخفاء الأكواد الخبيثة في صفحات الويب، حتى لا نقع ضحية لمثل هذه الهجمات.
طريقة إخفاء الأكواد الخبيثة باستخدام الحروف غير المرئية
لماذا هذا الموضوع مهم؟
المخترقون دائمًا يبتكرون طرقًا جديدة لخداع المستخدمين، وإحدى هذه الطرق هي إخفاء الأكواد الخبيثة داخل صفحات الويب باستخدام حروف غير مرئية (Invisible Unicode Characters). هذه الحروف تبدو كمسافات فارغة، لكنها في الواقع تحمل بيانات يمكن تحويلها إلى كود ضار دون أن يلاحظها أحد، حتى لو تم فحص الكود المصدري للصفحة.
كيف يتم تنفيذ هذا الهجوم؟
الخطوة الأولى: تحويل الكود إلى شيفرة سرية
لنفترض أن هناك كودًا خبيثًا، مثل أمر يسرق بيانات المستخدم. يقوم المخترق بتحويله إلى سلسلة من الأرقام الثنائية (0 و 1).
على سبيل المثال، الكلمة "Hi" عند تحويلها إلى النظام الثنائي تصبح:
01001000 01101001
الخطوة الثانية: استبدال الأرقام بحروف غير مرئية
يتم استبدال كل 0 بحرف Unicode غير مرئي مثل U+3164
ويتم استبدال كل 1 بحرف Unicode آخر غير مرئي مثل U+FFA0
النتيجة: يصبح الكود عبارة عن سلسلة من الحروف غير المرئية التي تبدو للمستخدم وكأنها مجرد مسافات فارغة.
الخطوة الثالثة: إخفاء الكود داخل الصفحة
المخترق يضع هذه الحروف المخفية في أماكن غير متوقعة مثل:
داخل عناصر HTML مثل:
<div id="secret"> ㅤㅤㅤ</div>
داخل التعليقات:
<!-- ㅤㅤㅤ -->
داخل ملفات CSS أو حتى في وصف الموقع (Meta Description).
الخطوة الرابعة: تشغيل الكود الخبيث
عندما يفتح المستخدم الصفحة، يوجد كود صغير يقوم بالخطوات التالية:
1. يقرأ الحروف المخفية من الصفحة.
2. يحولها مرة أخرى إلى أرقام ثنائية (0 و 1).
3. يترجم الأرقام إلى كود JavaScript عادي.
4. ينفذ الكود الخبيث، مثل سرقة بيانات تسجيل الدخول.
لماذا يصعب اكتشاف هذا النوع من الهجمات؟
✔ الحروف غير مرئية: تبدو للمستخدم وكأنها مجرد مسافات عادية.
✔ برامج مكافحة الفيروسات قد لا تكتشفها: لأن الكود لا يحتوي على نمط واضح للهجوم.
✔ يتم تنفيذ الكود فور فتح الصفحة: مما يجعل من الصعب تحليله قبل أن يبدأ بالتنفيذ.
✔ أدوات فحص الأكواد العادية قد لا تظهر الحروف المخفية: لأن المتصفح يتعامل معها كمسافات فارغة.
أمثلة عملية لفهم التقنية
مثال 1: تحويل الحروف إلى شيفرة مخفية
const hiddenCode = "01100001" // الشيفرة الثنائية للحرف "a"
.replace(/0/g, '\u3164') // استبدال 0 بحرف غير مرئي
.replace(/1/g, '\uffa0'); // استبدال 1 بحرف غير مرئي
console.log(hiddenCode);
مثال 2: استخراج الكود المخفي وتشغيله
// قراءة الحروف المخفية من HTML
const secretData = document.getElementById('secret').textContent;
// تحويل الحروف إلى 0 و 1 مرة أخرى
const binary = secretData.replace(/\u3164/g, '0').replace(/\uffa0/g, '1');
// تحويل الأرقام إلى كود حقيقي وتنفيذه
const code = String.fromCharCode(parseInt(binary, 2));
eval(code); // هنا يتم تنفيذ الكود الخبيث!
كيف تحمي نفسك من هذا الهجوم؟
✔ افحص الحروف المخفية في الأكواد:
استخدم أدوات تحرير الأكواد مثل VS Code أو Linters للكشف عن الحروف غير المرئية. في VS Code، يمكنك تفعيل عرض المسافات المخفية عبر:
View → Render Whitespace
✔ منع الأكواد المشبوهة باستخدام سياسة أمان المحتوى (CSP):
Content-Security-Policy: script-src 'self';
هذا يمنع تنفيذ أي كود غير موجود في موقعك الأصلي.
✔ تنظيف المدخلات من الحروف الغريبة:
input = input.replace(/[\u3164\uffa0]/gu, '');
هذا يزيل أي حروف غير مرئية من النصوص المدخلة.
✔ مراقبة الكود الحي:
استخدم Chrome DevTools وابحث عن استخدام eval() أو Function()، لأن هذه الأوامر تُستخدم عادةً لتشغيل أكواد غير موثوقة.
✔ تحديث أدوات الحماية واستخدام فحص أمني دوري:
استخدم أدوات مثل OWASP ZAP لتحليل موقعك واكتشاف الأكواد المشبوهة.
الخلاصة
المخترقون يستغلون تفاصيل صغيرة مثل المسافات الفارغة لإخفاء الأكواد الخبيثة، مما يجعل اكتشافها صعبًا للغاية. ولكن مع الوعي والمعرفة الصحيحة، يمكنك حماية نفسك من هذه التهديدات.
قال رسول الله ﷺ: "المؤمن كَيِّس فَطِن"، لذا كن دائمًا متيقظًا ولا تتهاون في حماية بياناتك وأنظمتك.
إذا استفدت من هذا المقال، لا تنسَ مشاركته حتى يستفيد الآخرون.
الحمد لله الذي علم الإنسان ما لم يعلم، وميّزه بالعقل والإدراك ليحمي نفسه من الشرور والمخاطر، وقال سبحانه: ﴿وَلَا تَقْفُ مَا لَيْسَ لَكَ بِهِ عِلْمٌ إِنَّ السَّمْعَ وَالْبَصَرَ وَالْفُؤَادَ كُلُّ أُولَٰئِكَ كَانَ عَنْهُ مَسْئُولًا﴾ [الإسراء: 36]. ومن هذا المنطلق، يجب علينا أن نكون على دراية بالأساليب التي يستخدمها المخترقون لإخفاء الأكواد الخبيثة في صفحات الويب، حتى لا نقع ضحية لمثل هذه الهجمات.
طريقة إخفاء الأكواد الخبيثة باستخدام الحروف غير المرئية
لماذا هذا الموضوع مهم؟
المخترقون دائمًا يبتكرون طرقًا جديدة لخداع المستخدمين، وإحدى هذه الطرق هي إخفاء الأكواد الخبيثة داخل صفحات الويب باستخدام حروف غير مرئية (Invisible Unicode Characters). هذه الحروف تبدو كمسافات فارغة، لكنها في الواقع تحمل بيانات يمكن تحويلها إلى كود ضار دون أن يلاحظها أحد، حتى لو تم فحص الكود المصدري للصفحة.
كيف يتم تنفيذ هذا الهجوم؟
الخطوة الأولى: تحويل الكود إلى شيفرة سرية
لنفترض أن هناك كودًا خبيثًا، مثل أمر يسرق بيانات المستخدم. يقوم المخترق بتحويله إلى سلسلة من الأرقام الثنائية (0 و 1).
على سبيل المثال، الكلمة "Hi" عند تحويلها إلى النظام الثنائي تصبح:
01001000 01101001
الخطوة الثانية: استبدال الأرقام بحروف غير مرئية
يتم استبدال كل 0 بحرف Unicode غير مرئي مثل U+3164
ويتم استبدال كل 1 بحرف Unicode آخر غير مرئي مثل U+FFA0
النتيجة: يصبح الكود عبارة عن سلسلة من الحروف غير المرئية التي تبدو للمستخدم وكأنها مجرد مسافات فارغة.
الخطوة الثالثة: إخفاء الكود داخل الصفحة
المخترق يضع هذه الحروف المخفية في أماكن غير متوقعة مثل:
داخل عناصر HTML مثل:
<div id="secret"> ㅤㅤㅤ</div>
داخل التعليقات:
<!-- ㅤㅤㅤ -->
داخل ملفات CSS أو حتى في وصف الموقع (Meta Description).
الخطوة الرابعة: تشغيل الكود الخبيث
عندما يفتح المستخدم الصفحة، يوجد كود صغير يقوم بالخطوات التالية:
1. يقرأ الحروف المخفية من الصفحة.
2. يحولها مرة أخرى إلى أرقام ثنائية (0 و 1).
3. يترجم الأرقام إلى كود JavaScript عادي.
4. ينفذ الكود الخبيث، مثل سرقة بيانات تسجيل الدخول.
لماذا يصعب اكتشاف هذا النوع من الهجمات؟
✔ الحروف غير مرئية: تبدو للمستخدم وكأنها مجرد مسافات عادية.
✔ برامج مكافحة الفيروسات قد لا تكتشفها: لأن الكود لا يحتوي على نمط واضح للهجوم.
✔ يتم تنفيذ الكود فور فتح الصفحة: مما يجعل من الصعب تحليله قبل أن يبدأ بالتنفيذ.
✔ أدوات فحص الأكواد العادية قد لا تظهر الحروف المخفية: لأن المتصفح يتعامل معها كمسافات فارغة.
أمثلة عملية لفهم التقنية
مثال 1: تحويل الحروف إلى شيفرة مخفية
const hiddenCode = "01100001" // الشيفرة الثنائية للحرف "a"
.replace(/0/g, '\u3164') // استبدال 0 بحرف غير مرئي
.replace(/1/g, '\uffa0'); // استبدال 1 بحرف غير مرئي
console.log(hiddenCode);
مثال 2: استخراج الكود المخفي وتشغيله
// قراءة الحروف المخفية من HTML
const secretData = document.getElementById('secret').textContent;
// تحويل الحروف إلى 0 و 1 مرة أخرى
const binary = secretData.replace(/\u3164/g, '0').replace(/\uffa0/g, '1');
// تحويل الأرقام إلى كود حقيقي وتنفيذه
const code = String.fromCharCode(parseInt(binary, 2));
eval(code); // هنا يتم تنفيذ الكود الخبيث!
كيف تحمي نفسك من هذا الهجوم؟
✔ افحص الحروف المخفية في الأكواد:
استخدم أدوات تحرير الأكواد مثل VS Code أو Linters للكشف عن الحروف غير المرئية. في VS Code، يمكنك تفعيل عرض المسافات المخفية عبر:
View → Render Whitespace
✔ منع الأكواد المشبوهة باستخدام سياسة أمان المحتوى (CSP):
Content-Security-Policy: script-src 'self';
هذا يمنع تنفيذ أي كود غير موجود في موقعك الأصلي.
✔ تنظيف المدخلات من الحروف الغريبة:
input = input.replace(/[\u3164\uffa0]/gu, '');
هذا يزيل أي حروف غير مرئية من النصوص المدخلة.
✔ مراقبة الكود الحي:
استخدم Chrome DevTools وابحث عن استخدام eval() أو Function()، لأن هذه الأوامر تُستخدم عادةً لتشغيل أكواد غير موثوقة.
✔ تحديث أدوات الحماية واستخدام فحص أمني دوري:
استخدم أدوات مثل OWASP ZAP لتحليل موقعك واكتشاف الأكواد المشبوهة.
الخلاصة
المخترقون يستغلون تفاصيل صغيرة مثل المسافات الفارغة لإخفاء الأكواد الخبيثة، مما يجعل اكتشافها صعبًا للغاية. ولكن مع الوعي والمعرفة الصحيحة، يمكنك حماية نفسك من هذه التهديدات.
قال رسول الله ﷺ: "المؤمن كَيِّس فَطِن"، لذا كن دائمًا متيقظًا ولا تتهاون في حماية بياناتك وأنظمتك.
إذا استفدت من هذا المقال، لا تنسَ مشاركته حتى يستفيد الآخرون.