تیم امنیت سایبری حامیان ولایت

اللهم إیّاک نعبد و إیّاک نستعین

تیم امنیت سایبری حامیان ولایت

اللهم إیّاک نعبد و إیّاک نستعین

تیم  امنیت سایبری حامیان ولایت

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

پیوندهای روزانه

۱۰۵ مطلب با کلمه‌ی کلیدی «لهراسبی» ثبت شده است

اخیراً روشهای جدید Captcha مبتنی بر تصویر ارائه شده اند که عبور از آنها برای ما انسانها ساده تر و برای رایانه ها غیرممکن شده است. در یکی از این روشها از قدرت تشخیص انسانها در تمییز اجسام از یکدیگر در حالت سه بعدی و دو بعدی و همچنین در زوایای مختلف استفاده می شود. روش دیگر بر تشخیص یک تصویر متفاوت از بین چندین تصویر مشابه استوار است و شکستن آن برای رایانه های فعلی غیرممکن می باشد. روشی که در بیشتر وب سایتها برای جداسازی ورودیهایی که کامپیوترها تولید کرده اند از ورودیهای انسانی به کار می رود، Captcha یا Completed Automated Public Turing نام دارد. در این روشها، معمولاً ترکیبی از الفبا، اعداد و کاراکترهای دیگر را تولید می کنند به طوری که یک انسان بتواند آنها را تشخیص دهد، ولی شناسایی اجزای آن برای رایانه ها مشکل باشد. همان طور که رباتهای کامپیوتری تولید کننده ورودیها هوشمندتر می شوند، روشهای Captcha نیز آزاردهنده تر می شوند به طوری که عبور از برخی از آنها برای ما انسانها نیز دشوار می نماید. به همین دلیل متخصصان این قضیه به دنبال روشهایی هستند که استفاده از آنها برای انسانها ساده تر و برای کامپیوترها تقریباً غیر ممکن باشد. یکی از روشهای جایگزین، استفاده از عکسهای سه بعدی در اینگونه تستها است که تشخیص آنها برای انسانها ساده بوده و در حال حاضر تکنولوژی شکستن آن برای رایانه ها موجود نمی باشد. در این روش که 3D Captcha نام دارد، از قدرت تشخیص انسانها برای تمییز اجسام سه بعدی در زوایای مختلف استفاده می شود. در زیر نمونه ای از این تست را که وب سایت Yuniti.com از آن استفاده می کند، مشاهده می کنید (وب سایت مذکور ابداع کننده این الگوریتم Captcha می باشد):


  • مدیرکل
