يوميات مقالات تعليقات تعليقات خارجية
 
السلام عليكم، أهلا بك في صفحتي الشخصية... الساعة الآن 5:40 AM دقيقة بتوقيت الرياض
 
 

Thursday, June 05, 2008

أكرهك يا Windows Update

لا أستطيع أن أعبر عن مقدار الإستياء و الغضب الذي يسري فيني الان، فاليوم بدأت بكتابة موضوع عن الواي ماكس، و جمعت مجموعة روابط و كتبت مجموعة شروح على شكل مقاطع منفصلة، لا يقل كل مقطع عن أربع سطور!، و كل ذلك تم وضعه في ملف في دفتر ملاحظات ويندوز notepad و لم اقم بحفظه!.
 
خرجت من البيت، و عدت لاحقاً لأجد ويندوز الغبي قد قام بعملية إعادة تشغيل Restart للجهاز و أفقدني كل ما كتبت و كل ما جمعت من روابط و و نصوص...... آآآآآآآخ كم أنت أحمق يا ويندوز أبديت Windows Update!

بصراحة، لا أدري كيف تقوم مايكروسفت بإختيارات افتراضية تسبب أحداث مزعجة جداً مثل هذا الإختيار، فعملية إعادة التشغيل عبارة عن قرار يصدر عن المستخدم، و البرامج الحمقاء ليس بالذكاء حتى الآن لإتخاذ قرار مثل ذلك.

نصيحة للجميع، قومو بتشغيل ال gpedit.msc من الـ Run، و قومو بتعديل الخيار التالي:
No auto-restart for scheduled Automatic Updates installations

ضعوا قيمته Enable، حتى يتوقف الويندوز ابديت عن الإستذكاء.

تحياتي.


نشر في6:14 PM | تعليقات (12)

Thursday, May 29, 2008

سرعةالضوء = سرعة الموجات الكهرومغناطيسية

 المقال السابق أدخلني في نقاش مع أحد الأصدقاء متخصص في الشبكات، يقول أن ما يميز الألياف الضوئية هي أنها تستخدم الضوء في نقل البيانات، لذلك فهي أسرع من وسائط نقل البيانات الأخرى، كالأسلاك النحاسية (UTP, Coaxial) و الوسائط الاسلكية Wireless، فهل كلامه صحيح؟

في الحقيقة هذا الكلام غير دقيق، لأن الإشارات التي تُرسل في الأسلاك النحاسية و التي ترسل في الجو (موجات الراديو) لها نفس سرعة الضوء، أي أن الإشارات التي تنتقل عبر أسلاك UTP و إشارات الراديو التي تخرج من الهاتف الجوال ومن الأجهزة الاسلكية عموما، تجري بسرعة تساوي 300.000 كلم/ثانية (1).

هذا النقطة وجدها صديقي العزيز محيرة جداً، و أتفق معه في هذه الحيرة، فهي كانت معضلة سابقة لي عند دراستي لمادة الشبكات، حيث كنت اتسائل، كيف تنتقل الإشارات Singals بنفس سرعة الضوء و لا تعطي سرعة عالية شبيه بالتي في الألياف الضوئية؟، و إذا كان الإشارات التي تجري في اسلاك النحاسية تمشي بنفس سرعة الضوء، فما الميزة في استخدام الضوء من الأساس!.

في هذا المقال، سنحاول الإجابة على كل السؤالين السابقيين متحاشياً الدخول في شيطان التفاصيل.


الطيف الكهرومغناطيسي
يوجد شيء في الكون يسمى الطيف الكهرومغناطيسي Electromagnetic Spectrum، و هو بإختصار موجات تصنعها الإلكترونات عندما تتحرك، هذا الموجات لديها القدره على السير في الفضاء و في الفراغ، و يتم تقسيم هذه الموجات إلى عدد من الأجزاء،  هذه الأجزاء هي:
1. أشعة غاما.
2. الأشعة السينية.
3. الأشعة فوق البنسفجية.
4. الضوء.
5. الأشعة تحت الحمراء.
6. أشعة المايكروية.
7. موجات الراديو.

الأجزاء التي بالأعلى يتم التفريق بينهما بناء على شيء، يسمى تردد الموجة Frequency، و هي عدد الاهتزازات أو الذبذبات التي تصنعها الموجات في الثانية الواحدة، و يمكن القول أنه لا يوجد فاصل حقيقي بين كل نوع و نوع آخر، بل يتم التغير في طبيعة الموجات بشكل تدريجي كل ما زدنا تردد الووجة لتتحول إلى شكل مختلف، وفي الشكل 1، رسم توضيحي  للطيف الكهرومغناطيسي و أنواعه، و يعرض التردد Fequency الخاص بكل نوع.


