تروجان سخت افزاری یا Hardware Trojan چیست؟

0 54

فهرست

در این مقاله قصد داریم در مورد حملات علیه سخت افزارها صحبت کنیم. دستکاری بدخواهانه یا مخرب سخت افزار حین طراحی یا ساخت به یک چالش امنیتی بزرگ تبدیل شده است. دستکاری های مذکور باعث عملکرد مخرب مدارهای مجتمع  (Integrated Circuit) به اختصار IC ها می شوند. در این مقاله در مورد تروجان سخت افزاری صحبت خواهیم کرد و مثال هایی را ارائه می‌کنیم.

مدل خرید و طراحی سخت افزار

دلایل زیادی برای برون سپاری یک کار و تهیه محصول از تولید کنندگان وجود دارد. برای مثال در یک پروژه نرم افزاری به دلیل عدم وجود مهارت کافی در اعضای تیم یک شرکت، ممکن است پروژه برون سپاری شود یا اگر رایانش ابری (Cloud Computing) را در نظر بگیریم، بسیاری از سازمان ها و مراکز مختلف ترجیح میدهند برای کاهش هزینه های تهیه سخت افزار و مدیریتی، از خدمات به صرفه رایانش ابری استفاده کنند. در تهیه سخت افزار نیز همین امر وجود دارد. شرکت های زیادی به جای طراحی  ساخت یک IC ترجیح میدهند طراحی آن را یا برون سپاری کنند یا از IC های آماده استفاده کنند. این موضوع به لحاظ اقتصادی و زمانی بسیار کارا است اما ممکن است چالش های امنیتی بزرگی با خود به همراه داشته باشد. تولید کنندگان محصولات سخت افزاری عمدتا مساله مالیکت معنوی (Intellectual Property) یا به اختصار IP را در نظر دارند و به همین دلیل بررسی مجدد آن ها با مشکلاتی همراه می شود. از طرف دیگر عملیاتی مثل ارزیابی و آزمون سخت افزار و همچنین استفاده از ابزارهای اتوماسیون طراحی الکترونیکی هم مورد توجه هستند. استفاده از این مدل کاری باعث می شود IC ها پتانسیل آسیب پذیری های مختلف را داشته باشند. در شکل زیر سطح اعتماد در مراحل مختلف چرخه حیات یک IC را مشاهده می‌کنیم:

اعتماد در مراحل مختلف چرخه حیات IC

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

ناکارآمدی تصدیق و شبیه سازی پیش سیلیکونی و پس سیلیکونی

در یک تصدیق یا شبیه سازی پیش سیلیکونی (Pre-Silicon Verfification/Simulation) دستکاری های ایجاد شده در یک IC شناسایی می شوند اما این موضوع نیاز به یک مدل جامع یا مدل طلایی (Golden Model) از IC دارد که این مدل در بسیاری از مواقع در دسترسی نیست. مخصوصا زمانی که طراحی و ساخت برون سپاری یا به صورت آماده IC خریداری می شود. از طرف دیگر این تصدیق در مواردی که طراحی پیچیده، بزرگ و چند ماژوله باشد کارایی کامل ندارد.
تصدیق پس سیلیکونی (Post-Silicon Verification) طراحی را با استفاده از مهندسی معکوس و خارج کردن از پکیج یک IC یا مقایسه عملکرد IC و ویژگی های مداری آن با یک نسخه بی نقص (Golden Version) انجام می دهد. این نوع تصدیق مقیاس پذیر نیست و هزینه زیادی بر دوش مصرف کننده می گذارد. از طرف دیگر مهاجم می تواند تروجان را تنها در برخی از IC های موجود در یک پکیج قرار دهد که این موضوع باعث می شود این نوع تصدیق هم کارایی کامل نداشته باشد.
آزمون منطقی بعد از ساخت نیز برای تشخیص تروجان های سخت افزاری به دلیل ذات پنهانی تروجان های سخت افزاری و وجود طیف های گستره برای ایجاد تروجان در IC ها کارآمد نیستند. معمولا مهاجمان عملکرد مخرب IC را تنها در شرایط نادری از مدار قرار می دهند که این تشخیص را بسیار دشوار می کند. با توجه به متناهی بودن فضای موارد آزمایش، احتمال تشخیص بسیار کم است.