ویروس Conficker که با نامهای kido، Downup و Downadup نیز شناخته می شود، با سوءاستفاده از یک آسیب پذیری ویندوز که در ماه اکتبر سال گذشته اصلاحیه ای برای آن منتشر شده است، به رایانه ها نفوذ پیدا کرده و دردسرهایی را برای رایانه قربانی ایجاد می کند. هر چند سازندگان ویروس مزبور هنوز استفاده خطرناکی از شبکه رایانه های آلوده نکرده اند، اما طبق نظر محققان کرم Conficker همچنان یک خطر بالقوه محسوب شده و لازم است به کاربران رایانه آگاهی لازم در مورد ویروس مذکور و راههای مقابله با آن داده شود. کاربران بسیاری گمان می کنند که رایانه شان توسط ویروس Conficker آلوده شده است و با توجه به اینکه ویروس مذکور پس از آلوده سازی سیستم، مانع از اتصال به وب سایتهای آنتی ویروس می شود، مشکل اصلی چگونگی پاکسازی رایانه آلوده است. در صورتی که شما هم یکی از قربانیان Conficker هستید، نگران نباشید زیرا در این گزارش قصد داریم کاربران خود را برای پاکسازی رایانه شان یاری رسانیم. در گام اول باید از آلودگی رایانه خود توسط این ویروس اطمینان حاصل کنید. این ویروس علامتهایی که برای یک کاربر عادی قابل درک باشد، بر روی رایانه ایجاد نمی کند. لذا ساده ترین راه برای تشخیص آلودگی آزمایش امکان دسترسی به وب سایتهای آنتی ویروس است، زیرا همان طور که گفتیم این ویروس مانع از دسترسی قربانیان به وب سایتهای آنتی ویروس می شود. اخیراً یک نمودار تصویری ساده جهت تشخیص آلودگی ابداع شده است که با مراجعه به آن می توانید از نفوذ Conficker به رایانه خود اطلاع حاصل کنید. یکی دیگر از علامتهای آلودگی با Conficker، غیر فعال شدن سرویسهای Automatic updates، Background Intelligent Transfer Service، Windows Defender، Error Reporting Service بدون اطلاع کاربر است. در صورتی که شما مدیر شبکه هستید، از دیگر علامتهای آلودگی، ترافیک بالای غیرعادی بر روی شبکه محلی و همچنین پاسخگویی کند کنترل کننده های دامنه به درخواست های کاربران است. قبلاً توضیح دادیم که این ویروس با استفاده از یک آسیب پذیری در ویندوز به رایانه ها نفوذ پیدا می کند و مایکروسافت یک اصلاحیه امنیتی به نام MS08-067(KB 958644) را در سال گذشته برای آن ارائه کرده است. درست است کسانی که اصلاحیه فوق را به موقع دریافت و نصب کرده اند از این ویروس در امان هستند، اما این فکر که لیست به روزرسانی های ویندوز را چک کنیم و در صورت وجود داشتن این اصلاحیه خیالمان راحت شود، ایده خوبی محسوب نمی شود چرا که Conficker یک نسخه جعلی از این اصلاحیه را بر روی رایانه قربانی قرار می دهد. در صورتی که از آلوده بودن رایانه خود اطمینان حاصل کردید، گام بعدی دریافت یکی از چندین ابزار پاکسازی رایگان می باشد. ابزارهای مخصوص پاکسازی Conficker عبارتند از: McAfee’s Stinger، Eset’s Win32/Conficker Worm Removal Tool ، Symantec’s W32.Downadup Removal Tool و Sopho’s Conficker Cleanup Tool. در صورتی که امکان دسترسی به یک رایانه غیر آلوده برای شما فراهم می باشد، توصیه می کنیم ابتدا ارتباط رایانه خود با اینترنت را قطع کنید و سپس از طریق رایانه غیر آلوده یکی از ابزارهای فوق را دریافت کرده و با استفاده از CD و یا حافظه فلش آن را بر روی رایانه خود نصب کنید. گام بعدی غیرفعال کردن AutoRun ویندوز می باشد، زیرا یکی از متداول ترین راههای نفوذ Conficker از این طریق می باشد. شرکت Eset که یکی از معتبرترین شرکتهای فعال در زمینه امنیت فناوری اطلاعات است ادعا می کند، یکی از هر 15 تهدید امنیتی که در سال 2008 تشخیص داده، مربوط به AutoRun ویندوز بوده است. متأسفانه غیر فعال کردن این خصوصیت ویندوز به راحتی امکان پذیر نیست زیرا حتی اگر آن را از طریق ابزارهای متداول غیرفعال کنید، به جای صرف نظر کردن کامل از فایلهای autorun، باز هم قسمت زیادی از فایل autorun.inf را مرور می کند. برای غیرفعال کردن کامل این امکان، لازم است متن زیر را در یک فایل Notepad کپی کنید. دقت کنید که از اولین براکت سمت چپ تا آخرین گیومه متن در یک خط قرار بگیرد.



این فایل را با نام StopAutoRun.REG ذخیره کنید، سپس بر روی فایل دو بار کلیک کنید. به این ترتیب شما امکان Autorun را کاملاً غیرفعال می کنید، ولی از طرفی امکان اجرای CD ها و DVD ها را به محض قرار دادن آنها در درایو نخواهید داشت. البته این مسئله در مقابل بستن یک نقص امنیتی نسبتاً خطرناک بهای معقولی به نظر می رسد. بعد از این رایانه شما پاک شده است، ولی باز هم کارهایی را باید انجام دهید و آن هم تغییر عادت در کار با رایانه و اینترنت است. عادت کنید اصلاحیه های امنیتی نرم افزارهای خود و به خصوص ویندوز را در اولین فرصت دریافت و نصب کنید. عادت کنید بر روی هر لینکی در اینترنت که پیشنهاد اسکن رایگان رایانه شما در مورد ویروسها را می دهد، کلیک نکنید و در انتها توجه داشته باشید که صرف نصب کردن یک آنتی ویروس خوب بر روی رایانه کافی نیست و باید آن را مرتباً به روز رسانی کنید تا امکان تشخیص ویروسهای جدید را دارا باشد.
  • مدیرکل