الترددات العالية

الترددات المنخفضة

الشكل 1: الطيف الكهرومغناطيسي، كل جزء يختلف عن الآخر بعد الذبذبات، و الذي يسمى فيزيائيا بالتردد Frequency.

بين كل الأنواع السابقة  للطيف الكهرومغناطيسي لايهمنا سوى ثلاثة، وهم: الضوء و  الأشعة المايكروية و موجات الراديو، حيث أن هذه الأنواع من الموجات هي التي تستخدم في تراسل البيانات   Data Transmition، و هي الشيء التي سنجري عليها المقارنة لمعرفة أسباب تميز الألياف الضوئية في نقل البيانات، و لكن قبل الحديث عنها، نريد أن نتحدث عن ثلاث مواضيع مهمة، و هي سعة النطاق Bandwidth و ضعف الإشاراة Attenuation و الضوضاء Noise.

سعة النطاق Bandwidth
سعة النطاق هي المساحة الترددية الفاصلة بين موجتين، و هي كمية تقاس بالهيرتز، و هي أن صح التعبير، الوسيط الذي تستخدمه أجهزة الإرسال في إرسال النبضات لإرسال البيانات من طرف إلى طرف آخر، في عملية تسمى بتضمين البيانات Modulation، و في هذا المقال لا نحتاج إلى الدخول في تفصيل هذه العملية، و لكن ما نحتاج معرفته هو أن كل ما زادت سعة النطاق Bandwidth الخاص بالموجه، كلما سُمح لنا بإرسال عدد بتات أكبر في كل إشارة كهرومغناطيسي (نبضة).

ضعف الإشارة Attenuation
انواع الموجات الكهرومغناطيسية المذكورة بالأعلى تفرق فيما بينها في المسافة التي تقتطعها بدون أن تضعف، فكل الموجات السابقة عندما توجد (أو تولد)  تسير بإتجاه معين بسرعة الضوء، و لكنها ما تلبث أن تضعف و تضعف شيئا فشيئا حتى تتلاشى، هذا الضعف المتدرج يسمى في الفيزياء بال Attenuation.

الضوضاء Noise
ينتقل عبر الجو العديد من موجات الراديو المختلفة على مختلف الترددات، هذه الموجات تأتي من مختلف الأجهزة الموجودة في الشوارع و البيوت، و للأسف تتأثر موجات الراديو و الموجات التي تنتقل في أسلاك UTP و Coaxial بهذه الموجات، و تسمى هذه الموجات بالضوضاء Noise. 

كذلك فإن موجات الراديو بالذات لها عيب آخر و هو التداخل Interference، بحكم أنها تستخدم الهواء طريقة لها في الإنتقال، و هذا التداخل يحدث عندما تتواجد موجتين مختلفين يعملان على نفس التردد و يصدران من جهتين مختلفين في نفس المجال أو الوسيط.

الضوء: موجات كهرومغناطيسية مرئية
من الشكل 1 يتضح لنا أن الضوء لا يعدو كونه موجات كهرومغناطيسية مرئية، فكل الأنواع المذكورة لا نحس بها و لا نراها ما عدى الضوء، كذلك الشكل السابق يوضح لنا أن الضوء يتمتع بسعة نطاق عالية، ما بين 25.000 إلى 30.000 قيقا هيرتز، و الجدول التالي يعرض سعة نطاق الألياف الضوئية و معها أسلاك UTP و ال Coaxial.

ألياف ضوئية UTP(Cat 5) Coaxial
سعة النطاق Bandwidth 25.000-30.000 قيقا هيرتز 600 ميقا هيرتز 750-1000 ميقا هيرتز

الان، يمكننا أن نرى فائدة الضوء، فسعة النطاق العالية التي يمتلكها كما هو موضح بالجدول تخول لنا نقل كمية بيانات كبيرة في كل إشارة ضوء يتم نقلها، هذه الكمية اكبر بكثير من مما يسمح به UTP و ال Coaxial، فهل تقارن 25000 قيقا هيرتز التي يمنحها لنا الضوء ب 1 قيقا هيرتز الذي يمنحه لنا Coaxial!.

على ايه حال، أعتقد اننا بحاجة إلى مثال يجمع جميع النقاط مع بعضها البعض ليوضح المسئلة بشكل أكبر.

