PDA

View Full Version : مقاله: مطالبی در مورد امنیت نرم افزار



perkas
یک شنبه 03 شهریور 1392, 02:17 صبح
سلام

تاپیکهای متعددی در زمینه امنیت نرم افزار و وابسته کردن نرم افزار به سخت افزار تا حالا مطرح شده که به همین دلیل به فکر این افتادم که این تاپیک را بزنم
مطالبم رو بصورت سه سوال مطرح کردم:

1 - وابسته کردن نرم افزار به سخت افزار خوب است ؟
جواب : به تنهایی خیر
دلیل : فر کنید به پیچیده ترین روش این کار صورت گرفت حال اگر کرکر یک نسخه از نرم افزار اصلی تهیه کرده و یک فایل دی ال ال بنویسد که تمام مشخصات سخت افزار را در آن معرفی کند طبق آنچه که خودش میخواهد (مطابق با سیستمی که نرم افزار در آن اجرا میشود) و این دی ال ال را به نرم افزار using کند تا مشخصات سخت افزار رو دیگه از این دی ال ال بگیرد دیگر مهم نیست از چه پروتوکلی استفاده کرده باشید

راه حل چیست : شما اول باید به فکر encrypt کردن ( ترجیحا چند مرحله ) باشید - مهمترین نکته به نظر بنده این است که کرکر نتواند به راحتی به سورس برنامه دسترسی پیدا کند و در آن دخل و تصرفی ایجاد کند

2- از چه روشی برای امنیت نرم افزار بهره ببریم ؟
جواب : به نظر بنده یک روش به تنهایی کم است (حتی اگر بهترین و جدیدترین باشد )و هر چه از فناوریهای امنیتی بیشتری بهره ببریم امنیت برنامه بالاتر میرود


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

Hajivandian
یک شنبه 03 شهریور 1392, 12:25 عصر
من از یک روش ساده برای منحرف کردن کرکر استفاده کردم ( مثلا اگر شماره هارد ... بود برنامه اجرا شود)
ولی در عوض کدهایی گذاشتم که در فواصل نا معینی طبق آنچه که خودم معرفی کردم کارهای مضر انجام دهد مثل فرمت - افزودن اطلاعات جعلی به بانک اطلاعاتی - خذف و ویرایش اطلاعات بانک اطلاعاتی( البته مستقیما تاریخ ننوشتم تا کرکر بتونه یه حدسهایی بزنه و از روشی شبیه به زبان اسمبلی استفاده کردم که کنار هم میزاره ضرب میکنه و ... بعد نتیجش یه تاریخ میشه مثلا )

ماکروسافت هم برا ویندوزش همچین کاری نکرده! که شما برای برنامه ات میخوای بکنی. یعنی شما هیچ تعهدی نسبت به مصرف کننده نرم افزارت نداری ؟! اگر اون کدهایی که مضر هستن، رو یه نسخه از برنامه شما که خریداری شده تحت یه شرایط خاص سهوا اجرا بشن چی !؟ در اونصورت شما میتونی خسارت وارد شده به کاربر رو جبران کنی ؟ به نظر من این که توی برنامه کد های مخرب جاسازی کنیم رویکرد صحیحی نیست.

من نظر خودم رو درباره نرم افزارهایی که برای طیف کاربران خانگی عرضه میشه بیان میکنم:
امروزه روش جلوگیری از هک کردن و یا استفاده غیر قانونی از این دست برنامه ها به این سمت پیش رفته که شرکت ها نسخه های رایگانی از برنامه خودشون رو با امکانات کمتر در اختیار کاربران قرار میدن، همچنین قیمت نرم افزاراشون سر به فلک نمیکشه که خرید نسخه قانونی نرم افزار برای کاربر نصرفه! من با این روش بیشتر موافقم: تعیین قیمت منصفانه و ارائه نسخه های رایگان با امکانات کمتر.

