امنیت در تولید نرم افزارها
Loading
نمایش نتایج: از 1 به 2 از 2

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

  1. #1
    مهرداد تاجيك - مدير سایت Array admin آواتار ها
    تاریخ عضویت
    Thursday 30 June 2005
    محل سکونت
    تهران - ایران
    نوشته ها
    1,818
    Thanks
    22
    Thanked 47 Times in 42 Posts

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




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


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


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

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

    منبع : itcert.com

پاسخ با نقل قول پاسخ با نقل قول

  • #2
    مدير انجمن کاریابی Array itjobs آواتار ها
    تاریخ عضویت
    Saturday 24 February 2007
    نوشته ها
    6,100
    Thanks
    59
    Thanked 58 Times in 53 Posts

    Post پنج قاعده کلی امنیت در تولید نرم افزار


    در مقاله زیر به تعدادی از مهمترین قواعد کلی امنیت در زمینه تولید نرم افزار اشاره می گردد. به طور کلی در تولید یک نرم افزار باید علاوه بر مواردی همچون کاربرد ، کارایی ، قابلیت نگهداری و تجربه کاربری توجه ویژه ای را در حوزه امنیت لحاظ کرد. در نظر داشته باشید تاکید و برنامه ریزی شفاف در مورد امنیت نرم افزار می تواند هزینه ها و زمان پیاده سازی پروژه را بشدت تحت تاثیر قرار دهد .

    اصل اول : Defense in Depth – هیچگاه به یک لایه امنیتی در نرم افزار خود اطمینان نکنید . در واقع برنامه شما باید آخرین لایه و واسط بین یک حمله کننده (هکر) و سیستم های پشتیبان مانند دیتابیس باشد. از این رو صرفا به یک لایه امنیتی در نرم افزار خود اکتفا نکنید و از انواع راه های ممکن برای تامین امنیت استفاده نمایید.

    اصل دوم : Never Trust Input
    – هیچگاه به ورودی های ارائه شده توسط کاربر اطمینان نکنید . هر قسمت جداگانه از ورودی باید Validate (معتبر سازی) و تصحیح (Correct) شود و سپس مقادیر ورودی پردازش شوند . پردازش مقادیر ورودی بدون معتبر سازی آنها می توانند خطرات جبران ناپذیری بویژه در برنامه های تحت وب را در برداشته باشد.

    اصل سوم : Fall Gracefully
    – ترکیبی از اصول توسعه نرم افزار ، تست رویداد های غیرمترقبه ، تست داده های غیر منتظره ، تصادفی و اشتباه در ترکیب با طراحی قدرتمند نرم افزار ، ساخت یک کد امن را تضمین می کند.

    اصل چهارم : Watch for Attack
    – حتی اگر خطاها را در سیستم تان را به خوبی مدیریت کرده باشید ، بدون برخورداری از یک سیستم قدرتمند Logging نمی توانید از حملات صورت گرفته (موفق و ناموفق) بر ضد سیستمتان آگاه شوید. ارائه یک سیستم Logging می تواند شما را در تهیه نسخه بعدی نرم افزارتان و کشف خطاهای احتمالی یاری دهد.

    اصل پنجم : Use Least Privilege – هیچگاه از اکانت Administrator در توسعه و برنامه نویسی سیستم هایتان استفاده نکنید. استفاده از اکانت Administrator در دسترسی به فایل ها و یا اتصال به بانک اطلاعاتی در برنامه ها می تواند بسیاری از مشکلات پیش روی یک برنامه نویس را حل و مرتفع نماید اما باید در نظر داشته باشید که با نفوذ به برنامه ، هکر توانایی دسترسی به تمامی قسمت ها و زیر ساخت های سیستم را خواهد داشت . از این رو چناچه در برخی از قسمت های برنامه نیاز به دسترسی خاصی به منابع سیستمی (فرضا پوشه ویندوز) بود می توانید از یک نام کاربری جداگانه و محدود صرفا برای دسترسی به این قسمت در برنامه خود استفاده نمایید .

    منبع

  • علاقه مندي ها (Bookmarks)

    علاقه مندي ها (Bookmarks)

    مجوز های ارسال و ویرایش

    • شما نمیتوانید موضوع جدیدی ارسال کنید
    • شما امکان ارسال پاسخ را ندارید
    • شما نمیتوانید فایل پیوست کنید.
    • شما نمیتوانید پست های خود را ویرایش کنید
    •