امروزه مرورگرهایی مانند IE Explorer 7 و Mozilla Firefox تقریباً بر روی همه رایانه ها نصب می شوند و از آنجایی که اغلب اوقات مورد استفاده کاربران قرار می گیرند، ایمن سازی آنها یکی از ضروریات محسوب می شود. متأسفانه در اکثر موارد، مرورگرهایی که به صورت پیش فرض همراه با سیستم عامل نصب می شوند، دارای تنظیمات ایمنی نیستند و عدم ایمن سازی مرورگر، به سرعت منجر به بروز مشکلاتی از قبیل نصب پنهانی هرزنامه ها گرفته تا در اختیار گرفتن رایانه توسط نفوذگران می شود. قابل ذکر است که تعداد حمله های نرم افزاری که با استفاده از آسیب پذیری مرورگرها به وقوع می پیوندند، روز به روز در حال افزایش است. یکی از مرورگرهای بسیار متداول در ایران، مرورگر مایکروسافت یا Internet Explorer است که به صورت پیش فرض همراه با سیستم عامل ویندوز نصب می شود و حذف آن ممکن نیست. این مرورگر علاوه بر پشتیبانی از جاوا، اسکریپتها و سایر انواع محتوای پویا، تکنولوژی ActiveX را نیز پشتیبانی می کند. طبیعتاً آسیب پذیری مرورگری که از ActiveX استفاده می کند، بسیار بیشتر از مرورگر فاقد این امکان است. توجه کنید که استفاده از یک مرورگر دیگر، IE یا دیگر اجزای ویندوز را از روی سیستم پاک نمی کند و نرم افزارهایی مانند کلاینت ایمیل ها ممکن است از IE، WebBrowser ActiveX control (WebOC) و یا IE HTML rendering engine (MSHTML) استفاده کنند. بنابراین برای ایمن سازی IE7، ابتدا باید بعضی از امکانات آن را غیر فعال سازید. در زیر چندین گام برای غیر فعال سازی برخی ویژگیها در IE بیان شده است. توجه کنید که ممکن است برخی گزینه های منوها در نسخه های مختلف نرم افزار متفاوت باشند یا اینکه بسته به سیستم عامل میزبان، در محلهای متفاوتی قرار گرفته باشند. برای تغییر تنظیمات، بر روی گزینه Tools در نوار منو کلیک کرده و سپس Internet Options را انتخاب کنید.
  • مدیرکل
امروزه مرورگرهایی مانند Internet Explorer 7 و Mozilla Firefox تقریباً بر روی همه رایانه ها نصب می شوند و از آنجایی که اغلب اوقات مورد استفاده کاربران قرار می گیرند، ایمن سازی آنها یکی از ضروریات محسوب می شود. متأسفانه مرورگرهایی که به صورت پیش فرض همراه با سیستم عامل نصب می شوند، در اکثر موارد دارای تنظیمات ایمنی نیستند و عدم ایمن سازی مرورگر، خیلی سریع منجر به بروز مشکلاتی از قبیل نصب پنهانی هرزنامه ها گرفته تا در اختیار گرفتن رایانه توسط نفوذگران می شود. قابل ذکر است که تعداد حمله های نرم افزاری که با استفاده از آسیب پذیری مرورگرها به وقوع می پیوندند، روز به روز در حال افزایش است. عوامل مختلفی در افزایش چشمگیر حمله های امنیتی از طریق مرورگرها دخیلند که برخی از مهمترین آنها در ذیل آورده شده است:
  • مدیرکل
