وقتی صحبت از Code Review (مرور سورس کد) بهمیان میآید، شکی نیست که تیم توسعهدهندهٔ شما کار خود را به خوبی انجام میدهد تا از عملکرد و کارایی کدها اطمینان حاصل کند؛ ولی با افزایش خطرات امنیتی نرمافزاری در دنیای امروز، امری حیاتی است تا تیم شما مسالهٔ امنیت را به اندازهٔ عملکرد جدی بگیرد. با مطالعهٔ این مقاله و یادگیری این ۵ گام، میتوانید کدهای خود را به نحو موثری از لحاظ امنیتی بازبینی کنید.
۱. مشخصسازی اهداف بازبینی کدها
با لیست کردن اهداف، میتوانید تمرکز بیشتری روی بازبینی کدها داشته باشید که همین باعث میشود تا باگها و نقاط ضعف را بهتر و دقیق تر پیدا کنید. قبل شروع Code Review، بهتر است تا با انواع باگهای ممکن آشنایی کامل داشته باشید. اگر از آغاز کار با شکل و شمایل باگها آشنا باشید (برای مثال الگوهایی که به شما در یافتن کدهای مخرب کمک میکنند)، پیدا کردن آنها بسیار راحتتر خواهد شد.
نکتهٔ دیگر این است که در بازبینی باید تمام تمرکز خود را روی مشکلات امنیتی گذاشته و تست عملکرد و کارایی را جداگانه و در زمانی دیگر انجام دهید! باید به یاد داشته باشید که هرچه کار شما بیشتر باشد، تمرکز کمتری روی بخشهای مختلف آن خواهید داشت؛ در بازبینی کدها نیز هرچه دنبال مشکلات متعدد باشید، احتمال پیدا کردن آنها کمتر میشود.
۲. انجام یک اسکن برای تجزیه و تحلیل
استفاده از ابزار مناسب در بررسی کدها، امری حیاتی است. یک ابزار تجزیه و تحلیل معمولی میتواند به طور خودکار با یک سری قوانین از پیش تعیین شده، به انطباق دادن کد شما بپردازد. پس یک اسکن برای تجزیه و تحلیل، راهی کارآمد برای پیدا کردن نقصها و کمبودهای سورس کد است که میتواند امنیت نرمافزار را تهدید کنند.
برای بازبینی اولیه، استفاده از این ابزار اسکن، اشکالات ساده را به شما نشان میدهد. بعد از این مرحله، نوبت به بازبینی دستی از کدهای شما میرسد تا باگهای پیچیدهتر خودشان را نشان دهند.
۳. گشتن دنبال باگهای متداول
برای ادامهٔ بازبینی، جستوجوی خود را برای باگهای عادی و مرسوم آغاز کنید. لیست OWASP Top 10 به آشنایی شما با برخی از باگها، خطرات امنیتی برنامههای تحت وب و راهنمایی در مورد چگونگی جلوگیری و یا رفع آسیبپذیریهای متداول کمک میکند.
با در ذهن نگه داشتن لیست OWASP، نقطهٔ شروعی برای توسعه دهندگان ایجاد میشود تا راحتتر به دنبال نقاط ضعف احتمالی بگردند. با هدایت گرفتن از OWASP، سازمان شما به یک چهارچوب ساده و اولویتبندی شده مجهز میشود که از راهیابی نقصها به مراحل بعدی جلوگیری میکند.
۴. گشتن دنبال باگهای اختصاصی اپلیکیشن
تصمیمات شما دربارهٔ شیوههای توسعهٔ اپلیکیشنتان میتواند عامل ایجاد برخی نقاط ضعف در بخشهای زبان، ساختار و پلتفرمها شود؛ پس بهتر است تا در کنار آشنایی با باگهای متداول، اطمینان حاصل کنید که تیم شما شناخت درستی از مشکلات تخصصیتر در زمینههای زبان و ساختار داشته باشد.
قاعدتا این تهدیدهای احتمالی باید پیش از این شناسایی شده باشند و تیم توسعهدهنده آنها را تا حد ممکن کاهش دادهاند ولی باز هم کار از محکمکاری عیب نمیکند.
۵. فعالیت های پس از بازبینی: اولویتبندی، درست کردن، یادگیری
زمانی که بازبینی کدهای خود را به اتمام رساندید، باید نقاط ضعف پیدا شده را بر اساس شدت، دستهبندی کنید تا مشکلات بزرگتر زودتر از بقیه حل شوند؛ سپس میتوانید به رفع این مشکلات بپردازید تا تیم شما از این اشکالات پیشآمده درس گرفته تا دوباره آنها در نوشتن کدهای بعدی را تکرار نکنند
۱. مشخصسازی اهداف بازبینی کدها
با لیست کردن اهداف، میتوانید تمرکز بیشتری روی بازبینی کدها داشته باشید که همین باعث میشود تا باگها و نقاط ضعف را بهتر و دقیق تر پیدا کنید. قبل شروع Code Review، بهتر است تا با انواع باگهای ممکن آشنایی کامل داشته باشید. اگر از آغاز کار با شکل و شمایل باگها آشنا باشید (برای مثال الگوهایی که به شما در یافتن کدهای مخرب کمک میکنند)، پیدا کردن آنها بسیار راحتتر خواهد شد.
نکتهٔ دیگر این است که در بازبینی باید تمام تمرکز خود را روی مشکلات امنیتی گذاشته و تست عملکرد و کارایی را جداگانه و در زمانی دیگر انجام دهید! باید به یاد داشته باشید که هرچه کار شما بیشتر باشد، تمرکز کمتری روی بخشهای مختلف آن خواهید داشت؛ در بازبینی کدها نیز هرچه دنبال مشکلات متعدد باشید، احتمال پیدا کردن آنها کمتر میشود.
۲. انجام یک اسکن برای تجزیه و تحلیل
استفاده از ابزار مناسب در بررسی کدها، امری حیاتی است. یک ابزار تجزیه و تحلیل معمولی میتواند به طور خودکار با یک سری قوانین از پیش تعیین شده، به انطباق دادن کد شما بپردازد. پس یک اسکن برای تجزیه و تحلیل، راهی کارآمد برای پیدا کردن نقصها و کمبودهای سورس کد است که میتواند امنیت نرمافزار را تهدید کنند.
برای بازبینی اولیه، استفاده از این ابزار اسکن، اشکالات ساده را به شما نشان میدهد. بعد از این مرحله، نوبت به بازبینی دستی از کدهای شما میرسد تا باگهای پیچیدهتر خودشان را نشان دهند.
۳. گشتن دنبال باگهای متداول
برای ادامهٔ بازبینی، جستوجوی خود را برای باگهای عادی و مرسوم آغاز کنید. لیست OWASP Top 10 به آشنایی شما با برخی از باگها، خطرات امنیتی برنامههای تحت وب و راهنمایی در مورد چگونگی جلوگیری و یا رفع آسیبپذیریهای متداول کمک میکند.
با در ذهن نگه داشتن لیست OWASP، نقطهٔ شروعی برای توسعه دهندگان ایجاد میشود تا راحتتر به دنبال نقاط ضعف احتمالی بگردند. با هدایت گرفتن از OWASP، سازمان شما به یک چهارچوب ساده و اولویتبندی شده مجهز میشود که از راهیابی نقصها به مراحل بعدی جلوگیری میکند.
۴. گشتن دنبال باگهای اختصاصی اپلیکیشن
تصمیمات شما دربارهٔ شیوههای توسعهٔ اپلیکیشنتان میتواند عامل ایجاد برخی نقاط ضعف در بخشهای زبان، ساختار و پلتفرمها شود؛ پس بهتر است تا در کنار آشنایی با باگهای متداول، اطمینان حاصل کنید که تیم شما شناخت درستی از مشکلات تخصصیتر در زمینههای زبان و ساختار داشته باشد.
قاعدتا این تهدیدهای احتمالی باید پیش از این شناسایی شده باشند و تیم توسعهدهنده آنها را تا حد ممکن کاهش دادهاند ولی باز هم کار از محکمکاری عیب نمیکند.
۵. فعالیت های پس از بازبینی: اولویتبندی، درست کردن، یادگیری
زمانی که بازبینی کدهای خود را به اتمام رساندید، باید نقاط ضعف پیدا شده را بر اساس شدت، دستهبندی کنید تا مشکلات بزرگتر زودتر از بقیه حل شوند؛ سپس میتوانید به رفع این مشکلات بپردازید تا تیم شما از این اشکالات پیشآمده درس گرفته تا دوباره آنها در نوشتن کدهای بعدی را تکرار نکنند