forumفتح موضوع جديد
فتح موضوع جديد

جربنا نعمل مراجعة أمنية للكود بتاعنا بنفسنا بس اتعطلنا — إيه الفخاخ الشائعة؟

EEbru K***مشارك
المسمى الوظيفي
أخصائي الموارد البشرية
قطاع
تصنيع الأثاث
نوع المنظمة
نشاط فردي
تاريخ الانضمام
أكتوبر 2024
رسالة
105
#1

إحنا فريق برمجيات أساسي من 4 أفراد في أوستن، بنطور منصة لتحليلات البيانات المالية لقطاع الشركات (B2B). قبل ما ندخل في تدقيق أمني طالبه مننا عميل كبير، قررنا نعمل مراجعة أمان داخلية للكود الجديد بتاعنا، اللي حجمه حوالي 12.000 سطر ويشمل استعلامات قواعد البيانات وطبقات المصادقة والتوثيق (Auth). ميزانيتنا حالياً متسمحش نجيب استشاري أمن معلومات خارجي.

بدأنا شغل من تلات أسابيع بس دخلنا في حيطة سد. شغلنا أداة تحليل ثابت (Static analysis) مفتوحة المصدر وطلعتلنا أكتر من 320 تحذير. الفريق قعد يجادل مين فيهم إنذار كاذب (False positive) ومين تهديد حقيقي، لدرجة إن سرعة الـ Sprint نزلت للنص تقريباً. المطورين بقوا في موقف دفاعي، والعملية كلها بقت بطيئة ومملة، وفي الآخر جالنا إحساس إننا برضه ممكن نكون فوتنا ثغرات جوهرية في منطق العمل (Business logic) نفسه.

إيه أكتر أخطاء بتقع فيها الفرق البرمجية الصغيرة لما تراجع الكود أمنياً بنفسها؟ وإزاي نحول المراجعة دي لروتين قابل للتطبيق من غير ما نستنزف الفريق ونعطل مواعيد التسليم؟

HHakan U***مشاركعضو المجتمع
تاريخ الانضمام
أبريل 2024
رسالة
43
الأكثر إفادة#2

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

أول خطوة، قلل دوشة أداة التحليل الثابت (SAST). طبيعي جداً يطلع 320 تحذير؛ أغلبها بيكون مجرد التزام صارم بمعايير التنسيق أو تحذيرات شكلية منخفضة الخطورة. ظبط إعدادات الأداة عشان تركز بس على الثغرات الخطيرة والحرجة (Critical & High) زي حقن SQL، والوصول غير المصرح للبيانات، وإدارة الجلسات غير الآمنة، وأخطاء التشفير. عطل التنبيهات الإرشادية والمتوسطة في الأول عشان تقلل النتائج لعدد تقدر تسيطر عليه.

تاني خطوة، قلل نطاق المراجعة من 12.000 سطر للنقاط الحساسة بس. إنك تفحص كلاسات مساعدة ملهاش تأثير أمني بنفس الطريقة اللي بتفحص بيها دوال الكتابة في قواعد البيانات ومنافذ استقبال مدخلات المستخدم (Endpoints) والتحقق من الصلاحيات هيرهق الفريق ع الفاضي. بدل 12.000 سطر، ركزوا على الـ 1.500 سطر اللي بيمثلوا نقاط التماس الحرجة.

وأخيراً، خليك عارف إن أدوات الفحص الآلي عمرها ما هتكشف ثغرات الصلاحيات المنطقية (زي إن مستخدم يغير رقم في الرابط ويشوف فاتورة شركة تانية). عشان تكتشفوا النوع ده من الثغرات، اعملوا سيناريوهات اختبار تبادلية بين أعضاء الفريق: مطور يمسك الـ Endpoint اللي زميله كتبه ويسأل يدوي: "لو الـ Role check سقط هنا، إيه اللي هيحصل؟".