شاید شما مطالب بسیار محرمانه و سری را بر روی رایانه شخصی خود نگهداری نکنید، ولی حداقل فایلها و عکسهایی دارید که به آنها علاقمندید و از پاک شدن یا تغییر یافتن ناخواسته‌ و ناگهانی آنها اندوهگین می‌شوید، و احتمالاً دوست ندارید این فایلها به دست غریبه ها بیفتد. راه‌های زیادی برای حفاظت از فایلها و فولدرها بر روی رایانه های شخصی وجود دارد که در اینجا به شش روش مهمتر و عملی‌تر اشاره می‌کنیم:
  1. محافظت در برابر ویروسها و ابزارهای جاسوسی
    ویروسها و ابزارهای جاسوسی از طریق ایمیل یا مرورگر وب منتقل می‌شوند. آنها می‌توانند انواع خرابی‌ها از تغییر و حذف فایلها گرفته تا قراردادن اطلاعات در اختیار افراد سودجو را به بار بیاورند. برای مقابله با آنها لازم است یک آنتی ویروس و یک ابزار ضد جاسوسی (Anti-Spyware) را بر روی رایانه خود نصب کرده و مرتب آنها را به روز رسانی کنید.
  2. نصب فایروال اگر معمولاً آنلاین هستید، فایروال به شما کمک می‌کند تا مانع از ورود مزاحمان و دسترسی آنها به رایانه خود شوید. در بیشتر سیستم عاملهای ویندوز یک فایروال پیش فرض نصب شده است، ولی می توانید از فایروالهای دیگری هم استفاده کنید.
  3. به روز رسانی نرم افزارها
    زمانی که یک حفره امنیتی در نرم افزاری کشف می‌شود، شرکت تولید کننده‌ آن اصلاحیه ای را منتشر می‌کند که اگر کاربران آن را دانلود کرده و نصب کنند، مشکل حل می‌شود. لذا همواره نرم افزارهای خود را به موقع به روز رسانی کنید تا ‌دچار مشکلات بعدی نشوید.
  4. تهیه نسخه‌ پشتیبان
    هر چقدر هم شما مراقب باشید ممکن است اتفاق بدی برای رایانه یا فایلهای شما رخ دهد، لذا بهتر است عادت کنید مرتباً از فایلها و فولدرهای مهم خود نسخه پشتیبان تهیه کنید. برای این کار راههای مختلفی وجود دارد، مانند ریختن فایلها بر روی CD یا DVD، استفاده از حافظه های فلش یا حتی استفاده از ذخیره سازی آنلاین. همچنین می‌توانید یک هارد دیسک خارجی خریده و اطلاعات خود را به صورت موازی با هارد رایانه بر روی آن ذخیره کنید.
  5. استفاده از رمز عبور
    در صورتی که فایلهایی دارید که نمی‌خواهید در معرض چشمان کنجکاو دیگران قرار بگیرد، از رمز عبوری قوی برای نام کاربری خود استفاده کنید و عادت کنید زمانی که مقابل رایانه خود نیستید Log Off کنید.
  6. محافظت از فایلها و فولدرهای شخصی
    ابزارهایی وجود دارند که به شما امکان رمزگذاری بر روی فایلها و فولدرهایتان را می‌دهند تا آنها را در برابر مشاهده و یا تغییر توسط دیگر کاربران محافظت کنند. برای مثال در نرم افزارOffice شما می‌توانید با انتخاب منوی Tools و سپس کلیک بر روی گزینه‌ Protect Document برای فایل خود سطوح دسترسی تعریف کرده و برای دیدن یا ویرایش آن رمزهای جداگانه تعریف کنید.
  • مدیرکل

حملات Hijacking

مدیرکل |
Hijacking در اصل به معنای هواپیماربایی و یا سایر وسایط نقلیه بهمراه مسافران آن است. ولی اجازه دهید ما از واژه ارتباط ربایی استفاده کنیم. ارتباط ربایی نوعی از حمله به شبکه است که مهاجم کنترل ارتباط را در اختیار می گیرد – مانند یک هواپیماربا که کنترل پرواز را در اختیار می گیرد-  نفوذگر بین دو موجود در شبکه قرار می گیرد و برای هرکدام از طرفین ارتباط خود را جای دیگری جامی زند!
 