مثال 1:
لنفترض أن لدينا إشارة سوف ترسل من نقطة A إلى نقطة B، و سنستخدم لإرسالها الألياف الضوئية، و موجات الردايو الاسلكية، و سلك UTP، لنرى كيف تتداخل مختلف النقاطة المذكورة بالأعلى.

A.................................B


  • في حالة الألياف الضوئية: سوف تنطلق الإشارة بسرعة الضوء من النقطة A إلى نقطة B، و نظراً لأن سعة نطاق Bandwidth الضوء كبيرة، فسوف تنقل هذه الإشارة كمية كبيرة من البتات بإشارة واحدة فقط.
  • في حالة موجات الراديو: سوف تنطلق الإشارة بسرعة الضوء، و ستعتمد كمية البتات Bits المنقولة في هذه الإشارة على سعة النطاق Bandwidth  المخصص في الإرسال، و نظراً لأن موجات الراديو هذه يتم التحكم بها عن طريق الدولة، فالسعة المتاحة محدودة بالضرورة، لذلك فإن عدد البتات التي ستنقل ستكون محدودة بنطاق ضيق و محدود، لا يمكن أن يتجاوز بأي حال من الأحوال سعة نطاق الضوء المذكور في الجدول 1، و بالتالي ستنقل هذه الإشارة عدد بتات أقل من الألياف الضوئية.
  • في حالة الإشارة في UTP:  تنطلق الإشارة بسرعة الضوء كذلك، و لكن ستكون كمية البتات المنقولة في هذه النبضة أقل من الحالة الأولى نظرا لأن سعة النطاق المتاحة في UTP هي 600 ميقا هيرتز فقط، أما في الحالة الثانية فسوف تعتمد المسأله على سعة النطاق Bandwidth الذي اتيح لمواجات الراديو، و لكن ستكون UTP اقل عرضة للضوضاء و أقل عرضة للتداخل interferance من حالة مواجات الراديو.

أعتقد ان المثال السابق يوضح أول ميزة في الضوء، و هي سعة النطاق، حيث ستحمل إشارة الضوء كمية اكبر من البيانات نظراً لما تتميز به من سعة نطاق أكبر من الطريقتين الآخريتين، و لكن هذا وجه واحد من مزايا الضوء، و لنأخذ مثال آخر يوضح ميزه ثانية للضوء.

مثال 2:
لنفترض ان المسافة بين النقطة A و النقطة B عبارة عن 1000 كيلو متر، كيف سيتم نقل الإشارة بالطرق الثلاث السابقة؟

  • في حالة الألياف الضوئية. سو تنتقل الإشارة بسرعة الضوء، و لكن يجب كل كيلو متر واحد ان يتم إعادة تقوية الإشارة، نظراً لتعرف إشارة الضوء للضعف Attenuation.
  • في حالة الراديو: تستطيع موجات الراديو أن تقطع مسافات طويلة بدون أن تضعف، و لكن ستبقى مشكلة التداخل Interference مشكلة كبيرة، و بعض ال Band التي تستخدم تردد أعلى من 100 ميقا هيرتز لا تستطيع أن تخترق المباني، و تحتاج أن يكون جهة الإرسال و جهة الإستقبل متقابلين بالضبط بدون اي حواجز ليستقبلون الإشارات بشكل سليم .
  • في حالة UTP: ال UTP أسوأهم، حيث يحتاج إعادة تقوية كل 100 متر.


و تقبلوا تحياتي....



(1) للدقة، فإن سرعة الموجات الكهرومغناطيسية في الأسلاك كالألياف الضوئية وال UTP أقل من سرعة الموجات الكهرومغناطيسية في الفراغ، و هي تقدر بـ 200.000 كم/ثانية. 

نشر في2:07 AM | تعليقات (4)

Wednesday, May 21, 2008

الباندويدث: كمية مرور أم سعة نطاق؟

من المصطلحات الإنترنتية التي تجد فيها اختلاف بين المترجمين العرب هي الباندويدث Bandwidth، فتجد أناس يترجمونها كمية مرور، و أناس آخرون سعة نطاق (أو سعة نطاق الإتصال)، و من ما يجعل الأمر محير هو أنك تجد هذه الترجمات في أوراق رسمية لبعض المؤسسات الحكومية و بعض الجهات الأكاديمية، مما يثير هذا السؤال: أي الترجمتين صحيحة، و ماهو المقصود بالضبط؟