FFeyza S***مشاركعضو المجتمع
تاريخ الانضمام
أغسطس 2023
رسالة
251
#3

اضبط ميزة 'Taint analysis' (تتبع البيانات الملوثة) في أدوات الـ SAST كويس. راقب مدخلات المستخدم واتأكد بتتعقم فين قبل ما توصل لقاعدة البيانات أو أوامر النظام. لو قفلت القواعد الغبية اللي بتعتبر أي دمج نصوص (String concat) ثغرة SQL، هتلاقي تلتين التحذيرات اختفت فوراً.

NNuri E***خبير
المسمى الوظيفي
المنسق العام
قطاع
جلد
نوع المنظمة
وكيل إقليمي
تاريخ الانضمام
فبراير 2023
رسالة
386
#4

إن جعل مبرمج لم يتلقَّ تدريبًا أمنيًا يراجع كوده بنفسه من الناحية الأمنية مجرد إجراء شكلي. فمن كتب الكود لا يستطيع رؤية خطأ التصميم في عمله. إذا كانت ميزانيتك ضيقة، فاستقدام تدقيق خارجي مركّز لمدة 2-3 أيام على وحدة المصادقة والدفع فقط بدلًا من النظام كله أرخص وأكثر فعالية بكثير.

EErcan T***مشارك
المسمى الوظيفي
مدير التكنولوجيا
قطاع
كهرباء وإلكترونيات
نوع المنظمة
وكيل إقليمي
تاريخ الانضمام
يناير 2023
رسالة
1

Doki · فحص الثغرات الأمنية · 2024

#5

لا تقعوا مرة أخرى في خطأ مراجعة 12.000 سطر دفعة واحدة. قسّموا المراجعة الأمنية إلى طلبات سحب. لا يزيد الكود في كل دمج على 300 سطر، ولا تحتوي قائمة التحقق على أكثر من 5 بنود أمنية حرجة. ولينظروا إليه أثناء كتابة الكود لا عند انتهاء السبرنت.

OOrhan D***خبير
المسمى الوظيفي
موظف متجر
قطاع
خدمات تقنية المعلومات
نوع المنظمة
شركة ناشئة حديثة التأسيس
تاريخ الانضمام
نوفمبر 2024
رسالة
228
#6

في أول فحص تلقّينا 410 تحذيرات. وظللنا نتخبط مع الفريق أسبوعين. ثم ضبطنا فلتر الأمان على أخطر 10 ثغرات ويب فقط؛ فانخفض العدد فجأة إلى 19. ومن تلك النتائج الـ19 لم يكن يحمل خطرًا حقيقيًا سوى 4 فقط تستحق الإصلاح فعلًا.

AAhmet Z***خبير
المسمى الوظيفي
فني صيانة
قطاع
تجارة الجملة للأغذية
نوع المنظمة
شركة عائلية
تاريخ الانضمام
ديسمبر 2023
رسالة
159
#7

أدوات الأتمتة لا تعرف ماذا يفعل الكود، هي فقط تطابق القوالب. إذا كنتم تستخدمون مكتبات ذات معاملات في استعلامات قاعدة البيانات فأنتم أصلًا تزيلون تلقائيًا معظم خطر sql injection، فلا تتوقفوا بلا داعٍ عند كل تحذير من الأداة.

SSinan B***عضو جديد
المسمى الوظيفي
تخطيط الإنتاج
قطاع
الإعلانات والترويج
نوع المنظمة
مؤسسة متوسطة الحجم
تاريخ الانضمام
سبتمبر 2026
رسالة
59
#8

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

HHande B***مشارك
المسمى الوظيفي
مدير العمليات
قطاع
الرياضة واللياقة
نوع المنظمة
وكالة بوتيك
تاريخ الانضمام
يونيو 2023
رسالة
353
#9

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

FFiliz A***خبيرعضو المجتمع
تاريخ الانضمام
مايو 2025
رسالة
14
#10