انواع تروجان های سخت افزاری

در پژوهش های مختلفی، دسته بندی های متنوعی برای تروجان های سخت افزاری ارائه شده استو در این بخش انواع تروجان های سخت افزاری را معرفی می کنیم و سعی می کنیم هرجا لازم بود مثالی ارائه دهیم.

تروجان سخت افزاری ترکیبی

کلاس تروجان های سخت افزاری ترکیبی (Combinational) آن دسته از تروجان های سخت افزاری را پوشش می دهد که فعالیت آن ها منوط به رخداد یک شرایط خاص در گیت های داخلی مدار هستند.

تروجان سخت افزاری ترتیبی

کلاس تروجان های سخت افزاری ترتیبی (Sequential) آن دسته از تروجان های سخت افزاری را پوشش می دهد که فعالیت آن ها منوط به رخداد دنباله ای از مقادیر نادر در گیت های داخلی مدار هستند.

تروجان های سخت افزاری با Trigger دیجیتال

این دسته بندی بر اساس Trigger شدن و مکانیزم پیلود (Payload) در تروجان های سخت افزاری است. تروجان های سخت افزاری ای که به صورت دیجیتال Trigger می شوند می توانند به تروجان های سخت افزاری ترکیبی و ترتیبی تقسیم شوند که توضیح دادیم. در شکل زیر یک مثال از تروجان سخت افزاری را مشاهده می کنیم که به صورت ترکیبی Trigger می شود:

اگر دقت کنیم شرایطی که با مقادیر A=0 و B=0 ایجاد می شود باعث ایجاد مقدار غلط در گیت پیلود می شود.
معمولا مهاجم شرایط بسیار نادری را برای Trigger در نظر می گیرد که در آزمون های سنتی تشخیص داده نمی شود.
از طرف دیگر تروجان های سخت افزاری دیجیتال که به صورت ترتیبی Trigger می شوند آن دسته از تروجان هایی هستند که برای Trigger شدن نیاز به یک دنباله مقادیر خاص یا دوره خاصی از عملیات پیوسته دارند. مثال واضح این تروجان ها شمارنده های مستقل همزمان (Synchronous Stand-alone Counter) هستند که یک عملکرد دستکاری شده را هنگام یک شماره خاص موجب می شوند. در شکل زیر نمونه ای از این تروجان را مشاهده می کنیم که منتظر شماره ۲k-۱ است:

تروجان سخت افزاری

تروجان های سخت افزاری با Trigger آنالوگ

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

تروجان سخت افزاری آنالوگ

تروجان های سخت افزاری با Payload دیجیتال

تروجان های سخت افزاری را می توان بر اساس پیلود نیز دسته بندی کرد. تروجان های سخت افزاری دیجیتال در این دسته بندی می توانند روی مقادیر منطقی روی یک گیت داخلی تاثیر بگذارند یا محتویات حافظه را دستکاری کنند.

تروجان های سخت افزاری با Payload آنالوگ

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

تروجان سخت افزاری-آنالوگ

غیر از ایجاد خطاهای منطقی، تروجان های می توانند ایجاد حملات نرم افزاری مثل ارتقاء سطح دسترسی (Privilege Escalation)، درب پشتی (Backdoor) و سرقت کلمات عبور شوند. برای مثال یکی از حملات کشف شده نشت اطلاعات توسط یک سیگنال رادویی منتقل شده و واسط داده پورت سریال مثل RS-232-C می باشد. همچنین این تروجان ها می توانند حملات کانال جانبی (Side Channel Attack) را با استفاده از تابش حرارتی (Thermal Radiation) یا مدولاسیون نوری (Optical Modulation) روی یک LED انجام دهند. نوع دیگری از این نوع تروجان ها می توانند باعث حملات منع دسترسی یا Denial of Service  (DoS) شوند.

سخن پایانی

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

درباره ما

ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
دوره‌های آکادمی ترجنس | courses.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence

ارسال یک پاسخ