امنیتOWASPافتانرمافزار سازمانی
امنیتِ نرمافزارِ سازمانی: چکلیستِ عملی بر پایهٔ OWASP و افتا
تیم اپوآپ۷ دقیقه مطالعه
امنیت را نمیشود در پایانِ پروژه «اضافه» کرد. در نرمافزارِ سازمانی که با دادهٔ واقعیِ کاربر و کسبوکار سروکار دارد، امنیت باید از روزِ اولِ طراحی بخشی از تصمیمها باشد. این نوشته یک چکلیستِ عملی بر پایهٔ OWASP و استانداردهای افتا ارائه میدهد.
اصلِ اول: اعتماد نکن، اعتبارسنجی کن
هر ورودی از سمتِ کاربر بالقوه خطرناک است. اعتبارسنجیِ سمتِ سرور (نه فقط سمتِ کلاینت) خطِ دفاعیِ اصلی است.
- اعتبارسنجیِ همهٔ ورودیها در سمتِ سرور.
- استفاده از کوئریِ پارامتری برای جلوگیری از تزریقِ SQL.
- کدگذاریِ خروجی برای جلوگیری از XSS.
- محدودسازیِ نرخ (rate limiting) روی اندپوینتهای حساس و فرمها.
احراز هویت و کنترلِ دسترسی
بسیاری از رخنهها از کنترلِ دسترسیِ ناقص میآیند، نه از رمزِ ضعیف.
- کنترلِ دسترسی را در سمتِ سرور و روی هر درخواست بررسی کنید، نه فقط در رابطِ کاربری.
- اصلِ کمترین دسترسی: هر نقش فقط به آنچه لازم دارد دسترسی داشته باشد.
- رمزها را با الگوریتمهای قوی هش کنید؛ هرگز متنِ ساده ذخیره نکنید.
- نشستها را امن مدیریت کنید و منقضیشدن را جدی بگیرید.
داده در حالِ انتقال و در حالِ سکون
ارتباطات را با TLS رمزنگاری کنید و دادههای حساس را در پایگاهداده نیز رمزنگاری یا دستِکم محافظت کنید. یک اشتباهِ رایج این است که داده فقط در مسیر محافظت شود اما در پایگاهداده بیدفاع بماند.
پیکربندی و نگهداری
- پیکربندیِ امن بهصورتِ پیشفرض؛ قابلیتهای غیرلازم را خاموش کنید.
- بهروزرسانیِ منظمِ وابستگیها برای بستنِ آسیبپذیریهای شناختهشده.
- ثبتِ رویداد (logging) و پایش برای کشفِ رفتارِ مشکوک.
- ممیزیِ امنیتیِ دورهای و آزمونِ نفوذ.
امنیت یک ویژگی نیست که یکبار اضافه شود؛ یک انضباطِ مستمر در طولِ عمرِ نرمافزار است.
در اپوآپ، این چکلیست بخشی از فرایندِ توسعه و استقرارِ ماست، نه یک مرحلهٔ جداگانه در پایانِ کار.