لا يمكن تقديم الجواب بشكل مباشرً، و نحتاج تفصيل، حيث ان الترجمة الصحيحة يتم تحديدها حسب السياق التي ترد فيه الكلمة، و أساس هذا التضارب في التعريب ناتج من التضارب في استخدام الكلمة الإنجليزية Bandwidth نفسها، حيث يستخدم كل من مهندسي الشبكات Network Engineers و مديري المواقع Webmasters كلمة Bandwidth لمعنى مختلف تماماً، و سنتحدث في هذا المقال عن هذين المعنيين.

الباندويدث: سعة نطاق
مهندسي الشبكات يقصدون بالباندويدث Bandwidth سعة نطاق الموجة، و هذه كمية فيزيائية تقاس بالهيرتز Hertz، و تعني سعة الترددات Frequency التي ستسخدم لإرسال الإشارة Singal، فعلى سبيل المثال: لو قلنا أن لدينا قناة سعة نطاقها هو 10 ميقا هيرتز، فهذا يعني أن القناة محصورة بين بداية تردد الموجة x حتى نهاية الموجة وهو x+10,000,000، و الشكل التالي يوضح المقصود:

 
شكل1: المسافة بين التردد f1 إلى f2، تسمى سعة النطاق Bandwidth.



الباندويدث: كمية مرور
مديري المواقع Webmasters يقصدون بالبنادويدث Bandwidth كمية البيانات التي خرجت من الخادم Server إلى زائري الموقع، فعلى سبيل المثال: تجد شركات الإستضافة تقول لك أن الباندويدث الشهري لموقعك هو 80 قيقا بايت شهرياً، و هي تعني أن موقعك يمكنه ان يمرر بيانات بحجم 80 قيقا بايت كل شهر لزواره، و لو أستهلك موقعك هذه 80 قيقا بايت في أسبوع، فسوف يتوقف موقعك عن العمل، و ستحتاج إلى شراء كمية باندويدث أضافية  من شركة الإستضافة.

و يجب الإشارة هنا ان كلمة باندويدث بمعنى كمية مرور تأتي في سياقات أخرى غير المذكور أعلاه، فعلا سبيل المثال: عندما تشترك في خدمة اتصال بالإنترنت يكون نظام الفوترة فيها يعتمد على كمية البيانات، فيذكر أن كمية المرور المسموحة لك هو 2 ميقا بايت يومياً، وهو  استخدام مشابه لإستخدام مديري الواقع WebMasters و لكن يفرق عنه قليلا، سنتحدث عنه بعد قليل.

الأن السؤال الذي يدور في رأس كل كاتب تقني عربي،أي ترجمة سأختار عندما أكتب مقال تقني باللغة العربية؟، الجواب ليس مباشراً مرة أخرى، فهناك تضارب آخر، و هو تضارب في استخدام الأخوين بت و بايت.

كيلو بت، أم كيلو بايت؟
عندما نتحدث عن سرعة اتصال، فيجب ان يتم التنبيهة ان الكمية تقاس بالبت و ليس بالبايت، على سبيل المثال: Kb 512 (لاحظ ان الحرف b في شكله الصغير lower case)، أم عند الحديث عن كمية بيانات (حجم بيانات) فهذي تقاس بالبايت، على سبيل المثال: 512 KB لاحظ الحرف B بالشكل الكبير، الأولى سرعة نقل معلومات، و الثانية حجم بيانات.

فعلى سبيل المثال: عندما تتصل بشركة الإتصالات (الإنفصالات سابقاً) و تطلب منهم خدمة DSL بسرعة 512، فأنتبه ان 512 لا تعني ان سرعة النقل لديك ستكون 512 كيلو بايت كل ثانية، بل هي 512 كيلو بت كل ثانية، بمعنى أنه يجب القسمة على 8 (لأن البايت 8 بتات) لكي تعرف سرعة النقل Data Rate بالبايتـ و الجدول التالي يوضح لك سرعة الإتصال Data Rate بالبت و الكمية المقابلة لها بالبايت.

سرعة اتصال Data Rate سرعة نقل البيانات المقابلة بالبايت
256 كيلو بت 32 كيلو بايت
512 كيلو بت 64 كيلو بايت
1 ميقا بت 125 كيلو بايت
2 ميقا بت 250 كيلو بايت
8 ميقا بت 1 ميقا بايت


