AudioVideo
EP19 - Ask Developer Hangout - Week 14 - Software Security
About this episode
حلقة نقاشية موسعة عن أمن البرمجيات من منظور المطور: كيف يبدأ التفكير الأمني أثناء التصميم بدل إضافته في النهاية، وكيف يحدد الفريق الأصول الحساسة وحدود الثقة وتدفق البيانات عبر نمذجة التهديدات. يناقش اللقاء أخطاء شائعة مثل الثقة في مدخلات المستخدم أو التحقق من جهة العميل فقط، مع أمثلة على حقن السكربتات وتجاوز سعات الذاكرة وتسرب المعلومات عبر رسائل الأخطاء. كما يتناول المصادقة متعددة العوامل، كلمات المرور والـsalt، مبدأ أقل الصلاحيات، التشفير، التحديثات الأمنية، التسجيل والتدقيق، وعزل المكونات. ويتطرق أيضاً إلى حماية تطبيقات سطح المكتب والترخيص وحدود الإخفاء البرمجي والهندسة العكسية، مع التأكيد على موازنة الحماية مع سهولة الاستخدام ومستوى المخاطر الفعلي.
Episode notes
• إدخال الأمن في التصميم عبر نمذجة التهديدات ورسم تدفق البيانات وحدود الثقة
• عدم الاعتماد على إخفاء التصميم أو غموض الكود كوسيلة حماية أساسية
• التحقق من كل مدخلات المستخدم على الخادم وفي طبقات متعددة، ومخاطر XSS
• تجنب أخطاء الذاكرة واستخدام واجهات ومكتبات أكثر أماناً عند التعامل مع البيانات
• المصادقة متعددة العوامل ورصد أنماط الاستخدام غير المعتادة
• تخزين كلمات المرور بالـhash والـsalt، وتجنب الخوارزميات أو الممارسات القديمة
• مبدأ أقل الصلاحيات، وفصل العمليات والخدمات لتقليل أثر الاختراق
• تحديث أنظمة التشغيل والمنصات والمكتبات بسرعة بعد نشر التصحيحات الأمنية
• التشفير وحماية البيانات أثناء النقل، وأهمية HTTPS لصفحات تسجيل الدخول
• السجلات والتدقيق واختبار الأنظمة ضد الأعطال والهجمات، بما فيها حجب الخدمة
https://www.securecoding.cert.org/confluence/display/java/The+CERT+Oracle+Secure+Coding+Standard+for+Java
https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines
http://msdn.microsoft.com/en-us/library/8a3x2b7f.aspx
http://phrack.org/issues.html?issue=49&id=14#article
https://en.wikipedia.org/wiki/Cross-site_scripting
http://fiddler2.com/
http://msdn.microsoft.com/en-us/magazine/cc163519.aspx