حملات Man-in-the-middle
 
در نوعی از ارتباط ربایی که بعنوان man in the middle شناخته می شود، مهاجم کنترل یک ارتباط برقرارشده را در حالیکه در حال انجام است، در اختیار می گیرد. نفوذگر پیام ها را در هنگام تبادل «کلید عمومی» دریافت می کند و آنها را با جایگزین کردن کلیدعمومی خودش، برای طرف درخواست کننده مجدداً ارسال می کند، بطوریکه دو طرف اولیه هنوز بنظر در حال ارتباط مستقیم هستند. نفوذگر از برنامه ای استفاده می کند که برای کلاینت بنظر سرور بیاید و برای سرور بنظر کلاینت. این نوع حمله ممکن است فقط برای دستیابی به پیام ها بکار رود یا توسط آن حمله گر در پیام ها تغییر ایجاد کند و سپس آنها را ارسال کند.
با مطالعه دو مقاله رمزنگاری و کلیدها در رمزنگاری می توانید بیشتر با این مفاهیم آشنا شوید. در اینجا نیز بطور مختصر به آنها و روش ذکر شده اشاره می کنیم.
  • مدیرکل
عنصر اصلی در برنامه‌نویسی امن با زبان‌های مختلف برنامه‌نویسی، مستندسازی خوب و استفاده از استانداردهای قابل اجرا است. استانداردهای کدنویسی، برنامه نویسان را ترغیب به پیروی از مجموعه‌ای متحدالشکل از قوانین و راهنمایی‌ها می‌کند که بر اساس نیازمندی‌های پروژه و سازمان تعیین شده است، نه بر اساس سلایق و مهارت‌های مختلف برنامه‌نویسان. به محض تعیین استانداردهای مذکور، می توان از آن به عنوان معیاری برای ارزیابی کدهای منبع، چه به صورت دستی و چه به صورت اتوماتیک استفاده کرد.
از استانداردهای معروف در این زمینه می‌توان به استانداردCERT برای کدنویسی امن اشاره کرد که یک سری از قوانین و پیشنهادات را برای کدنویسی امن با زبان‌های برنامه‌نویسی C، C++ و جاوا ارائه می‌دهد. هدف از این قوانین و پیشنهادات، حذف عادت‌های کدنویسی ناامن و رفتارهای تعریف نشده است که منجر به آسیب‌پذیری‌های قابل سوءاستفاده می‌شود. به کارگیری استانداردهای مذکور منجر به تولید سیستم‌های با کیفیت بالاتر می‌شود که در برابر حملات بالقوه، پایدارتر و مقاوم‌تر هستند.
در مقاله "آشنایی با استاندارد CERT برای برنامه‌نویسی امن"، کلیات استاندارد CERT در زمینه مزبور را توضیح دادیم و در سری مقاله‌های برنامه‌نویسی امن به زبان C به صورت تخصصی‌تر شیوه برنامه‌نویسی امن با این زبان را مورد بررسی قرار می‌دهیم. قابل ذکر است که در این استاندارد 89 قانون و 134 پیشنهاد برای برنامه‌نویسی امن با زبان C ارائه شده است که در این سری مقالات، مهمترین آنها را که در سطح یک قرار دارند، شرح خواهیم داد. برای کسب اطلاعات بیشتر در مورد سطح‌بندی قوانین و پیشنهادات به مقاله "آشنایی با استاندارد CERT برای برنامه نویسی امن" مراجعه فرمایید. در مقاله حاضر به پیشنهادات و قوانین ارائه شده سطح اول در مورد ورودی - خروجی خواهیم پرداخت.
  • مدیرکل
