فناوریهای شناسایی و ردیابی

بارکد ، RFID ، شناسایی با امواج رادیویی ، ردیابی ، ردگیری، ردیابی ماهواره ای ، GPS ، بینایی ماشین ، بیومتریک ، کارت هوشمند، سنسور

فناوریهای شناسایی و ردیابی

بارکد ، RFID ، شناسایی با امواج رادیویی ، ردیابی ، ردگیری، ردیابی ماهواره ای ، GPS ، بینایی ماشین ، بیومتریک ، کارت هوشمند، سنسور

مقاله نرم افزارهای مشکل ساز RFID

نرم افزارهای مشکل ساز RFID

 

 

محمد روهینا ـ فوق لیسانس مهندسی صنایع ـ شرکت ایران خودرو

شهرام حسام زاده ـ فوق لیسانس مهندسی مواد ـ شرکت ایران خودرو

حبیب کراری ـ فوق لیسانس مهندسی صنایع ـ شرکت ایران خودرو

حسین نجاری ـ لیسانس مهندسی مکانیک ـ شرکت ایران خودرو

 

 

کلید واژه  :  RFID، ویروس ، کرم، نرم افزارهای واسطه ای، نرم افزارهای مشکل ساز

 

 

چکیده مقاله :

 

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

1- مقدمه :

 

     RFID تکنولوژی بدون تماسی است که در زنجیره تامین (Supply Chain)، تغییرات بهینه را تضمین نموده و محل کار و خانه ما را به شکل دلخواهمان در می آورد. طرفداران تکنولوژی RFID قصد دارند با بکارگیری برچسبهایی ارزان قیمت که غالبا یک الی دو کیلو بایت حافظه دارند، یک شبکه جهانی از اشیا را ایجاد نمایند. این در حالی است که کارشناسان خبره می بایست مواظب آنچه که آنها


آرزو دارند، باشند. RFID های مدرن معمولا کوچک هستند، در محیطهایی سالم قرار دارند، با شبکه اطلاعاتی وسیع و غیر قابل مدیریتی مرتبط هستند، رضایت تجاری برای ذینفعان ایجاد می کنند و ... اما در این میان، کاربران غیرمتخصص و هکرهای کامپیوتری نیز وجود دارند. بعلاوه با آمدن شبکه جهانی اشیا، برچسبهای RFID می توانند اشتباهات عددی را در دنیای فیزیکی افزایش دهند.

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

 

 

2-  کاربردهای RFID:

 

RFID یک تکنولوژی پردازشگر فراگیر می باشد که به عنوان جایگزینی برای بارکدهای سنتی معرفی شده است. قابلیت شناسایی بدون سیم RFID تغییرات اساسی را در صنعت، تجارت و آزمایشهای پزشکی ایجاد کرده است. قلب این تجهیز این است که اطلاعات یک شی فیزیکی را به راحتی گردآوری می کند. اطلاعات ثبت شده در برچسب RFID در هر شی می تواند برای تجهیزات مختلف به صورت همزمان و از میان موانع فیزیکی و از راه دور ارسال شود. در راستای مفهوم «حضور کامپیوتری در همه جا» ی  مارک ویزر ، برچسبهای RFID میتوانند رابطه متقابل ما با ساختارهای پردازشی را حتی در برخی موارد درونی و عرفانی نیز تغییر دهند.

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

 

 

3-  تهدیدهای معروف RFID :

 

     این مدینه فاضله پردازشی فراگیر، زوایای تاریکی نیز دارد. RFID جمع آوری اطلاعات را در مورد مکانها و عملیات مجزا به صورت اتوماتیک انجام می دهد که این اطلاعات می تواند توسط هکرها، خرده فروشان و نیز حکومتها مورد سوء استفاده قرار گیرد. تعدادی از تهدیدهای رایج امنیتی RFID عبارتند از :

1-  استراق سمع : برچسبهای RFID طراحی می شوند تا اطلاعات موجود در آنها به وسیله هر دستگاه آماده خواندنی ، خوانده شود. خواندن اطلاعات برچسب ها ممکن است بدون اطلاع حامل برچسب انجام شود و می تواند از راه دور خوانده شود. یکی از موضوعات بحث انگیز جدید خواندن غیر مجاز اطلاعات پاسپورتهای دیجیتالی است.

2-  ردیابی : قرائتگرهای RFID در مکانهای خاصی نصب می شوند تا هویت یک برچسب را ثبت نموده و ردیابی کنند. مشکل هنگامی رخ می دهد که ردیابی بدون رضایت صورت پذیرد. ممکن است در بعضی از موارد آگاهی از ردیابی ناخواسته وجود داشته باشد (مانند کودکان مدارس، شهروندان عالی رتبه و کارگران کارخانه)، اما این موضوع همیشه مورد نیاز نیست.