كمية مرور أم سعة نطاق؟
السؤال مرة أخرى: متى تعني كلمة باندويدث Bandwidth كمية مرور، و متى تعني سعة نطاق، و الجواب الان يمكن تقديمه بسهولة، و هو انه إذا كان الموضوع يتكلم عن سعة  قناة Channel في سلك UTP او فايبر أو Wireless و كان الباندويدث Bandwidth يشار إلى كميته بالهيرتز Hz، فهذا يعني أننا نتحدث عن سعة نطاق، و لا يفترض هنا أن نستخدم كلمة "كمية مرور"، أما عندما يتم الحديث عن كمية البيانات التي سيسمح بمرورها على الشبكة  فهنا يتم استخدام "كمية مرور"، و لكن يجب الإنتباه إلى كيفية كتابة الوحدة، إما Kb أو KB، فالأولى كيلو بت، و الثانية كيلو بايت.


تحياتي،،،

نشر في4:20 PM | تعليقات (4)

Friday, May 16, 2008

الله يرحمك يا هديل

رحمك الله يا هديل
الله يرحمك يا هديل و أسكنك الله فسيح جناته،
اللهم اغفر لها وارحمها يارب العالمين.

نشر في2:48 PM | تعليقات (1)

Saturday, April 26, 2008

لوحة مفاتيح خاصة Custom Keyboard Layout

السلام عليكم،،،

قبل أسبوع كتبت موضوع جديد تحت قسم حركات خبيثة يعرض أداة تساعد على صنع لوحة مفاتيح خاصة بك في ويندوز Custom Keyboard Layotu، و لكن للاسف لم أنشره لأنني لم أكمله، اليوم اكتشفت اني سأغيب الأيام القادمة و لن أستطيع العوده للموضوع و إكماله. لذلك فهذا الموضوع ناقصاً.

تحياتي.

نشر في8:30 AM | تعليقات (1)

Thursday, March 20, 2008

فن استغلال الثغرات الأمنية

تحديث: كان هناك قطعة ناقصة في المقال لم أنتبه لها، و تم تعديل المقال.

 قبل فترة أمضيت ثلاث أيام متتالية في مناقشات صباحية عن كيفية حماية الشبكات و التطبيقات لأي مؤسسة مع مستشار أمن معلومات، و كانت النقاشات مفيدة جدا لي حيث أكتشفت الكثير من المعلومات التي لا أعرفها، عن كيفية حماية البيانات السرية بواسطة التشفير، كذلك، الفائدة الكبيرة التي استفدتها هي أن ليس كل المعلومات المشفرة محمية بما فيه الكفاية، و هذا المستشار الشاب اطلعني على كثير من الطرق لحماية البيانات المشفرة بشكل أكبر.

على ايه حال، الزين ما يكمل دائما، و صدمني خلال النقاشات أن هذا المستشار لا يعرف ما هي الفزرز Fuzzers و لم يسمع ابدا بالمصطلح و لا يعرف كيف يستغل الهاكرز الثغرات الأمنية security holes، و لم  يسمع كذلك بالـ shell coding فأكتشفت انها موضوع يعرفها المبرمجين أكثر من متخصصي أمن المعلومات.

المهم، بحث في المواقع العربية و لم أجد إلا قليل حول هذا الموضوع، لذلك في هذا الموضوع سنتحدث عن الأخطاء البرمجية التي تسبب ثغرات أمنية و عن الفزرز Fuzzers و كيف يقوم الهاكرز بكتابة الفيروسات و الدود Worms التي تنتشر حول العالم في غضون ساعات لتضرب ملايين الأجهزة في يوم واحد، و كذلك التي يستغلها الهاكر الأذكياء في التحكم بالأجهزة و سرق البيانات و كلمات السر و التجسس.

الأخطاء البرمجية الخطيرة Buffer overflow
 يوجد نوعية من الأخطاء البرمجية التي يرتكبها المبرمجين و تسبب مخاطر أمنية، هذه الأخطاء تسمى buffer overflow، و هي ترتكز بشكل أساسي في مشاكل استخدام الذاكرة، سواء كانت في ستاك Stack (مكدس باللغة العربية) او الهيب Heap، و يمكن توضيحها لمبرمجي السي بالكود التالي:

void main()
{
	char buff[50];
	int j=0;
	while (1)
	{
		int i = getc();
		if (i == '\n') 
			break;
		buff[j] = (char)i;
		j++;
	}
}

هل تستطيع أخي القاريء ان ترى الخطأ البرمجي في الكود السابق؟