خلاصة ما قيل: ارفعوا عتبة تحذيرات الماسحات التلقائية وقلّلوا الضجيج، وقسّموا المراجعة إلى أجزاء صغيرة، واختبروا أخطاء منطق التخويل التي لا تلتقطها الأدوات بسيناريوهات يدوية.

LLevent K***مشاركعضو المجتمع
تاريخ الانضمام
يوليو 2024
رسالة
2
#11

كنت أفكر في نفس الشيء. عندما نتخذ قرارات دون قياس، نعود لنفس النقطة دائماً.

كل بند غير مكتوب هو بند سيتذكره الطرفان بشكل مختلف لاحقًا. دعني أتركها كملاحظة، قد تكون مفيدة.

MMehmet K***مشاركعضو المجتمع
تاريخ الانضمام
يناير 2025
رسالة
237
#12

حدث معي العكس تماماً، لذلك أكتب هذا. الأمان ليس مطلقاً؛ بل يعني جعل الهجوم غير مجدٍ من حيث الجهد.

بالطبع يختلف الأمر إذا كانت حالتك مختلفة.

TTolga G***محارب قديم
المسمى الوظيفي
سكرتير
قطاع
بلاستيك
نوع المنظمة
وكيل إقليمي
تاريخ الانضمام
يناير 2024
رسالة
138
#13

أوافق.

CCaner Z***مشارك
المسمى الوظيفي
مندوب مبيعات ميداني
قطاع
كاميرا
نوع المنظمة
نشاط تجاري بفرعين
تاريخ الانضمام
يناير 2024
رسالة
155
#14

ملخص سريع للجدد: لا يتم التحقق من تغييرات معلومات الدفع أبداً عبر القناة الواردة منها.

الأمان ليس مطلقاً؛ بل يعني جعل الهجوم غير مجدٍ من حيث الجهد. بالتوفيق.

PPolat S***محارب قديمعضو المجتمع
تاريخ الانضمام
سبتمبر 2024
رسالة
9
#15

حدث معنا هذا. نسخة احتياطية غير مختبرة ليست نسخة احتياطية.

إذا كتبت النتيجة هنا، فستفيد الآخرين أيضاً.

GGökhan A***مشارك
المسمى الوظيفي
منتج · أثاث
تاريخ الانضمام
أكتوبر 2023
رسالة
74
#16

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

بالتوفيق.

FFiliz P***خبيرعضو المجتمع
تاريخ الانضمام
نوفمبر 2024
رسالة
14
#17

أوافقك الرأي تمامًا. عند اتخاذ القرار، اكتب أسوأ سيناريو أيضًا، وليس الأفضل فقط.

اكتبوا إذا كانت لديكم أسئلة، سأجيب قدر استطاعتي.

DDuyguمشارك
المسمى الوظيفي
باحث في السوق
تاريخ الانضمام
يونيو 2024
رسالة
102
#18

سأجمع الموضوع، لأن هناك عدة إجابات مختلفة. الناس يدافعون عن العادات وليس العمليات. المقاومة تأتي من هناك.

SSedaعضو جديد
المسمى الوظيفي
معلم · عمل جانبي
نوع المنظمة
تعاونية
تاريخ الانضمام
أكتوبر 2024
رسالة
42
#19

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

إذا قمت بتوبيخ الإنذارات الكاذبة، فلن يقوم أحد بالإبلاغ مرة أخرى. هذه وجهة نظري، ولا أدعي أنها الحقيقة المطلقة.

UUğur K***خبيرعضو المجتمع
تاريخ الانضمام
مارس 2023
رسالة
44
#20

لا تتجاهل شيئاً: معظم إضاعة الوقت تتراكم في المهام المنتظرة للموافقة.

ابدأ بتجربة صغيرة، لا تربط كل شيء دفعة واحدة... على كل حال بالتوفيق.

اكتب رداً