3-  کلاهبرداری : حمله کننده ها می توانند برچسبهای درست RFID را بوسیله نوشتن اطلاعات یک برچسب درست بر روی یک برچسب خالی یا یک برچسب قابل نوشتن ایجاد کنند. اخیراً یک حمله کلاهبرداری مشهور توسط محققین دانشگاه جانز هاپکینز و گروه امنیتی RSA کشف شد. محققین یک RFID گیرنده را که بمحض دریافت مخابره ای بطور خودکار آن را جواب میدهد را بوسیله جاسوسی تولید کردند که برای خرید بنزین و بازکردن یک سیستم استاتیک خودرو استفاده می شد.

4-  حملات پاسخ : حمله کنندگان می توانند با استفاده از رله RFID در هنگام جستجوی RFID از آن جلوگیری کنند و اطلاعات دیگری را ارسال نمایند. این ارسال مجددها می تواند پاسپورت خوانهای دیجیتالی، سیستمهای پرداخت بدون تماس و سیستمهای کنترل ورود به ساختمانها را گیج کند. خوشبختانه پروتکلهای تایید کننده بین برچسبهای RFID و نرم افزارهای واسطه ای شرایط را بهبود می دهد.

5-  عدم پذیرش خدمات : عدم پذیرش خدمات هنگامی رخ می دهد که سیستمهای RFID از عملکرد مناسب جلوگیری می شوند. قرائت برچسب می تواند به وسیله سیگنالهای پارازیت یا قفسهای فارادی ممانعت شود. هر دو این روشها از دریافت امواج رادیویی توسط اشیایی که برچسب RFID بر روی آنها نصب شده است، جلوگیری می کند. عدم پذیرش خدمات در بعضی شرایط می تواند فاجعه آمیز و خطرناک باشد مثلاً زمانی که در بیمارستان سعی می شود اطلاعات پزشکی بیماری از برچسب RFID زیرپوستی خوانده شود.

طبقه بندی فوق براساس دانش عمومی موجود در رابطه با عملیات ایمنی سیستمهای RFID ارائه شده است.

 

 

4-  مروری بر نرم افزارهای مشکل ساز RFID

 

           در این بخش سه نوع اصلی از نرم افزارهای مشکل ساز RFID شرح داده می شود : استثمارگران، کرمها و ویروسهای RFID.

 

1-4- استثمارگران RFID:

     برچسبهای RFID می توانند مستقیماً نرم افزارهای واسطه ای RFID را استثمار کنند. یک فرد شکاک ممکن است سئوال کند «برچسبهای RFID منابع محدودی هستند که نمی توانند از خودشان مراقبت کنند پس چگونه می توانند حمله کنند؟» ولی واقعیت این است که استثمار نرم افزارهای واسطه نیاز به مهارت بالایی دارد. اداره کردن فضایی کمتر از یک کیلو بایت برای اطلاعات برچسبهای RFID می تواند سوراخهای امنیتی، واژگونی امنیتی، مصالحه با کامپیوتر یا شبکه در نرم افزارهای واسطه ایجاد نماید.

     هنگامی که یک قرائتگر RFID یک برچسب را اسکن می کند، انتظار میرود که اطلاعات را با یک فرمت از پیش تعیین شده، دریافت کند. در حالی که یک مهاجم می تواند اطلاعات قلابی را بر روی یک برچسب RFID بنویسد، بسیار غیرمنتظره است که فرایند آن، نرم افزار واسطه ای ابتدا و انتها را تخریب نماید. استثمارگران RFID اجزا یک سیستم مشخص مانند بانکهای اطلاعاتی، ظاهر نرم افزار و کد های نوشته شده را بوسیله مجموعه ای از ابزارهای هک کردن مانند پرکردن حافظه، اضافه کردن کد جدید و حملات نفوذی به SQL هدف قرار می دهند. یک ساختار مشکل دار می تواند با استفاده از برچسبهای RFID ارزان قیمت، کارتهای هوشمند بدون تماس یا تجهیزات شبیه ساز برچسبهای RFID حملاتی را هدایت کند.

برچسبهای RFID به انواع زیر استثمار را انجام دهند :