الخطأ عنيف وخطير، و هو خطأ ينتمي إلى عائلة الأخطاء الأكثر فداحة التي يتركبها المبرمجين في الشركات الكبرى مثل مايكروسفت و  اوراكل و صن و ابل، و هذا النوع من الأخطاء هو الذي يجعل مايكروسفت تنزل بشكل متكرر  رقع أمنية security patches (كما يسموونها).

الخطأ ببساطة هو ان حجم المصفوفة buff يبلغ 50 حرفاً، و تكرر الـ while يقرأ  ما يدخله المستخدم إلى ما لا نهاية حتى يدخل المستخدم Enter و يتوقف حفظ المدخلات في المصفوفة، المشكل هو ماذا لو أدخل المستخدم أكثر من 50 حرفاً، ماذا سيحدث؟.

المتغيرات التي تعرف بالشكل السابق تحفظ في الستاك stack (مكدس باللغة العربية) و يمكن تمثيل الجزء السابق في الذاكرة كالتالي:


المكان المحدد للمصفوفة buff.

و كما هو معروف، فالستاك stack ينزل من الأعلى إلى الأسفل، بمعنى أن بدايته في العنوان العلوي high address حتى العنوان السفلي، أو بكلام آخر، لو كانت الذاكرة تبدا من الصفر إلى ألف، فالستاك يبدأ  من ثلاثمائة على سبيل المثال، و ينزل إلى 280 و 250 حسب عدد المتغيرات الداخلية local variables.

و المشكلة بشكل أدق، هي في عنوان الرجوع Return Address للدالة التي قامت بمناداة الفنكوشة main، فلو أدخل المستخدم أكثر من 50 حرفاً فهذا يعني ان الحرف رقم 51 إلى 54 (4 بايت، حسب نظام العنواين في المعالج) سيلعبون دور لم يصمم لهم (وهو دور عنوان الرجوع Return Address)، فالقيمة التي سيدخلها المستخدم سيأخذها البرنامج خلال التنفيذ على أنها عنوان لفنكوشة أخرى في الذاكرة، حيث كما يعلم مبرمجي السي و السي++ (و مبرمجي الاسمبلي بشكل خاص)، فإن لكل فنكوشة في الستاك Stack (المكدس) سجل يسمى Activation Record و يبدأ بعنوان الدالة التي قامت بمناداتها، و الفنكوشة main بالطبع هي أول دالة يتم مناداتها في البرنامج، و لكن يوجد قبلها دالة وضعها المترجم compiler و عنوانها في الشكل السابق هو 0xA004، و لو قام هاكر محترف بتسجيل عنوان معين بشكل يسمح لكود خاص به بالتنفيذ، سيكون لدينا ما تسميه مايكروسفت Remote Code Exection، أي إمكانية إدخال كود تنفيذي ليس له علاقة بالبرنامج الأصلي.

الان، يمكن أن يتسأل الجميع، لماذا لا يتوقف المبرمجين عن ارتكاب هذا الخطأ؟،  لك أن تتخيل عزيزي القارىء فريق كبير من المبرمجين، تحت الضغط لإكمال المشروع بأسرع وقت ممكن، و يعاني كل فرد فيه مشاكل شخصية، و  يوجد بين أعضاء الفريق تنافس شخصي خفي لإبراز إمكانيات كل منهم، و الكود ضخم يبلغ بضعة الأف من السطور البرمجية، هل يمكن أن يسيطرون على الخطأ السابق إذا عرفت ان اشكاله تتعدد و المثال السابق للتبسيط فقط!.

أعتقد أن سيكون في مواضع كثيرة ولا يمكن السيطرة عليه بسهولة، خصوصا أن عمليات مراجعة الكود Code Review ليست من العمليات التي يمارسها المبرمجين بكثافة، و بالطبع لا يمكن أن نتغافل عن إحتمالية أن الفريق البرمجي ببساطة لا يعرفون خطورة هذه النوعية من الأخطاء، أو ببساطة لا يهتمون.

و بالمناسبة، هذا الخطأ هو الشيء الذي استغلته سبب دودة Blaster الشهيرة، و هي التي استغلها Code Red، والكثير الكثير من الفيروسات الشهيرة.


الشيل كود Shell Coding

 أعتقد ان التساؤل الذي يدور في رأس كل مبرمج الان هو كيف يكون الخطأ السابق بهذه الدرجة من الخطورة؟ بمعنى ماذا يمكن ان يحدث لو اصبح في برنامجي stack overflow او heap overflow؟، الجواب هو أنه يمكن كتابة شيء اسمه shell code، و هو كود خبيث يرسل كما لو انه مدخلات عادية normal input و لكن في الحقيقة هو كود برمجي بصيغة machine code، يتم التحضير له بكتابة كود سي عادي ثم ترجمته، و بعد ذلك يقوم الهاكر بعملية disassebmly و الحصول على لغة الآلة machine code كتسلسل بالبايتات و يحولها إلى صيغة الهيكس Hex، و يستخدمها كمدخل في البرنامج :).

