« شباهت سریال های ماه رمضان با برخی پروژه های نرم افزاری! | صفحه اصلی | "خواندنی بودن" يا "پربيننده بودن"، کداميک براي يک «وبلاگ» مهم تر است؟ »
از لاکِ لاک پشت تا دمِ مارمولک، یا چگونه از نرم افزاری که ساخته ایم محافظت کنیم؟
October 20, 2007 11:40 PM
یکی از مسائلی که تولید کنندگان نرم افزار در کشور با آن روبرو هستند آن است که به دلیل ضعف قوانین کپی رایت (حقوق مولف) باید خود راسا از نرم افزار خود مراقبت کنند و برای محافظت از آن چاره ای بیاندایشند.
بحث مراقبت از نرم افزار شامل اقداماتی است که از دستکاری و یا کپی برداری غیر قانونی در مقابل افراد مجاز و یا غیر مجاز جلوگیری می کند. به عبارت دیگر به این می پردازیم که:
- چگونه نرم افزار از اجزاء خود به صورت یکپارچه مراقبت نماید. (مبحث جامعیت (Integrity) از عوامل کیفی نرم افزار)
- افراد غیر مجاز نتوانند به درون نرم افزار نفوذ کنند (مبحث امنیت (Security) نرم افزار)
- افراد مجاز قادر نباشند با اقدامات غیر مسؤولانه و یا ورود اطلاعات غلط، به بخشی از سیستم آسیب برسانند. (مبحث توانمندی و یا استحکام (Robustness) نرم افزار)
- نتوان نرم افزار را بدون اجازه مالک آن کپی کرد و از آن استفاده مجدد داشت (رعایت Copy Right نرم افزار)
سه مورد اول جزء طبیعاتی است که یک نرم افزار تجاری باید به آنها مجهز باشد (عواملی که یک سیستم تجاری را از یک سیستم دانشگاهی یا آزمایشی جدا می کنند) اما همانگونه که گفتم ، آخری به ضعف قانون و یا ضعف اجرای قانون رعایت حقوق مولف بر می گردد.
هر تولید کننده ای با توجه به نوع محصولی که تولید می کند، فنآوری مورد استفاده، دانش و تجربه و قیمت نرم افزار، روشی را برای مدیریت مراقبت از نرم افزار خود به عنوان یک سرمایه خود بکار می گیرد. از قفل های نرم افزاری گرفته، تا قفل های سخت افزاری، رمزگذاری فایل ها، مخفی سازی اطلاعات حساس، استفاده از بمب های منطقی (Logical Bomb) ، قفل گذاری روی CD ، استفاده از مبحث Licensing یا لیسانس نرم افزار، ثبت وقایع، تهیه مداوم نسخه های پشتیبان یا Mirror از اطلاعات و یا برنامه ها، انواع قفل های تلفنی ، اینترنتی، فایل های کد کلید ، توکارکردن نرم افزار ها در داخل سخت افزارها، کارتهای هوشمند، مدیریت کاربران قوی، تغییر دوره ای رمز عبور، مکانیسم های تشخیص اثر انگشت، انواع سیستمهای هشدار دهنده سرقت و نفوذ (Hack) و یا حمله (Attack) و .....
اینکه شما از کدام استفاده می کنید همانطور که گفتم به شما و نوع و قیمت محصولتان بسته است.
در این نوشته می خواهم شروع کننده نظریه ای باشم که شاید بتوان در آینده آن را تکمیل کرد و به عنوان یک روش در محافظت از نرم افزارها بکار گرفت. آن اینکه از روی حیات وحش الگو گرفت، اینکه جانوران مختلف از خود چگونه مراقبت می کنند و در مقابل دشمنان خود چگونه ایستادگی نشان می دهند، آن را الگو بگیریم و با توجه به نرم افزار و ماهیت آن (و شناسایی عوامل آسیب رسان به آن) ، نرم افزار در موقع خطر به همان شکل از خود واکنش نشان دهد. بگذارید مثالهای ذکر کنم:
-لاکپشت: یک لاک سخت دارد و چند جای سوراخ برای خروج دست و پا و سرش، هر وقت خطری احساس کند، داخل آن لاک می رود.(لاک پشت که دیده اید!؟) خوب ما هم ترم افزاری بسازیم که در موقع دسترسی غیر مجاز، کپی کردن غیر قانونی و یا احساس خطر برای آسیب، خود را در داخل یک لایه محافظ (بخوانید Firewall) مخفی کند و اجازه همه دسترسی ها را قطع کند تا شرایط به شکل عادی تبدیل شود. برای مثال نوع برخورد دستگاه های پرداخت پول (ATM) و یا وب سایت های امنیتی را مشاهده کنید. به محض احساس خطر، خود را از کار انداخته، ورودی ها و خروجی های سیستم را غیر فعال می کنند.
-خارپشت: که در هنگام خطر ، خارهای پشتش (برخلاف سطح شکمی ضعیف و قابل نفوذش) به دردش می خورد و آن را به سمت عامل خطر پرتاب می کند. استفاده از بمب های منطقی، ویروس های هدفمند و یا آسیب زدن به سیستم عامل و یا فایل های کاربر سرقت کننده اطلاعات ایده جدیدی نیست، به نظر شما شبیه خارپشت نیسند اینگونه نرم افزارها.
-راسو (؟) : جانور شناس نیستم، اما فکر می کنم یک نوع راسو یا چیز شبیه آن است که به محض دیدن خطر، بوی بدی از خود متصاعد می کند! نمی شود نرم افزاری ساخت که اگر غیر مجاز کپی شد و یا نفوذی در آن صورت گرفت چنین واکنشی نشان دهد (منظورم آن نیست که بوی بد بدهد!) برای مثال نسخه های Shareware نرم افزار ها را نگاه کنید، پس از مدتی آنقدر ضدحال می زنند که ترجیح می دهید یا از شرشان خلاص شوید و یا بخریدشان، آنقدر اعلان های مختلف، فرمهای مختلف، کند شدن سیستم و .... می دهند که شما مجبورید این روش را خاتمه دهید. یک کم غلیظش کنید، می شود همان راسوی قصه ما.
-مارمولک: مشهور است که مارمولک در هنگام خطر دم خود را قطع می کند و فرار می کند. مهاجم گول می خورد که به هدف رسیده است، غافل از آنکه آن دم تله است و سمی و با خوردن آن .... می شود نرم افزاری ساخت که دزد را گول بزند، مثلا اجازه بدهد از نسخه قفل شکسته استفاده کند و یا تا حدی دسترسی غیر مجاز را فراهم کند اما در پس زمینه مانند یک اسب تروا (Trojan Horse) کاری کند و سازنده را مطلع سازد و یا خرابکاری نماید.
....
زیاد است از این دست، شاید سعی کردم یک نوشته یا یک کتاب بنویسم در این مورد، اینکه چطور از دیدن برنامه های رازبقا در توسعه نرم افزار تاثیر بگیریم ...!
باز هم در این مورد -محافظت از نرم افزار- خواهم نوشت.
همین!
نظرخواهی
قسمت راسو خيلي جالب بود..... منتظر متن هاي بعدي هستم
ارسال شده توسط: hiva در ساعت October 21, 2007 09:30 AM
نوشته بسيار جالب و نويي بود. حداقل براي من. مسائل خيلي مهم را جوري مطرح كرده ايد كه شيرين و قابل فهم است و حتي مي توان با آن بازي و تفريح كرد. لطفا ادامه دهيد.
ممنون
ارسال شده توسط: mahyar در ساعت October 21, 2007 11:10 AM
سلام
من از بلاگ شما لذت می برم
ای کاش tag های موضوعی هم به نوشته هایتان اضافه کنید، تا دیگر نوشته هایتان درباره یک موضوع را به سادگی بتوان یافت.
ارسال شده توسط: اپاتان در ساعت October 23, 2007 10:47 PM
ممنون از لطف شما، متاسفانه ابزاری که برای وبلاگ نویسی استفاده می کنم (MT) نسخه قدیمی است و امکانات کمی دارد. به دلیل کمی وقت هم اینکه Plug-in های جدید به آن اضافه کنم، ارتقایش دهم و یا با ابزاری مانند wordpress تغییرش دهم برایم وجود ندارد.
امیدوارم در آینده فرصتی کنم و یک دستی به سروگوش وبلاگ بکشم، امیدوارم.
همین!
ارسال شده توسط: ali در ساعت October 25, 2007 02:36 PM
سلام
جالب بد ولي فكر نكنم هيچكدام از اين ايدهها جديد بود آخري كمي شبيه هاني پات است. ولي نوشتههاتان را ميخوانيم. مرسي.
ارسال شده توسط: nasser در ساعت October 27, 2007 05:12 PM
راستش در این مطلب دنبال چیز جدیدی نبودم، فقط می خواستم نشان دهم که می شود شباهت هایی پیدا کرد بین روشهای مراقبت از نرم افزار با روشهای دفاعی برخی جانوارن. طبیعی است از این شباهت می توان ایده گرفت و از روی سایر جانوارن، روشهای جدیدی برای محافظت از نرم افزار پیدا کرد.به هر حال ممنون.
همین!
ارسال شده توسط: ali در ساعت October 28, 2007 08:07 AM