طراحی و پیاده سازی CPU امنیتی نهفته بر اساس استراتژی چندگانه The Design and Implementation of Embedded Security CPU Based on Multi-strategy
- نوع فایل : کتاب
- زبان : فارسی
- ناشر : آی تریپل ای IEEE
- چاپ و سال / کشور: 2016
توضیحات
رشته های مرتبط: مهندسی کامپیوتر، معماری سیستم های کامپیوتری و سخت افزار کامپیوتر
مقدمه الف) با توجه به استفاده ی گسترده از سیستم های نهفته، مسائل امنیتی پردازشگر های نهفته توجهات در حال افزایش را جلب می کنند. تا به اینجای کار تحقیق بروی ایمنی پردازشگر نهفته به طور عمده بر کنترل پایشگری روند کنترل، ردگیری روند اطلاعات و پایشگری حافظه تمرکز داشته است. با این حال بیشتر کار موجود، این موارد را به عنوان ابعاد جداگانه در نظر گرفته و درصد کمی از آن رویکرد یکپارچه را پیشنهاد کرده و ابعاد گوناگونی را به طور همزمان نشانه گرفته است که باعث ایجاد انگیزه در کار ما می شود. ب) ردگیری روند اطلاعات که به نام های کنترل روند اطلاعات یا ردگیری اثر نا خواسته نیز شناخته شده است یک سیاست امنیتی مهم به شمار می رود. ردگیری روند اطلاعات پویا (DIFT)، اطلاعات غیر قابل اطمینان را به عنوان یک مورد اثر نا خواسته علامت گذاری می کند و انتشار آن را در یک سیستم ایمنی ردگیری می کند. این DIFT هر کلمه در حافظه ی سیستم را با یک علامت پیوست می دهد و اطلاعات جدیدی که از سوی مورد غیر قابل اطمینان در راه است را به عنوان یک اطلاعات اثر نا خواسته علامت گذاری می کند. در مورد اطلاعات اثر نا خواسته که در یک روش ناامن ممکن استفاده شده اند مانند اجرای یک دستور العمل زبان جستار ساخت یافته ی اثر نا خواسته (SQL) یا انتشار یک اشاره گر اثر نا خواسته، سیستم ایمنی یک استثناء امنیتی ایجاد می کند. در حقیقت مطالعات زیادی در زمینه ی ردگیری روند اطلاعات به انجام رسیده است. ج) پایشگری روند اطلاعاتی بر ردگیری روند داده ی خارجی در درون پردازشگر (مانند داده هایی از ورودی خروجی چند منظوره (GPIO)، درگاه های متوالی ، و شبکه ها) تمرکز داشته است که می تواند برای اجتناب از عملیات های غیر قانونی که ناشی از این داده ها یا برنامه های خارجی هستند (مانند دزدیدن اطلاعات شخصی کاربران که در سیستم ذخیره سازی شده)، مفید باشد. با این حال مکانیزم پایشگری روند اطلاعات تحلیل دقیقی در مورد ایمنی برنامه ها یا داده های خارجی ارائه نمی دهد. این مکانیزم تنها تصمیم می گیرد که کدام اثر نا خواسته داده ای نیاز به انتشار دارد و کدام داده زمانی که در حال بررسی اثر نا خواسته است نیاز به بررسی دارد. اگر چه مکانیزم پایشگری روند اطلاعات قادر به تشخیص برخی حملات متداول است ممکن است منجر به میزان مثبت کاذب بالایی در برنامه ی ایمنی دیگر در سیستم شود. علاوه بر این به منظور تشخیص نوع بخصوصی از حملات این مکانیزم نیاز به پیکربندی یک ثبات انتشار اثر نا خواسته (TRP) و یک ثبات تشخیص اثر نا خواسته (TDP) دارد و در صورتیکه نوع حملات تغییر کند نتیجتاً هر دوی آن ها نیاز به تغییر پیدا می کنند که بدون شک انعطاف پذیری آن را نیز محدود می کند. د) مکانیزم پایشگری حافظه، هدف تشخیص حملات مخرب را به وسیله ی محافظت از فضای داده در هنگامیکه برنامه اجرا می شود و حفاظت از کد مخرب در برابر تغییر غیر مجاز فضای داده ی یک برنامه، بدست می آورد. فضای داده ی برنامه شامل بخش پشته، بخش توده ای، بخش داده ی جهانی و بخش متن می باشد. پیاده سازی استراتژی پایشگری حافظه در پردازشگر نهفته می تواند از بسیاری از حملات فرا روندی میان گیر متداول مانند حملات فرا روندی پشته و حملات فرا روندی توده ای جلوگیری کند. چندین روش مبتنی بر سخت افزار در زمینه ی پایشگری حافظه وجود دارد. ر) پایشگری حافظه نیازمند ایجاد تحلیلی دقیق درباره ی ایمنی خود برنامه که شامل نوع دستور العمل اجرا شده و اطلاعات کرانه ی فضای داده ی برنامه که مشخص می کند که آیا دستور العمل های اجرا شده دارای تهدیداتی در فضای داده ی برنامه هستند یا خیر می باشد. با این حال فرآیند گردآوری کد منبع که توسط زبان برنامه نویسی پیشرفته در دستور العمل های ماشینی نوشته شده دارای ارتباط مناسبی با نوع گرد آوردنده می باشد. به ازای یک گذرگاه معین کد منبع که توسط زبان برنامه نویسی پیشرفته نوشته شده است، دستورالعمل ماشینی که به وسیله ی گرد آوردنده ی متفاوتی گرد آوری شده است ممکن است متفاوت باشد. بنابراین نتیجه ای که توسط ماژول پایشگری حافظه تحلیل شده همچنین ممکن است متفاوت باشد که می تواند منجر به یک نرخ مثبت کاذب بالا و یک نرخ منفی کاذب بالا شود. تحلیل بالا نشان می دهد که در سیستم های نهفته، یک استراتژی پایشگری حافظه ی واحد برای جلوگیری از تمامی حملات مخرب کافی نمی باشد. ز) به طور خلاصه سه روش بالا با استفاده از مشخصات و مزایا یا معایب خود قادر به بهبود بخشیدن به ایمنی پردازشگر های نهفته می باشند. بر اساس تحلیل بالا، ما توجه کاملی به قدرت های ردگیری روند اطلاعات و پایشگری حافظه ی خود و ترکیب آن ها با یکدیگر خواهیم داشت. ما پایشگری روند اطلاعات را به وسیله ی تغییر کد سطح انتقال ثَبات (RTL) واحد عدد صحیح هسته و اضافه کردن TCR در واحد عدد صحیح هسته طراحی می کنیم. پایشگری روند اطلاعات، عملکرد طبقه بندی انواع حملات، قابلیت برنامه نویسی سیاست های امنیتی به طور انعطاف پذیر، و قابلیت چند حمله ای همزمان که با هزینه ی بسیار کمی دفاع می شود را فراهم می کند. ما به وسیله ی اضافه کردن یک ماژول سخت افزاری که همراه با پردازنده ی نهفته در مدار عمل می کند و همچنین قادر به شناسایی حملات فرا روندی میانگیر متداول به طور موثر می باشد، پایشگری حافظه را پیاده سازی می کنیم. در آخر طراحی خود را به یک مدار توسعه ی FPGA نگاشت کردیم و یک سیستم نمونه ی اولیه را توسعه دادیم. به منظور استفاده ی بهتر از این دو روش ما سطح ایمنی ردگیری روند اطلاعات را تنظیم می کنیم. نتایج آزمایشی نشان می دهند که در مقایسه با یک استراتژی واحد ردگیری روند اطلاعات و استراتژی واحد پایشگری حافظه، استراتژی چندگانه ی ما می تواند به طور موثر انواع بیشتری از حملات را در هنگام اجرا شناسایی کند که هم از ردگیری روند اطلاعات و هم از پایشگری حافظه بهره می برد و در نهایت امنیت کلی سیستم های نهفته را افزایش می دهد.
مقدمه الف) با توجه به استفاده ی گسترده از سیستم های نهفته، مسائل امنیتی پردازشگر های نهفته توجهات در حال افزایش را جلب می کنند. تا به اینجای کار تحقیق بروی ایمنی پردازشگر نهفته به طور عمده بر کنترل پایشگری روند کنترل، ردگیری روند اطلاعات و پایشگری حافظه تمرکز داشته است. با این حال بیشتر کار موجود، این موارد را به عنوان ابعاد جداگانه در نظر گرفته و درصد کمی از آن رویکرد یکپارچه را پیشنهاد کرده و ابعاد گوناگونی را به طور همزمان نشانه گرفته است که باعث ایجاد انگیزه در کار ما می شود. ب) ردگیری روند اطلاعات که به نام های کنترل روند اطلاعات یا ردگیری اثر نا خواسته نیز شناخته شده است یک سیاست امنیتی مهم به شمار می رود. ردگیری روند اطلاعات پویا (DIFT)، اطلاعات غیر قابل اطمینان را به عنوان یک مورد اثر نا خواسته علامت گذاری می کند و انتشار آن را در یک سیستم ایمنی ردگیری می کند. این DIFT هر کلمه در حافظه ی سیستم را با یک علامت پیوست می دهد و اطلاعات جدیدی که از سوی مورد غیر قابل اطمینان در راه است را به عنوان یک اطلاعات اثر نا خواسته علامت گذاری می کند. در مورد اطلاعات اثر نا خواسته که در یک روش ناامن ممکن استفاده شده اند مانند اجرای یک دستور العمل زبان جستار ساخت یافته ی اثر نا خواسته (SQL) یا انتشار یک اشاره گر اثر نا خواسته، سیستم ایمنی یک استثناء امنیتی ایجاد می کند. در حقیقت مطالعات زیادی در زمینه ی ردگیری روند اطلاعات به انجام رسیده است. ج) پایشگری روند اطلاعاتی بر ردگیری روند داده ی خارجی در درون پردازشگر (مانند داده هایی از ورودی خروجی چند منظوره (GPIO)، درگاه های متوالی ، و شبکه ها) تمرکز داشته است که می تواند برای اجتناب از عملیات های غیر قانونی که ناشی از این داده ها یا برنامه های خارجی هستند (مانند دزدیدن اطلاعات شخصی کاربران که در سیستم ذخیره سازی شده)، مفید باشد. با این حال مکانیزم پایشگری روند اطلاعات تحلیل دقیقی در مورد ایمنی برنامه ها یا داده های خارجی ارائه نمی دهد. این مکانیزم تنها تصمیم می گیرد که کدام اثر نا خواسته داده ای نیاز به انتشار دارد و کدام داده زمانی که در حال بررسی اثر نا خواسته است نیاز به بررسی دارد. اگر چه مکانیزم پایشگری روند اطلاعات قادر به تشخیص برخی حملات متداول است ممکن است منجر به میزان مثبت کاذب بالایی در برنامه ی ایمنی دیگر در سیستم شود. علاوه بر این به منظور تشخیص نوع بخصوصی از حملات این مکانیزم نیاز به پیکربندی یک ثبات انتشار اثر نا خواسته (TRP) و یک ثبات تشخیص اثر نا خواسته (TDP) دارد و در صورتیکه نوع حملات تغییر کند نتیجتاً هر دوی آن ها نیاز به تغییر پیدا می کنند که بدون شک انعطاف پذیری آن را نیز محدود می کند. د) مکانیزم پایشگری حافظه، هدف تشخیص حملات مخرب را به وسیله ی محافظت از فضای داده در هنگامیکه برنامه اجرا می شود و حفاظت از کد مخرب در برابر تغییر غیر مجاز فضای داده ی یک برنامه، بدست می آورد. فضای داده ی برنامه شامل بخش پشته، بخش توده ای، بخش داده ی جهانی و بخش متن می باشد. پیاده سازی استراتژی پایشگری حافظه در پردازشگر نهفته می تواند از بسیاری از حملات فرا روندی میان گیر متداول مانند حملات فرا روندی پشته و حملات فرا روندی توده ای جلوگیری کند. چندین روش مبتنی بر سخت افزار در زمینه ی پایشگری حافظه وجود دارد. ر) پایشگری حافظه نیازمند ایجاد تحلیلی دقیق درباره ی ایمنی خود برنامه که شامل نوع دستور العمل اجرا شده و اطلاعات کرانه ی فضای داده ی برنامه که مشخص می کند که آیا دستور العمل های اجرا شده دارای تهدیداتی در فضای داده ی برنامه هستند یا خیر می باشد. با این حال فرآیند گردآوری کد منبع که توسط زبان برنامه نویسی پیشرفته در دستور العمل های ماشینی نوشته شده دارای ارتباط مناسبی با نوع گرد آوردنده می باشد. به ازای یک گذرگاه معین کد منبع که توسط زبان برنامه نویسی پیشرفته نوشته شده است، دستورالعمل ماشینی که به وسیله ی گرد آوردنده ی متفاوتی گرد آوری شده است ممکن است متفاوت باشد. بنابراین نتیجه ای که توسط ماژول پایشگری حافظه تحلیل شده همچنین ممکن است متفاوت باشد که می تواند منجر به یک نرخ مثبت کاذب بالا و یک نرخ منفی کاذب بالا شود. تحلیل بالا نشان می دهد که در سیستم های نهفته، یک استراتژی پایشگری حافظه ی واحد برای جلوگیری از تمامی حملات مخرب کافی نمی باشد. ز) به طور خلاصه سه روش بالا با استفاده از مشخصات و مزایا یا معایب خود قادر به بهبود بخشیدن به ایمنی پردازشگر های نهفته می باشند. بر اساس تحلیل بالا، ما توجه کاملی به قدرت های ردگیری روند اطلاعات و پایشگری حافظه ی خود و ترکیب آن ها با یکدیگر خواهیم داشت. ما پایشگری روند اطلاعات را به وسیله ی تغییر کد سطح انتقال ثَبات (RTL) واحد عدد صحیح هسته و اضافه کردن TCR در واحد عدد صحیح هسته طراحی می کنیم. پایشگری روند اطلاعات، عملکرد طبقه بندی انواع حملات، قابلیت برنامه نویسی سیاست های امنیتی به طور انعطاف پذیر، و قابلیت چند حمله ای همزمان که با هزینه ی بسیار کمی دفاع می شود را فراهم می کند. ما به وسیله ی اضافه کردن یک ماژول سخت افزاری که همراه با پردازنده ی نهفته در مدار عمل می کند و همچنین قادر به شناسایی حملات فرا روندی میانگیر متداول به طور موثر می باشد، پایشگری حافظه را پیاده سازی می کنیم. در آخر طراحی خود را به یک مدار توسعه ی FPGA نگاشت کردیم و یک سیستم نمونه ی اولیه را توسعه دادیم. به منظور استفاده ی بهتر از این دو روش ما سطح ایمنی ردگیری روند اطلاعات را تنظیم می کنیم. نتایج آزمایشی نشان می دهند که در مقایسه با یک استراتژی واحد ردگیری روند اطلاعات و استراتژی واحد پایشگری حافظه، استراتژی چندگانه ی ما می تواند به طور موثر انواع بیشتری از حملات را در هنگام اجرا شناسایی کند که هم از ردگیری روند اطلاعات و هم از پایشگری حافظه بهره می برد و در نهایت امنیت کلی سیستم های نهفته را افزایش می دهد.
Description
With the widely use of embedded systems, the security issues of embedded processors attract the increasing attentions. So far the research on embedded processor security mainly focuses on control flow monitoring, information flow tracking and memory monitoring[1]. However, most of the existing work considers them as separate dimensions, and very little work has proposed integrated approach and addressed multiple dimensions at the same time, which motivates our work. Information flow tracking[2−۷], also known as information flow control or taint tracking, is an important security policy. Dynamic information flow tracking (DIFT)[8] tags the untrusted information as tainted one and tracks its propagation in a security system. The DIFT appends every word in the system memory with a label, and tags new information coming from the untrusted one as tainted information. The security system will generate a security exception, in the case of tainted information which is used in a possible insecure way, such as running a tainted Structured query language (SQL) instruction or releasing a tainted pointer. Actually, many researches on information flow tracking have been done. Information flow monitoring focused on tracking the flow of the external data into the processor (e.g. data from the General purpose input output (GPIO), serial ports, and networks), which can help prevent the illegal operations caused by these external data or program, such as stealing users’ private information stored in the system. However, the information flow monitoring mechanism doesn’t make a detailed analysis of the security of external data or programs. It only decides which data taint needs to propagate, and decides which data needs to be checked when checking the taint. Although the mechanism of information flow monitoring can detect some common attacks, it may result in the high false positive rate for other safety program in the system. In addition, in order to detect a certain type of attacks, it needs to configure a Taint propagation register (TPR) and a Taint detection register (TDR), if the type of attack changes, both of them need to be changed accordingly, which undoubtedly limits its flexibility. Memory monitoring mechanism[9−۱۳] achieves the purpose of detecting malicious attacks by protecting data space when the program runs and preventing malicious code from unauthorized modification of data space of a program. The program’s data space includes stack section, heap section, global data section and text section. Implementing memory monitoring strategy in the embedded processor can prevent many common buffer overflow attacks, such as stack overflow attacks and heap overflow attacks. There are several hardware-based methods of memory monitoring. Memory monitoring needs to make a detailed analysis about the security of a program itself, including the type of instructions executed and the boundary information of the program’s data space, which determine whether the instructions executed have threats on the program’s data space. However, the process of compiling source code written by advanced programming language into machine instructions has a great relationship with the type of compiler. For a given passage of source code written by advanced programming language, the machine instruction compiled by different compiler may be different. Then the result analyzed by the memory monitoring module may also be different, which may lead to a high false positive rate and a high false negative rate. The above analysis shows that, in embedded systems, a single memory monitoring strategies is not enough to prevent all the malicious attacks. In summary, the above three methods can improve the security of embedded processors with their own characteristics and advantages/disadvantages. Based on the above analysis, we give full consideration to their own strengths of information flow tracking and memory monitoring and combine them together. We design the information flow monitoring by modifying the Register transfer level (RTL) code of the kernel Integer unit (IU) and adding the TCR at the kernel IU. The information flow monitoring provides the functionality of classifying all kinds of attacks, capability of flexibly programming security policies, and capability of simultaneous multi-attack defending at very low cost. We implement the memory monitoring by adding a hardware module which runs in parallel with the embedded processor and it can effectively detect common buffer overflow attacks. Finally, we mapped our design to an FPGA development board and developed a prototype system. In order to make better use of these two methods, we adjust the security level of information flow tracking. Experimental results show that compared with a single strategy of information flow tracking and single strategy of memory monitoring, our multi-strategy can effectively detect more kinds of attacks at run time, which takes advantages of both the information flow tracking and memory monitoring, then enhances the overall security of embedded systems.