لكن ان  تتخيل عزيزي القارئ برنامج مثل IIS يستقبل طلبات من الزوار بصيغة HTTP Request و يقوم بقراءتها و تنفيذها، ماذا لو كان في كود قراءة HTTP Request خطأ استخدام في الذاكرة buffer overflow كالسابق؟ يمكن أن يقوم الهاكر بإرسال HTTP Request خبيث، مصمم بحيث يحتوي على شيل كود shell code في بعض أجزاءه حتى يتم يتنفذها في خادم الويب IIS بدون استئذان.

سؤال آخر، متى تكون هذه الأخطاء شديدة الخطورة؟، الجواب هو عندما يكون البرنامج يستقبل مدخلاته من الشبكة، بكلام آخر في التطبيقات الشبكية Network Application.


اكتشاف الأخطاء Fuzzers

الان عرفنا ما هو الخطأ البرمجي الذي يسبب الثغرات الأمنية، و كيف يتم استغلالها، تبقى لنا السؤال الأصعب، و هو كيف يتم اكتشاف هذه الأخطاء في البداية؟، الجواب بكل بساطة عن طريق أدوات للأختبار تسمى الفزرز Fuzzers، حيث تقوم هذه البرامج بإنتاج بيانات خاطئة لكي تسبب ان الخادم ينهار crash، فإذا كان هذا الإنهيار بسبب وصول خاطيء للذاكرة access violation، فهذا بالتأكيد رائحة شديدة التركيز لخطأ buffer overflow.

ايضا من الطرق المشهورة في هذا المجال هو استخدام الرقع الأمنية security patches في اكتشاف هذه الأخطاء، حيث يعمد الهاكرز إلى المقارنة بين الملفات التنفيذية قبل الرقعة و بعدها binary diff، و بهذه الطريقة يكتشفون الجزئية في البرنامج التي تقوم الرقعة بإصلاحها، و هكذا يكتشف الهاكرز ثغرة أمنية جديدة يمكن استغلالها.

يجب أن أقول في ختام الموضوع أن الفزرز Fuzzers أداة يمكن ان يستخدمها الجميع في اكتشاف الثغرات الأمنية في جميع التطبيقات الشبكية المنتشرة في الإنترنت كالمسنجر و IIS و اباتشي و Mysql، فقط تحتاج إلى شخص يغرق في حبها و يستخدمها بشكل مستمر، فكثيرا من الثغرات الأمنية التي كانت تكتشفها شركة مايكروسفت مؤخرا  كانت تأتي من أخصائي أمن معلومات يستخدمون الفزرز.


كتب مفيدة حول نفس الموضوع

مقالات مفيدة حول الموضوع


تقبلوا تحياتي....

نشر في5:37 AM | تعليقات (5)

Thursday, February 21, 2008

وداعاً خالد

يوم وراء يوم و أوادع صديق آخر التصق في برنامج حياتي و بفاتورة جوالي، فقبل ثلاث سنوات ودعت صديقي و زميلي عبدالله و أخي أيمن، و قبل شهر، ودعت رفيق الجامعة الأستاذ سعود، و في هذه الأيام و دعت زميل السنوات الأربع خالد العتيق,,,

اسم خالد في جوالي هو ثقب، و هذا الإسم له قصة أحتفظ بها لنفسي، لكن أود أن انقل هذا الإسم إلى أي شخص آخر في الجوال، لأني أشتقت ان أرد على الجوال و أقول أهلاً ثقب....

قبل فترة طويلة أنتقلت من مرحلة مراهقة الإنترنت إلى برنامج إعادة تأهيل للإنخراط في المجتمع من جديد، فإدمان الإنترنت أفقدني الكثير من مهارات الإتصال مع العالم الخارجي (لول)، الآن... أشعر أني سأرجع إلى تلك الفترة من جديد، و سأغرق في آدمان الإنترنت مرة أخرى،،،

منتدى رحلة حياة مرشح قوي للرجوع إلى قائمة المفضلة، على الأقل لدي اسم مستخدم و كلمة مرور  هناك ما زالت باقية في الذاكرة، و موضوع يتيم لم يتم حذفه حتى الان (لول).