Nima NT
یک شنبه 03 شهریور 1392, 12:35 عصر
روشهای مثل فرمت کردن و ... هزینه بسیار زیادی داره چرا که کوچکترین اشتباه میتونه برای تولید کننده خیلی گران تمام بشه
بهترین روش استفاده از یک قفل متوسط و متوسط به بالا به همراه یه پروتکتور خوب (http://www.artanprotector.com) هستش

veniz2008
یک شنبه 03 شهریور 1392, 13:13 عصر
خودم از چه روشی بهره میگیرم ؟
من از یک روش ساده برای منحرف کردن کرکر استفاده کردم ( مثلا اگر شماره هارد ... بود برنامه اجرا شود)
ولی در عوض کدهایی گذاشتم که در فواصل نا معینی طبق آنچه که خودم معرفی کردم کارهای مضر انجام دهد مثل فرمت - افزودن اطلاعات جعلی به بانک اطلاعاتی - خذف و ویرایش اطلاعات بانک اطلاعاتی( البته مستقیما تاریخ ننوشتم تا کرکر بتونه یه حدسهایی بزنه و از روشی شبیه به زبان اسمبلی استفاده کردم که کنار هم میزاره ضرب میکنه و ... بعد نتیجش یه تاریخ میشه مثلا )

سلام.
از این جملات کاملا مشخصه که شما یا یک ایرانی هستید یا یک روسی و یا یک چینی!.
متاسفانه اکثر ما ایرانی ها چنین دستوراتی رو به مغز اطرافیانمون تزریق میکنیم ( من اسمش رو میزارم یه SQL Injection ایده ای. جدا" ایده فوق العاده خطرناکی هست).
فرمت کردن اطلاعات؟ اطلاعات جعلی؟
توی مباحث مالی که تراکنش های بسیاری انجام میشه و صحت اطلاعات فوق العاده مهمه و همچنین یک پروژه در طول یک زمان مشخص به سمت کامل شدن پیش میره اگر روش شما رو پیاده سازی کنن من شک ندارم برنامه نویس یا باید میلیون ها تومن خسارت پرداخت کنه یا باید بره کنار دست اونها که مهریه پرداخت نکردن و دارن آب خنک میخورن.
شما باید امنیت هک نشدن نرم افزار رو بالا ببرید و در صورت استفاده غیرقانونی از اجرای نرم افزار جلوگیری کنید نه اینکه داده ها رو تخریب کنید.
چه بسا خریدار، واقعا هزینه رو پرداخت کرده و این خطای برنامه نویس در کنترل کردن صحیح هست که در واقع یک جور False Positive رو رقم زده.

perkas
یک شنبه 03 شهریور 1392, 13:34 عصر
من مدرک ceh و chfi همراه با یوزر و پسورد دارم

2 چیز رو خوب میدونم :
1- نرم افزار در نهایت کرک میشه
2- تو ایران افرادی که به عارضه شکم درد و خود نمایی مبتلا هستند و میخوان ادعا کنند که من فلان برنامه رو کرک کردم زیاد هستند

چند نکته :
1- برای اینکه اشتباها کدهای مضر فعال نشمن هم راه هست ( مثلا اگر برای چند بار با تاریخهای متفاوت شرط اجرا نشد بعد دستورات رو اجرا کنه - میشه پیغام اخطار هم گذاشت ولی جای دیگه ای نه جایی که کدهای مضر هستن تا کرکر رو به سمت کدهای مضر راهنمائی نکنیم )
2- نرم افزارهای زیادی هست که از این نوع روشها استفاده میکنند ( فقط سطح مضر بودنشون متفاوته ) ولی چون ما از مکانیسم سیستم عامل زیاد اطلاعاتی نداریم متوجه نمیشیم اتفاقا چنین کدهایی هم تو مایکرو سافت هست هم تو فتوشاپ
3- مضر بودن کدها شدتش به خودتون بستگی داره مثلا میتونی قبلش یه backup با پسوند مشخصی بگیری بعد کدها اجرا بشن تا مشتری مجبور بشه برا حل مشکلش باهاتون تماس بگیره

perkas
یک شنبه 03 شهریور 1392, 13:37 عصر
روشهای مثل فرمت کردن و ... هزینه بسیار زیادی داره چرا که کوچکترین اشتباه میتونه برای تولید کننده خیلی گران تمام بشه
بهترین روش استفاده از یک قفل متوسط و متوسط به بالا به همراه یه پروتکتور خوب (http://www.artanprotector.com) هستش

با نظر شما موافقم
ولی هر چی تحقیق میکنم یکی پیدا میشه که فلان قفل رو شکونده باشه
بهترین قفل سخت افزاری که حد اقل به راحتی دامپ نشه ( قیمت مهم نیست ) چه قفلیه ؟

Nima NT
یک شنبه 03 شهریور 1392, 16:42 عصر
با نظر شما موافقم
ولی هر چی تحقیق میکنم یکی پیدا میشه که فلان قفل رو شکونده باشه
بهترین قفل سخت افزاری که حد اقل به راحتی دامپ نشه ( قیمت مهم نیست ) چه قفلیه ؟

قفل سخت افزاری به تنهایی نمیتونه امنیت رو تامین کنه مهم نوع استفاده هستش ، تو این تاپیک (http://barnamenevis.org/showthread.php?719-%D8%B4%DA%A9%D8%B3%D8%AA%D9%86-%D9%82%D9%81%D9%84-%D8%B3%D8%AE%D8%AA-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C) آقای کرامتی مثال جالبی زدن توصیه میکنم حتما" مطالعه کنید
همون طوری که تو سایت آرتان هم عنوان کردم من به شخصه خودم پروتکتور آرتان رو پیشنهاد میکنم ؛ البته نه فقط به این خاطر که محصول خودم هستش بلکه به این دلیل که با دلایل علمی به خریدار اطمینان میدم که میتونه به این پروتکتور و مکانیزم های امنیتی اون اعتماد کنه

perkas
یک شنبه 03 شهریور 1392, 22:02 عصر
قفل سخت افزاری به تنهایی نمیتونه امنیت رو تامین کنه مهم نوع استفاده هستش ، تو این تاپیک (http://barnamenevis.org/showthread.php?719-%D8%B4%DA%A9%D8%B3%D8%AA%D9%86-%D9%82%D9%81%D9%84-%D8%B3%D8%AE%D8%AA-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C) آقای کرامتی مثال جالبی زدن توصیه میکنم حتما" مطالعه کنید
همون طوری که تو سایت آرتان هم عنوان کردم من به شخصه خودم پروتکتور آرتان رو پیشنهاد میکنم ؛ البته نه فقط به این خاطر که محصول خودم هستش بلکه به این دلیل که با دلایل علمی به خریدار اطمینان میدم که میتونه به این پروتکتور و مکانیزم های امنیتی اون اعتماد کنه



دوست عزیز مطالب شما رو کامل خوندم
و همچنین مطالبی رو که پیشنهاد کردین


ولی همونطور که تو اکثر پستهایی که در این مورد نوشتم فقط به یک روش نمیتونم اعتماد کنم
اگه پستهام رو خوب خونده باشین این جملات رو زیاد تکرار کردم :
یک روش به تنهایی کافی نیست
غیر ممکن در کرک و امنیت معنی نداره فقط میشه کار را سخت یا خیلی سخت کرد

Nima NT
یک شنبه 03 شهریور 1392, 22:14 عصر
یک روش به تنهایی کافی نیست
غیر ممکن در کرک و امنیت معنی نداره فقط میشه کار را سخت یا خیلی سخت کرد
فرمایش شما کاملا" درسته و من هم قبول دارم
تنها باید در نظر داشت که روشهایی با هم ترکیب بشن که اولا" ارزش پیاده سازی دارن ( از لحاظ زمان و هزینه ) و ثانیا" اینکه واقعا" تاثیرگذار هستند

perkas
یک شنبه 03 شهریور 1392, 22:26 عصر
تنها باید در نظر داشت که روشهایی با هم ترکیب بشن که اولا" ارزش پیاده سازی دارن ( از لحاظ زمان و هزینه ) و ثانیا" اینکه واقعا" تاثیرگذار هستند



کاملا با حرفتون موافقم

perkas
سه شنبه 05 شهریور 1392, 00:14 صبح
نقش مهندسی اجتماعی :

چه مواقعی پای مهندسی اجتماعی وسط می آید ؟
1- در زمینه هک و کرک زمانی که روشهای تکنیکال کارایی خوبی ندارند یا اینکه هکر یا کرکر شخص تکنیکالی نباشد و همچنین بعضی وقتها که زمان مهم است و روش تکنیکال زمان میبرد
2- در زمینه امنیت زمانی که بخواهیم به سیستمهای امنیتی تکنیکال ( مثلا اینجا قفلهای سخت افزاری و نرم افزاری ) امنیت بیشتری بدهیم


مثلا شما فرض کنید یه برنامه حسابداری نوشتین قیمتش هم مثلا 300 هزار تومان
اگر شما طوری خدمات پس از فروش ارائه کنید که مشتری بگه 300 که نه حاضرم 400 بدم ولی از این خدمات بی بهره نمونم این خودش یه نوع امنیت محسوب میشه

Nima NT
سه شنبه 05 شهریور 1392, 01:09 صبح
نقش مهندسی اجتماعی :

چه مواقعی پای مهندسی اجتماعی وسط می آید ؟
1- در زمینه هک و کرک زمانی که روشهای تکنیکال کارایی خوبی ندارند یا اینکه هکر یا کرکر شخص تکنیکالی نباشد و همچنین بعضی وقتها که زمان مهم است و روش تکنیکال زمان میبرد
2- در زمینه امنیت زمانی که بخواهیم به سیستمهای امنیتی تکنیکال ( مثلا اینجا قفلهای سخت افزاری و نرم افزاری ) امنیت بیشتری بدهیم


مثلا شما فرض کنید یه برنامه حسابداری نوشتین قیمتش هم مثلا 300 هزار تومان
اگر شما طوری خدمات پس از فروش ارائه کنید که مشتری بگه 300 که نه حاضرم 400 بدم ولی از این خدمات بی بهره نمونم این خودش یه نوع امنیت محسوب میشه
این جور سیاست کاری باعث میشه افرادی که قصد استفاده از نرم افزار شما رو دارن به سمت استفاده از نسخه های کرک شده نرن وگرنه باعث نمیشه که برنامه شما کرک نشه ؛ چون هستند افرادی که فارغ از بحث های عنوان شده فقط تمایل دارن یا برای نمایش قدرت خودشون یا مشکلات روحی روانی ! برنامه شما رو کرک کنن

perkas
سه شنبه 05 شهریور 1392, 01:33 صبح
این جور سیاست کاری باعث میشه افرادی که قصد استفاده از نرم افزار شما رو دارن به سمت استفاده از نسخه های کرک شده نرن وگرنه باعث نمیشه که برنامه شما کرک نشه ؛ چون هستند افرادی که فارغ از بحث های عنوان شده فقط تمایل دارن یا برای نمایش قدرت خودشون یا مشکلات روحی روانی ! برنامه شما رو کرک کنن

تو بحث تجارت مهم اینه که سود به دست بیاری
اگه نسخه کرک شده ای هم بصورت خنثی باشه مهم نیست
مهم اینه که طوری سیاست گذاری کنی که علی رغم اقدامات امنیتی چنانچه کرکری به هر جهت نرم افزار را کرک کرد خللی در امر تجارت نرم افزار ایجاد نکند

FastCode
سه شنبه 05 شهریور 1392, 01:39 صبح
چرا من هر چی مینویسم پاک میشه؟کلا نباید بیشتر از سه خط پست بدم.(البته این دفعه تقصیر tunnel خودم بود.)
خلاصش این بود که به نظر شما منتقل کردن منطق برنامه به یک سرور آنلاین منطقیه؟(فرض کنید اطلاعات در سرور ذخیره نمیشه و مشکل در دسترس بودن وجود ندارد.)

@Nima NT:به نظر شما قسمت Optimization این slideshow میتونه تاثیری در امنیت داشته باشه؟
http://www.slideshare.net/migueldeicaza/monkey-space-2013

perkas
سه شنبه 05 شهریور 1392, 01:52 صبح
جمع بندی نهایی که کردم قصد دارم به صورت زیر عمل کنم
فقط دوستان لطف کنند یک قفل نرم افزاری خوب و یک قفل سخت افزاری خوب بهم معرفی کنن

1-استفاده از یه سیستم نرم افزاری طراحی شده توسط خودم
2-استفاده از یه قفل سخت افزاری

3-استفاده از قفل نرم افزاری و ضد دیباگ و ... جواب پس داده
4- خدمات خوب ( به عنوان سیستم ایمنی به روش مهندسی اجتماعی )

در کل استفاده از روشهای مختلف مثل جور چین میمونه که بستگی داره که استفاده کننده چطور ازشون بهره برده
مثلا ممکنه یه نفر با یه جور چین یه کار خارقالعاده ای انجام بده ولی یکی دیگه با همون جور چین دقیقا با همون مشخصات ابتدائیترین کار ممکن رو انجام بده

perkas
سه شنبه 05 شهریور 1392, 02:01 صبح
چرا من هر چی مینویسم پاک میشه؟کلا نباید بیشتر از سه خط پست بدم.(البته این دفعه تقصیر tunnel خودم بود.)
خلاصش این بود که به نظر شما منتقل کردن منطق برنامه به یک سرور آنلاین منطقیه؟(فرض کنید اطلاعات در سرور ذخیره نمیشه و مشکل در دسترس بودن وجود ندارد.)

@Nima NT:به نظر شما قسمت Optimization این slideshow میتونه تاثیری در امنیت داشته باشه؟
http://www.slideshare.net/migueldeicaza/monkey-space-2013

دوست عزیز هر کار غیر ضروری غیر منطقیه ( البته ببخشید که اینو میگم )
وقتی برنامه از حالت دکستاپ به سرور تغییر پیدا کنه علاوه بر مبحث امنیت به لحاظ کرک وارد مقوله امنیت به لحاظ هک هم میشود
چون اگه سرورت امن نباشه به راحتی میشه یه یوزر به یوزرهات اضافه کرد بعد یوزر رو به سطح ادمین ارتقاء داد >>> ریموت قربانی را فعال کرد >>> درایو هاش رو مپ کرد >>>> عملیان اسنیفینگ و اسپوفینگ انجام داد و ...

FastCode
سه شنبه 05 شهریور 1392, 02:08 صبح
دوست عزیز هر کار غیر ضروری غیر منطقیه ( البته ببخشید که اینو میگم )
وقتی برنامه از حالت دکستاپ به سرور تغییر پیدا کنه علاوه بر مبحث امنیت به لحاظ کرک وارد مقوله امنیت به لحاظ هک هم میشود
چون اگه سرورت امن نباشه به راحتی میشه یه یوزر به یوزرهات اضافه کرد بعد یوزر رو به سطح ادمین ارتقاء داد >>> ریموت قربانی را فعال کرد >>> درایو هاش رو مپ کرد >>>> عملیان اسنیفینگ و اسپوفینگ انجام داد و ... اینها مهم نیست.ولی حالا که اصرار به تامین امنیت سرور دارد ,یک سری فرض رو در نظر بگیرید:
۱.سرور به شدت کنترل شدست.و روی امنیتش کار شده.
۲.هیچ سرویس اضافه ای روی سرور اجرا نمیشه.
۳.سرور هیچ اطلاعاتی روی خودش نداره و چیزی نگه نمیداره.حتی میتونه بدون هارد دیسک کار کنه.
۴.فرض کنیم از پروتوکل O p e n V P N استفاده میکنم.یعنی هیچ کس به این راحتی نمیتونه sniff و spoof کنه.
۵.همه ی اطلاعات منتقل شده فقط چند تا guid هستن و تغییر یا داشتنشون به درد کسی نمیخوره.

سوال اینه که برای کرکر ارزش داره که مثلا چهل هزار خط کد من رو عینا بنویسه که یک برنامه رو کرک بکنه.براش صرفه داره؟

علاوه بر مبحث امنیت
اصلا کد برای خودش.هر کس بخواد بهش میدم.وقتی بدون سرور کار نمیکنه به چه دردی میخوره؟

perkas
سه شنبه 05 شهریور 1392, 02:17 صبح
بستگی به برنامت داره که اگه کرکر کرکش کرد براش سودی داره یا نه ( مثل برنامه های دیاگ خودرو که اکثرا کرک شدن و دارن میفروشنشون )

ممکنه کسی به خاطر رقابت یا حسادت دست به این کار بزنه

در مورد بدون صرفه بودن برای کرکر نمیدونم ولی هکرها گاها برای افزایش آمارشون دست به کارهای بدون منفعتی میزنن ( مثل هک سایت و ثبت آن در سایتهایی مثل zoneh )

معمولا نرم افزارهای بومی در صورت کرک شدن منفعتی برای کرکر ندارند و خسارت چندانی به ناشر وارد نمیکنند ( اگر هم وارد شود دیگه ناشره خیلی شوت بوده )
کرکرهای حرفهای معمولا به خاطر آنالیز دست به این کار میزنن ( وقتی کسی توانایی برنامه نویسی داره مثلا بجای اینکه برنامه فلان رو هک کنه یکی مثلش مینویسه )
کرک هم حدی دارد مثلا اگر قرار باشه 1 میلیون هزینه بشه ، خوب میشه این پول رو صرف آموزش کرد و درآمد غیر قابل مقایسه ای کسب کرد

اون جوجه کرکرها و جوجه هکرها رو هم بزار به حال خودشون با مزخرفات خودشون حال کنند

Nima NT
سه شنبه 05 شهریور 1392, 11:06 صبح
@Nima NT:به نظر شما قسمت Optimization این slideshow میتونه تاثیری در امنیت داشته باشه؟
http://www.slideshare.net/migueldeicaza/monkey-space-2013
فکر نمیکنم میزان Optimization ها به حدی باشه که میزان کد اضافه شده و به هم ریختگی به وجود آمده باعث بشه که نشه مهندسی معکوس کردش (البته مطمئن نیستم چون باید تست کنم ولی به احتمال زیاد اینطوری باشه که عرض کردم)

VRAnonymous
سه شنبه 05 شهریور 1392, 11:27 صبح
من خودم از آرتان که نیما گفت استفاده کردم و راضی ام
با هیچ روشی نمیشه امنیت رو 100% تامین کرد اما مهم اینه که امنیت رو تا حدی بالا ببریم که هر کسی نتونه نرم افزار و کرک کنه

hamid59022
یک شنبه 19 مرداد 1393, 16:47 عصر
سيبسيبسيبسيب سيبسيبسيبسيبسيب