تمام برنامه های کاربردی تحت وب از منطق خاص خود برای عملیاتی کردن وب سایت مربوطه استفاده می کنند. نوشتن کد با استفاده از یک زبان برنامه نویسی در اصل چیزی به جز شکستن پروسه های پیچیده به گام های منطقی کوچک، نیست. البته ترجمه یک عملیات کوچک که برای انسان معنادار است به ترتیبی از دستورات که برای کامپیوتر قابل اجرا باشند، کاری است که نیاز به تجربه و مهارت فراوانی دارد و از طرف دیگر نوشتن کد مذکور به صورتی که امن و قابل اعتماد باشد، نیز کاری به مراتب دشوارتر است. زمانی که تعداد زیادی طراح و برنامه نویس به صورت موازی بر روی یک برنامه کاربردی کار می کنند، به احتمال بسیار زیاد مشکلات امنیتی متعددی بروز خواهند کرد. حتی در ساده ترین برنامه های تحت وب نیز منطق گسترده ای در هر گام برنامه وجود دارد و این امر منجر به ایجاد سطح حمله ای می شود که اغلب از آن چشم پوشی می گردد. بسیاری از تست نفوذها و مرور کدها بر روی آسیب پذیری های اصلی همچون تزریق SQL و یا cross-site-scripting تمرکز می کنند، زیرا آسیب پذیری های مذکور دارای امضای قابل تشخیص بوده و در مورد بردارهای حمله آنها به اندازه کافی تحقیق شده و اطلاعات وجود دارد. در نقطه مقابل، شناسایی آسیب پذیری های موجود در منطق برنامه بسیار سخت است، زیرا هر نمونه آسیب پذیری ممکن است تنها یک بار و برای یک برنامه خاص اتفاق بیفتد که قابل تشخیص توسط ابزارهای اتوماتیک شناسایی آسیب پذیری ها نیست. به همین دلیل به آسیب پذیری های مذکور چندان توجه نشده و این امر موجب می شود علاقه هکرها به شدت جلب این دسته از نقص های امنیتی شود.
در مقاله قبل در مورد طبیعت نقص های امنیتی منطقی که اغلب از فرض های ناقص سرچشمه می گیرند صحبت کردیم و با چندین مثال واقعی این موضوع را روشن تر ساختیم. در این مقاله نیز به تکمیل مثال های مزبور می پردازیم.
 
محدودیت های عددی
 
در این مثال فرض ناقص در برنامه کاربردی یک کارخانه را مورد بررسی قرار می دهیم. در این برنامه کارمندان بخش مالی اجازه انتقال پول بین حساب های بانکی متعلق به کارخانه، مشتریان و تأمین کنندگان را دارا هستند. برای جلوگیری از هر گونه کلاهبرداری و یا اختلاس، اکثر کارمندان اجازه انتقال مبالغ بیش از 10 هزار دلار را دارا نبوده و برای این کار باید از مدیر بالاتر خود اجازه بگیرند. این احتیاط توسط کد زیر پیاده سازی شده است:
 
Bool CAuthCheck::RequiresApproval(int amount)
{
            If (amount <= m_apprTreshold)
                        Return false;
            Else return true;
}
 
برنامه نویسان در اینجا فرض کرده اند که با این برنامه هیچ کس نمی تواند مبالغی بیش از حد تعیین شده را بدون اجازه مدیر خود جابجا کند. فرض برنامه نویسان در اینجا ناقص است چون در نظر نگرفته اند که ممکن است فردی سعی کند تا مبالغ منفی را جابجا کند. در این صورت فرد نیازی به تأیید مدیر خود ندارد زیرا هر مقدار منفی کمتر از Trshold است. جالب است که در همین برنامه تابع مربوط به نقل و انتقالات بانکی مبالغ منفی را پذیرفته و آن را به عنوان انتقال معکوس در نظر می گیرد. برای مثال در صورتی که قرار است مبلغ X از حساب A به حساب B منتقل شود، می توان مبلغ –X را از حساب B به A منتقل کرد. با این حساب کاربر خرابکار می تواند هر مقداری را که بخواهد در قالب عددی منفی در بین حساب ها جابجا کند!
بسیاری از برنامه های کاربردی از محدودیت های عددی در برنامه های خود استفاده می کنند. برای مثال می توان به موارد زیر اشاره کرد:
 
  • یک برنامه کاربردی متعلق به یک فروشگاه ممکن است مانع از فروش کالا بیش از مقدار موجود در انبار شود.
  • یک برنامه کاربردی متعلق به بانک لازم است از برداشت پول بیش از مقدار موجود در حساب جلوگیری به عمل آورد.
  • یک برنامه کاربردی متعلق به شرکت بیمه ممکن است درخواست ها را بر مبنای حدی از تعداد سال ها تنظیم کند.
 