تحياتي...

نشر في4:27 PM | تعليقات (2)

Sunday, January 27, 2008

بيل قيتس Bill Gates

السلام عليكم،،،

من أكثر الأشياء اللي تجعل الناس يكرهون مايكروسفت هو أنهم يكرهون بيل قيتس نفسه  بسبب غناه الفاحش الذي بناه على أنقاض منافسيه، هذا الكرُه الخفي في نفوس منتقديه،  يظهر جلياً عندما ينزعجون من أي خطاء برمجي يظهر في منتجات مايكروسفت متغافلين أن هذه الأخطاء موجودة في كل برامج العالم و هي جزء لا يتجزأ من أي برنامج، كما لو أنها أحد مميزات البرنامج نفسه (لول)، و كما قال شاعرنا العربي:

وعين الرضا عن كل عيب كليلة....... ولكن عين السخط تبدي المساويا 

هذا الشخص هو هتلر سوق البرمجيات مع فارق وحيد، أنه هتلر هزمه الحلفاء و بيل قيتس ما زال في موقف متقدم عليهم، فمازالت جميع شركات البرمجيات (Oracle, Apple, Sun, Google) تنافس مايكروسفت، و هذا الرجل واقف في وجوههم كلهم.
 
كم أود أن أكتب عن هذا الرجل، فالحديث عنه لا ينتهي,,,,  لكن سأكتفي بأن أدعو الجميع لمشاهدة هذا الفلم القصير لآخر يوم لبيل قيتس في مايكروسفت:

http://video.msn.com/video.aspx?mkt=en-us&tab=soapbox&vid=be9075bb-df0a-41c9-8d86-7ded46627e26

تحياتي للجميع،،

نشر في1:37 PM | تعليقات (2)

Sunday, December 09, 2007

فيجوال ستديو 2008 و حرباز مفقود

 

السلام عليكم...
و أخيراً أعلنت مايكروسفت عن طرح فيجوال ستديو 2008 مع النسخة 3.5 من إطار الدوت نيت Net Framework. ، و اللي بصرحة ما أعرف عنهم أي شيء و لا أدري وش ممزياتهم (لول) ، لأنه بإختصار لم أتابع عملية تطويرهم في موقع مايكروسفت، و اللي عنده فكره عنهم... الله لا يهينيه يكتب لنا شيء (لول)...

حرباز مفقود...
منذ فترة ليست بالقصيرة و مدونة أبو الحرابيز متوقفة و الولد لا حس و لا خبر على غير العادة،،، !

مدونات تبحث عن حرباز:
سوالفي،
ملياني ،
ماشي صح.


لي عودة...
مع VS 2008 و مع حرباز ....

تحياتي،،
 

نشر في1:47 PM | تعليقات (2)

Tuesday, October 30, 2007

مثال.إختبار

السلام عليكم...

وصلني قبل أسبوع رسالة سعيدة تقول بأن آيكان المنظمة المسؤولة عن أسماء النطاقات في الإنترنت قد اضافت نطاق بإسم:
 
http://مثال.إختبار

كخطوة أولية لتجربة دعم اللغة العربية على جزء gTLD في أسماء النطاقات، و هي تعتبر الخطوة الثانية من آيكان لدعم اللغات العالمية في أسماء النطاقات، حيث كانت في السابق تدعمها فقط على جزئية second-level، و يمكن تجربة الموقع بالذهاب إلى هنا.

الجميل في الموضوع أن هذه العملية بالضبط ما كانت أداة عربي.عربي التي قمت مع الأستاذ محمد الحامد بتطويرها لصالح الـ CITC، و ذلك كأداة ضغط عى آيكان لتكمل دعمها على جميع أجزاء النطاق #.

شخصياً... أتوقع أسماء مواقع عربية في غضون الخمس إلى العشر سنوات القادمة، و بذلك سيكون الكثير من مواقع الوزارات الحكومية و الشركات الكبيرة باللغة العربية، و لن نحتاج إلى تذكراسم الموقع بحروفه الاتينية....

ايضاً، لا تفوتني الفرصة لشكر الدكتور عبدالعزيز الزومان و الأستاذ رائد الفايز الذين كان لهم يد في إجبار إيكان لدعم هذا التغيير.

تحياتي للجميع...

نشر في10:03 AM | تعليقات (1)

 • التصفح
 » RSS
 

 • المقالات

 » ASP.NET










 • الأرشيف





















 • اليوميات












 • الصور



جميع الحقوق محفوظة،
حسام المقحم 2006م