صفحه اول > مقالات

 

امنیت در تولید نرم افزارها

 

Wi-Fi مشکلات امنیتی دارد. همچنین Microsoft Outlook! لینوکس، تلفن های هوشمند، مرورگر موزیلا و بسیاری چیزهای دیگر، اما عامل مشترک میان آنها چیست؟

نرم افزار.

نرم افزار مسائل امنیتی دارد و  وصله های امنیتی و فایروال هایی که ما شیفته  آنها هستیم، راه حلی برای به روز نگهداشتن امنیت نرم افزارها ندارند.

امروزه، در حال تولید میزان انبوهی از نرم افزارها هستیم و سیستم های محاسباتی و شبکه های خود را پیچیده تر می کنیم. اما متاسفانه در همین زمان، توانایی بستن شکاف های امنیتی اندکی هم پیشرفت نداشته است. بسادگی مشخص است که باید در روش های تولید و توسعه نرم افزار چندین تغییر اساسی ایجاد کنیم و این روند را بهبود بخشیم.

 

 

 

اینجا، جایی است که امنیت نرم افزار مطرح می شود. امنیت نرم افزار یک نظام جوان است که خصوصیات امنیتی نرم افزار را هنگامی که در حال طراحی، آزمایش، پیاده سازی و بکارگیری است، مورد خطاب قرار می دهد. یعنی در دوره زمانی تولید نرم افزار یا Software Development Life Cycle (SDLC). این شامل فعالیت های امنیتی زیادی در مراحل مختلف در SDLC، مانند مدل کردن تهدید، مدیریت خطر و آزمایش های امنیتی است.

یک عامل مهم که که به شکلی این مسئله را بغرنج تر می کند این واقعیت است که تولیدکنندگان نرم افزار و گروه های امنیت IT تمایل دارند که کاملاً مستقل از یکدیگر  بر اولویت های خویش تمرکز کنند. تولید نرم افزار عموماً تلاشش را روی مسائلی چون کارایی و کارامدی نرم افزار، هزینه و غیره متمرکز می کند. و البته مطمئناً اینها عناوین مهمی هستند.

از طرف دیگر، تیم های امنیت IT معمولاً امنیت یک برنامه را بعد از اینکه نوشته شد، مورد توجه قرار می دهند. آنها بدنبال روش هایی برای مجزا کردن نرم افزار با ابزار تکنولوژی مانند فایروال ها، شبکه های خصوصی مجازی و غیره هستند ــ رویکردی که انجمن امنیت نرم افزار عموماً آن را امنیت نرم افزار می نامد.

مشاهده می کنید که این نوع رویکرد امنیت نرم افزار تمایل دارد که غالباً واکنشی باشد، بدون اینکه بطور کافی علل ریشه ای مشکلات را مورد توجه قرار دهد. همین نوع برخورد است که باعث وضعیت جاری است، و تا حد زیادی مسوول مسائل امنیتی است که امروزه در مراکز دیتای خود با آن مواجه هستیم.

اگر شما به روند SDLC  از نظر زمانی نگاهی بیندازید، پی خواهید برد که تولیدکنندگان نرم افزار عموماً در طرف چپ نمودار و اعضای امنیت IT در طرف راست و با همپوشانی بسیاری کمی قرار دارند. کسانی که شانس بودن در دو طرف نمودار را داشته اند معتقدند که می توان برای بهبود وضعیت، کارهای زیادی انجام داد بشرطی که بین دو طرف تا حدی اشتراک منابع انجام گیرد.

 

 

 

در اینجا چندین پیشنهاد که برای بهبود امنیت نرم افزارها، از اولین مراحل ممکن، می توانیم انجام دهیم، آورده شده است:

·   -تولید کنندگان نیاز دارند که تیم امنیت IT خود را تا جایی که امکان دارد از اولین مراحل طراحی، درگیر کنند. هنگامی که شما سعی خود را می کنید تا در مورد ساخت چیزی تصمیم بگیرید، اندیشیدن در مورد نحوه سوءاستفاده یا تخریب آن آسان نیست. شما مجبورید مانند یک شخص امنیتی فکر کنید. خوب، اعضای تیم امنیت IT شما، فعالیت حرفه ای خود را برروی مطالعه نحوه تخریب چیزها سپری کرده اند، و می توانند به شما کمک کنند تا بفهمید نرم افزار شما با چه نوع حملاتی ممکن است مواجه شود.

·   - مشابهاً، به اعضای تیم امنیت اجازه دهید در طراحی تست های امنیتی به شما کمک کنند. و در اینجا (فقط) منظور یک تست نفوذ یک هفته قبل از بکارگرفتن نرم افزار نیست! منظور انجام تمام تست های بسیار جدی است که شما در مورد نرم افزارها انجام می دهید.

·   - به تاکتیک هایی که تیم عملیات می تواند برای افزایش امنیت نرم افزار شما بکارگیرد، توجه کنید. برای مثال، آیا فایل ها، کتابخانه های اشتراکی (مثلا فایلهای .DLL در ویندوز) یا اجزاء دیگری که کاملاً برای امنیت نرم افزار شما مهم هستند، وجود دارند؟ تیم عملیات لزوماً نخواهد دانست که آنها چه هستند مگر اینکه شما به ایشان بگویید. این تیم با دانستن اینکه قسمت های باارزش و حیاتی نرم افزار شما کجا قرار دارند، می توانند کنترل دسترسی به فایل، ثبت وقایع (شامل تشخیص نفوذ) را تضمین کنند و همچنین هنگامی که قسمتی دچار انحراف می شود به افراد ذیصلاح اطلاع داده می شود.

·   - اعضاء تیم امنیت IT باید در مورد روندهای ایجاد و توسعه نرم افزار سازمان شما، بیاموزند. آنها باید بتوانند بطور هوشمندانه ای با تیم تولید نرم افزار گفتگو کنند.

· --زمانی برای مطالعه امنیت نرم افزار صرف کنید و ببینید چه نقاط تماس امنیتی می توانید در دوره زمانی تولید نرم افزار بگنجانید تا بتوانید از ابتدا تا انتهای این روند با امنیت در ارتباط باشید.

 

 بیشتر آنچه گفته می شود، اساساً مربوط به سازمانهایی است که نرم افزارهای تجاری را ایجاد می کنند. امنیت نرم افزار، همانطور که گفته شد، هنوز در مراحل خردسالی قرار دارد. قصد نداریم که به نتایج شگفت انگیزی در طول یک شب برسیم. بهرحال، تجربیات افراد خبره که با سازمان های تولید نرم افزار سروکار داشته اند، نشان می دهد که از دو ناحیه می توان بیشترین استفاده را در امنیت نرم افزار برد؛ مدل کردن تهدید و تستهای امنیتی بسیار سخت.

اینها در دسترس ترین قسمت ها برای سرمایه گذاری هستند تا بتوانیم بیشترین بهبود را حاصل کنیم.