1-   پرکردن حافظه : پرکردن حافظه یکی از رایج ترین نوع آسیب پذیری نرم افزارها می باشد. پرشدن حافظه هزینه ای بالغ بر صدها میلیون دلار در نرم افزارهای صنعتی قدیمی و جدید ایجاد می کند. پرشدن حافظه یک رتبه والایی در تاریخچه هکرها دارد مثل Morris (1988)، Code Red(2001) و SQL Slammer . پر شدن حافظه معمولا  به علت استفاده نامناسب از زبانهای برنامه نویسی همچون C یا C++ است که ایمنی حافظه را تامین نمی کنند مانند توابع بدون محدوده بررسی (strcpy,strlen,strcat,sprintf,gets) ، توابع با پاسخ خالی (strcpy,snprintf,strncat) و توابع ایجاد شده توسط کاربران با خطاهایی که منجر به خطای پرکردن حافظه می شود. پرشدن حافظه وقتی که مستقیماً (مانند ورود اطلاعات توسط کاربر) یا غیرمستقیم (مانند متغیرهای محیطی) یک مهاجم شروع به ورود اطلاعات می کند، شروع می شود. اطلاعات ورودی تعمداً بیشتر از بافر تخصیص داده شده در حافظه است بنابراین بر روی اطلاعات موجود نوشته می شود. با توجه به اینکه داده های کنترلی برنامه ها اغلب در حافظه در مجاورت اطلاعات بافر قرار دارد، پر شدن بافر ممکن است منجر به ایجاد مشکل در اجرای برنامه ها شود.

برچسبهای RFID می توانند پر شدن حافظه را به نرم افزارهای واسطه ای RFID تحمیل کنند.

2-   اضافه نمودن کد : یک مهاجم می تواند کدهای مشکل ساز را به یک نرم افزار اضافه نماید.

 

2-4- کرمهای RFID :

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

 

 

3-4- ویروسهای RFID :

     در حالی که کرمهای RFID بر اتصال شبکه ای تکیه دارند، یک ویروس خود تکثیر کاملا بی نیاز است و برای انتشار حمله ویروسی کافی است تنها یک برچسب RFID آلوده شود. در اینجا چند مثال از نحوه انتشار ویروسها ارائه می گردد :

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

2-  برخی از فرودگاهها به منظور تسریع در حمل چمدانها، یک برچسب RFID را بر روی برچسب الصاق شده روی چمدان قرار می دهند. حال مسافر متقلبی را در نظر بگیرید که یک برچسب RFID آلوده را بر روی چمدانی قرار میدهد و آن را تحویل فرودگاه می دهد. هنگامی که سیستم قرائتگر RFID چمدانها، اطلاعات برچسب را می خواند، یک ویروس به بانک اطلاعاتی منتقل می شود و سیستم فرودگاه را آلوده می کند در نتیجه تمامی برچسبهای RFID مسافران آن روز آلوده می شوند و وقتی وارد فرودگاهی دیگر می شوند با اسکن کردن برچسبهای فوق ، سیستم فرودگاه بعدی نیز آلوده می شود و ممکن است در طول یک روز صدها فرودگاه آلوده شوند. صرفا آلوده کردن برچسبهای دیگر بی خطرترین حالت است و ممکن است یک ویروس دارای نرم افزارهای خطرناکی باشد که خسارات بیشتری را به بانک اطلاعاتی وارد کند و محموله های قاچاقچیان و تروریستها را در خطوط هوایی و مراکز دولتی از دید مامورین مخفی نماید.

 

 

5-  سناریوی عملکرد :

 

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

 

1-5- معماری لایه های اطلاعاتی پس زمینه

در چنین سیستمهایی، ساختار نرم افزار واسطه ای بسیار پیچیده نیست. سیستم RFID دارای چندین قرائتگر RFID جهت ارسال پاسخ و یک بانک اطلاعاتی در پس زمینه می باشد. برچسبهای RFID روی ظروف قابلیت خواندن و نوشتن را دارند و داده های آنها، محموله ای را که در درون ظرف می باشد را معرفی میکند. بانک اطلاعاتی پس زمینه، اطلاعات ورود و خروج ظروف محموله ها را ذخیره می کند. به منظور روشن شدن توضیحات، بانک اطلاعاتی پس زمینه محتوی جدولی با عنوان NewContainerContents به شکل زیر می باشد :

TagID

ContainerContents

123

سیب

234

گلابی

 

این جدول نمونه، محتویاتی که می بایست در هر ظرف ریخته شود را مشخص می کند. مطابق جدول، می بایست در ظرف دارای برچسب شماره 123 سیب پر شود و در ظرف دارای برچسب 234 گلابی پر شود.

 