می توان مثال های مشابه زیاد دیگری را نیز مطرح کرد. در صورتی که یک کاربر خرابکار بتواند به نوعی در شرط های مذکور تقلب کند، ممکن است منجر به حملات مختلف و یا نشت اطلاعات شود. لذا برنامه نویسان لازم است در به کارگیری محدودیت های عددی نهایت دقت را به کار برند.
 
تقلب در تخفیف
 
این مثال مربوط به یک برنامه کاربردی متعلق به یک فروشگاه آنلاین محصولات نرم افزاری است. در این برنامه به کاربران اجازه داده می شود تا محصولات را به صورت عمده نیز خریداری کنند و در مقابل خرید عمده از تخفیف برخوردارد شوند.
زمانی که کاربر کالایی را به سبد خرید اضافه می کند، برنامه طبق پارامترهای مختلف مشخص می کند که آیا میزان خرید کاربر تا کنون مشمول تخفیف می شود یا خیر. در صورت مشمول تخفیف بودن، قیمت کالاهای مذکور در جا تغییر کرده و در سبد خرید، قیمت تخفیف خورده درج می شود. برنامه نویسان فرض کرده اند که کاربر سبد خرید انتخاب شده را خریداری خواهد کرد و در نتیجه موضوع تخفیف پابرجا است.
واضح است که فرض برنامه نویسان دارای نقص است و کاربر می تواند قبل از نهایی شدن خرید، کالاها را از سبد خرید خود حذف نماید. یک کاربر خرابکار می تواند با اضافه کردن تعداد زیاد کالاها از تخفیف برخوردار شده و سپس کالاهایی را که مورد نیاز او نیست، حذف نماید و به این ترتیب از تخفیفی برخوردار شود که حق او نیست.
به برنامه نویسان توصیه می شود همواره فرض کنند که کاربران ممکن است مسیر نرمال استفاده از یک ابزار را طی نکنند و در نتیجه لازم است همه احتمالات مورد بررسی قرار گیرد.
 
شرایط رقابتی در ورود به سیستم
 
این مثال مربوط به یک برنامه کاربردی تحت وب متعلق به یک بانک است. در این برنامه راهکارهای متعددی برای ورود و تأیید هویت افراد دیده شده است. از دیدگاه طراحان و برنامه نویسان این برنامه، افراد خرابکار به هیچ وجه نمی توانند وارد این سیستم شوند. با وجودی که آنها تمام نکات امنیتی و راهکارهای موجود برای تأیید هویت امن را رعایت کرده بودند، اما گاهی اوقات مواجه با اتفاقی عجیب می شدند؛ زمانی که کاربری وارد سیستم می شد می توانست به کنترل کامل حساب کاربری دیگری نیز دسترسی پیدا کند. ظاهراً این اتفاق به صورت تصادفی رخ می داد و حتی دسترسی به حساب کاربران دیگر نیز به صورت تصادفی بود. بعد از تحقیقات بسیار مشخص شد، زمانی که دو کاربر به صورت تقریباً همزمان وارد سیستم می شوند، کاربری که اول وارد شده است می تواند به حساب کاربری فردی که بلافاصله بعد از او وارد سیستم شده است دسترسی پیدا کند. در بررسی کد برنامه معلوم گشت که برنامه برای هر فرد که وارد سیستم می شود بعد از گذشتن از مراحل ورود به سیستم (login) یک کد تأیید هویت ایجاد می کند که با استفاده از آن کنترل حساب کاربری تا زمان خروج از سیستم (logout) در اختیار وی قرار می گیرد.  اشتباه آنها در این بود که از یک متغیر استاتیک برای نگهداری این کد استفاده کرده بودند و در مواقع نادری به علت استاتیک بودن متغیر، همان کدی که به شخص بعدی تخصیص داده شده بود به فرد قبلی نیز انتقال پیدا می کرد و وی می توانست به هر دو حساب به صورت همزمان دسترسی پیدا کند!
  • مدیرکل