شما تحت عنوان یک توسعه و گسترشدهنده در طراحی اپلیکیشن خط مقدم دفاع در قبال افشای دادهها قرار دارید. بدین ترتیب می بایست بدانید که درپی چه میباشید و مسئولیت رعایت مقررات مطلوب از سوی یوزرها بر عهده شما میباشد. خوشبختانه یک سازمان وجود مخفی کردن
1. تزریق
2. درز داده ها احراز نام و نشان
3. افشای دادههای حساس
4. ماهیتهای اکسترنال XML
5. از عمل افتادن در دست گرفتن دسترسی
6. ریزپیکربندی امنیتی
7. اسکریپتنویسی دربین سایتی (XSS)
8. سریالزدایی غیر امن
9. استعمال از کامپوننتهای با جراحتپذیریهای شناخته گردیده
10. لاگ و ارزیابی ناکافی
11. صحبت نهایی
«پروژه گشوده امنیت اینترنتاپها» که به اختصار OWASP نامیده میگردد یک سازمان غیرانتفاعی میباشد که به خواسته ارتقای امنیت در اینترنت تأسیس شدهاست. این سازمان غیرانتفاعی پژوهشهای متعددی در زمینهی تهدید ها و زخمهایی که در قبال اپهای امروزی وجود داراست، انجام داده میباشد.
مبنی بر حیث کارشناسان به کارگیری از 10 سفارش اصلی OWASP احتمالاً مؤثرترین قدم در مورد تغییر و تحول فرهنگ و تمدن بسط نرم افزار باطن سازمان به سمت ساختوساز کدهای با امنیت فراتر به حساب می آید.
رعایت پیشنهادهای OWASP یک استاندارد اساسی برای امنیت محسوب میشود. چنانچه یک بسطدهنده اینترنت میباشید، می بایست دربارهی OWASP اطلاع داشته و پیشنهادهای برتر آنان را شعور فرمایید. درین نوشته ی علمی با مهمترین خطراتی که اینترنتنرم افزارها را تهدید مینمایند آشنا خواهیم شد.
تزریق
اینترنتوب سایتها بایستی دادههایی را از سوی یوزرها اخذ نمایند، زیرا در غیر این شکل بهره چندانی نخواهند داشت. با این حالا قبل از آن که کاری روی این اعطا کرده انجام دهید، از جملهً قبل از آراستهسازی، اجرای کد روی دادهها و یا این که گشتن درپی چیزی، بایستی مطمئن گردید که دادهها تمیز میباشند و کاراکترهای خاص escape گردیدهاند.
در شرایطی که این عمل را انجام ندهید، حملهکنندگان می توانند به طور بالقوه کد متبوع خویش را روی سرورهای شما اجرا نمایند. شایسته ترین طریق برای دوری از بروز تزریق، به کار گیری از کتابخانهای میباشد که دادههای ورودی مخاطب را هر توشه و به محض این که دادهها به سرور میرسند، تمیزسازی مینماید. هر گویش نرمافزارنویسی برای اینترنت، ابزارها و کتابخانههای خاصی برای اجرای این تمیزسازی ورودیها ارائه نموده است.
این اول ریسک امنیتی میباشد، چون اقتدار متعددی داراست و به مهاجم قابلیت و امکان میدهد که کد دلخواه خویش را اجرا نماید. همینطور علیرغم این که ده سالها میباشد شناخته شدهاست، همچنان یک ایراد شایع به حساب می آید.
درز داده ها احراز نامونشان
وقتی که یک مهاجم بتواند تحت عنوان شخص دیگری وارد سیستم گردد، واضح میباشد با یک اختلال مواجه میشویم. این دسته از ریسکها مشتمل بر مسائل بالقوه متعددی میباشد:
ذخیرهسازی رمزهای عبور به طور «متن بی آلایش» (plaintext) در مقر داده که هیچ گاه (مسلماً هیچ زمان) نباید انجام گیرد، موجب می شود که مقر داده به مخاطره بیفتد.
ذخیره توکنهای سِشِن (session) در جای های ناامن به مهاجمان قابلیت می دهد که از این توکن برای خریداری کردن داده ها احراز نام و نشان به کارگیری نمایند.
تولید قابلیت و امکان گزینش رمزهای عبور معمولی یا این که ضعیف برای یوزرها موجب می گردد که مهاجمان بتوانند آنهارا به آسانی حدس بزنند.
عدم گزینش تاریخ انقضا برای توکنهای سشن یا این که API بهاین مفهوم میباشد که یک توکن، فقط کافی میباشد یک توشه درز نماید تا مهاجم برای مدام بتواند از آن سوءاستفاده نماید.
ارسال داده ها متعدد و قابل شناسایی بر مبنای درخواستهای ناموفق یک فعالیت مخاطرهآمیز میباشد. برای مثال این که در جواب یک مبادرت به لاگین ناموفق پیامی با مضمون «چنین اسم کاربری نیست» اکران دهید، بهاین مفهوم میباشد که مهاجم میتواند این گزینه را از فهرست حدسهای خویش کنار بگذارد و سریعخیس در پی یک اسم کاربری مو جود بگردد که جواب متفاوتی رجوع و برگشت می دهد. درین مورد ها بهتر میباشد پیام «داده ها نامعتبر» (Invalid credentials) را اکران دهید.
طرزهای فوق از بروز برخی از اشتباهات مربوط به داده ها احراز نامونشان دوری مینمایند. بر طبق گزارش OWASP اجرای اقدامات تحت در این مورد موءثر خواهد بود:
هر جا که ممکن میباشد از «احراز نام و نشان چندین عاملی» (multi-factor authentication) استعمال فرمایید تا از بروز حملههای رباتی، جعل داده ها هویتی، «حملههای کور» (brute force) و به کارگیری دوباره از احراز نامونشان سرقتی پرهیز فرمائید.
در طول توزیع قابل انعطافافزارها از اطلاعت احراز نام و نشان پیشفرض به خصوص برای یوزرها admin دوری کنید.
ضعیف بودن رمزهای عبور به عنوان مثالً اعتبارسنجی رمزهای عبور نو یا این که تغییر تحول یافته را در قبال لیستی از 10،000 رمزعبور بد آنالیز کرده و الزام به استعمال از حداقل 8 کاراکتر را در سر عبور داشته باشید.
از وجود استحکامات امنیتی در نصیبهای نام نویسی، بازیابی داده ها احراز نام و نشان و مسیرهای API در قبال حملههای شمارش حساب و با منفعتگیری از پیامهای خروجی مطمئن گردید.
همتهای ورود ناموفق را محدود کرده و یا این که تأخیر آن را ارتقاء دهید. همگی موردها ناکامی را لاگ کرده و در مواقعی تثبیت داده ها احراز نام و نشان، حملههای کور یا این که دیگر اشکال حمله را شناسایی کردید، به مدیران اطلاع دهید.
از یک ابزار رئیس سشن سمت سرور، امن و داخلی به کار گیری فرمایید که یک ID سشن تصادفی نو با آنتروپی بالا بعد از لاگین تولید مینماید. ID-های سشن نباید در URL باشند و بایستی به طور امنی ذخیره شوند و بعداز خروج استفاده کننده از اکانت، یا این که بدون شغل ماندن و انقضای وقتی اعتبار خویش را از دست بدهند.
افشای دادههای حساس
در حین سالهای اخیر، این نوع حمله، رایجترین مورد بوده میباشد. کلیه چیز رفتهرفته پیچیدهخیس میگردد، چون مهاجمان می توانند از اشکال مختلفی از سناریوهای «شخص میانی» (man-in-the middle) برای سرقت دادههایی به کار گیری نمایند که در اکنون عبور روی کانال میباشند و یا این که فعلاً به طور «متن بی آلایش» ذخیره گردیدهاند.
این مهاجمان می توانند انواع مختلفی داشته باشند، البته طرزهای رایج حمله برای سرقت داده ها به طور پایین می باشند:
داونگرید کردن اتصال از HTTPS به HTTP برای رمزگشایی دادهها در طول ارسال.
کرک کردن طرح یک رمز گذاری ضعیف که برای ذخیره با انتقال دادهها آیتم استعمال قرار می گیرد.
پیش-هشسازی رمزهای عبور رایج با به کارگیری از طرحهای کد گذاری بی آلایش و فارغ از salt و آنگاه تطابق دادن آنان با جداول کاربری به سرقت رفته.
به کار گیری از تزریق SQL برای این که موتور مقر داده، دادهها را به طور متن معمولی واکشی نماید که کدگذاری نشدهاند.
برای پرهیز از بروز این ایرادات بایستی اقدامات پایین را انجام دهید:
همگی دادههای حساس بایستی با یک الگوریتم کد گذاری امروزی کد گذاری شوند.
در حالتیکه ضرورتی مطلق برای ذخیرهسازی برخی دادهها نیست، آنهارا تمیز فرمائید. در حالتیکه شما چیزی را ذخیره نکنید، سارقان نیز نمیتوانند آن را بدزدند.
رمزهای عبور را با به کار گیری از تابعهای هشسازی قادر تطبیقی و دارنده salt یا این که یک استدلال کاری (دلیل تأخیر) مانند Argon2، scrypt، bcrypt یا این که PBKDF2 کدگذاری نمائید.
مطمئن گردید که کوکیهای سشن و دیگر دادههای حساس مرورگر فقط روی HTTPS ارسال می شوند و جاوا اسکریپت سمت کلاینت به آنان دسترسی ندارد.
ماهیتهای اکسترنال XML
حملههای XEE به مهاجم قابلیت میدهند که کد شما در هنگامی که یک پوشه XML را به اپ آپلود می کنید، به طور یک URL نظارت نماید.
این نوع از حملهها به صورت خاص شایع میباشند و روی اپهای دیرین با تعلقهایی که بهروز نشدهاند و در قبال حملههای XEE حفظ نمی شوند چیره خواهند بود. معمولیترین طرز برای دوری از بروز این نوع حمله آن میباشد که از XML استعمال نکنید. به مکان آن یک فرمت داده صریحخیس مانند JSON یا این که YAML را گزینه استعمال قرار دهید.
درحالتی که ناچار به به کار گیری از XML میباشید، مطمئن گردید که parser-ها، پردازشگرها و تعلقها بهروز میباشند. ابزارهای نظارت سورس کد به شناسایی خطاها در اپهای جان دار یاری مینمایند.
شما تحت عنوان یک توسعه و گسترشدهنده در طراحی اپلیکیشن خط مقدم دفاع در قبال افشای دادهها قرار دارید. بدین ترتیب می بایست بدانید که درپی چه میباشید و مسئولیت رعایت مقررات مطلوب از سوی یوزرها بر عهده شما میباشد. خوشبختانه یک سازمان وجود مخفی کردن
1. تزریق
2. درز داده ها احراز نام و نشان
3. افشای دادههای حساس
4. ماهیتهای اکسترنال XML
5. از عمل افتادن در دست گرفتن دسترسی
6. ریزپیکربندی امنیتی
7. اسکریپتنویسی دربین سایتی (XSS)
8. سریالزدایی غیر امن
9. استعمال از کامپوننتهای با جراحتپذیریهای شناخته گردیده
10. لاگ و ارزیابی ناکافی
11. صحبت نهایی
«پروژه گشوده امنیت اینترنتاپها» که به اختصار OWASP نامیده میگردد یک سازمان غیرانتفاعی میباشد که به خواسته ارتقای امنیت در اینترنت تأسیس شدهاست. این سازمان غیرانتفاعی پژوهشهای متعددی در زمینهی تهدید ها و زخمهایی که در قبال اپهای امروزی وجود داراست، انجام داده میباشد.
مبنی بر حیث کارشناسان به کارگیری از 10 سفارش اصلی OWASP احتمالاً مؤثرترین قدم در مورد تغییر و تحول فرهنگ و تمدن بسط نرم افزار باطن سازمان به سمت ساختوساز کدهای با امنیت فراتر به حساب می آید.
رعایت پیشنهادهای OWASP یک استاندارد اساسی برای امنیت محسوب میشود. چنانچه یک بسطدهنده اینترنت میباشید، می بایست دربارهی OWASP اطلاع داشته و پیشنهادهای برتر آنان را شعور فرمایید. درین نوشته ی علمی با مهمترین خطراتی که اینترنتنرم افزارها را تهدید مینمایند آشنا خواهیم شد.
تزریق
اینترنتوب سایتها بایستی دادههایی را از سوی یوزرها اخذ نمایند، زیرا در غیر این شکل بهره چندانی نخواهند داشت. با این حالا قبل از آن که کاری روی این اعطا کرده انجام دهید، از جملهً قبل از آراستهسازی، اجرای کد روی دادهها و یا این که گشتن درپی چیزی، بایستی مطمئن گردید که دادهها تمیز میباشند و کاراکترهای خاص escape گردیدهاند.
در شرایطی که این عمل را انجام ندهید، حملهکنندگان می توانند به طور بالقوه کد متبوع خویش را روی سرورهای شما اجرا نمایند. شایسته ترین طریق برای دوری از بروز تزریق، به کار گیری از کتابخانهای میباشد که دادههای ورودی مخاطب را هر توشه و به محض این که دادهها به سرور میرسند، تمیزسازی مینماید. هر گویش نرمافزارنویسی برای اینترنت، ابزارها و کتابخانههای خاصی برای اجرای این تمیزسازی ورودیها ارائه نموده است.
این اول ریسک امنیتی میباشد، چون اقتدار متعددی داراست و به مهاجم قابلیت و امکان میدهد که کد دلخواه خویش را اجرا نماید. همینطور علیرغم این که ده سالها میباشد شناخته شدهاست، همچنان یک ایراد شایع به حساب می آید.
درز داده ها احراز نامونشان
وقتی که یک مهاجم بتواند تحت عنوان شخص دیگری وارد سیستم گردد، واضح میباشد با یک اختلال مواجه میشویم. این دسته از ریسکها مشتمل بر مسائل بالقوه متعددی میباشد:
ذخیرهسازی رمزهای عبور به طور «متن بی آلایش» (plaintext) در مقر داده که هیچ گاه (مسلماً هیچ زمان) نباید انجام گیرد، موجب می شود که مقر داده به مخاطره بیفتد.
ذخیره توکنهای سِشِن (session) در جای های ناامن به مهاجمان قابلیت می دهد که از این توکن برای خریداری کردن داده ها احراز نام و نشان به کارگیری نمایند.
تولید قابلیت و امکان گزینش رمزهای عبور معمولی یا این که ضعیف برای یوزرها موجب می گردد که مهاجمان بتوانند آنهارا به آسانی حدس بزنند.
عدم گزینش تاریخ انقضا برای توکنهای سشن یا این که API بهاین مفهوم میباشد که یک توکن، فقط کافی میباشد یک توشه درز نماید تا مهاجم برای مدام بتواند از آن سوءاستفاده نماید.
ارسال داده ها متعدد و قابل شناسایی بر مبنای درخواستهای ناموفق یک فعالیت مخاطرهآمیز میباشد. برای مثال این که در جواب یک مبادرت به لاگین ناموفق پیامی با مضمون «چنین اسم کاربری نیست» اکران دهید، بهاین مفهوم میباشد که مهاجم میتواند این گزینه را از فهرست حدسهای خویش کنار بگذارد و سریعخیس در پی یک اسم کاربری مو جود بگردد که جواب متفاوتی رجوع و برگشت می دهد. درین مورد ها بهتر میباشد پیام «داده ها نامعتبر» (Invalid credentials) را اکران دهید.
طرزهای فوق از بروز برخی از اشتباهات مربوط به داده ها احراز نامونشان دوری مینمایند. بر طبق گزارش OWASP اجرای اقدامات تحت در این مورد موءثر خواهد بود:
هر جا که ممکن میباشد از «احراز نام و نشان چندین عاملی» (multi-factor authentication) استعمال فرمایید تا از بروز حملههای رباتی، جعل داده ها هویتی، «حملههای کور» (brute force) و به کارگیری دوباره از احراز نامونشان سرقتی پرهیز فرمائید.
در طول توزیع قابل انعطافافزارها از اطلاعت احراز نام و نشان پیشفرض به خصوص برای یوزرها admin دوری کنید.
ضعیف بودن رمزهای عبور به عنوان مثالً اعتبارسنجی رمزهای عبور نو یا این که تغییر تحول یافته را در قبال لیستی از 10،000 رمزعبور بد آنالیز کرده و الزام به استعمال از حداقل 8 کاراکتر را در سر عبور داشته باشید.
از وجود استحکامات امنیتی در نصیبهای نام نویسی، بازیابی داده ها احراز نام و نشان و مسیرهای API در قبال حملههای شمارش حساب و با منفعتگیری از پیامهای خروجی مطمئن گردید.
همتهای ورود ناموفق را محدود کرده و یا این که تأخیر آن را ارتقاء دهید. همگی موردها ناکامی را لاگ کرده و در مواقعی تثبیت داده ها احراز نام و نشان، حملههای کور یا این که دیگر اشکال حمله را شناسایی کردید، به مدیران اطلاع دهید.
از یک ابزار رئیس سشن سمت سرور، امن و داخلی به کار گیری فرمایید که یک ID سشن تصادفی نو با آنتروپی بالا بعد از لاگین تولید مینماید. ID-های سشن نباید در URL باشند و بایستی به طور امنی ذخیره شوند و بعداز خروج استفاده کننده از اکانت، یا این که بدون شغل ماندن و انقضای وقتی اعتبار خویش را از دست بدهند.
افشای دادههای حساس
در حین سالهای اخیر، این نوع حمله، رایجترین مورد بوده میباشد. کلیه چیز رفتهرفته پیچیدهخیس میگردد، چون مهاجمان می توانند از اشکال مختلفی از سناریوهای «شخص میانی» (man-in-the middle) برای سرقت دادههایی به کار گیری نمایند که در اکنون عبور روی کانال میباشند و یا این که فعلاً به طور «متن بی آلایش» ذخیره گردیدهاند.
این مهاجمان می توانند انواع مختلفی داشته باشند، البته طرزهای رایج حمله برای سرقت داده ها به طور پایین می باشند:
داونگرید کردن اتصال از HTTPS به HTTP برای رمزگشایی دادهها در طول ارسال.
کرک کردن طرح یک رمز گذاری ضعیف که برای ذخیره با انتقال دادهها آیتم استعمال قرار می گیرد.
پیش-هشسازی رمزهای عبور رایج با به کارگیری از طرحهای کد گذاری بی آلایش و فارغ از salt و آنگاه تطابق دادن آنان با جداول کاربری به سرقت رفته.
به کار گیری از تزریق SQL برای این که موتور مقر داده، دادهها را به طور متن معمولی واکشی نماید که کدگذاری نشدهاند.
برای پرهیز از بروز این ایرادات بایستی اقدامات پایین را انجام دهید:
همگی دادههای حساس بایستی با یک الگوریتم کد گذاری امروزی کد گذاری شوند.
در حالتیکه ضرورتی مطلق برای ذخیرهسازی برخی دادهها نیست، آنهارا تمیز فرمائید. در حالتیکه شما چیزی را ذخیره نکنید، سارقان نیز نمیتوانند آن را بدزدند.
رمزهای عبور را با به کار گیری از تابعهای هشسازی قادر تطبیقی و دارنده salt یا این که یک استدلال کاری (دلیل تأخیر) مانند Argon2، scrypt، bcrypt یا این که PBKDF2 کدگذاری نمائید.
مطمئن گردید که کوکیهای سشن و دیگر دادههای حساس مرورگر فقط روی HTTPS ارسال می شوند و جاوا اسکریپت سمت کلاینت به آنان دسترسی ندارد.
ماهیتهای اکسترنال XML
حملههای XEE به مهاجم قابلیت میدهند که کد شما در هنگامی که یک پوشه XML را به اپ آپلود می کنید، به طور یک URL نظارت نماید.
این نوع از حملهها به صورت خاص شایع میباشند و روی اپهای دیرین با تعلقهایی که بهروز نشدهاند و در قبال حملههای XEE حفظ نمی شوند چیره خواهند بود. معمولیترین طرز برای دوری از بروز این نوع حمله آن میباشد که از XML استعمال نکنید. به مکان آن یک فرمت داده صریحخیس مانند JSON یا این که YAML را گزینه استعمال قرار دهید.
درحالتی که ناچار به به کار گیری از XML میباشید، مطمئن گردید که parser-ها، پردازشگرها و تعلقها بهروز میباشند. ابزارهای نظارت سورس کد به شناسایی خطاها در اپهای جان دار یاری مینمایند.