2-5- چگونه یک ویروس RFID عمل می کند ؟

     یک روز یک کانتینر وارد مرکز  توزیع سوپرمارکتها می شود تا یک محموله خاص را بارگیری نماید. برچسب روی ظرف به یک ویروس کامپیوتری آلوده شده است. این ویروس با نفوذ به SQL به نرم افزارهای واسطه ای پس زمینه حمله می کند. وقتی داده های  برچسب یک ظرف خوانده می شود، کدهای نفوذ به SQL به صورت غیر ارادی بر روی بانک اطلاعاتی پس زمینه اجرا میشوند. این حمله نفوذ به SQL به سادگی کدهای خاصی را بر روی ContainerContents تمامی ردیفهای بانک اطلاعاتیNewContainerContents اضافه می کند. بعد از آن روز، ظروف دیگری تخلیه و مجددا با محمولات جدیدی پر می شوند. سیستم مدیریت انبار مقادیر (اصلاح شده) ContainerContents را بر روی برچسب ظروف می نویسد، بنابراین آلودگی منتشر می شود. سپس ظروف تازه آلوده شده ارسال می شوند و (با فرض استفاده از سیستم نرم افزار واسطه ای مشابه) سایر سیستمهای اتوماتیک RFID نصب شده را آلوده می کنند. این سیستمهای RFID آلوده سایر برچسبهای RFID را آلوده می کنند و آنها نیز سایر سیستمهای نرم افزار واسطه RFID را آلوده می کنند و الی آخر. به طور خاص یک برچسب RFID ممکن است شامل داده های زیر باشد :

 

            contents=Raspberries;UPDATE NewContainerContents

            Set ContainerContents = ContainerContents | |

            “;[SQL Injection]”;

 

سیستم RFID انتظار دارد که قبل از سمیکالن (;) اطلاعاتی را دریافت کند (در این حالت اطلاعات، محتویات ظروف را که تمشک تازه است معرفی می کند). به هر حال وجود سمیکالن غیرمنتظره است ، آن درخواست قبلی را خاتمه می دهد و منتظر درخواست جدیدی می شود و حمله نفوذی به SQL بعد از سمیکالن قرار داده می شود.

 

1-2-5- مواجهه با خود ارجاعی :

   همه چیز به نظر خوب می رسد، اما بخشی از نفوذ به SQL برای پر شدن باقی می ماند. فرمول قبلی را به شکل زیر ترسیم میکنیم :

 

[SQL Injection] = UPDATE  NewContainerContents

            Set ContainerContents = ContainerContents | |

            “;[SQL Injection]”;

این وضعیت نفوذ SQL به صورت خود ارجاعی است و ما نیاز به راهی داریم تا آن را دور بزنیم.یک راه حل ممکن عبارت است از : اکثر بانکهای اطلاعاتی دستوری دارند که جستجوی جاری را مشخص می کند. این موضوع می تواند به عنوان اهرمی برای پرکردن بخش خود ارجاعی ویروس RFID بکار گرفته شود. به عنوان مثال در Oracle چنین دستوری است :

 

            SELECT SQL_TEXT FROM v$sql WHERE INSTR(

SQL_TEXT,’`’)>0;

 

     دستورات مشابهی نیز در Postgres, MySQL, Sybase و سایر نرم افزارهای بانکهای اطلاعاتی وجود دارد. با دستور « برو به جستجوی جاری»، کد ویروسی کامل ما به صورت زیر دیده می شود :

 

contents=Raspberries;

UPDATE NewContainerContents Set ContainerContents =

ContainerContents | |  ‘;’  | | CHR(10)  | |  (SELECT

            SQL_TEXT FROM v$sql WHERE INSTR ( SQL_TEXT, ‘`’)>0) ;

 

قابلیت خود تکثیری این ویروس اکنون کامل است.

 

 

6-  نتیجه گیری :

 

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

 

 

7-  فهرست مراجع و ماخذ : 

 

1-  M.R. Rieback, B. Crispo, A.S. Tanenbaum. "Is Your Cat Infected with a Computer Virus?" Proc. 4th IEEE Intl. Conf. on Pervasive Computing and Communications. (PerCom 2006), Pisa, Italy, March 2006. )Best Paper Award(

2-  M.R. Rieback, G.N. Gaydadjiev, B. Crispo, R.F.H. Hofman, A.S. Tanenbaum. "A Platform for RFID Security and Privacy Administration" 20th USENIX/SAGE Large Installation System Administration conference (LISA 2006), Washington DC, December 2006. )Best Paper Award(

3-   M.R. Rieback, Patrick N.D. Simpson, B. Crispo, A.S. Tanenbaum. "RFID Malware: Design Principles and Examples" Pervasive and Mobile Computing (PMC) Journal, vol. 2(4): 405-426, Elsevier, 2006.

4-  M.R. Rieback, B. Crispo, A.S. Tanenbaum. "The Evolution of RFID Security." IEEE Pervasive Computing, vol. 5(1): 62-69, 2006.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد