مرور الگوهاي امنيت رايانهاي و پیشنهاد یک دیدگاه جدید
الموضوعات :سید هادی سجادی 1 , رضا کلانتری 2
1 - عضو هیات علمی
2 -
الکلمات المفتاحية: امنيت اطلاعات, الگوي امنيت, تهديد, آسيبپذيري, حمله, هستانشناسي,
ملخص المقالة :
در اين مقاله، نخست به شيوهاي بديع به موضوع چرايي استفاده از الگوهاي امنيت رايانهاي و مزاياي آن پرداخته شده است. سپس ضمن معرفي اجمالي فضاي مواجهات امنيت رايانهاي در قالب هستانشناسي، براي اولين بار سه ديدگاه در زمينة مرور الگوهاي اين حوزه، شناسائي و از يکديگر تميز داده شده است. اين سه ديدگاه شامل ديدگاه الگوهاي امن که ناظر بر طراحي امن الگوهاي متداول طراحي نرمافزار است؛ ديدگاه الگوهاي امنيت که صرفاً به الگوهاي امنسازي با کارکرد تماماً امنيتي اشاره دارد؛ و ديدگاه چارچوب و سيستم به الگوهاي امنيت است که اين دسته نيز کارکرد تماماً امنيتي داشته ولي نظام دستهبندي آن متفاوت از ديدگاه دوم است. دو ديدگاه اول و سوم بهطور خلاصه توضيح دادهشده و ديدگاه دوم نيز ازمنظر سازمان الگوها شامل پنج نوع سازماندهي، مورد تحقيق مفصل قرار گرفته است. در اين نوع معرفي الگوها، مخاطب از منظري جامع با انواع و حوزههاي عمل الگوهاي امنيت رايانهاي آشناشده و آگاهي موضوعي و زمينهاي لازم براي استفاده بهتر از اين الگوها را كسب مينمايد. در انتها، ايدة اين پژوهش در قالب معرفي نوعي جديد از سازماندهي به منظور تسهيل در استفاده و آدرسدهي مناسبتر الگوها ارائه شدهاست. در اين ايده بيان شدهاست که دستهبنديهاي موجود، عمدتاً ايستا و پيشانِگر بوده و از پويايي لازم و خصلت پسانِگري برخوردار نيستند و ايدة مبتني بر پوشش همة ذينفعان و هستانشناسي امنيت، ميتواند اين خاصيت را داشته باشد و بهعلاوه، الگوهاي چابك را نيز در خود جاي دهد. مبتني بر اين ايده و تحليلهاي مرتبط، فضاي فعاليتهاي پژوهشي آينده نيز براي مخاطب آشكار ميگردد.
[1] http://www.oxforddictionarries.com,[Online]. Sunday, 12 February 2023
[2] Schumacher, Markus. "Security Patterns and Security Standards." In EuroPLoP, pp. 289-300. 2002.
[3] Xu, Xiwei, HMN Dilum Bandara, Qinghua Lu, Ingo Weber, Len Bass, and Liming Zhu. "A decision model for choosing patterns in blockchain-based applications." In 2021 IEEE 18th International Conference on Software Architecture (ICSA), pp. 47-57. IEEE, 2021.
[4] Marko, Nadja, Joaquim Maria Castella Triginer, Christoph Striecks, Tobias Braun, Reinhard Schwarz, Stefan Marksteiner, Alexandr Vasenev et al. "Guideline for Architectural Safety, Security and Privacy Implementations Using Design Patterns: SECREDAS Approach." In International Conference on Computer Safety, Reliability, and Security, pp. 39-51. Springer, Cham, 2021.
[5] Chifor, Bogdan-Cosmin, Ștefan-Ciprian Arseni, and Ion Bica. "IoT Cloud Security Design Patterns." In Big Data Platforms and Applications, pp. 113-164. Springer, Cham, 2021.
[6] Fenz, Stefan, Thomas Pruckner, and Arman Manutscheri. "Ontological mapping of information security best-practice guidelines." In International Conference on Business Information Systems, pp. 49-60. Springer, Berlin, Heidelberg, 2009.
[7] Yoshioka, Nobukazu, Hironori Washizaki, and Katsuhisa Maruyama. "A survey on security patterns." Progress in informatics 5, no. 5 (2008): 35-47.
[8] http://www.symantec.com/security_response/publications/threatreport.jsp, [Online]. Sunday, 12 February 2023
[9] https://www.us-cert.GOV, [Online]. Sunday, 12 February 2023
[10] https://docs.microsoft.com/en-us/previous-versions/windows/desktop/cc307406 (v=msdn.10], [Online]. Sunday, 12 February 2023
[11] https://www.owasp.org/index.php/Secure_SDLC_Cheat_Sheet, [Online]. Sunday, 12 February 2023
[12] Grance, Tim, Joan Hash, and Marc Stevens. Security considerations in the information system development life cycle. US Department of Commerce, Technology Administration, National Institute of Standards and Technology, 2004.
[13] National Bureau of Standards, and National Bureau of Standards. Federal Information Processing Standards Publication: Standard Security Label for Information Transfer. US Department of Commerce, National Institute of Standards and Technology, 1994.
[14] Chad Dougherty, Kirk Sayre, Robert C. Seacord, David Svoboda, Kazuya Togashi (JPCERT/CC), Secure Design Patterns, TECHNICAL REPORT CMU/SEI-2009-TR-010 ESC-TR-2009-010, http://cert.org/,[Online], March 2009; Updated October 2009.
[15] Schumacher, Markus. Security engineering with patterns: origins, theoretical models, and new applications. Vol. 2754. Introduction section, Pagee 6, Springer Science & Business Media, 2003.
[16] Barabanov, Alexander, and Denis Makrushin. "Security audit logging in microservice-based systems: survey of architecture patterns." arXiv preprint arXiv:2102.09435 (2021).
[17] Blakley, Bob, and Craig Heath. "Security design patterns technical guide–Version 1." Open Group (OG] (2004).
[18] Schumacher, Markus, Eduardo Fernandez-Buglioni, Duane Hybertson, Frank Buschmann, and Peter Sommerlad. Security Patterns: Integrating security and systems engineering. John Wiley & Sons, 2013.
[19] Steel, Christopher, Ramesh Nagappan, and Ray Lai. "The alchemy of security design methodology, patterns, and reality checks." Core Security Patterns: Best Practices and Strategies for J2EE, Web Services, and Identity Management, Prentice Hall 1088 (2005).
[20] Hafiz, Munawar, Paul Adamczyk, and Ralph E. Johnson. "Organizing security patterns." IEEE software 24, no. 4 (2007): 52-60.
[21] Wiesauer, Andreas, and Johannes Sametinger. "A security design pattern taxonomy based on attack patterns." In International Joint Conference on e-Business and Telecommunications, pp. 387-394. 2009.
[22] "https://capec.mitre.org," [Online]. Sunday, 12 February 2023
[23] Bunke, Michaela, Rainer Koschke, and Karsten Sohr, "Application-Domain Classification for Security Patterns," In Proceedings of the International Conferences on Pervasive Patterns and Applications, IARIA Conferences. XPS , 2011.
[24] Dove, Rick, and Laura Shirey. "On discovery and display of agile security patterns." In Conf Syst Eng Res, Stevens Institute of Technology, Hoboken, NJ. 2010.
[25] "www.ISC2.org," [Online]. Sunday, 12 February 2023
[26] Laplante, Philip A. What every engineer should know about software engineering. CRC Press, 2007.
[27] Huang, Chien-Cheng, Kwo-Jean Farn, and Frank Yeong-Sung Lin, " A Study on Information Security Management with Personal Data Protection," In 2011 IEEE 17th International Conference on Parallel and Distributed Systems (pp. 624-630]. IEEE, (2011, December).
[28] Pub,FIPS(FIPS Publication 200). "Minimum security requirements for federal information and information systems." (2005].
[29] A. I. Standard, " In InformationTechnology-security Techniques-Code of Practice for Information Security Controls", (AS ISO/IEC 27002: 2015), 2015.
دوفصلنامه
فناوری اطلاعات و ارتباطات ایران
سال شانزدهم، شماره های 59 و 60، بهار و تابستان 1403، صفحه 144 الی 166
A Survey on Computer Security Patterns and Proposing a New Perspective
Seyed Hadi Sajjadi 11, Reza Kalantari1
1 Assistant Professor, ICT Research Institute (Iran Telecommunication Research Center), Tehran, Iran
Received: 28 September 2022, Revised: 20 January 2023, Accepted: 29 May 2023
Paper type: Research
Abstract
In this article, at the beginning, the use of computer security models and its benefits are discussed in a new way. Then, while briefly introducing the space of computer security encounters in the form of ontology, three perspectives in the study of patterns in this field have been identified and distinguished from each other. These three perspectives are secure models, security models, and the framework and system to security models. The first and last perspectives are briefly explained and the second perspective is studied in detail from the perspective of the organization of patterns, including the five types of organization. The five types mentioned include software-based lifecycle organization, logical-level organization-based organization, threat-based classification-based organization, attack-based classification-based organization, and application-based organization. In this type of introduction of patterns, the audience acquires a comprehensive view of the discourse of computer security patterns and acquires the necessary knowledge to make better use of these patterns. Finally, the analysis and idea of this research are presented in the form of introducing a new type of organization in order to facilitate the proper use and addressing of patterns. It is stated that the existing categories are mostly static and forward-looking and do not have the necessary dynamism and backwardness, and the idea of covering all stakeholders and security ontology can have this feature and, include agile patterns as well. Based on this idea and related analyzes, the atmosphere of future research activities will be revealed to the audience.
Keywords: Information Security, Security Model, Threat, Vulnerability, Attack, Ontology.
مرور الگوهاي امنيت رايانهاي و پیشنهاد یک دیدگاه جدید
سيدهادي سجادي12، رضا کلانتري1
1استاديار، پژوهشگاه ارتباطات و فناوري اطلاعات (مرکز تحقيقات مخابرات ايران)، تهران، ايران
تاریخ دریافت: 06/07/1401 تاریخ بازبینی: 30/10/1401 تاریخ پذیرش: 08/03/1402
نوع مقاله: پژوهشی
چکيده
در اين مقاله، نخست به شيوهاي بديع به موضوع چرايي استفاده از الگوهاي امنيت رايانهاي و مزاياي آن پرداخته شده است. سپس ضمن معرفي اجمالي فضاي مواجهات امنيت رايانهاي در قالب هستانشناسي، براي اولين بار سه ديدگاه در زمينة مرور الگوهاي اين حوزه، شناسائي و از يکديگر تميز داده شده است. اين سه ديدگاه شامل ديدگاه الگوهاي امن که ناظر بر طراحي امن الگوهاي متداول طراحي نرمافزار است؛ ديدگاه الگوهاي امنيت که صرفاً به الگوهاي امنسازي با کارکرد تماماً امنيتي اشاره دارد؛ و ديدگاه چارچوب و سيستم به الگوهاي امنيت است که اين دسته نيز کارکرد تماماً امنيتي داشته ولي نظام دستهبندي آن متفاوت از ديدگاه دوم است. دو ديدگاه اول و سوم بهطور خلاصه توضيح دادهشده و ديدگاه دوم نيز ازمنظر سازمان الگوها شامل پنج نوع سازماندهي، مورد تحقيق مفصل قرار گرفته است. در اين نوع معرفي الگوها، مخاطب از منظري جامع با انواع و حوزههاي عمل الگوهاي امنيت رايانهاي آشناشده و آگاهي موضوعي و زمينهاي لازم براي استفاده بهتر از اين الگوها را كسب مينمايد. در انتها، ايدة اين پژوهش در قالب معرفي نوعي جديد از سازماندهي به منظور تسهيل در استفاده و آدرسدهي مناسبتر الگوها ارائه شدهاست. در اين ايده بيان شدهاست که دستهبنديهاي موجود، عمدتاً ايستا و پيشانِگر بوده و از پويايي لازم و خصلت پسانِگري برخوردار نيستند و ايدة مبتني بر پوشش همة ذينفعان و هستانشناسي امنيت، ميتواند اين خاصيت را داشته باشد و بهعلاوه، الگوهاي چابك را نيز در خود جاي دهد. مبتني بر اين ايده و تحليلهاي مرتبط، فضاي فعاليتهاي پژوهشي آينده نيز براي مخاطب آشكار ميگردد.
کلیدواژگان: امنيت اطلاعات، الگوي امنيت، تهديد، آسيبپذيري، حمله، هستانشناسي.
[1] * Corresponding Author’s email: h.sadjadi@itrc.ac.ir
[2] * رایانامة نويسنده مسؤول: h.sadjadi@itrc.ac.ir
1- مقدمه
عموماً هدف اصلي در انجام يک پژوهش مروري1 (رجوع شود به مفهوم مرور در]1[ ) در يك حوزة علمي، درك دقيق از اقدامات صورتگرفته و نيز آگاهي يافتن نسبت به دايره و قلمرو كارهاي مورد نياز اين حوزه است. اين مقاله در خصوص مرور الگوهاي امنيت رايانهاي است. پساز انجام اين فعاليت، روش جديدي از معرفي الگوها ارائه ميگردد. در ابتدا لازم است تعريف و منظور خود را از الگوي امنيت رايانهاي بيان کنيم.2 يک الگوي امنيت3، توصيف کنندة يک مشکل تکراري ويژه در امنيت است که در يک حوزهخاص اعم از طراحي و پيادهسازي سامانهها ارائه شده و دربردارندة بهترين راهحل پذيرفته شده، تاکنون است]2[.
وجود الگو موجب ميشود طراحان و توسعهدهندگان در مسائل مشترک نيازي به توليد مجدد راهحلهاي امنيتي نداشته باشند]3و4[. امروزه استفاده از الگوها در بسياري از موضوعات جديد مثل امنيت ابري، امنيت اينترنت اشياء]5[ و زنجيره بلوکي]3[ مورد استفاده قرار ميگيرد. در زمينه الگوهاي امنيت پرسشهاي زير را مطرح ميکنيم: دليل بوجود آمدن الگوهاي امنيت چيست؟ چه مزايايي توسط آنها حاصل ميشود؟ چگونه ميتوان از آنها استفاده نمود؟ معايب روشهاي فعلي در استفاده و مواجهه با آنها چيست؟ و آخر اينکه آيا ميتوان روشي نو در زمينه معرفي و ارجاع به استفاده از آنها ارائه نمود؟
در اين مقاله به همه پرسشهاي فوق پاسخ دادهشده است و روش جديدي نيز در معرفي و دسترسي به الگوها ارائه ميشود.
هدف از انجام اين تحقيق، طرح يک تصوير بزرگتر و ترسيم فضاي وسيعتري از کاربرد الگوهاي امنيت رايانهاي براي توسعهدهندگان سامانههاي رايانشي، مهندسان و مديران امنيت رايانهاي است تا قادر باشند با هزينه کمتري به ايجاد و نگهداري امنيت سامانهها و سامانههاي امن بپردازند و تجارب بشري را در خلق الگوها مورد استفاده قرارداده و نيز الگوهاي جديدي را خلق نمايند.
در اين مقاله ابتدا در بخش دوم مفهوم امنيت و فضاي مواجهات امنيت را با استفاده از هستانشناسي کلان امنيت فضاي رايانهاي تشريح ميکنيم. اين بخش ديدي کلي به خواننده در باره امنيت داده و کمک ميکند تا تفکيک لازم را بين مفاهيم برقرار نمايد. در بخش سوم با بياني جديد و استدلالي متفاوت از استدلالهاي موجود در گفتمان الگوهاي امنيت رايانهاي، ضرورت و چرايي توجه به الگوهاي امينت و اهميت آنرا تشريح ميکنيم. اين نحو تشريح در جاي ديگري تاکنون نيامده و به نوعي ابداع اين مقاله است. در بخش چهارم مقاله گذري سريع به تاريخچه مطرح شدن مفهوم الگوي امنيت رايانهاي پرداخته و زمينه را براي ورود به مبحث اصلي مرور الگوها فراهم ميکنيم.
در بخش پنجم ما سه ديدگاه را در خصوص الگوهاي زمينه شناسايي کرديم. اين دستهبندي نيز اولين بار در اين مقاله انجام شده است. اولين دسته شامل الگوهاي امن يعني همان الگوهاي طراحي معروف به گنگز آو فور4 هستند که داراي اثر امنيتي هستند و جوري طراحي شدند که در کنار ارائه کارکرد سيستمي مورد نظر، صفت امنيت در آنها برجسته بود و بهعبارتي در بخش صفات کيفي آنها، صفت کيفي امنيت موردنظر قرار گرفته است. در حوزه مباحث تخصصي امنيت ممکن است به اين الگوها توجه نشود ولي طرح آن توسط اين مقاله توجه مخاطب را به اين موضوع جلب ميکند که الگوهايي وجود دارند که امنيت در آنها دروني شده است و اگر اين ملاحظه درنظر گرفته نميشد، چه بسا امنيت بايد به صورت امري عارضي براي آن الگوها طراحي ميشد. در دسته دوم الگوهاي امنيت همانطور که به صورت متعارف در متون و گفتمان امنيت رايانهاي مطرح ميشود، مد نظر است که موضوع بخش ششم مقاله است و بصورت مفصل مورد بحث و معرفي قرار گرفته است.
در ديدگاه سوم يعني ديدگاه چارچوب، بهکمک ديدگاه دوم مجموعهاي همبسته از الگوهاي امنيت طوري در کنار هم قرار ميگيرند که با بکارگيري توأمان آنها ميتوان سيستم امن را ايجاد نمود، به عبارتي با يک چارچوب مواجه هستيم. اين ديدگاه مويد نگاه کاربردي است براي بکارگيري مجموعهاي از الگوها در ايجاد يک سيستم.
بخش ششم مقاله همانطور که پيشتر هم توضيح داده شد به تفصيل مروري بر انواع الگوهاي امنيت نموده و سعي در آشنا نمودن مخاطب با دنياي اين الگوها در حد شناسايي عنواني و آدرسي است. بديهي است فهم دقيق آنها بايد با مراجعه به متن تخصصي مربوطه که آدرسدهي شده است، صورت پذيرد. در نهايت بخش هفتم مقاله پيشنهاد مولفان را از يک منظر جديد مطرح نموده و مسير جديدي را براي دسته بندي الگوها، تعريف آنها و کاربست آسان آنها که مبتني بر هستانشناسي است، ارائه مينمايد.
2- تشريح اجمالي فضاي مواجهات امنيت
قبلاز ورود به بحث الگوهاي امنيت، ابتدا بهطور خلاصه، فضاي مسئلة امنيت تشريح ميگردد. اگر بخواهيم خيلي سريع و بهطور اجمال، مسئلة امنيت را تشريح نماييم، بهترين امکان در اين خصوص بهرهگيري از يک هستانشناسي سطح بالا است. مقالة ]6[ هستانشناسي سطح بالايي از امنيت رايانهاي را ارائه دادهاست که در شکل 1 مشاهده ميشود. به کمک اين هستانشناسي ميتوان فضاي مواجهات امنيت را در سطح كلان تبيين نمود.
مطابق با تفسير ارائهشده در]6[، تهديدات همواره دارائيهاي سازمان را هدف قرار ميدهند و با بهرهبرداري از آسيبپذيريهاي موجود روي دارائيها، موجب تأثير روي ويژگيهاي امنيت در وجوه مختلف محرمانگي، صحت و دسترسپذيري ميشوند (گوشه بالايي سمت راست شکل 1). آسيبپذيريها (فيزيکي، مديريتي، فني) که ميتوانند از شدتهاي مختلفي برخوردار باشند (بخش پاييني شکل 1)، بوسيلة اِعمال انواع (پيشگيرانه، بازدارنده، بازيابنده و آشکارساز) کنترلهاي مبتني بر استانداردهاي امنيت کاهش مييابند]6[. تهديدات نيز ميتوانند داراي منابع عمدي يا سهوي باشند و منشاءهاي مختلف انساني يا طبيعي داشته باشند(گوشه پاييني و وسطي سمت راست شکل 1). مرتبط با الگوهاي امنيت در مقالة]7[ نيز مفاهيم امنيت به صورت مجزا مورد بررسي قرار گرفتهاند که براي درک مفاهيم اين زمينه ميتواند مورد استفاده قرار گيرد.
شکل 1. هستانشناسي سطح کلان امنيت]6[
3- تبييني بديع از ضرورت و چرايي توجه به الگوهاي امنيت
امنيت در همة حوزههاي فناوري اطلاعات و ارتباطات به مقولهاي مهم و حياتي تبديل شده است و اعتماد به سامانهها و نرمافزارها و حتي اعتبار سازمانها شديداً به موضوع امنيت گره خوردهاست. تلاشهاي فراواني براي توسعة دانش امنيت و تسهيل بکارگيري فناوريهاي مرتبط با آن در سامانهها انجام ميگيرد. بررسي گزارشات مرتبط با تعداد حملات و نيز آسيبپذيريهاي کشفشده درانواع سامانهها ]8و9[ و روند روبهافزايش آن، حاکي است که هنوز بلوغ لازم در عوامل و ذينفعان مختلف در کشف و اِعمال نيازمندي امنيت در سامانهها بخصوص سامانههاي نرمافزاري بوجود نيامده است. توسعهدهندگان و ايجادکنندگان نرمافزارها، دانش و خبرگي لازم در اين زمينه را ندارند و در بسياري موارد نرمافزارها بدون ملاحظات امنيتي توسعه مييابند. سؤال اساسي اين است که چگونه ميتوان خلاء ناشي از فقدان دانش امنيت در توسعهدهندگان و ايجادکنندگان نرمافزارها و سامانهها را برطرف نمود؟ شرکت مايکروسافت در چرخة عمر تعريفشده براي توسعه نرمافزارهاي امن، مرحلة آموزش را در ابتداي کار قرار داده ]10[ که در شکل 2 نشان داده شده است. اين روش توسط اُواسپ5 نيز بهطور مشابه بکار گرفته ميشود]11[.
شکل 2. مراحل چرخه عمر ايجاد نرمافزار امن]10[
در اين مرحله موارد بنيادي براي ساخت نرمافزار مطلوب، شامل طراحي امن، مدلسازي تهديد، کُدنويسي امن، آزمون امنيت و بهترين تجربيات مرتبط با حفظ حريم خصوصي آموزش داده ميشود]10[.
به نظر ميرسد اين توصيه بيشتر براي نوشتن نرمافزارهاي امن (نرمافزارهايي که هنگام مصالحه، وزن امنيت بيشتر است) مناسب است، يعني در مواقعي که هزينه-فايده و مصالحة6 مرتبط با اين زمينه به نفع امنيت است، ناچار براي گروه توسعه نرمافزار اين مرحله بايد انجام شود. اما آيا فرايند توليد همة نرمافزارها و سامانهها از فرايند توليد نرمافزار امن تبعيت ميکنند؟ پاسخ اين پرسش قطعاً مثبت نيست، زيرا از نظر عقلانيت7 اقتصادي در همهجا اين فرصت بدست نميآيد. لذا بايد به دنبال راهحل ديگري براي اين موضوع بود. روش ديگري که بعضاً براي اين موضوع بکار گرفته شده است، استفاده از خطوط راهنما و توصيهها است که ميتوان به NIST-SP 800-64 اشاره نمود ]12[. البته کل فرايند توصيه شده توسط شرکت مايکروسافت ]11[ را نيز ميتوان در اين زمره قرار داد.
در مستندNIST، مرتبط با هر مرحلة چرخة عمر نرمافزار، تعدادي فعاليت معرفي شدهاست که براي هرکدام توصيه شدهاست که از کدام راهنما و استاندارد استفاده گردد. براي مثال درخصوص طبقهبندي امنيت، FIPS 199 را معرفي نموده است. در FIPS199 طبقهبندي بهصورت مجموعهاي از دوتاييهاي «خصوصيت» و «پيامد» تعريف شده است که خصوصيت از مجموعة (محرمانگي، صحت و دسترسيپذيري) انتخاب ميشود و پيامدها از مجموعة (کم، متوسط، بالا و غير قابل کاربرد) بدست ميآيد ]13[. در جدول 1 خلاصه فعاليتهاي مذکور به همراه نمونههايي از راهنماها و توصيهها ارايه شدهاست.
در اين روش متناسببا فعاليتهاي مراحل چرخة عمر ايجاد نرمافزار (SDLC8) ، اقدامات اصلي مرتبط با امنيت معرفي شدهاند، ولي در روش معرفيشده از سوي مايکروسافت ]11[، چرخةعمر مورد نظر، مختص ايجاد نرمافزار امن (SDL9) است. اگر بخواهيم نرمافزار امن توليد کنيم، دغدغة فقدان دانش امنيت، کمتر است اما اگر هدف، توليد نرمافزار و سامانه متعارف باشد و قصد داشته باشيم ملاحظات امنيت را رعايتکنيم، در اين صورت مشکل فقدان دانش و متخصص امنيت، خود را شديداً نمايان ميسازد.
[1] Survey
[2] برای اختصار از واژة «امنیت» استفاده میکنیم.
[3] Security pattern
[4] GOF: Gangs of Four( It got nicknamed as Gangs of Four design patterns because of four authors: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides)
[5] OWASP
[6] Trade-offs
[7] Rationality
[8] Software Development Life Cycle
[9] Security Development Lifecycle
جدول 1. فعاليتهاي چرخة عمر نرمافزار و اسناد راهنماي امنيت متناسب با آن]13[
مرحله | ملاحظات امنيتي | استانداردها و راهنماهاي كمكي |
شروع | طبقهبندي امنيت | FIPS PUB 199 |
ارزيابي مقدماتي ريسك | NIST SP 800-30 , NIST SP 800-53 | |
مرحله شناخت و طراحي
| ارزيابي ريسك | NIST SP 800-30 , NIST SP 800-53 |
تحليل نيازمنديهاي وظيفهاي امنيت | Privacy Act, FISMA, OMB circulars, agency enabling acts, NIST Special Publications and FIPS | |
تحليل نيازمنديهاي اطمينان امنيت | Common Criteria(CC( | |
ملاحظات هزينهاي و گزارشدهي | OMB Circular A-11, Part 3, Planning, Budgeting, and Acquisition of Capital Assets,” | |
برنامهريزي امنيت | NIST Special Publication 800-18 | |
ايجاد كنترل امنيت | NIST Special Publication 800-53 | |
ارزشيابي و آزمون امنيت از منظر ايجاد |
| |
ديگر مؤلفههاي برنامهريزي |
| |
مرحله پياده سازي | شروع و پذيرش |
|
يكپارچهسازي كنترل امنيت |
| |
گواهي امنيت | NIST SP 800-37 | |
مجوز امنيت | NIST SP 800-37 | |
مرحله عمليات/نگهداري | مديريت پيكربندي و كنترل |
|
مانيتورينگ بلاانقطاع | NIST Special Publication 800-53A | |
مرحله عرضه و استقرار | حفظ اطلاعات |
|
محو اطلاعات از روي رسانه |
| |
در اختيار قراردادن سختافزار و نرمافزار |
|
با نگاه به جدول 1 و انواع ارجاعات به راهنماها و مستندات مختلف، ميتوان فهميد که چه دانشي و نيز چه تلاشي براي مراقبت و بکارگيري اين موارد مورد نياز است. بهعلاوه در استفاده از خطوط راهنما و توصيهها مشکل جدي عدم قابليت استفاده مجدد1 مطرح است و نميتوان قواعدي که به زبان غيررسمي طبيعي نوشتهشده را براي حل مشکلات برنامهنويسي امن که مشترک بين همه است، بکار گرفت ]7[. از ديدگاه مطرح شده در ]14[ که بر اساس آن شناسايي و رفع آسيبپذيريهاي نرمافزار نبايد به بعد از اتمام مراحل توليد و توسعه واگذار شود و توصيههاي جلوگيري از ايجاد آسيبپذيري در همه مراحل توسعه را ارائه مينمايد، هزينة رفع آسيبپذيريهاي سيستم و ريسك مرتبط با آنها، بعد از استقرار سيستم، هم براي توسعهدهندگان سيستم (برنامهنويسان) و هم برای استفادهكنندگان بالا است.
در تأييد مطالب پيشگفته با استناد به ]15]، بهطور خلاصه ميتوان گفت که روشهاي مواجهة نظاممند مانند خطمشي امنيتي، معيارهاي مشترک، نمايشهاي درختي، روشهاي صوري2 و روشهاي نيمهصوري3 براي هميشه بکار گرفته نميشوند، زيرا دغدغة امنيت براي توسعهدهندگان آنقدر برجسته نميشود که از اين روشها استفاده نمايند يا لااقل در نرمافزارهاي متعارف فرصت نمييابند از اين روشهاي نظاممند استفادهکنند. اين نحوة استدلال در بيان چرايي استفاده از الگوها براي اولين بار در اينجا ارائه شده است.
4- تاريخچه و مزاياي بکارگيري
از آنجايي که امنيت در چرخةحيات نرمافزار به صورت يک مقولة اضافي4 ديده شده و توجه کافي به آن صورت نميگيرد، فعالان زمينة الگوها به اين مشکل پيبرده و در صدد ثبت تجارب افراد خبره در اين خصوص برآمدهاند ]15]. اولين تلاش دراين زمينه در سال 1997 توسط يادر و باراكلو با انتشار مقالهاي درباب الگوهاي امنيت صورتپذيرفت]14]. پيش از اينها، تلاشها عمدتاً صرف بيان الگوها، بهطور عام شدهاست که اولين بار كريستوفر الكساندر مفهوم الگوهاي طراحي را مرتبط با حوزه ساختمان مطرح ساخت ]14]. بك و كانينگهام بكارگيري الگوها را در برنامهنويسي تجربهكرده و در اوپاسلا5 ارائه نمودند ]14]. كتاب منتشر شده توسط گنگاُوفور در سال 1995 تلاش مهم بعدي است ]14]. آنها به شکل ساختارمندي تجارب افراد خبره را اخذ و بهصورت سهتايي (زمينه، مشکل، راهحل) ارائه کردند ]14]. درالگوهاي امنيت ارائهشده توسط افراد مختلف ازروش گنگاوفور با تمرکز بر مشکل امنيت اقدام شدهاست. الگوهاي امنيت بستههاي با قابليت استفاده مجدد هستند که دانش خبره را با خود بههمراه دارند]7]. الگوها در همة مراحل بايد علاوه بر خطوط راهنما، مورد اهتمام قرار گرفته و ترويج گردند]14]. با استفاده از الگوهاي امنيتي با قابليت استفاده مجدد، توليدكنندگان ميتوانند هزينة توليد محصولات امن را همزمان براي استفادهكنندگان و پيادهسازان پايينآورند]14]. الگوهاي امنيت مزايايزير را دربردارند]15]:
· افراد تازهکار و ناوارد در امنيت ميتوانند مثل خبرگان در مواجهه با مشکل امنيت عمل کنند؛
· کارشناسان امنيت ميتوانند هم مشکل و هم راهحل را بهطور مؤثرتر مورد بحث قرار دهند يا آنها را مشخص نموده و نامگذاري کنند؛
· مشکلات به صورت نظاممندتري حل ميشوند؛
· مشکل وابستگي بين مؤلفهها ميتواند بهطور مناسبتري مشخص و درنظر گرفتهشوند.
به علاوه، با استفاده از بکارگيري الگوهاي امنيت، نقش عوامل انساني را در مهندسي امنيت کاهش ميدهيم. مهمترين دلائل اينگفته از نظر]15] عبارتنداز:
· مهندسي امنيت عموماً توسط خبرههاي امنيت انجام نميشود، بلکه نياز به امنيت توسط افراد مطرح شده و پاسخ داده ميشود، يعني با مسئله امنيت به صورت يک امر اضافي برخورد ميشود، زيرا عموماً دغدغة اصلي ايجادکنندگان نرمافزار، وظيفهمندي سامانه است نه امنيت؛
· عموماً افراد به صورت اقتضايي6 با حل مسئله امنيت برخورد ميکنند. مثلاً براي امنيت ورود به سامانهها، افراد را مجبور ميکنند کلمة عبورقوي تعيينکنند، ولي کلمة عبورقوي، زود فراموش شده و افراد براي اجتناب از مشکل فراموشي، کلمه عبور را در جاهاي ناامن يادداشت ميکنند؛
· راهحلها عموماً مبتني بر زمان هستند. يک راهحل فعلي ممکن است براي زمانهاي آتي اعتبار نداشته باشد؛
· اگر همة وابستگيها هم مشخص شوند، باز هم نميشود همه را بهطور مناسب در نظر گرفت. مثلاً يک کارپذير وب را ميتوان بررسي کرد که امن است يا خير، ولي نميتوان مطمئن شد که ساير ارتباطات با سيستم عامل و مؤلفههاي ديگر مثل سختافزار امن هستند يا خير.
5- بررسي الگوهاي امنيتي و ديدگاههاي غالب
در بررسيهاي بهعملآمده ميتوان سه ديدگاه متفاوت در زمينه الگوها را شناسائي و ارائه نمود:
· الگوهاي امن7
· الگوهاي امنيت8
· ديدگاه سيستم و چارچوب به الگوهاي امنيت
اين دستهبندي (سه ديدگاه)، اولين بار در اين نوشتار ارائه شده است. در زيربخشهاي اين قسمت، هركدام از ديدگاهها با شرح بيشتري مورد بررسي قرارگرفتهاند.
5-1- ديدگاه اول، الگوهاي امن
مطابق با] 14] روش يافتن الگوهاي امن، جستجو در الگوهاي مهندسي نرمافزار مانند گنگاٌوفور و استخراج الگوهاي امن از متن الگوهايي است كه داراي تأثير امنيتي هستند و سپس مستندكردن آنها براي استفاده در مسائل تكراري مرتبط با ارتقاء امنيت است. از اين نقطهنظر سهدسته الگو مطرحشدهاند. (مطالبي که در ادامه آمدهاست شامل بخش الف، ب و ج از منبع]14] است):
5-1-1- الگوهاي سطح معماري
5-1-1-1- الگوي تجزيه بياعتماد(کاهش امتياز)9
بسياري از حملات، ناشي از دسترسي سطح بالا به سيستم ميباشد که از طريق يک حسابکاربري مثل ريشه در يونيکس يا مدير در ويندوز انجام ميشود. با استفاده ازاين الگو، کاربر به کل سامانه دسترسي نخواهد داشت و دسترسي به کل سامانه محدود به بخش کوچکتري ميشود. اين كار از طريق منتقل كردن وظايف مجزا به داخل برنامههايي كه داراي عدم اعتماد متقابل نسبت به هم هستند، صورت ميگيرد. ساختار کلي اين الگو بصورتي است که سيستم را به دو يا چندين برنامه تقسيم ميکند، بهطوريکه هر کدام پردازشهاي جداگانهاي را انجام ميدهند. در حقيقت هر پردازش سطح دسترسي و حق امتياز مربوط به خود را دارا بوده و يک زيرمجموعهاي از وظايف سامانه را انجام ميدهد. موجوديتهايي که اين الگو از آنها تشکيل شده است، عبارتند از:
· تعدادي از برنامههاي مستقل و جداگانه از يکديگر که هرکدام پردازشهاي مستقل خود را دارا ميباشد و براي هريک، شناسه کاربريهايي تعريف و سطح دسترسي و حق امتياز هر کدام مستقل از ديگري است؛
· ارتباط شبکهاي کاربرمحلي و کاربر راهدور؛
· يک مکانيزم ارتباطي بين پردازشها مانندSOAP ، RPC و سوکت دامنه يونيکس.
اين الگو باعث ميشود که دسترسي نفوذگران به کل سامانه محدود شود، مخصوصاً در زمانهايي که به يک عنصر از سامانه توسط هکر دسترسي پيدا شود که در اين صورت بقية سامانه از نفوذ اين نفوذگر در امان خواهد بود.
5-1-1-2- الگوي جداسازي مجوز10
هدف اين الگو کاهش ميزان کُدهايي است که با دسترسي مشخصي اجرا ميشوند و اين سطح دسترسيها هيچگونه تأثير يا محدوديتي در کاربرد برنامه ايجاد نميکنند. درحقيقت اين الگو يک نمونه ويژه و خاصتري از الگوي تجزيه بياعتماد11 ميباشد. رخنه امنيتي در حالتي كه از اين الگو استفاده نشود زماني رخ ميدهد که يک کارپذير از طريق سيستم احراز هويت و سيستم کاربري غيرقابلاطميناني که دارد، تلاش ميکند بوسيله يک پردازش فرزند که همان امتياز کارپذير را دارا است، کاربران را احراز هويت کند. در اين زمان يککاربر با نيت و قصد سوء سعي ميکند با سوءاستفاده از اين آسيبپذيري و با حقدسترسي، كنترل پردازش فرزند را در دست گيرد و اعتبار حقدسترسي خود را بر روي کارپذير افزايش دهد. بهطورکلي اين الگو براي سيستمهايي با شرايط و کاربردهاي ذيل مناسباست:
1. به يک سطح دسترسي بالا نياز نداشته باشد.
2. ارتباط مهم و اساسي با منابع غير قابل اطمينان داشته باشد.
5-1-1-3- الگوي موکول به کرنل12
هدف اين الگو جداسازي شفاف آن قسمت از وظايف سيستم است که حقدسترسي بالا داشته و بايد از قسمتهاي کاربردي ديگري که نيازمند حقدسترسي بالا نميباشند، جداشده و همچنين امکان بهره بردن از تأييد کاربر که در هستة سيستم موجود است، بوجود آيد. انگيزة اصلي استفاده از اين الگو کاهش يا اجتناب از آن دسته از برنامههاي کاربردي است که اجراي آنها با افزايش سطح دسترسي همراه است و ممکن است بهطور بالقوه، احتمال حملة افزايش امتياز را بالا ببرد. در سيستمهاي يونيکس اين به معني کاهش يا اجتناب از برنامة Setuid ميباشد و در سيستم عامل ويندوز نيز به معناي اجتناب از اجراي برنامه، تحتکاربري مدير ميباشد. بهعلاوه تمرکز اين الگو بر تأييد کاربر که توسط هسته سيستم عامل مهيا ميشود، قرار دارد. استفادة مجدد از کارکرد و وظيفه هستة سيستم در تأييد کاربر، فوايد و مزاياي ذيل را دربر دارد:
· توسعهدهندگان مجبور به نوشتن برنامهاي براي احراز هويت کاربران و تأييد آنها نيستند.
· اين راهحل يک راهحل قابل انتقال ميباشد، زيرا به هر سيستم عاملي اجازه ميدهد که کاربر را به روش ثابت و با هر پلتفرمي تأييد کند.
مباحث ارائه شده در مقاله ]16] در اين زمينه اطلاعات مفيد و جديدي را به خواننده ارائه ميکند.
5-1-2- الگوهاي سطح طراحي
5-1-2-1- الگوي کارخانه امن13
هدف اين الگو جدا ساختن منطق وابسته به امنيت از وظايف اساسي و اصلي مرتبط با ايجاد يا انتخاب يك شئ است. اين الگو شكل توسعهدادهشدة الگوي متد سازنده مجرد گنگاوفور است كه جنبههاي امنيت را مورد توجه ويژه قرار دادهاست. يكي از انگيزههاي اصلي اين الگو، كاهش چسبندگي بين وظايف امنيتي يك شئ و ديگر وظايف آن است.
5-1-2-2- الگوي کارخانه راهبرد امن14
هدف اين الگو ارائه روش اصلاح و استفاده آسان در انتخاب شئ استراتژي مناسب براي انجام يك تكليف براساس اختيارات و اعتبار امنيتي يك كاربر يا محيط است. اين الگو بر اساس الگوي استراتژي گنگاوفور و نيز الگوي سازنده امن (الگوي قبلي) ساخته شده است.
5-1-2-3- الگوي کارخانه سازنده امن15
هدف اين الگو جداسازي قواعد وابسته به امنيت از فرايند پايهاي ايجاد شئ پيچيده و سنگين مطابق با الگوي سازنده در گنگاوفور است. اين كار باعث كاهش چسبندگي وظايف امنيتي از وظايف ديگر شئ پيچيده ميشود.
5-1-2-4- الگوي زنجيره امن مسئوليت16
مطابق گنگاوفور، الگوي زنجيرة مسئوليت، الگويي است که شامل فهرست پيوندي از نگهدارندهها است که هرکدام قادر به پردازش درخواستها ميباشند. هنگامي که درخواستي به زنجيره اضافه ميشود، به اولين نگهدارندهاي که قادر به پردازش آن ميباشد، منتقل ميگردد. در الگوي حاضر كه مبتني بر گنگاوفور است، آنچه را كه به جنبههاي مرتبط با اعتماد به كاربر يا محيط مربوط است، از وظيفهمندي اصلي جدا شده و چسبندگي بين وظايف اعتماد و امنيت از ديگر وظايف الگو حذف ميگردد.
5-1-2-5- الگوي ماشين حالت امن17
اين الگو نيز بسطيافتة الگوي State ارائهشده در گنگاوفور است و نام ديگر آن حالت امن است. در مدل حالت امن ماشين، وضعيت ماشين به منظور بررسي امنيت سيستم، ثبت ميشود. وضعيت ارائه دادهشده، متشکل از تمام مجوزهاي فعلي و تمام موارد حالحاضر ميباشد. اگر مورد مدنظر، بتواند به مقصد خود فقط از طريق سياستهاي امنيتي دست يابد، سيستم امناست. هدف اين الگو اين است كه اجازه ميدهد يك جداسازي واضح بين مكانيسمهاي امنيتي و قابليتهاي سطح كاربر بوسيله پيادهسازي وظايف امنيتي و وظايف سطحكاربر بهصورت دو حالت مجزا صورت پذيرد.
5-1-2-6- الگوي بازديدکننده امن18
اين الگو به طراحان ابزاري ارائه ميدهد تا بتوانند دسترسي کاربراني که امتياز دسترسي مجاز و مناسب به اشياء ندارند را منتفي نمايند. زماني که از اين الگو استفاده ميکنيم، سلسله مراتب دادهها، براي ساختار اطلاعات در گرههاي19 متفاوت استفاده ميشود. اين بدان معني است که تمام گرهها براي تمام ناظران بهجز کساني که اعتبارنامة امنيتي مناسب را دارا هستند، قفل ميباشد. نتيجة اين کار جدايي واضح منطق امنيتي، از عملکرد کاربر است. در اين الگو، مشاهدهگر امن بايد از سيستمي استفاده کند که اطلاعات، به صورت سلسله مراتب دادهاي مرتب شده باشند. اين الگو همچنين محدوديتهاي دسترسي مختلف را بر روي هر گره ايجاد ميکند.
5-1-3- الگوهاي سطح پيادهسازي
5-1-3-1- الگوي ثبتکننده امن20
هدف اين الگو جلوگيري از جمعآوري اطلاعات مفيد توسط مهاجم از طريق لاگهاي سيستمي و نيز جلوگيري از ويرايش لاگهاي سيستمي توسط مهاجم براي پنهان نمودن کارهاي مخرب صورت داده شده توسط وي است. اين الگو در لاگفايلها يا قالبهاي ديگري از نگهداري لاگها مورد استفاده قرارميگيرد و نيز براي سدنمودن مهاجم جهت ورود به سيستم و پيداکردن و تشخيص حملات روي سيستم بكار گرفته ميشود. نتايج بكارگيري اين الگو عبارتنداز:
· دسترسي مهاجمان محدود ميشود يا اصلاً متن واقعي لاگها را نميتوانند ببينند، که در اين صورت نميتوانند حملات ماهرانهاي را انجامدهند.
· تغييراتي که مهاجم در لاگها ايجاد ميکند، توسط کاربر مجاز قابل يافتن است.
5-1-3-2- الگوي پاککردن اطلاعات حساس21
اگر اطلاعات حساس قبلاز خالي کردن منابع قابل استفادة مجدد، مشخص نشوند، ممکن است اين اطلاعات که در منابع با قابليت استفادة مجدد ذخيره شدهاند، بهوسيلة دسترسي غيرمجاز مورد استفاده مهاجمان قرار بگيرند. کاربرد اين الگو باعث ميشود که قبلاز اينکه منابع دوباره مورداستفاده قرار بگيرند، اطلاعاتحساس مشخصگردد. منابع با قابليتاستفادة مجدد، شامل حافظة بهصورت پويا اختصاص داده شده، حافظة ايستاي اختصاصيافته، حافظة خودکار اختصاصيافته، مخزن حافظه، ديسک و مخزن ديسک ميباشد. زيرا اطلاعاتي که در منابع وجوددارد، زماني علامتگذاري ميشود که منبع مورد نظر قابل استفادةمجدد است، محتواي فعلي منبع دست نخورده باقي ميماند تا روي آن اطلاعات جديد نوشته شود که در طول اين مدت کاربر غيرمجاز ميتواند به آن دسترسي داشتهباشد. اگر برنامه، اطلاعات حساس را در منابع با قابليت استفادةمجدد ذخيرهکرده باشد، اين الگو کاربرد دارد. نتيجة استفاده از اين الگو آن است كه اگر دسترسي غيرمجاز به منابع هم پيدا شود، باز هم نفوذگر قادر به خواندن اطلاعات حساس نخواهد بود.
5-1-3-3- الگوي پوشه امن22
هدف اين الگو آن است كه اطمينان دهد، مهاجم نميتواند فيلدهاي مورد استفاده يک برنامة درحال اجرا را دستکاريکند. هر برنامهاي که اجرا ميشود ممکناست به برنامههاي ديگري وابسته باشد. يک توسعهدهندة نرمافزار فرض را بر اين ميگذارد که برنامه توسط کاربران خارجي در حين اجرا دستکاري نميشود. حال اگر اين فرض نقض شود، فايل ميتواند توسط کاربران متفاوتي تغيير پيدا کند يا فايل در يک زمان بسيار حساس، پاک شود يا تغيير يابد. اين الگو اطمينان ميدهد که پوشههايي که فايلهاي آن، توسط برنامهها استفاده ميشود، فقط ميتوانند توسط کاربر معتبر برنامه، نوشته يا خوانده شوند. کاربردهاي مهم اين الگو را ميتوان به صورت زير فهرست نمود:
· برنامه ممکن است در محيطي ناامن اجرا شود، محيطي که کاربران بدخواه ميتوانند به آنبرنامه و فايل سيستمهايي که توسط برنامهها استفاده ميشود، دسترسي داشته باشند.
· برنامه، فايلها را ميخواند يا مينويسد.
· اجراي برنامه ميتواند به صورت منفي صورت گيرد، يعني اگر فايلها توسط برنامهاي که بوسيلة کاربر خارجي در حين اجراي برنامه تغيير يافته، خوانده يا نوشته شوند.
5-1-3-4- الگوي متعارفسازي ناممسير23
هدف از ايجاد اين الگو اطمينان از اين است که تمام ارتباطات يک برنامه (شامل ارتباط ميان ماژولها و کلاسهاي يک برنامه] از طريق لينکهاي معتبري که فاقد هرگونه علامت يا ميانبر است صورت پذيرد. از آنجاييکه استفاده از لينکهاي کمکي و ميانبر، ممکن است معناييک برنامه را از بين ببرد، لذا پيشنهاد ميگردد براي هرگونه ارتباط داخلي در يک برنامه از يک لينک و مسير معتبر و منحصر بفرد استفاده شود. اين الگو قادر است در موارد بسياري استفاده گردد که از جمله آنها ميتوان به موارد زير اشارهکرد:
· پذيرش برنامه از منابع غيرقابل اطمينان
· جلوگيري از دسترسيهاي غيرمجاز توسط هکرها بهوسيله ايجاد مسيرهاي جعلي
· اجراي برنامه در يک محيط که در آن هرفايل، يک مسير منحصربفرد و معتبر دارد.
استفاده از اين الگو در برنامهنويسي باعث بهبود دقت و امنيت دسترسي به فايلها ميگردد. از طرفي استفاده از لينکهاي معتبر و منحصر بفرد باعث افزايش سرعت و کاهش سربار در برنامه ميشود.
5-1-3-5- الگوي تائيد ورودي24
به كمك اين الگو ميتوان از بسياري از آسيبپذيريهايي که بوسيله سنجش دادههاي ورودي صورت ميگيرد، جلوگيري کرد. اعتبارسنجي ورودي، مستلزم آن است که يک توسعهدهنده، بهدرستي تمام وروديهاي خارجي را از منابع دادهاي غيرقابل اطمينان، شناسايي و اعتبارسنجي کند. اعتبارسنجي ورودي، آزمون صحت هر ورودي است که در آن ممکن است مواردي غير از آنچه صحيح است، وارد شود. ورودي کاربر ميتواند از انواع منابع، کاربر نهايي، برنامه ديگر، يک کاربر مخرب، يا هرتعداد از منابع ديگر آمده باشد. کاربر مخرب هيچگاه اعلام نميکند که او به عنوان مهاجم نرمافزار شما است. به همين دليل همه وروديها بايد بررسي و اعتبارسنجي شوند. براي اينکه دقيقاً مشخص شود چه کسي يا چه چيز ورودي را براي پردازش به شما ميدهد، برنامههاي کاربردي و نرمافزار بايد تمام ورودي وارد شده توسط کاربر را بررسي کند، اما اين نبايد تنها ورودي براي بررسي باشد. ممکن است شما ورودي را از يک بانک دادهاي گرفته باشيد. مشکلات ناشي از اعتبارسنجي ورودي نادرست، ميتواند به تمام انواع مشکلات و آسيبپذيريها منجر شود. عدم استفاده از اعتبارسنجي ورودي کاربر توسط يک برنامه، علت ريشهاي بسياري ازسوء استفادههاي امنيتي جدي مانند حملات سرريز بافر، حملات تزريق SQL و حملات CSS است. اعتبارسنجي ورودي براي امنيت نرمافزار، امري حياتي است. الگوهاي اعتبارسنجي ورودي، اغلب ساده هستند و نيازمند شناسايي و سنجش اعتبار صحت ميباشند.
مزاياي اعتبارسنجي وروديهاي سيستم، باعث افزايش امنيت و قابليت اطمينان سيستم شده و در عوض باعث کاهش کارايي سيستم ميشود، زيرا براي تعيينکردن و مديريتکردن تمام مکانهايي که ورودي نامعتبر ايجادميشود، نيازمند کار اضافه ميباشد.
5-1-3-6- الگوي مقداردهي اکتساب منابع25
هدف از الگوي RAII اين است که اطمينان حاصل شود که منابع سيستم به درستي اختصاص داده شده يا آزاد ميشوند و تمام مسيرهاي اجراي برنامه امکانپذير است. همچنين تضمين ميکند که منابع برنامه به درستي بهکار گرفته شدهاند. بهطور معمول هرمنبعي که در سيستم استفاده ميشود بايد بهموقع نيز آزاد شود. اين موضوع براي جلوگيري از اتلاف منابع ميباشد. جلوگيري از آزادشدن منابع در زمان استفاده برنامه نيز بسيار مهم است، زيرا عدم رعايت اين مورد ميتواند نتايج بغرنجي را به همراه داشته باشد. همچنين تعيين زماني که ديگر سيستم به منابع احتياجي ندارد و بايستي آزاد شوند نيز بسيار دشوار ميباشد، بنابراين طول مدت زمان استفاده از منابع بايستي در طراحي اصلي برنامه ديده شده باشد. يک نمونه از استفاده از الگوي RAII برنامهاي است که حافظه يا منابع را در هنگام اجرا اختصاص ميدهد و قبل از اتمام برنامه، منابع را آزاد مينمايد. مثال ديگر استفاده از الگوي RAII تشکيل يک اتصال شبکهاي در هنگام شروع برنامه و قطع اتصال در هنگام بسته شدن تابع يا برنامه ميباشد. الگوي RAII براي هر سيستمي که از منابع استفاده ميکند و لازم است بهصورت پيدرپي، منبع تخصيص داده و سپس آزاد کند، کاربرد دارد. اين منابع شامل بخشهايي از حافظه، فايلهاي باز، منابع شبکه و غيره ميتواند باشد. همچنين اين الگو براي زماني که منابع سيستم محدود است و هنگام آزادکردن منابع با مشکل مواجه ميشود و سبب اتلاف منابع يا حتي موجب اخلال در سرويسدهي ميشود، نيز بسيار مفيد است.
نکتة مهم: الگوهايي که در بخش 5-1 معرفي شدند، صرفاً الگوهاي امنيتي نيستند، بلكه الگوهايطراحي هستند كه از نظر امنيت بهبود داده شدهاند.
5-2- ديدگاه دوم، الگوهاي امنيت
در ديدگاه دوم، يعني الگوهاي امنيت، با انواع و اقسام ردهبنديها و روشهاي طبقهبندي الگوها مواجه هستيم که مستقل از الگوهاي گنگاوفور و تقسيمبندي مطابق با آن هستند. هنگامي که از الگوهاي امنيت بحث ميکنيم، عموماً به اين مسئله توجه داريم که فضاي مواجهة ما مجموعهاي از الگوها هستند که قرار است در بارة پيادهسازي و استفادة عملي از آنها تلاشکنيم. چهار دسته فعاليتهايي که ميتوان در حوزة الگوها انجام داد و غالباً با ابزار نيز انجام ميشود]15] عبارتند از:
· فعاليتهاي نگهداري الگوها شامل ايجاد، ويرايش، نشر و خواندن الگوها
· ردهبندي شامل طبقهبنديهاي مسئله و راهحل يا انواع دستهبنديهاي ديگر
· استفاده از آنها در مدلسازي معماريها و سيستمهاي فناوري اطلاعات
· استنتاج: آيا اين الگو مناسب است يا الگوهاي جايگزين ديگري داريم؟ از منظر نيازمنديهاي غيروظيفهاي، مثلاً کارايي کدام الگو مناسب حل مسئله مورد نظر است؟
در اين مقاله و در بخشهاي پيشرو (بخش6) بررسي تفصيلي درخصوص دستهبندي ردهبندي الگوها ارائه شده است و به علاوه دستهبندي جديدي نيز در اين مقاله مطرح شدهاست.
5-3- ديدگاه سوم، ديدگاه سيستم و چارچوب به الگوهاي امنيت
در ديدگاه سوم يعني ديدگاه چارچوب، بهکمک ديدگاه دوم مجموعهاي همبسته از الگوهاي امنيت طوري در کنار هم قرار ميگيرند که با بکارگيري توأمان آنها ميتوان سيستم امن را ايجاد نمود، به عبارتي با يک چارچوب مواجه هستيم. اين نوع مواجهه در سند ]17] مطرح شده است. از نظرگاه اين گروه، الگوهاي امنيت در دو بخش قرار ميگيرند: آنهايي که دسترسپذيري سيستم را تأمين ميکنند و آنهايي که حفاظت از سيستم شامل محرمانگي و صحت را تأمين مينمايند. با بكارگيري همة اين الگوها بهصورت توأمان و در قالب يك چارچوب، امنيت سيستم هدف تأمينميگردد.
5-3-1- گروه اول، الگوهاي مرتبط با دسترسپذيري
5-3-1-1- الگوي سيستم ايست بازرسي26
هدف اين الگو آناست که يک سيستم را طوري ساختاردهي کند که حالتش قابل بازيابي و بازگشت به يک حالت صحيح شناخته شده در حالتي که يک مؤلفه دچار عجز شود، باشد.
5-3-1-2- الگوي آماده به کار27
هدف اين الگو آناست که طوري سيستم را سازماندهي نمايد که سرويس ارائه شده توسط يک مؤلفه بتواند توسط مؤلفه ديگري از سر گرفته شود.
5-3-1-3-الگويسامانه مقاوم در برابر خطا با بررسي قياسي28
در اين الگو هدف ساخت سيستمي است که شکست غيروابسته در يک مؤلفه، سريعاً آشکار شود، بهطوري که آن شکست در يک مؤلفه، موجب شکست کل سيستم نميشود.
5-3-1-4-الگوي سامانه تکراري29
اين الگو، سيستم را طوري ساختاردهي ميکند که اجازة آمادهسازي سيستم از چند نقطه قابل انجام است تا در مواقع شکست يک يا چند مؤلفه يا ارتباط، سيستم بتواند بهراحتي بازيابي شود.
5-3-1-5-الگوي آشکارساز/مصحح ايراد30
اين الگو افزونگي را به داده اضافه ميکند تا بتواند در مواقع ايراد، آشکارسازي و بازيابي را انجام دهد.
5-3-2- گروه دوم، الگوهاي مرتبط با حفاظت
الگوهاي مرتبط با حفاظت که در ارتباط با تأمين محرمانگي و صحت هستند، عبارتند از:
5-3-2-1-الگوي سامانه حفاظتشده31
اين الگو طوري سيستم را ميسازد که همة دسترسيهاي کلاينتها به منابع، بوسيلة واسطها انجام ميگيرد که آن واسطها، سياستهاي امنيتي لازم را تحميل ميکنند.
5-3-2-2-الگوي خطمشي32
اين الگو براي هر مؤلفة غيرهمبسته از يک سيستماطلاعاتي، اجبار خطمشي امنيتي را جداسازيميکند تا از اجراي درست فعاليتهاي مرتبط با خطمشي اطمينان حاصلکند.
5-3-2-3-الگوي احراز هويت33
عموماً الگوهايديگر روي اين الگو گسترشمييابند، مثل الگوي خطمشي که معروفترين استفادهکنندگان از اين الگو JAAS و PAM هستند.
5-3-2-4-الگوي توصيفگر موضوع
اين الگو دسترسي به خصوصيات مرتبط با امنيت يک موجوديت که قرار است عمليات روي آنها انجام شود را ارائه ميکند.
5-3-2-5-الگوي ارتباط امن34
وقتي که لازم است دو بخش در مواجهه با يک تهديد با هم مرتبط شوند، اين الگو اطمينان از تحقق اهداف سياستهاي امنيتي را برآوده ميسازد.
5-3-2-6-الگوي زمينه امنيت35
اين الگو مرتبط با يک زمينه اجرايي مشخص يا يک فرايند، يک عمليات يا اقدام، امکاني را براي نگهداري خصوصيات و دادههاي امنيتي، فراهم مينمايد.
5-3-2-7-الگوي انجمن امنيت36
اين الگو ساختاري را تعريف ميکند که براساس آن امنيت ارتباطي بين هر مشارکتکننده و اطلاعات مورد نيازش را برقرار ميکند و وارسيهاي لازم براي اطمينان از دريافت حفاظت شدة اطلاعات توسط بخشهاي شرکتکنندة ديگر را انجام ميدهد.
5-3-2-8-الگوي نايب امن37
اين الگو روابط بين حفاظهاي دو نمونه از يک سيستم حفاظتشده را هنگامي که يک نمونه در دل ديگري جا داده شده باشد، تعريف ميکند.
6- الگوهاي امنيت و سازماندهي آنها
ديدگاههاي مختلفي براي سازماندهي الگوهاي امنيت مطرح شده است. هدف از سازماندهي و طبقهبندي الگوهاي امنيت، ارائه تسهيلات به استفادهکنندگاني است که انتظار نميرود خبرة حوزه امنيت باشند و با اين سازماندهيها قادر خواهند شد بهترين الگو را از ميان الگوها، متناسب با کار خود پيدا نمايند. در اين بخش سازماندهيهاي معروف و مهم مورد بررسي قرار ميگيرند و در بخش 7 اين مقاله سازماندهي مد نظر مولفان ارائه شده است و مزايا و معايب آن با سازماندهيهاي موجود تشريح شده است.
6-1- سازماندهي براساس مراحل چرخه عمر
در مقاله ]6[، نويسندگان از نقطهنظر چرخة عمر نرمافزار به الگوهاي امنيت پرداختهاند. الگوهاي امنيت در مراحل سهگانة استخراج نيازمنديها، طراحي و پيادهسازي مورد بررسي قرارگرفته و يك بخش هم به مقوله مهندسي الگوهاي امنيت از منظر چرخة عمر الگوها تخصيص داده شده است. نويسندگان اين مقاله بر اين باورند كه در مرحلة تعيين نيازمنديها، «دارائيها» بايد مد نظر قرارگرفته و دلائل حفاظت از اين دارائيها بررسي و نهايتاً نيازمنديهاي امنيتي به صورت قسمتي از نيازمنديهاي سيستم مشخص گردند. آنها الگوهاي امنيت در اين مرحله را به دو گروه الگوهاي فرايند تحليل و الگوهاي مدل-پايه تقسيم نموده و در هر كدام تعدادي الگو را مورد بررسي قرار دادهاند.
در الگوهاي مرتبط با فرايند تحليل، موارد زير توسط آنها شناسايي شدهاست و ما به دليل اهميت اين الگوها، توضيحات بيشتري از آنها را در اين نوشتار ميآوريم:
6-1-1- الگوي مشخص نمودن نيازهايامنيت براي دارائيهاي سازمان38
توضيحات زير در خصوص اين الگو از فصل ششم كتاب]18[ بهطور اجمال اخذ شدهاست. اين الگو با توصيف و شرح دارائيها، به ما کمک ميکند تا بفهميم که دارائيهايما در سيستم چه مشخصاتي دارند. اين الگو شامل شناخت و هويتشناسي دارائيهاي تجاري عوامل كسبوكار با تأثير امنيتي آنها، رابطة بين دارائيها و عوامل تجاري و نوع هر يک از آنهاست. دارائيهاي امنيتي بايد داراي چهار خصوصيت باشند كه عبارتند از محرمانگي، صحت، دسترسپذيري و جوابگو بودن به نيازها. سازمان انواع دارائيهاي کسبوکار که نيازمند حفاظت هستند را بايد به طور نظاممند و واضح مشخصکرده و همچنين تعيينکند هرکدام به چه نوع حفاظتي نياز دارند. اين فعاليت اصولاً به وسيلة يک معمار سازماني يا برنامهريز راهبردي انجام ميشود که شامل پنجمرحله است:
1. مشخصنمودن دارائيهاي کسبوکار (اطلاعات مربوط به داراييها مانند پرسنل و اطلاعات مالي، داراييهاي فيزيکي مانند ساختمانها)
2. مشخص نمودن عوامل کسبوکار که بر روي نيازهاي امنيتي دارائيها هم در داخل و هم در خارج سازمان تأثير ميگذارند، قوانين و مقررات مانند قوانين حفظ حريمخصوصي، روابط با شرکاي سازماني، مأموريت سازمان، اهداف و مقاصد و خطمشي، ميل به سرمايهگذاري قوي مالي، فرآيندهاي کسبوکار مانند حسابداري و فرآيندهاي سفارشها، وقايع حساس کسبوکار مانند فرآيندهاي پرداختهاي ماهانه، مکانهايي که در آن فرآيندهاي کسبوکار و حوادث رخ ميدهند.
3. تعيين اين که کدام يک از دارائيها به کدام يک از عوامل کسبوکار مرتبط هستند. در اين بخش ملاحظات زير مورد توجه قرار ميگيرند: (قانون حفظ حريم خصوصي که به اطلاعات کارکنان اعمال ميشود، برخي از انواع دارائيهاي فيزيکي ممکن است فقط در يک محل خاص وجود داشته باشند، ممکن است اطلاعات مالي منتخبي نياز به اشتراکگذاري با ديگر شركاء را داشتهباشند.)
4. شناسايي اين که چه نوع امنيتي ممکناست موردنياز باشد:
· محرمانگي: حفاظت در مقابل افشاي غيرعمد و غيرمجاز
· صحت: حفاظت در مقابل تغيير غيرعمد و غيرمجاز
· دسترسپذيري: ساخت دارائيهاي کسبوکار قابل استفاده مجاز
· پاسخگويي: مجوز مسئوليت براي انجام اعمال
5. بر اساس عوامل کسبوکار، تعيين اينکه هر نوع دارائي نياز به چه نوع امنيتي دارد.
شناسايي دارائيهاي شرکت و نيازهاي امنيتي از بهترين روشها براي بهتر کردن عملکرد شرکت است، اما اغلب بهصورت غيررسمي يا در راستاي تجزيه و تحليل مخاطرات امنيتي انجام ميشود. مدل SSE-CMM 39 سطح توانايي فرآيند مهندسي امنيت مرتبط با ارزيابي ريسک را مشخص ميکند. اين مدل عناصري شبيه به اين الگو را داراست:
· امنيت را در کل حوزة سازمان مشخص ميکند.
· نيازهاي هماهنگ امنيتي برگرفته از نهادهاي خارجي که شامل قوانين، سياستها و استانداردها هستند، را مشخص ميکند.
· روند تأثير دارائيها شامل شناسايي و توصيف دارائيهاي سازمان و نياز به يکپارچگي، محرمانگي، دسترسپذيري، اصالت و قابليت اطمينان را شامل است.
فوايد اين الگو عبارت است از:
· تسهيل در ايجاد تعادل و تصميمگيريهاي آگاهانه براي نيازهاي امنيتي شرکت با استفاده از نيروهاي رقيب و عوامل صريح کسبوکار را فراهم ميسازد.
· نتيجة مفيد ديگر استفاده از اين الگو قابليت رديابي از حفاظت دارائيهايي است که در کسبوکار ايجاد ميشود.
اين مدل همچنين مضراتي دارد که هزينهبر بودن، يكياز آنها است.
6-1-2- الگوي ارزشيابي دارايي40
توضيحات زير در خصوص اين الگو از فصل ششم كتاب ]18] بهطور اجمال اخذ شده است:
ارزشيابي دارايي کمک ميکند که شرکتها و سازمانهاي بزرگ دارائيهايي را که مالکيت آنرا دارند يا آن را کنترل ميکنند، مشخص و ارزشگذاريکنند. در اين ارزشيابي شش سطح و درجه تعيين ميگردد: از کماهميتترين تا باارزشترين و از سه ديدگاه مختلف نيازمنديهاي امنيتي، ارزش مالي و تأثير بر کسبوکار مورد بررسي قرار ميگيرند. بنابراين ما براي هر دارائي يک ارزش تعيين ميکنيم که نه تنها ارزش بلکه مخاطره هر دارائي هم درنظر گرفته ميشود. انواع دارائيها شامل دارائيهاي اطلاعاتي مثل اطلاعات پرسنل، دادههاي مالي، دادههاي تحقيقاتي و دارائيهاي فيزيکي مثل ساختمان، وسايل نقليه و کارمندان هستند. سازمانها بايد اهميت کلي اين دارائيها را مشخصکنند. هدف در اين الگو اين است كه يک سازمان بزرگ بايد مشخص کند چه دارائيهايي در فرايند ارزيابي ريسک دخيل هستند و بايد ارزش هر يک از آن دارائيها را معينکند. مشکل اصلي اين است كه توانايي تعريف کردن يک مقدار براي دارائي، يک عنصر اساسي در هر قسمت از ارزشيابي فرايند تعيين مخاطره ميباشد. تهديدات و آسيبپذيريها هم دارائيها را افشاء ميکنند، بنابراين بايد دارائيها، ارزشگذاري شوند. بدون تعيين اين مسئله، يک سازمان قادر به ارزشيابي درستي از ريسکهايي که اتفاق ميافتد، نيست. يک شرکت بزرگ بايد يک روش استاندارد براي ارزشيابي و توصيف داراييهايش داشته باشد و بهعلاوه بايد قادر باشد هزينههايي که منجر به از دستدادن يك دارايي ميشود را ارزشيابي کند. راهحل اين است كه بهصورت نظاممند يک مقدارکلي را براي هر دارائي در حيطه ارزيابي مخاطره آن، تعيينکنيم. اين بدين معناست که چهار مرحلة زير را بايد انجام دهيم:
1. تعيين ارزش امنيتي آن: اين مقدار بستگي به ميزان اطلاعات امنيتي آن دارائي دارد، مثل محرمانگي، حفظ جامعيت، دسترسپذيري و پاسخگويي.
2. تعيين ارزشمالي آن: شامل هزينههاي تعمير و جايگزيني يا نگهداري و راهاندازي. هزينههاي برق و ميزان فضاي آن، موردي است که احتمالاً بين همة دارائيها توزيع شدهاست.
3. تعيين تأثير آن بر کسبوکار: تعيين يک ارزش براي دارائي به جهت ميزان تأثيري که بر کسبوکار ميگذارد.
4. تعيين يک ارزشکلي و ساخت يک جدول مقدار: تلفيق نتايج مقادير امنيت، مالي، کسبوکار و تعيين يک مقدارکلي که يک سازمان روي يک دارائي ميگذارد و در نهايت بايد اين نتايج را در جدول مقدار دارايي وارد کرد.
ارزشيابي دارائيها يک جزء کليدي از کلية ارزشيابيهاي ريسکهايي است که بهطور گستردهاي پذيرفته شدهاند از جمله IST800-30] [ISO13335-3], [ISO17799], [Pel01. اين الگو محاسن زير را دارا ميباشد:
· منجر به بدستآوردن يک ديدگاه واقعبينانه و کامل از دارائيهايي ميشود که در کسب وکار حياتي هستند.
· نتايج ارزيابي دارائيها ميتواند به منظور توسعه يا بروزرساني سازمان و طرح بازيابي و تداوم کسب وکار استفاده شود.
· ارزشکيفي، بهنسبت بدست آوردن هزينههاي سنگين مقادير کمي ارزشيابي دارائي، سادهتر بدست ميآيد و درنتيجه منجر به تسريع روند کلي ارزشيابي مخاطره ميگردد.
· يک سازمان بزرگ ممکن است مجبور به تغيير شيوة خود گردد، اگر يک دارائي بيشتر از آنچه فکرش را ميکردند، ارزش داشته باشد. اين مسئله منجر به سود بيشتر در درازمدت ميگردد.
6-1-3- الگوي ارزيابي تهديد41
توضيحات زير در خصوص اين الگو از فصل ششم كتاب]18] و مقاله]16] بهطور اجمال اخذ شده است:
تهديدات، شرايط بالقوه بروز حوادث هستند. آنها ميتوانند بر روي هر دارائي كه در موقعيت مرتبط با تهديد باشند، تأثير بگذارند. ارزيابي تهديد يکسازمان، تهديدهاي وابسته به دارائيهاي سازمان را شناسايي ميکند و احتمال يا وسعت وقوع حوادث روي آنها را تعيين مينمايد. مسئله اصلي اين است كه يك سازمان ممكن است نتواند وسعت و دامنة دارائيهاي درمعرض خطر را تشخيص دهد و لازم است مطابق يك روش نظاممند دامنة تهديدات و خطر بروز آنها را همواره مورد سنجش و ارزيابي قرار دهد. مطابق اين الگو، نقشه راهبردي كار تهيه و مراحل زير مطابق آن انجام ميگردد:
1. شناسايي و تشخيص تهديد شامل منبع تهديد، كاري كه صورت ميگيرد و پيامدهاي آن
2. ساخت جدول تهديدات
3. تعيين احتمالات
4. درجهبندي هر تهديد
ويژگيهاي زير درخصوص اين الگو قابل ذكر است:
· عواملي که باعث کم شدن وسعت تهديد و ميزان مخاطره ميشوند، مشخص ميگردند.
· تشخيص پيامدهاي تهديدات امكانپذير ميشود.
· تلاش لازم براي درک تمام تهديدات احتمالي ميتواند زمان زيادي را بهخود تخصيصدهد.
6-1-4- الگوي رويكردهاي امنيت سازمان42
توضيحات زير در خصوص اين الگو از فصل ششم كتاب] 18] بهطور اجمال اخذ شدهاست:
اين الگو شامل پيشگيري، رديابي و واکنش به مسائل و مشکلات امنيتي است و اساس و پايهاي است براي تصميمگيري اينکه چه سرويسهاي امنيتي بايد توسط سازمانها بنا نهاده شوند. در اين زمينه دارائيهاي يک کسبوکار که نياز به محافظت دارند و خصوصيات و عناصر امنيت مورد نياز آن (محرمانگي، صحت، دسترسپذيري) بايد مورد شناسايي دقيق واقع گردند. براي هر يک از انواع دارائيها که نياز به محافظت دارند يک مجموعه از رويکردهاي يکپارچه مشخص ميشود. فرآيند كار بر روي دو منظر تکيه دارد كه عبارتنداز منظر و ديدگاه انفرادي از نوع دارائي و منظر و ديد جامع و سراسري سازمان. براي هر نوع دارائي بهطور نظاممند و صريح و آشکار مجموعهاي از مخاطرات امنيتي مورد امتحان قرارگرفته و بدينوسيله رويکرد امنيتي مناسب و اولويتهاي پيشنهادي کسبوکار، استفاده ميشود. فرآيند تعريف رويکردها بهطور نمونه توسط يک معمار يا طراح استراتژيک اجرا ميگردد. قدم اول جمعآوري تمام اطلاعات لازم شامل انواع دارائي و ملزومات امنيتي آنها ميباشد. سپس اطلاعات مربوط به شرايط مخاطره که بر رويکردها تأثير دارند، جمعآوري ميشوند و در نهايت رويکردهايي که انتخاب شدهاند يکپارچه ميگردند.
مزاياي حاصل از بكارگيري اين الگو عبارتند از:
· سطح آگاهي مديريت را ارتقاء ميدهد.
· اطلاعات لازم براي نحوة تصميمگيري درباره رويکرد امنيتي مربوط به شناسايي نيازمنديهاي امنيتي را ارائه ميدهد و به عبارتي آگاهيهاي لازم را فراهم ميكند.
· به تخصيص بهتر منابع براي حفاظت از دارائيها كمك ميكند.
· امكان بازخورد در فرايند تصميمگيري را فراهم ميكند.
· ايجاد تعادل منطقي در انتخابهاي بين امنيت و كارايي را فراهم ميكند.
· نشان ميدهد که ميتوان رويکردها را به منظور حفاظت سادهتر از دارائيها با يکديگر تلفيق نمود.
در ادامه الگوهاي مدل-پايه مورد اشاره قرار ميگيرند:
6-1-5- الگوهاي مبتني بر تروپوس43
تروپوس يک متدولوژي توسعه سيستمهاي نرمافزاري امنيت-گرا ميباشد که مفاهيم مهندسي نيازمنديها مانند بازيگر، هدف، برنامه را با مفاهيم مهندسي امنيتي مانند تهديد، محدوديت امنيتي و مکانيزم امنيتي، تحت يک فرآيند واحد براي پشتيباني از تجزيه و تحليل و توسعه سيستمهاي نرمافزاري امن و قابل اعتماد ترکيب ميکند و شامل الگوهاي پيشنهادي توس گيورگيني44 كه مشخصكنندة يك نوع محرمانگي خاص هستند و الگوهاي پيشنهادي موراتيديس45 براي حفاظت در برابر عوامل بدخواه ميباشد.
6-1-6- الگوهاي مبتني برقالب مسئله
اين الگو توسط هيتبر46 و همکاران وي ارائه شده است. در مرحله طراحي، معتقدند كه بايد كاركردهايي را طراحي كنيم كه خصوصيات امنيت مانند دسترسپذيري، محرمانگي، صحت و پاسخگويي كه در مرحله نيازمنديها معلوم شدند را تأمين و برآورده كنند. طراحي مواردي مثل كنترل دسترسي، تصديق اصالت، رمزنگاري، امضاي ديجيتالي و ثبت رخداد، بهطور خاص در اينجا طرح شدهاست. آنها متعقدند طراحي كاركردهاي امنيت نه تنها به خصوصيات چهارگانة مذكور، بلكه به استراتژيهاي امنيت مانند استراتژي «پيشگيري در قبال حملات» يا «آشكارسازي حملات» وابسته است.
6-1-7- الگوهاي مرتبط با معرفي معماري مفهومي
تلاشهاي يادروبارکالو47 براي معرفي معماري مفهومي امنيت به صورت الگو شامل ارائه يك توصيف زبان طبيعي از هفت الگوي امنيت به نامهاي Single Access Point, Check Point, Roles, Session, Full View with Errors, Limited View, Secure Access Layer است.
6-1-8- الگوهاي امنيت نشان داده شده با UML
اين بخش شامل معرفي تلاشهاي صورت گرفته توسط فرناندز و پن48 براي نشاندادن الگوهاي امنيت بهوسيله UML بهخصوص مواردي مانند اجازه دسترسي، كنترل دسترسي نقش-پايه، امنيت چندسطحي و اجازة دسترسي فايل است.
6-1-9- الگوهاي 25گانه
اين بخش شامل 25 مورد الگوي امنيت در سطح معماري و طراحي، دستهبندي شده در كتاب]18] است.
علاوه بر موارد فوق، نويسندگان ]13] تلاش نمودند تا در اين مرحله نحوة استفاده از الگوهاي طراحي را همراه با ملاحظات امنيتي تبيين نمايند. براي مثال به كمك الگوهاي معرفيشده در كتاب]18]، سه الگوي ديواره آتش در زمينه ويژگي دسترسپذير بودن خدمات امنيت معرفي شدهاند كه عبارتنداز:
· سطح IP: الگوي ديواره آتش پالايش بسته49
· سطح انتقال: الگوي ديواره آتش نيابتي50
· سطح خدمت: الگوي ديواره آتش با حالت کامل51
اين الگوها در تأمين ويژگي محرمانگي نيز كمك ميكنند]7]. در ادامه براي ويژگي پاسخگويي كه يكي از ويژگيهاي چهارگانه مطرحشده در بخش خصوصيات امنيت است نيز تعدادي الگو را از كتاب]18] معرفي نمودهاند كه همة آنها از نوع الگوهاي فرايندي هستند]7] و عبارتند از:
· الزامات حسابداري امنيتي52
· الزامات مميزي53
· دنبالههاي مميزي54
· الزامات تشخيص نفوذ55
· الزامات عدم انکار56
براي مرحله پيادهسازي، آنها معتقدند وجود خطوط راهنما كفايت نميكند چون خطوط راهنما به آساني قابليت استفاده مجدد نداشته و به سفسطهگويي گرايش دارند. به زعم آنها ما به الگوهاي امنيت در سطح پيادهسازي نياز داريم که مستندات نيمهساختيافته يا واژگان استانداردي هستند که بهطور واضح خطوط راهنما را بيان ميکنند و محصولات مرتبط با آنها را ارائه ميدهند]7]. در مرحله پيادهسازي نويسندگان به تعدادي الگوي مرتبط با حملات اشاره ميکنند که بيانکننده اين است که چه وقتي به چه چيزي و چگونه حمله انجام ميشود و موجب درهم شکستن نرمافزار ميگردد. دانستن اين الگوهاي حمله براي برنامهنويسان اين امکان را ايجاد ميکند که بهبودهاي لازم را براي در امان بودن از اين الگوهاي حمله ايجاد نمايند]7]. الگوهاي بازآرايي57 که وجوهي از امنيت را تأمين ميکنند نيز به عنوان الگوهاي امنيتي مرحله پيادهسازي، مورد بحث قرار گرفتهاند.
مهندسي الگوي امنيت اشاره به فعاليتهايي دارد که شبيه چرخه عمر الگوهاي نرمافزار هستند و شامل دو فرآيند ميباشند، فرايند استخراج و فرآيند بکارگيري]7]. در اين مقاله درخصوص نحوة استخراج الگوها و ارتباط آنها با شناخت نيازمنديهاي امنيت، پيداکردن ماشيني الگو براي يک مسئله و زمينة دادهشده با استفاده از هستانشناسي و نيز معيارهاي غيروظيفهاي58، دستهبندي الگوها با روشهاي مختلف مانند مدل CIA و استرايد59 بحث نموده و نيز به مواردي مانند ذخيرهسازي الگوها و دستيابي به آنها فراخور مسئله، آناليز کيفيت و متدلوژي ايجاد بهوسيله الگوهاي امنيت، پرداخته و نهايتاً کفايت موضوع را بررسي و ابراز داشته است که در موارد زيادي نياز به کشف الگوها داريم. در مقاله فوق بيان شدهاست که در مرحلة طراحي، جهت کوتاهکردن فاصله بين مرحله شناخت نيازمنديها، طراحي و مرحله پيادهسازي به الگوهايي براي مخاطره و حمله نياز است. نياز به متدولوژي براي طراحي الگوهايحمله در سطح طراحي و نيز يکسانسازي الگوهاي امنيت با مدلهاي نظام، از جمله نيازهاي مهم آتي برشمرده شده است.
6-2- سازماندهي براساس بازنمايي سطوح منطقي
در ]19] الگوهاي امنيت براساس بازنمايي سطوح منطقي كاربردهاي مبتنيبر وب تقيسمبندي شده است و اين تقسيمبندي كلي را براي فناوريهاي J2EE تعميم داده و بهطور خاص ارائه ميكند. براساس تقسيمبندي عمومي اين روش، الگوها در سطوح وب، كسبوكار، يكپارچهسازي و قابليتهاي زيرساختي كيفيت سرويس، مورد تفكيك قرار ميگيرند. جداول خلاصه زير اين الگوها را براي سه سطح وب، کسبوکار و يکپارچهسازي بيان ميكند.
الف- الگوهاي لاية وب:
در اين بخش شش الگو به اختصار معرفي ميشوند که عمدتاً درجهت تأمين امنيت لاية وب معرفي و استفاده ميشوند (جدول 2).
ب- الگوهاي لايه كسب وكار:
در جدول 3 الگوهاي مرتبط با لايه کسب و کار آمده است.
ج- الگوهاي لاية يكپارچهسازي:
در جدول 4 الگوهاي لايه يکپارجهسازي نام برده شده است.
[1] Reuse
[2] Formal Method
[3] Semi Formal Method
[4] Add-on
[5] OOPSLA (Object-Oriented Programming, Systems, Languages & Applications) is an annual ACM research conference.
[6] Ad-hoc
[7] Secure Patterns
[8] Security Patterns
[9] Distrustful Decomposition (Privilege reduction(
[10] PrivSep (Privilege Separation]
[11] Distrustful Decomposition
[12] Defer to Kernel
[13] Secure Factory
[14] Secure Strategy Factory
[15] Secure Builder Factory
[16] Secure Chain of Responsibility
[17] Secure State Machine
[18] Secure Visitor
[19] Node
[20] Secure Logger
[21] Clear Sensitive Information
[22] Secure Directory
[23] Pathname Canonicalization
[24] Input Validation
[25] Resource Acquisition Initialization
[26] Checkpointed System
[27] Standby
[28] Comparator-Checked Fault-Tolerant System
[29] Replicated System
[30] Error Detection/Correction
[31] Protected System
[32] Policy
[33] Authenticator
[34] Secure communication
[35] Security Context
[36] Security Association
[37] Secure Proxy
[38] Security Needs identification for Enterprise Assets Pattern
[39] The Systems Security Engineering Capability Maturity Model
[40] Asset Valuation Pattern
[41] Threat Assessment Pattern
[42] Enterprise Security Approaches Pattern
[43] Tropos
[44] Giorgini
[45] Mouratidis
[46] Hatebur
[47] Yoder and Barcalow
[48] Fernandez and Pan
[49] IP Level: Packet Filter Firewall pattern
[50] Transport Level: Proxy Firewall pattern
[51] Service Level: Stateful Firewall pattern
[52] Security Accounting Requirements
[53] Audit Requirements
[54] Audit Trail
[55] Intrusion Detection Requirements
[56] Non-Repudiation Requirements
[57] Refactoring
[58] Non Functional Requirements
[59] STRIDE مدلی برای شناسایی تهدیدات امنیتی رایانه است که توسط Praerit Garg و Loren Kohnfelder در مایکروسافت توسعه یافته است و شامل شش دسته است.
جدول 2. الگوهاي لاية وب]19]
رديف | نام الگو | توضيح الگو |
1 | ارتباط امن | اين الگو استفاده از لاية انتقال داده امن را براي ارتباطات مشتري به کارپذير و کارپذير به کارپذير ارائه و تشريح ميکند. |
2 | انجمن امن | نشان ميدهد بين دو موجوديت چگونه تعامل امن برقرار نمائيم. براي مثال حفاظت از نشست بين مرورگر و کارپذيروببا استفاده از SSL يا TSL و ايميل امن با استفاده از رمزنگاري و پراکسي. |
3 | نقطه دسترسي منفرد | اين الگو اجبار ميکند که يک مدخل ورودي منفرد براي خدمات کسب وکار و کاربردها داشته باشيم و يک صفحه يا اعلان لاگين را براي اين کار ارائه ميکند. |
4 | نقطه بررسي | فرايند احراز هويت و مجوزدهي را بوسيله يک نقطه وارسي، متمرکز ميکند. اين الگو استفاده از JAAS را براي پيادهسازي سيستم Check Point مفروض ميداند. |
5 | نشست | در کاربردهاي امن همواره نياز داريم اطلاعات سراسري را در کل چرخه حيات کاربرد بدست آورديم. اين الگو اطلاعات نشست را (براي مثال متغيرهاي نشست http اطلاعات فراخواني RPC، جزئيات سفارش دهنده سرويس در JMS يا SOAP] که بايد براي پيگيريهاي امنيتي نگهداري شوند، مشخص ميکند. |
6 | تامين کننده امنيت | تشريح ميکند که يک کلاينت در قبال ادعاي احراز هويت و مجوز دهي ارائه کننده سرويس شناسايي، چه بايد بکند. |
جدول 3. لگوهاي لاية کسبوکار]19]
رديف | نام الگو | توضيح الگو |
1 | نقش | تفکيک و جدا شدن يک کاربر خاص از امتيازاتش را با استفاده از نقش او نشان ميدهد. |
2 | توضيف کننده موضوع | اين الگو اجازه ميدهد دسترسي به صفات امنيتي يک موضوع از طريق عمليات انجام پذيرد. اين الگو مطابق استبا javax.security.auth.Subject در JAAS. اين الگو ميتواند براي بررسي مجوزها و اختيارات مورد استفاده قرار گيرد. |
3 | بافتار امنيت | امکان لازم براي دسترسي به خصوصيات امنيتي مثل شناسه کاربر و شناسه گروه را ارائه ميکند. |
4 | ديدکامل با خطا | اين الگو يک ديد کامل به کاربر در باره ايرادات رخ داده شامل استثنات ضروري را ارائه ميدهد. |
5 | ديد محدود | اجازه ميدهد کاربران فقط آنچه را که دسترسي دارند ببينند. |
6 | ثبت رخداد امنيت | اين الگو مرتبط است با بدست آوردن و پيگيري کردن رخدادهاي مرتبط با امنيت براي لاگ کردن و دنبال کردن مميزي. اطلاعات لاگ شده براي ارزيابي ريسک يا تحليل مورد استفاده قرار ميگيرد. |
جدول 4. الگوهاي لايه يكپارچهسازي]19]
رديف | نام الگو | توضيح الگو |
1 | Authoritative Source of Data | اين الگو منبع داده را براي احراز هويت و صحت داده وارسي ميکند. |
2 | Third-Party Communication | اين الگو کمک ميکند ريسکهاي روابط طرف ثالث مشخص شده و معيارهاي حفاظت امنيت براي ارتباطات طرف ثالث را بکار ميگيرد. |
6-3- سازماندهي براساس طبقهبندي تهديدپايه
حفيظ و همكارانش در]20] به كمك طبقهبندي توانستند سازماندهي مناسبي از الگوهاي امنيت ارائه دهند. آنها در اين مقاله متعقدند سازماندهي مناسب الگوهاي امنيت هم براي نويسندگان الگوها و هم استفادهكنندگان مفيد هستند و هنوز سازماندهي مناسبي وجود ندارد و بهعلاوه وجود تعداد زياد الگوها امكان پيدا كردن مناسبترين آنها را سخت كرده است. آنها با بهرهگيري از تعريف الگو كه عبارت است از يك راهحل براي يك مسئله در يك زمينه]20]، سه عنصر كليدي دامنه1، زمينه2 و مسئله3 را از اين تعريف استخراج نموده و به عنوان سنجههاي سازماندهي در نظر گرفتند:
1. طرح ردهبندي براساس مفاهيم دامنه شامل مفاهيم پايهاي محرمانگي، صحت، دسترسپذيري (مدل CIA)
2. طرح ردهبندي براساس زمينه:
· زمينة برنامه: قسمتي از سيستم كه الگو در آنجا بكار گرفته ميشود. اين بخش از مدلهاي نظامي كه در سه بخش مدخل ورودي، پيرامون و هستة اصلي دربردارندة زيرساخت نسبت به استقرار امنيت اقدام ميكنند، اخذ شده است. لذا سه بخش هسته، پيرامون و بخش بيروني درنظر گرفته شده است.
· ذينفعان و ديدهاي آنها: دستهبندي براساس چارچوب جدولي زكمن
3. طرح ردهبندي براساس دامنه مسئله و مدل تهديد: براساس مشكلي كه الگوها حل ميكنند، طبقهبندي صورت ميگيرد. در اين تحقيق، 14 الگو براي نمونه انتخاب شده است، شامل موارد مندرج در جدول 5 است:
جدول 5. الگوهاي چهاردهگانة نمونه براي بررسي]20]
شماره | نام الگو | شماره | نام الگو |
1 | Authenticator | 8 | Policy Enforcement Point |
2 | Authorizatin | 9 | Replicated System |
3 | Checkpointed System | 10 | Safe Data Buffer |
4 | Defense in Depth | 11 | Secure Pre-Forking |
5 | Exception Shielding | 12 | Single Access Point |
6 | Minefield | 13 | Subject Descriptor |
7 | Password Synchronizer | 14 | Grey Hats |
طرح اول براساس مدل CIA:
· محرمانگي شامل هفت الگوي 1و 2 و 5 و 8 و 11 و 12 و 13
· صحت يك الگو شامل 10
· دسترس پذيري يك الگو شامل 3
· صحت و دسترسپذيري دو الگو شامل 7 و 9
طرح دوم براساس زمينه: زمينه برنامه (كاربرد):
· هسته برنامه6 الگو شامل 3 و 5 و 6 و 10 و 11 و 13
· محيط برنامه چهار الگو شامل 1 و 2 و 8 و 12
· بيرون از برنامه دو الگو شامل 7 و 9
· همه طبقات دو الگو شامل 4 و 14
در جدول 6 تطابق الگوهاي چهارده گانه جدول 5 با جدول زکمن تشريح شده است.
جدول 6. تطابق الگوهاي چهاردهگانة فوق با جدول زکمن ]20]
دید | وظيفه | داده | آزمون |
ديد معمار | الگوهاي 3 و 8 و 9 و 11 و 12 |
|
|
ديد طراح | 1 و 7 | 5 و 13 |
|
ديد پيادهساز |
| 10 | 14 |
در اين خصوص مطابق شش بُعد مدل استرايد موارد زير تطبيق داده شده است:
· جعل: سه الگو شامل 1 و 7 و 13
· دستکاري سه الگو شامل 3 و 10 و 12
· انکار: هيچكدام
· افشاي اطلااعات: دو الگو شامل 2 و 5
· منع سرويس: يك الگو شامل 9
· بالابردن امتياز: يك الگو شامل 11
· همه طبقات: چهارالگو شامل 4 و 6 و 8 و 14
كار اساسي كه در اين مقاله انجام گرفته است، علاوه بر ارائه انواع ردهبنديها، ارائه يك درخت سلسلهمراتبي از الگوها مطابق با مدل تهديد استرايد (برگرفته از حروف اول شش مفهوم آمده در شعبههاي شکل 3 است شامل جعل4، دستکاري5، انکار6، افشاي اطلاعات7، منعسرويس8 و بالابردن امتياز9) و زمينة كاربرد10 است که صورت پذيرفته است. (درخت شکل 3 برگرفته شده از ]20] ميباشد.)
6-4- سازماندهي براساس طبقهبندي حمله-پايه
در اين راستا تلاش مهمي توسط آندراس ويسار11 و همكارانش انجام شده که در مقاله]21] ارائه شدهاست. از ديدگاه اين مقاله همة طرحهاي ردهبندي ارائهشده داراي عيب هستند. ردهبنديهاي مبتني بر مفهوم امنيت براي مثال دقيق نيستند و يك الگو ممكن است ذيل چندين طبقه قرارگيرد. ردهبندي براساس لاية منطقي موجب ميشود كه يك چشمانداز و منظر از الگوها پديد آيد، ولي كمكي به انتخاب مناسب نميكند زيرا معلوم نميشود كجا و به كدام دليل يك الگو بكارگرفته شده است.
شکل 3. شکل سلسلهمراتبي تطابق الگوها با مدل تهديد استرايد]20]
ردهبندي جدولي براساس انواع ديدگاهها، ديد خوبي ارائه ميكند ولي با نيازمنديهاي امنيتي همراستا نشده است]21]. ايدة اين مقاله استفاده از الگوهاي حمله براي دستهبندي الگوها است. اين مقاله به كمك الگوهاي حملة معرفي شده در سايت کپک12 طبقهبندي خود را ارائه ميدهد. در اين سايت، شركت MITRE طبقهبندي كاملي از حملات ارائه نموده و هدفش را از ارائه اين اطلاعات به این صورت بيان ميدارد (خلاصه شده از]22]): «نهاد کپک اين اطلاعات را براي برنامهنويسان و طراحان، آزمونكنندهها، آموزشدهندهها و همة كسانيكه ميخواهند در چرخة عمر سيستم، قابليتهاي امنيت را توسعه دهند، در قالب طبقهبندي و بهصورت عمومي ارائه مينمايد. هر الگوي حمله دربردارندة دانستنيهاي مرتبط با طراحي و نحوة اجراي حمله توسط حملهكننده و راهنماي كاهش اثرات آناست.»
در روش کپک هر الگوي حمله داراي يك شناسه است و اطلاعات كاملي از سناريوي اجراي حمله تا راهحلهاي مقابله و نيز ديگر اطلاعات مثل رابطة الگوي حمله با ديگر الگوهاي حمله داده شده است. در ]21] به مدد اين اطلاعات و استفاده از مدل تهديد استرايد، طبقهبندي جديدي معرفي شدهاست كه نمونة شکل 4 را به عنوان گلچين ارائه دادهاست. اين نمونه ساختار كار را نشان ميدهد. در لاية دوم از طبقهبندي، ششبُعد مدل تهديد استرايد ارائهشده و ذيل هركدام حملات مرتبط و الگوهاي حمله درج شدهاند.
مزيت اين روش نسبت به بقيه آن است كه استفادهكنندگان پس از مشخص شدن الگوي يك حمله خاص، بهآساني ميتوانند الگوي امنيت مرتبط را پيداکرده و بهعلاوه اين روش كمك ميكند الگوهاي مشابه مشخص شوند]21]. الگوهاي طراحي امنيت در يك دسته الگوي حمله يكسان، ممكن است شبيه يا حتي از افزونگي برخوردار باشند و طبقهبندي ارائه شده كمك ميكند منظر و چشمانداز الگوهاي طراحي امنيت به شكل منطقيتري ارائه شود]21]. مثال زير از ]22] براي كمك به فهم بهتر مطلب فوق آورده شدهاست.
«يكي از حملههاي تعريف شده در كاتالوگ کپک، حملة مردي در ميانه با ID94 است. اين حمله ارتباط كانال بين سرويسدهنده و مشتري را هدف قرار ميدهد. حملهكننده سعي دارد از اطلاعات مبادلهشده بين دو طرف استراق سمع كند. هدف الگوهاي لوله امن و کانال امن، امن نمودن ارتباطات بين موجوديتهاي مختلف است. هر دو الگو شبيه هم هستند و كمك ميكنند تا از فعاليت مردي در ميانه پيشگيري گردد. اگر طراحان نسبت به حساس بودن سيستم طراحي شده نسبت به چنين حملاتي واهمه داشته باشند، طبقهبندي پيشنهادي به آنها كمك ميكند تا الگوي مواجهه مناسب را پيداکنند.»
شکل 4. طبقهبندي براي جايدهي الگوها مطابق با الگوهاي حمله]21]
6-5- سازماندهي براساس دامنه كاربرد
مقاله]23] تلاش وسيعي براي بررسي همة منابع مرتبط با الگوهاي امنيت را بخرج داده است. ميخاييل بونکه13 و همكاران مدعي هستند كلية نوشتگان زمينه را از سال 1997تا سال 2010 بصورت نظاممند بررسينموده و توانستند 409 الگو را مطابق با دامنة كاربرد مشتمل بر 162 الگو در حوزه نرمافزار، 84 الگو در حوزه سازمان، 56 الگو در زمينة شبكه، 23 الگو در زمينه كاربَر و 35 الگو در زمينة رمزنگاري دستهبندي نمايند. شكل4 اين دامنهها را نشان ميدهد ]23].
7- پيشنهاد چارچوب جديد: چارچوب پويا و پسانِگر در مقابل چارچوب ايستا و پيشانِگر
دستهبنديهاي الگوهاي امنيت بايد مبتني بر يك روش نظاممند باشند تا بتوانند الگوها که از تعدد بالايي برخوردار هستند را دستهبندي كنند و بهعلاوه، يك دستهبندي بايد قادر باشد الگوهاي جديد را در خود جاي دهد]23]. بررسي دستهبنديهاي ارائه شده نشان ميدهد که همگي آنها از ويژگيهاي زير بهطوركامل برخوردار نيستند:
· پوشش همه ذينفعان براي امنيت سامانه در کل چرخه حيات سيستم
· همة وجوه و حوزههاي اساسي امنيت مدنظر قرار نميگيرند.
· براساس الگوهاي موجود هستند و قابليت توسعه براي پذيرش الگوهاي آينده را مشخص نميسازند
بهعلاوه اگر چارچوبي باشد كه قابليت پذيرش و جايدهي الگوهاي امنيت چابک را بهتر از چارچوب ديگر کسب نمايد براي ما مطلوبتر است. منظور از الگوهاي چابک امنيت، الگوهايي هستند که خصوصيات ششگانة زير با عنوان خصوصيات SAREPH را داشته باشند]24]:
· S : خودسازمانده14
· A : وفقدهنده خود با وضعيتهاي پيشبينينشده15
· R : داراي واکنش بازگشتپذير16
· E : تحولپذير در مقابل تغييرات محيط17
· P : نوعآوري پيشگيرانه18
· H : هماهنگ با اهداف سامانه19
عليرغم ارائه انواع طبقهبنديها و بحثهاي مختلف صورتگرفته در اينخصوص، هنوز نقشة كاملي كه هر ذينفع بداند چگونه ميتواند به الگوي مناسب براي كارش رهنمون شود، وجود ندارد. اگرچه مطابق چارچوب زكمن، به اين موضوع پرداخته شده است]20] ولي نه تنها دستهبندي ذينفعان کامل نيست بلکه نظام مواجههاش به مفاهيم امنيت ناقص بوده و حداکثر بهصورت افزودن يك ستون اضافي براي امنيت است]18]. يعني فضاي مواجهات امنيت بهعنوان يك لاية واسط براي تسريع در آدرسدهي منظور نشده است. براي مثال معمار به عنوان يك ذينفع از كدام فضاي گفتماني امنيت مثل تهديد، آسيبپذيري، كنترل، دارائي، خصوصيت، استاندارد و غيره بايد به وظايف، دادهها و آزمون بپردازد؟ اين يعني نياز به تلاقي ديدگاهها (ذينفع) با هستانشناسي امنيت. اين همان ايدة جديد است. براي نيل به اين منظور ابتدا مجموعه ذينفعان و حوزههاي اصلي امنيت را بدست ميآوريم. مطابق با ]25] در چرخة عمر سيستم انواع ذينفعان وجود دارند مانند مديريت عالي، مسئولين واحد کسبوکاري، مدير فناوري اطلاعات، متخصصين امنيت، مالکان برنامه کاربردي، برنامهنويسان/توسعهدهندگان، مديران پروژه/رهبران تيم، معماران فني، مديران تضمين کيفيت، تحليلگران کسبوکار، مسئولين تحويل، مدير پروژه سمت مشتري، و مميزان.
مطابقبا هستانشناسي امنيت]6] تعداد يازده حوزه كلان و اصلي تهديد، منبع تهديد، منشاء تهديد، آسيبپذيري، شدت آسيبپذيري، كنترل، نوع كنترل، كنترل استاندارد، سازمان، دارائي، و خصوصيت امنيتي قابل احصاء است.
چارچوب كلي طرح در زير نشان داده شده است. مطابق اين چارچوب ما تعداد 13x11مدخل داريم که هر مدخل بايد دقيقاً مطابق خصوصيات و نقشهاي هر ذينفع و فضاي مواجهه امنيتي او يعني يک يا چند تا از هستانهاي گفته شده و روابط آن هستان با بقيه هستانها موردبررسي و تحقيق قرار گيرد. لزوماً همه مدخلها در اين چارچوب ممکن است معنيدار نباشند، ولي هر مدخل بهتنهايي ميتواند موضوع يک تحقيق باشد. پيشنهاد تحقيقات آتي اين نوشتار بر تکميل اين مدخلها بنا ميشود.
راهنماي استخراج هر مدخل بصورت کلي در زير آمدهاست:
الف-مشخصکردن وظايف ذينفعان مختلف در چرخه حيات سيستم مانند موارد زير]26]:
· استخراج نيازمنديها
· تحليل نيازمنديها
· نوشتن مستندات نيازمنديهاي نرمافزار
· ساخت و تحليل نمونه
· انجام طراحيهاي نرمافزار
· نوشتن مستندات طراحيهاي نرمافزار
· برنامهنويسي
· تحقيق در خصوص تكنيكهاي مهندسي نرمافزار يا بهدست آوردن اطلاعات در بارة دامنهكاربرد
· ايجاد استراتژيهاي آزمون و موردهاي آزمون
· آزمون نرمافزار و ثبت نتايج
· جداسازي مسائل20 و حلآنها
· يادگيري استفاده يا نصب و تنظيم ابزار جديد نرمافزاري و سختافزاري
· نوشتن مستندات مانند راهنماي استفاده
· شركت در جلسات با همكاران، مشتريان و سرپرستان
· آرشيو نرمافزار يا آمادهسازي آن براي توزيع
ب- تبيين حوزهامنيتي مرتبط با مدخل شامل مواردي مانند:
· مفهوم
· رابطهاش با مفاهيم ديگر در هستانشناسي
· مستندات ارائه شده تاكنون، مانند استانداردها و راهنماها
در اين بخش بررسي استانداردهاي مرتبط، كمك مهمي براي كشف الگوها مينمايد. بدست آوردن الگوها روشهاي مختلفي دارد كه استفاده از استانداردها در اين خصوص بسيار ارزشمند جلوه ميكند. اولين گام، کشف روابط بين مفاهيم و واژگان موجود در استانداردها و عناصر الگوها يعني زمينه، مسئله و راهحل است]2]. ممکن است به چند استاندارد براي استخراج يک الگو مراجعه کنيم. اين روش اين مزيت را دارد که استانداردها توسط افراد خبره خلق شدهاند و قابلاعتماد و استناد هستند]2]. وجود استاندارد، امکان بدستآوردن واژگان استاندارد و ساختار رسمي را بهدست ميدهد و بهعلاوه موجب کمک و بهبود يکپارچگي بين الگوهاي مختلف نوشتهشده، توسط افراد مختلف ميشود.
ج- رابطه وظايف ذينفع با حوزة امنيتي مرتبط با مدخل
با توجه به نقش ذينفع در چرخة حيات سيستم، رابطهاش با مقولات امنيت در اين مرحله استخراج ميگردد.
د- کشف يا تعريف الگوهاي مورد نياز
با توجه به موارد فوق، بهطور خلاصه فرايند استخراج الگوها ميتواند به صورت زير باشد:
1. استخراج وظايف ذينفع
2. درک عمومي از مقوله و هستان امنيت
3. استخراج تكاليف مرتبط با يك وظيفه نسبت به يك هستان امنيت
4. انتخاب الگوهاي كمككننده و متناسب از ميان الگوها يا تعريف نياز به الگوها
حاصل کار را بهصورت خلاصه ميتوان در قالب جدول 7 نشان داد.
به مثال زير براي براي نمونه و درک نحوه تدوين خصوصيات يک مدخل ميپردازيم:
عنوان مدخل: (مديريت سطح بالاS1= ، تهديدO1=]
جدول 7. شناسائي الگوها مطابق چارچوب ذينفع - هستان
ذينفع Si | وظايف | هستان Oj | الگوهاي مورد نياز Ps |
وظيفة 1 | تكليف 1 |
| |
... |
| ||
تكليف n |
| ||
… | تكليف 1 |
| |
... |
| ||
تكليف n |
| ||
وظيفه n | تكليف 1 |
| |
... |
| ||
تكليف n |
|
· مرحلة 1: استخراج وظايف S1: مديريت سطح بالا شامل مواردي از قبيل اعضاي هيئت مديره، رئيس، قائممقام و معاونين رئيس، مديران اجرائي سازمانها، و مديران ارشد است. مديريت سطح بالا در خصوص چرخة عمر نرمافزار وظايف مهمي از قبيل موارد زير را بر عهده دارد:
o تدوين استراتژي شامل مواردي مانند:
§ توليد کامل: تمام اجزاء و مؤلفههاي سيستم در فرايند توليد نرمافزار بهصورت داخلي و بدون کمک از منابع آماده انجام ميشود.
§ توليد نسبي (استفاده از کاتس21)
§ توليد متن باز
§ توليد متن بسته
o سازماندهي
o تأمين منابع
o برنامهريزي
o نظارت عاليه
· مرحلة 2: تبيين هستانامنيت (در اين مثال تهديد): استاندارد ISO تهديد را عامل بالقوه ايجاد يک واقعه ميداند که ميتواند (با استفاده از يک آسيبپذيري) موجب صدمه رساندن به سازمان شود]27]. تهديد ميتواند عمدي يا غيرعمدي باشد. هنگامي که تهديد به رويداد بالفعل تبديل ميشود، ميتواند موجب بهوجود آمدن واقعه شود. مؤسسة استاندارد ملي آمريکا تهديد را هر پيشامد يا موقعيتي تعريف ميکند که کارايي سازماني (شامل مأموريتها، کارکردها، وجهه يا شهرت) ، اموال سازماني، يا افراد را از راه سامانههاي اطلاعاتي بصورت منفي تحت تأثير قرار دهد، که اين خود ميتواند از طريق دسترسي غيرمجاز، تخريب، آشکارسازي اطلاعات، تغيير اطلاعات و/يا جلوگيري از دسترسي به سرويس باشد. تهديد همچنين شامل وجود يک منشاء تهديد که بهطور بالقوه از يک نقطه ضعف امنيتي سامانه ميتواند استفاده کند نيز ميشود ]28].
· تهديد عبارت است از: عامل بالقوه ايجاد واقعهاي که ممکن است منجر به صدمه به سازمان گردد ]29].
· مرحله 3: احصاء تکاليف مرتبط با وظايف ذينفع در قبال مقولة تهديد: تکاليف مرتبط با وظيقة «تدوين استراتژي» براي نمونه در اينجا تشريح شده است:
· همانطور که در بخش تعيين وظايف اشاره شد، تدوين استراتژي ميتواند شامل تعيين تکليف در موارد مهمي مانند توليد کامل، توليد نسبي و استفاده از کاتس توليد متن باز، توليد متن بسته، توليد مبتني بر SPL و... باشد. در ارتباط با اين وظيفه دو دسته تکاليف زير ميتواند متناسب با مقولة تهديد استخراج گردد:
o مراقبت از تهديدات مرتبط با متنباز بودن: يک مدير سطح بالا در چرخهحيات نرمافزار بايد نسبت به تهديدات استراتژي متن باز بودن واقف بوده و نسبت به مراقبت از آنها تمهيدات لازم را بيانديشد. متنباز بودن سامانه امکان دسترسي هکرها به کُد برنامهها و مشخصات سامانه را فراهم ميکند. با دسترسپذير بودن کُد سامانه امکان بررسيعميق آسيبپذيريها وجود دارد. البته ما عموماً دو دسته مواجهه را شاهد خواهيم بود. مواجهه با هکرهاي نجيب22 و هکرهاي نانجيب23. يک مدير سطح بالا بايد فرايندهاي لازم براي استفاده از دانش هکرهاي نجيب را فراهم نمايد و فرصت لازم به هکرهاي نانجيب را فراهم نکند.
o مراقبت از تهديدات مرتبط با کاتس: يک مدير سطح بالا بايد تهديدات منبعث از تهيه مؤلفههاي مبتني برکاتس را بهدقت درنظرگيرد. عرضة مؤلفهها به اينصورت، فراواني عرضة آنها و تعداد زياد جامعة استفادهکننده را شامل ميشود. اين امر موجب ميشود هکرها نسبت به دامنة گسترده استفاده از آنها در دنيا آگاهي يافته و انگيزه لازم براي نفوذ به سامانهها از اين طريق را پيدا نمايند.
· مرحله 4: الگوهاي مورد نياز: در اين بخش متناسب با تکاليف تعريف شده براي وظيفة تدوين استراتژي، بايد الگوهاي موجود کمککننده به اين تکاليف و نيز فضاي نياز به الگوها استخراج گردد.
· در اين روش الگوهاي غيرموجود يا نياز آتي به الگوها در فضاهايخالي نيز كشف ميگردد. در اين چارچوب با تغيير هستانشناسي و ذينفعان، پشتيباني از انعطافپذيري و ايجاد الگوهايجديد بهراحتي قابل انجام است. تكميل همه مدخلها ميتواند موضوع يك پروژه باشد، يا اينكه در پژوهشهاي آتي به تدريج استخراج گردد. هدف ما از انجام يک نمونة مدخل، بيشتر با هدف اثبات مفهوم مورد نظر صورت گرفتهاست. جدول 8 براي دو تکليف استخراج شدة فوق ارائه شده است.
[1] Domain Concepts
[2] Context
[3] Problem
[4] Spoofing
[5] Tampering
[6] Reputation
[7] Information disclosure
[8] Dos
[9] Elevation of Privilege
[10] Application Context
[11] Andreas Wiesauer
[12] capec.mitre.org
[13] Michaela Bunke
[14] Self-organizing
[15] Adapting to unpredictable situations
[16] Reactively resilient
[17] Evolving in concert with a changing environment
[18] Proactively innovative
[19] Harmonious with system purpose
[20] Isolating problems
[21] Commercial Off-The-Shelf (COTS)
[22] Benign Hackers
[23] Malign Hackers
جدول 8. جدول خلاصه براي مدخل ذينفع-هستان مرتبط با وظيفة «تدوين استراتژي»
وظايف ذينفع (مديريت سطح بالا) | تکاليف مرتبط با هستان تهديد | راهنماي کشف يا تعريف الگوها |
تدوين استراتژي-توليد شامل: - توليدکامل - استفادهاز کاتس - توليدمتنباز - توليدمتن بسته - توليد مبتني برخط توليد | 1-مراقبت از تهديدات مرتبط با متنباز بودن | اهداف (Intents): 1- تضمينحفاظتپذيريدرعينافشاي(closure)مشخصات سامانه 2- اعتماد استفاده کننده گان به حفظ خصوصيات امنيتي در فرايندهاي استفاده و توسعه مبتني بر متن باز انگيزه: باز بودن و افشاي مشخصات سامانه موجب آساني استفاده وسيع از سامانه و قابليت تغييرات محلي و نيز ارزان بودن و بهره مندي از دامنه وسيع توسعه دهندگان و نگهداري کنندگان است. اين امر نيازمند اعمال رويه هاي کارا براي حفظ خصوصيات امنيتي و تضمين اعتماد است. فضاي نيازمندي به الگوها: - الگوهاي فرايندي از پيشنهاد تا توليد مولفه امن تر و انتشار آن - الگوهاي فرايندي کمک کننده به مديريت پيکربندي امن تر - الگوهاي فرايندي انتخاب امن ترين محصول متن باز(open artifact) در بين پيشنهادات مختلف توضيح : يا بايد الگوهاي موجود از نظرامنيتي بهببود داده شوند يا الگوهاي جديدي تعريف شوند تا نياز اين بخش تامين شود. |
2-مراقبت از تهديدات مرتبط با کاتس | اهداف (Intents): 1- اطمينان از عدم وجود آسيبپذيري هاي شناخته شده 2- تضمين وجود فرايندهاي موثر در مقابله آسيبپذيري هاي روز صفر(zero day ) مرتبط با اعمال فضاي نيازمندي به الگوها : -الگوهاي Input Validation -الگوهاي تست جعبه سياه -الگوهاي مرتبط با امنيت وب سرويس |
8- نتيجهگيري و پيشنهاد
همانطور که در يکي از تحقيقات انجام گرفته از سال 1997 تا سال 2010 آمده است، تعداد الگوهاي امنيت به 409 فقره رسيده است و کشف و معرفي آنها همچنان روند روبهافزايشي را طي ميکند. مواجهة با آنها براي استفادهکنندگان بايد سهل و سريع باشد و ارائه دستهبنديهاي مختلف و سازماندهيهاي انجامگرفته يا در حال انجام، وسيلة مناسبي براي ارائه اين تسهيلات است. از ديدگاههاي مختلف ميتوان به اين الگوها نگاهكرد و ميتوان گفت نگاه به اين الگوها براي مخاطبان مختلف، كامل نشده و هر طرحي كه بتواند بهطور واضحتري نحوة استفاده و كاربرد آنها را براي استفادهكنندگان كه عموماً تخصص زيادي در زمينه امنيت ندارند، ارائهکند، موفقتر خواهد بود. ما با اتكاء به اين نكته توانستيم به شيوهاي جديد به مقولة الگوها پرداخته و روشي که همة ذينفعان را در همة حوزههاي امنيت تحت پوشش قرار دهد، ارائه نموديم و يک نمونه را براي کمک به درک اين روش مورد بررسي قرار دادهايم. تعداد زيادي مدخل قابل پژوهش براي فعاليتهاي آينده پيش روي محققان اين زمينه باز نموديم و پيشنهاد ما به علاقهمندان اين حوزه تکميل راهنماي انتخاب الگوهاي امنيت مطابق با اين ديدگاه و نيز تبيين فضاي نياز به الگوها مطابق اين چارچوب است.
مراجع
[1] http://www.oxforddictionarries.com,[Online]. Sunday, 12 February 2023
[2] Schumacher, Markus. "Security Patterns and Security Standards." In EuroPLoP, pp. 289-300. 2002.
[3] Xu, Xiwei, HMN Dilum Bandara, Qinghua Lu, Ingo Weber, Len Bass, and Liming Zhu. "A decision model for choosing patterns in blockchain-based applications." In 2021 IEEE 18th International Conference on Software Architecture (ICSA), pp. 47-57. IEEE, 2021.
[4] Marko, Nadja, Joaquim Maria Castella Triginer, Christoph Striecks, Tobias Braun, Reinhard Schwarz, Stefan Marksteiner, Alexandr Vasenev et al. "Guideline for Architectural Safety, Security and Privacy Implementations Using Design Patterns: SECREDAS Approach." In International Conference on Computer Safety, Reliability, and Security, pp. 39-51. Springer, Cham, 2021.
[5] Chifor, Bogdan-Cosmin, Ștefan-Ciprian Arseni, and Ion Bica. "IoT Cloud Security Design Patterns." In Big Data Platforms and Applications, pp. 113-164. Springer, Cham, 2021.
[6] Fenz, Stefan, Thomas Pruckner, and Arman Manutscheri. "Ontological mapping of information security best-practice guidelines." In International Conference on Business Information Systems, pp. 49-60. Springer, Berlin, Heidelberg, 2009.
[7] Yoshioka, Nobukazu, Hironori Washizaki, and Katsuhisa Maruyama. "A survey on security patterns." Progress in informatics 5, no. 5 (2008): 35-47.
[8] http://www.symantec.com/security_response/publications/threatreport.jsp, [Online]. Sunday, 12 February 2023
[9] https://www.us-cert.GOV, [Online]. Sunday, 12 February 2023
[10] https://docs.microsoft.com/en-us/previous-versions/windows/desktop/cc307406 (v=msdn.10], [Online]. Sunday, 12 February 2023
[11] https://www.owasp.org/index.php/Secure_SDLC_Cheat_Sheet, [Online]. Sunday, 12 February 2023
[12] Grance, Tim, Joan Hash, and Marc Stevens. Security considerations in the information system development life cycle. US Department of Commerce, Technology Administration, National Institute of Standards and Technology, 2004.
[13] National Bureau of Standards, and National Bureau of Standards. Federal Information Processing Standards Publication: Standard Security Label for Information Transfer. US Department of Commerce, National Institute of Standards and Technology, 1994.
[14] Chad Dougherty, Kirk Sayre, Robert C. Seacord, David Svoboda, Kazuya Togashi (JPCERT/CC), Secure Design Patterns, TECHNICAL REPORT CMU/SEI-2009-TR-010 ESC-TR-2009-010, http://cert.org/,[Online], March 2009; Updated October 2009.
[15] Schumacher, Markus. Security engineering with patterns: origins, theoretical models, and new applications. Vol. 2754. Introduction section, Pagee 6, Springer Science & Business Media, 2003.
[16] Barabanov, Alexander, and Denis Makrushin. "Security audit logging in microservice-based systems: survey of architecture patterns." arXiv preprint arXiv:2102.09435 (2021).
[17] Blakley, Bob, and Craig Heath. "Security design patterns technical guide–Version 1." Open Group (OG] (2004).
[18] Schumacher, Markus, Eduardo Fernandez-Buglioni, Duane Hybertson, Frank Buschmann, and Peter Sommerlad. Security Patterns: Integrating security and systems engineering. John Wiley & Sons, 2013.
[19] Steel, Christopher, Ramesh Nagappan, and Ray Lai. "The alchemy of security design methodology, patterns, and reality checks." Core Security Patterns: Best Practices and Strategies for J2EE, Web Services, and Identity Management, Prentice Hall 1088 (2005).
[20] Hafiz, Munawar, Paul Adamczyk, and Ralph E. Johnson. "Organizing security patterns." IEEE software 24, no. 4 (2007): 52-60.
[21] Wiesauer, Andreas, and Johannes Sametinger. "A security design pattern taxonomy based on attack patterns." In International Joint Conference on e-Business and Telecommunications, pp. 387-394. 2009.
[22] "https://capec.mitre.org," [Online]. Sunday, 12 February 2023
[23] Bunke, Michaela, Rainer Koschke, and Karsten Sohr, "Application-Domain Classification for Security Patterns," In Proceedings of the International Conferences on Pervasive Patterns and Applications, IARIA Conferences. XPS , 2011.
[24] Dove, Rick, and Laura Shirey. "On discovery and display of agile security patterns." In Conf Syst Eng Res, Stevens Institute of Technology, Hoboken, NJ. 2010.
[25] "www.ISC2.org," [Online]. Sunday, 12 February 2023
[26] Laplante, Philip A. What every engineer should know about software engineering. CRC Press, 2007.
[27] Huang, Chien-Cheng, Kwo-Jean Farn, and Frank Yeong-Sung Lin, " A Study on Information Security Management with Personal Data Protection," In 2011 IEEE 17th International Conference on Parallel and Distributed Systems (pp. 624-630]. IEEE, (2011, December).
[28] Pub,FIPS(FIPS Publication 200). "Minimum security requirements for federal information and information systems." (2005].
[29] A. I. Standard, " In InformationTechnology-security Techniques-Code of Practice for Information Security Controls", (AS ISO/IEC 27002: 2015), 2015.