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

 

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

 

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

نرم افزار.

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

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

 

 

 

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

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

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

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

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

 

 

 

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

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

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

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

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

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

 

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

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