1 |
An educational framework to support industrial control system security engineeringBenjuma, Nuria Mahmud January 2017 (has links)
Industrial Control Systems (ICSs) are used to monitor and control critical infrastructure such as electricity and water. ICS were originally stand-alone systems, but are now widely being connected to corporate national IT networks, making remote monitoring and more timely control possible. While this connectivity has brought multiple benefits to ICS, such as cost reductions and an increase in redundancy and flexibility, ICS were not designed for open connectivity and therefore are more prone to security threats, creating a greater requirement for adequate security engineering approaches. The culture gap between developers and security experts is one of the main challenges of ICS security engineering. Control system developers play an important role in building secure systems; however, they lack security training and support throughout the development process. Security training, which is an essential activity in the defence-indepth strategy for ICS security, has been addressed, but has not been given sufficient attention in academia. Security support is a key means by which to tackle this challenge via assisting developers in ICS security by design. This thesis proposes a novel framework, the Industrial Control System Security Engineering Support (ICS-SES), which aims to help developers in designing secure control systems by enabling them to reuse secure design patterns and improve their security knowledge. ICS-SES adapts pattern-based approach to guide developers in security engineering, and an automated planning technique to provide adaptive on-the-job security training tailored to personal needs. The usability of ICS-SES has been evaluated using an empirical study in terms of its effectiveness in assisting the design of secure control systems and improving developers’ security knowledge. The results show that ICS-SES can efficiently help control system designers to mitigate security vulnerabilities and improve their security knowledge, reducing the difficulties associated with the security engineering process, and the results have been found to be statically significant. In summary, ICS-SES provides a unified method of supporting an ICS security by design approach. It fosters a development environment where engineers can improve their security knowledge while working in a control system production line.
|
2 |
GESTÃO DE RISCOS DE SEGURANÇA DA INFORMAÇÃO BASEADA NA NORMA NBR ISO/IEC 27005 USANDO PADRÕES DE SEGURANÇA / RISK MANAGEMENT OF INFORMATION SECURITY BASED ON STANDARD NBR ISO/IEC 27005 USING SECURITY PATTERNSKonzen, Marcos Paulo 26 February 2013 (has links)
In the last years more vulnerabilities and threats have emerged, compromising information
security in Information and Communication Technology (ICT) systems. In addition, many
organizations are unprepared to deal with the risks of information security, making them the
most vulnerable to such threats. Thus the negative impact caused by security incidents tends
to be more frequent. The implementation of information security risk management based on a
set of best practices is critical, but still a challenge for most companies. This work proposes a
methodology for managing risks based on NBR ISO/IEC 27005:2008. The methodology
presents a sequence of activities and a series of guidelines and goals that must be achieved to
make the risk management effective. As with most standards and reference models, the
methodology does not describe how activities should be implemented, which makes it
difficult to implement for organizations less experienced in security procedures. The reuse of
solutions already tested and consolidated to recurring security problems it can assist in
ensuring the use of best practices. These solutions can be found in security standards that
capture and document the knowledge of security experts, but its application to develop
standards for risk management activities is unknown. Thus, this work reviews the guidelines
of NBR ISO/IEC 27005:2008 standards and pattern catalogs in order to identify security
patterns to develop activities in accordance with the guidelines described by the standard.
Therefore, the main contribution of this work is to develop a methodology for risk
management centered in solutions, tasks and techniques described by 22 security standards.
An analysis and risk assessment using security standards was applied to a DC (Data Center)
of a private university, whose result shows the final risk for each asset, meeting the guidelines
of NBR ISO/IEC 27005:2008. / Nos últimos anos, cada vez mais novas ameaças e vulnerabilidades surgem comprometendo a
segurança das informações em sistemas de Tecnologia da Informação e Comunicações (TIC),
e muitas organizações encontram-se despreparadas para lidar com os riscos de segurança da
informação, tornando-as mais vulneráveis às ameaças, e os impactos negativos causados pelos
incidentes de segurança tendem a ser mais frequentes. A implantação de uma gestão de riscos
de segurança da informação baseada no conjunto das melhores práticas é fundamental, porém
ainda um desafio para a maioria das empresas. Este trabalho propõe uma metodologia de
gestão de riscos baseada na norma NBR ISO/IEC 27005:2008, que apresenta uma sequência
de atividades e uma série de diretrizes e objetivos que devem ser alcançados para que o
gerenciamento dos riscos seja efetivo. Como na maioria das normas e modelos de referência,
elas não descrevem como as atividades devem ser implementadas, o que acaba dificultando a
sua adoção por organizações menos experientes em processos de segurança. A reutilização de
soluções já testadas e consolidadas para resolver problemas recorrentes de segurança pode
auxiliar na garantia de utilização de melhores práticas. Estas soluções podem ser encontradas
em padrões de segurança que capturam e documentam o conhecimento de especialistas em
segurança, mas se desconhece a sua aplicação para desenvolver atividades das normas de
gestão de riscos. Desta forma, este trabalho faz uma revisão das diretrizes da norma NBR
ISO/IEC 27005:2008 e de catálogos de padrões, a fim de identificar padrões de segurança
para desenvolver as atividades de acordo com as diretrizes descritas pela norma. Portanto, a
principal contribuição deste trabalho é o desenvolvimento de uma metodologia de gestão
de riscos centrada em soluções, tarefas e técnicas descritas por 22 padrões de segurança. Uma
análise e avaliação de riscos utilizando padrões de segurança foi aplicada em um CPD de uma
instituição privada de ensino superior, cujo resultado mostra o risco final de cada ativo,
atendendo as diretrizes da norma NBR ISO/IEC 27005:2008.
|
3 |
Quantitative Assessment of the Modularization of Security Design Patterns with AspectsEdge, Crystal 01 January 2010 (has links)
Following the success of software engineering design patterns, security patterns are a promising approach to aid in the design and development of more secure software systems. At the same time, recent work on aspect-oriented programming (AOP) suggests that the cross-cutting nature of software security concerns makes it a good candidate for AOP techniques. This work uses a set of software metrics to evaluate and compare object-oriented and aspect-oriented implementations of five security patterns--Secure Base Action, Intercepting Validator, Authentication Enforcer, Authorization Enforcer, and Secure Logger.
Results show that complete separation of concerns was achieved with the aspect-oriented implementations and the modularity of the base application was improved, but at a cost of increased complexity in the security pattern code. In most cases the cohesion, coupling, and size metrics were improved for the base application but worsened for the security pattern package. Furthermore, a partial aspect-oriented solution, where the pattern code is decoupled from the base application but not completely encapsulated by the aspect, demonstrated better modularity and reusability than a full aspect solution.
This study makes several contributions to the fields of aspect-oriented programming and security patterns. It presents quantitative evidence of the effect of aspectization on the modularity of security pattern implementations. It augments four existing security pattern descriptions with aspect-oriented solution strategies, complete with new class and sequence diagrams based on proposed aspect-oriented UML extensions. Finally, it provides a set of role-based refactoring instructions for each security pattern, along with a proposal for three new basic generalization refactorings for aspects.
|
4 |
Validation formelle d'implantation de patrons de sécurité / Formal validation of security patterns implementationObeid, Fadi 22 May 2018 (has links)
Les architectures de systèmes à logiciel posent des défis pour les experts de sécurité. nombreux travaux ont eu pour objectif d’élaborer des solutions théoriques, des guides méthodologiques et des recommandations, pour renforcer la sécurité et protéger ces systèmes.Une solution proposée est d’intégrer des patrons de sécurité comme solutions méthodologiques à adapter aux spécificités des architectures considérées. Une telle solution est considérée fiable si elle résout un problème de sécurité sans affecter les exigences du système.Une fois un modèle d’architecture implante les patrons de sécurisé, il est nécessaire de valider formellement ce nouveau modèle au regard des exigences attendues. Les techniques de model checking permettent cette validation en vérifiant, d’une part, que les propriétés des patrons de sécurité sont respectées et, d’autre part, que les propriétés du modèle initial sont préservées.Dans ce travail de thèse, nous étudions les méthodes et les concepts pour générer des modèles architecturaux respectant des exigences de sécurité spécifiques. Àpartir d’un modèle d’architecture logicielle, d’une politique de sécurité et d’une librairie des patrons de sécurité, nous souhaitons générer une architecture sécurisée. Chaque patron de sécurité est décrit par une description formelle de sa structure et de son comportement, ainsi qu’une description formelle des propriétés de sécurité associées à ce patron.Cette thèse rend compte des travaux sur l’exploitation de techniques de vérification formelle des propriétés, par model-checking. L’idée poursuivie est de pouvoir générer un modèle d’architecture qui implante des patrons de sécurité, et de vérifier que les propriétés de sécurité, comme les exigences de modèle, sont respectées dans l’architecture résultante.En perspective, les résultats de notre travail pourraient s'appliquer à définir une méthodologie pour une meilleure validation de la sécurité des systèmes industriels comme les SCADA. / Software-based architectures pose challenges for security experts. Many studieshave aimed to develop theoretical solutions, methodological guides and recommendations to enhance security and protect these systems.One solution proposed is to integrate security patterns as methodological solutions to adapt to the specificities of the considered architectures. Such a solution is considered reliable if it solves a security problem without affecting systemrequirements. Once an architecture model implements the security patterns, it is necessary to formally validate this new model against the expected requirements. Model checking techniques allow this validation by verifying, on one hand, that theproperties of the security patterns are respected and, on the other hand, that the properties of the initial model are preserved.In this thesis work, we study the methods and concepts to generate architectural models that meet specific security requirements. Starting with a software architecture model, a security policy and a library of security patterns, we want to generate a secure architecture. Each security pattern is described by aformal description of its structure and behavior, as well as a formal description of the security properties associated with that pattern.This thesis reports work on the technical exploitation of formal verification of properties, using model-checking.The idea is to be able to generate an architecture model that implements security patterns, and to verify that the security properties, as well as the model requirements, are respected in the resulting architecture.In perspective, the results of our work could be applied to define a methodology for a better validation of the security of industrial systems like SCADA.
|
5 |
PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE CONFIÁVEL BASEADOS EM PADRÕES DE SEGURANÇA / RELIABLE SOFTWARE DEVELOPMENT PROCESSES BASED ON SECURITY PATTERNSWagner, Rosana 01 March 2011 (has links)
Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / Organizations face a series of difficulties in answering to the demands that are projected by the norms and models of software security. The norms and models provide a set of good security practices which should followed but do not describe how these practices must be implemented. Security patterns document good security solutions which can be incorporated to the software process. However they are difficult to be incorporated in each software development phase. In way, this work proposes a methodology for the adaptation of software processes based on security requirements that are preconized by the security practices of the Systems Security Engineering Capability Maturity Model (SSE-CMM). The basis for adaptation is a process framework that is elaborated from the Rational Unified Process (RUP) and security patterns proposed on the literature. By means of this methodology, the project managers, or related roles, find support for their decisions referent to the implementation of information security. In addition, some process area2 pattern association rules have initially been proposed and inserted in the framework. Although they are only suggestions and should be adapted according to the necessity of each project. In addition they should be adjusted according to the understanding of each project engineer or manager. Finally, they should evolve to the extent that the organization learns from past projects. The methodology and the association rules are supported by a developed tool, the SMT- Tool. The aim of this tool is to help the development of the process adaptation task. / As organizações enfrentam uma série de dificuldades para atender às exigências previstas pelas normas e modelos de segurança de software. As normas e modelos fornecem um conjunto de boas práticas de segurança que devem ser seguidas, mas não descrevem como essas práticas devem ser implementadas. Padrões de segurança documentam boas soluções de segurança que podem ser incorporadas ao processo de software, mas são difíceis de serem incorporados em cada fase do desenvolvimento de software. Desta forma, a proposta deste trabalho propõe uma metodologia para adaptação de processos de software com base em requisitos de segurança, preconizados pelas práticas de segurança do Systems Security Engineering Capability Maturity Model (SSE-CMM). A adaptação tem como base um framework de processo elaborado a partir do Rational Unified Process (RUP) e de padrões de segurança propostos na literatura. A partir desta metodologia, os gerentes de projetos, ou papéis relacionados, encontram suporte para suas decisões referentes à implementação de segurança da informação.
Ainda, algumas regras de associações de padrões às áreas de processo1, descritas pelo SSE-CMM, foram inicialmente propostas e inseridas no framework, porém, são apenas sugestões e devem ser adaptadas conforme a necessidade de cada projeto, bem como do entendimento de cada engenheiro ou gerente de projeto, e devem evoluir a medida que a organização aprenda com projetos passados.
A metodologia e as regras de associações são suportadas por uma ferramenta, a SMT- Tool, desenvolvida com o objetivo de apoiar a realização da tarefa de adaptação de processos.
|
6 |
Gestionnaire contextualisé de sécurité pour des « Process 2.0 » / Contextualized security management for “Process 2.0”Ouedraogo, Wendpanga Francis 29 November 2013 (has links)
Compte tenu de l’environnement économique globalisé et de plus en plus concurrentiel, les entreprises et en particulier les PME/PMI, pour rester compétitif,doivent développer de nouvelles stratégie de collaborations (intra et inter-entreprises) et se restructurer pour rendre leur organisation et le système d’information agile. Alors que jusqu'à présent le Web 2.0 permettait de collaborer sur les données elles-mêmes, nous proposons de passer à une logique de « process 2.0 » permettant de rechercher / composer sémantiquement des services existants pour collaborer directement en partageant des fonctionnalités et non plus seulement des données. Couplé au développement du Cloud Computing, facilitant l’hébergement, une telle stratégie permettrait de coupler plus fortement les niveaux SaaS et PaaS. Toutefois, ceci pose d’évidents problèmes de gestion des contraintes de sécurité. Le développement de stratégies de sécurité est usuellement basé sur une analyse systématique des risques afin de les réduire en adoptant des contre-mesures. Ces approches sont lourdes, complexes à mettre en œuvre et sont souvent rendues caduques car les risques sont évalués dans un monde « fermé », ce qui n’est pas le cas d’une approche par composition de services métier réutilisable où le contexte d’utilisation des différents services au niveau métier et plateforme est inconnu a priori. Dans ce type d’approche, le contexte au niveau métier évoque à la fois les fonctionnalités apportées par chaque service, l’organisation (Qui fait à quoi ?) et l’enchainement de ces services ainsi que les types de données (d’ordre stratégique ou pas,..) que manipulent ces services. Au niveau plateforme, le contexte dépend de l’environnement (privé, public,..) dans lequel les services vont s’exécuter. C’est donc sur la base de l’analyse du contexte que l’on peut définir les contraintes de sécurités propres à chaque service métier, pouvoir spécifier les politiques de sécurités adéquates et mettre en œuvre les moyens de sécurisation adaptés. En outre, il est aussi nécessaire de pouvoir propager les politiques de sécurités sur tout le processus afin d’assurer la cohérence et une sécurité globale lors de l’exécution du processus. Pour répondre à ces enjeux, nous proposons d’étudier la définition des politiques de sécurité à base de « patrons » apportant une réponse graduée en fonction de la confiance que l’on a sur l’environnement. Ainsi des patrons de sécurité qui répondent à des besoins de sécurité métiers et à des besoins de sécurité plateforme seront définis et permettront d’exprimer l’ensemble des politiques de sécurité. La sélection et de mise en œuvre de ces politiques de sécurités se feront à partir de patrons de contexte. Notre proposition simple à appréhender par des non spécialistes, permettra, par des transformations de modèles, d’intégrer ces politiques au niveau technologique afin de garantir un niveau de qualité de protection constant quel que soit l’environnement de déploiement. / To fit the competitive and globalized economic environment, companies and especially SMEs / SMIs are more and more involved in collaborative strategies, requiring organizational adaptation to fit this openness constraints and increase agility (i.e. the ability to adapt and fit the structural changes). While the Web 2.0 allows sharing data (images, knowledge, CV, micro-blogging, etc...) and while SOA aims at increasing service re-using rate and service interoperability, no process sharing strategies are developed. To overcome this limit, we propose to share processes as well to set a "process 2.0" framework allowing sharing activities. This will support an agile collaborative process enactment by searching and composing services depending on the required business organization and the service semantics. Coupled with the cloud computing deployment opportunity, this strategy will lead to couple more strongly Business, SaaS and PaaS levels. However, this challenges security constraints management in a dynamic environment. The development of security policies is usually based on a systematic risks analysis, reducing them by adopting appropriate countermeasures. These approaches are complex and as a consequence difficult to implement by end users. Moreover risks are assessed in a "closed" and static environment so that these methods do not fit the dynamic business services composition approach, as services can be composed and run in different business contexts (including the functionalities provided by each service, the organization (Who does what?), the coordination between these services and also the kind of data (strategic or no...) that are used and exchanged) and runtime environment (public vs private platform…). By analyzing these contextual information, we can define specific security constraints to each business service, specify the convenient security policies and implement appropriate countermeasures. In addition, it is also necessary to be able to propagate the security policies throughout the process to ensure consistency and overall security during the process execution. To address these issues, we propose to study the definition of security policies coupling Model Driven Security and Pattern based engineering approach to generate and deploy convenient security policies and protection means depending on the (may be untrusted) runtime environment. To this end, we propose a set of security patterns which meet the business and platform related security needs to set the security policies. The selection and the implementation of these security policies will be achieved thank to context-based patterns. Simple to understand by non-specialists, these patterns will be used by the model transformation process to generate these policies in a Model@Runtime strategy so that security services will be selected and orchestrated at runtime to provide a constant quality of protection (independent of the deployment).
|
7 |
Engineering secure software architectures : patterns, models and analysis / Ingénierie des sytèmes sécurisés : patrons, modèles et analysesMotii, Anas 10 July 2017 (has links)
De nos jours la plupart des organisations pour ne pas dire toutes, dépendent des technologies de l'information et de la communication (TIC) pour supporter plusieurs tâches et processus (quelquefois critiques). Cependant, dans la plupart des cas, les organisations et en particulier les petites entreprises accordent une importance limitée à l'information et à sa sécurité. En outre, sécuriser de tels systèmes est une tâche difficile en raison de la complexité et de la connectivité croissante du matériel et du logiciel dans le développement des TICs. Cet aspect doit alors être pris en compte dès les premières phases de conception. Dans ce travail, nous proposons une approche basée sur les modèles permettant de sécuriser des architectures logicielles en utilisant des patrons. Les contributions de ce travail sont : (1) un cadre de conception intégré pour la spécification et l'analyse d'architectures logicielles sécurisées, (2) une nouvelle méthodologie à base de modèles et de patrons et (3) une suite d'outils. Le fondement de l'approche associe un environnement basé sur des langages de modélisation pour la spécification et l'analyse des modèles d'architectures sécurisées et un dépôt à base de modèles d'artéfacts dédiés à la sécurité (modèle de patrons de sécurité, menaces et propriétés de sécurités) permettant la réutilisation de savoir-faire et de connaissances capitalisées. Pour cela on utilise des langages de modélisation pour la spécification et l'analyse de l'architecture. Le processus associé est constitué des activités suivantes : (a) analyse de risques à base de modèle appliquée à l'architecture du système pour identifier des menaces, (b) sélection et importation de modèles de patrons de sécurité, afin d'arrêter ou de mitiger les menaces identifiées, vers l'environnement de modélisation cible, (c) intégration de modèles de patrons dans le modèle d'architecture, (d) analyse de l'architecture obtenue par rapports aux exigences non-fonctionnelles et aux menaces résiduelles. Dans ce cadre, on s'est focalisé sur la vérification du maintien du respect des contraintes temporelles après application des patrons. La recherche de menaces résiduelles est réalisée à l'aide de techniques de vérification exploitant une représentation formelle des scénarios de menaces issus du modèle STRIDE et basés sur des référentiels de menaces existants (ex., CAPEC). Dans le cadre de l'assistance pour le développement des architectures sécurisées, nous avons implémenté une suite structurée d'outils autour du framework SEMCO et de la plateforme Eclipse Papyrus pour supporter les différentes activités basées sur un ensemble de langages de modélisation conforme à des standards OMG (UML et ses profils). Les solutions proposées ont été évaluées à travers l'utilisation d'un cas d'étude autour des systèmes SCADA (systèmes de contrôle et d'acquisition de données). / Nowadays most organizations depend on Information and Communication Technologies (ICT) to perform their daily tasks (sometimes highly critical). However, in most cases, organizations and particularly small ones place limited value on information and its security. In the same time, achieving security in such systems is a difficult task because of the increasing complexity and connectivity in ICT development. In addition, security has impacts on many attributes such as openness, safety and usability. Thus, security becomes a very important aspect that should be considered in early phases of development. In this work, we propose an approach in order to secure ICT software architectures during their development by considering the aforementioned issues. The contributions of this work are threefold: (1) an integrated design framework for the specification and analysis of secure software architectures, (2) a novel model- and pattern-based methodology and (3) a set of supporting tools. The approach associates a modeling environment based on a set of modeling languages for specifying and analyzing architecture models and a reuse model repository of modeling artifacts (security pattern, threat and security property models) which allows reuse of capitalized security related know-how. The approach consists of the following steps: (a) model-based risk assessment performed on the architecture to identify threats, (b) selection and instantiation of security pattern models towards the modeling environment for stopping or mitigating the identified threats, (c) integration of security pattern models into the architecture model, (d) analysis of the produced architecture model with regards to other non-functional requirements and residual threats. In this context, we focus on real-time constraints satisfaction preservation after application of security patterns. Enumerating the residual threats is done by checking techniques over the architecture against formalized threat scenarios from the STRIDE model and based on existing threat references (e.g., CAPEC). As part of the assistance for the development of secure architectures, we have implemented a tool chain based on SEMCO and Eclipse Papyrus to support the different activities based on a set of modeling languages compliant with OMG standards (UML and its profiles). The assessment of our work is presented via a SCADA system (Supervisory Control And Data Acquisition) case study.
|
8 |
Assistance au développement et au test d'applications sécurisées / Assisting in secure application development and testingRegainia, Loukmen 12 June 2018 (has links)
Garantir la sécurité d’une application tout au long de son cycle de vie est une tâche fastidieuse. Le choix, l’implémentation et l’évaluation des solutions de sécurité est difficile et sujette a des erreurs. Les compétences en sécurité ne sont pas répondues dans toutes les équipes de développement. Afin de réduire ce manque de compétences en sécurité, les développeurs ont a leurs disposition une multitude de documents décrivant des problèmes de sécurité et des solutions requises (i.e., vulnérabilités, attaques, principes de sécurité, patrons sécurité, etc.). Abstraites et informelles, ces documents sont fournis par des sources différentes et leur nombre est en constante croissance. Les développeurs sont noyés dans une multitude de documents ce qui fait obstruction à leur capacité à choisir, implémenter et évaluer la sécurité d’une application. Cette thèse aborde ces questions et propose un ensemble de méthodes pour aider les développeurs à choisir, implémenter et évaluer les solutions de sécurité face aux problèmes de sécurité. Ces problèmes sont matérialisés par les failles, les vulnérabilités, les attaques, etc. et les solutions fournies par des patrons de sécurité. Cette thèse introduit en premier une méthode pour aider les développeurs dans l’implémentation de patrons de sécurité et l’estimation de leur efficacité face aux vulnérabilités. Puis elle présente trois méthodes associant les patrons de sécurité, les vulnérabilités, les attaques, etc. au sein d’une base de connaissance. Cette dernière permet une extraction automatique de classifications de patrons et améliore la rapidité et la précision des développeurs dans le choix des patrons de sécurité face à une vulnérabilité ou une attaque. En utilisant la base de connaissance, nous présentons une méthode pour aider les développeurs dans la modélisation des menaces ainsi que la générations et l’exécution des cas de test de sécurité. La méthode est évaluée et les résultats montrent que la méthode améliore l’efficacité, la compréhensibilité et la précision des développeurs dans le choix des patrons de sécurité et d’écriture des cas de test de sécurité. / Ensuring the security of an application through its life cycle is a tedious task. The choice, the implementation and the evaluation of security solutions is difficult and error prone. Security skills are not common in development teams. To overcome the lack of security skills, developers and designers are provided with a plethora of documents about security problems and solutions (i.e, vulnerabilities, attacks, security principles, security patterns, etc.). Abstract and informal, these documents are provided by different sources, and their number is constantly growing. Developers are drown in a sea of documentation, which inhibits their capacity to design, implement, and the evaluate the overall application security. This thesis tackles these issues and presents a set of approaches to help designers in the choice, the implementation and the evaluation of security solutions required to overcome security problems. The problems are materialized by weaknesses, vulnerabilities, attacks, etc. and security solutions are given by security patterns.This thesis first introduces a method to guide designers implement security patterns and assess their effectiveness against vulnerabilities. Then, we present three methods associating security patterns, attacks, weaknesses, etc. in a knowledge base. This allows automated extraction of classifications and help designers quickly and accurately select security patterns required to cure a weakness or to overcome an attack. Based on this nowledge base, we detaila method to help designers in threat modeling and security test generation and execution. The method is evaluated and results show that the method enhances the comprehensibility and the accuracy of developers in the security solutions choice, threat modeling and in the writing of security test cases.
|
9 |
Formalise Defense Strategies in Design Patterns of Threat Models / Formalisering av Förstvarsstrategier i HotmodellerSettlin, Johan January 2021 (has links)
Cyber-attacks are an increasing problem for organizations across the world. The attacks on systems are getting more and more sophisticated and thereby more and more difficult to protect against. The security of systems is crucial to protect your data from unauthorized access. One approach for testing the resilience of these systems is the use of threat modelling and attack simulations. The use of threat models also enables you to identify vulnerabilities in your infrastructure. The overall resilience of the system can then be increased by implementing protection against these vulnerabilities which can take many forms. There can be security issues regarding a single component in the infrastructure and more structural issues concerning more than one component in the system. Meta Attack Language (MAL) is a meta language to write threat languages of different systems. In MAL there exits different components called assets, these assets can have defenses. The problem is that structural weaknesses cannot be identified in the current state of the language. This thesis work will provide a solution to identify vulnerable patterns in a threat model and translate these pattern to secure patterns. A prototype has been created that take a threat model as input and outputs a new updated threat model. The prototype will translate the input to a graph database and run a series of predefined queries on the database that will identify and replace vulnerable patterns. A formal logic for finding vulnerable patterns is suggested and an API to change these patterns is implemented. The result shows that by running a model through the prototype, structural vulnerabilities can be identified and mitigated. This could potentially increase the overall resilience of the system. / Attacker på IT system är ett ökande problem för organisationer runt om i världen. Attackerna blir mer och mer sofistikerade och därmed svårare att skydda sig emot. Säkerheten av systemen är väldigt viktigt för att skydda data från obehörig åtkomst. Ett tillvägagångssätt för att testa säkerheten mot attacker är att använda hotmodeller och attack-simuleringar. Resultatet av en sådan simulering kan sedan användas för att göra systemet säkrare genom att implementera skydd mot kända sårbarheter. Dessa sårbarheter kan komma i många olika former. De kan finnas på en enskild komponent i arkitekturen eller så kan de bero på mer strukturella svagheter där flera komponenter berörs. Meta Attack Language (MAL) är ett meta-språk som kan användas för skapa hot-språk. I MAL så finns det olika komponenter som kan ha försvar associerat till sig. Problemet är att i det nuvarande stadiet av MAL så går det inte att identifiera strukturella svagheter där fler än en komponent är en del av problemet. Det här arbetet föreslår en lösning till att identifiera skadliga mönster och översätta dessa mönster till säkra mönster. En prototyp har tagits fram som tar en hotmodell som in-data och returnerar en uppdaterad hotmodell. Prototypen översätter hotmodellen till en grafdatabas och exekverar en serie av sökningar som identifierar och uppdaterar skadliga mönster. En logik för att hitta mönster föreslås och ett API av funktioner för att ändra mönster har utvecklats. Resultaten visar att genom körning av en modell genom prototypen så skulle detta potentiellt kunna öka systemens säkerhet.
|
10 |
Implementation and Analysis of Authentication and Authorization Methods in a Microservice Architecture : A Comparison Between Microservice Security Design Patterns for Authentication and Authorization Flows / Implementation och Analys av Autentisering och Auktoriseringsmetoder i en Microservicearkitektur : En Jämförelse Mellan Säkerhetsdesignmönster för Autentisering och Auktorisering i MicroservicesTran Florén, Simon January 2021 (has links)
Microservices have emerged as an attractive alternative to more classical monolithic software application architectures. Microservices provides many benefits that help with code base comprehension, deployability, testability, and scalability. As the Information technology (IT) industry has grown ever larger, it makes sense for the technology giants to adopt the microservice architecture to make use of these benefits. However, with new software solutions come new security vulnerabilities, especially when the technology is new and vulnerabilities are yet to be fully mapped out. Authentication and authorization are the cornerstone of any application that has a multitude of users. However, due to the lack of studies of microservices, stemming from their relatively young age, there are no standardized design patterns for how authentication and authorization are best implemented in a microservice. This thesis investigates an existing microservice in order to secure it by applying what is known as a security design pattern for authentication and authorization. Different security patterns were tested and compared on performance. The differing levels of security provided by these approaches assisted in identifying an acceptable security versus performance trade-off. Ultimately, the goal was to give the patterns greater validity as accepted security patterns within the area of microservice security. Another goal was to find such a security pattern suitable for the given microservice used in this project. The results showed a correlation between increased security and longer response times. For the general case a security pattern which provided internal authentication and authorization but with some trust between services was suggested. If horizontal scaling was used the results showed that normal services proved to be the best target. Further, it was also revealed that for lower user counts the performance penalties were close to equal between the tested patterns. This meant that for the specific case where microservices sees lower amounts of traffic the recommended pattern was the one that implemented the maximum amount access control checks. In the case for the environment where the research were performed low amounts of traffic was seen and the recommended security pattern was therefore one that secured all services of the microservices. / Mikrotjänster har framträtt som ett mer attraktivt alternativ än mer konventionella mjukvaruapplikationsarkitekturer såsom den monolitiska. Mikrotjänster erbjuder flera fördelar som underlättar med en helhetsförståelse för kodbasen, driftsättning, testbarhet, och skalbarhet. Då IT industrin har växt sig allt större, så är det rimligt att tech jättar inför mikrotjänstarkitekturen för att kunna utnyttja dessa fördelar. Nya mjukvarulösningar medför säkerhetsproblem, speciellt då tekniken är helt ny och inte har kartlagts ordentligt. Autentisering och auktorisering utgör grunden för applikationer som har ett flertal användare. Då mikrotjänster ej hunnit blivit utförligt täckt av undersökning, på grund av sin relativt unga ålder, så finns det ej några standardiserade designmönster för hur autentisering och auktorisering är implementerade till bästa effekt i en mikrotjänst. Detta examensarbete undersöker en existerande mikrotjänst för att säkra den genom att applicera vad som är känt som ett säkerhetsdesignmönster för autentisering och auktorisering. Olika sådana mönster testades och jämfördes baserat på prestanda i olika bakgrunder. De varierade nivåerna av säkerhet från de olika angreppssätten som säkerhetsmönstrena erbjöd användes för att identifiera en acceptabel kompromiss mellan säkerhet mot prestanda. Målet är att i slutändan så kommer detta att ge mönstren en högre giltighet när det kommer till att bli accepterade som säkerhetsdesignmönster inom området av mikrotjänstsäkerhet. Ett annat mål var att hitta den bästa kandidaten bland dessa säkerhetsmönster för den givna mikrotjänsten som användes i projektet. Resultaten visade på en korrelation mellan ökad säkerhet och längre responstider. För generella fall rekommenderas det säkerhetsmönster som implementerade intern autentisering och auktorisering men med en viss del tillit mellan tjänster. Om horisontell skalning användes visade resultaten att de normala tjänsterna var de bästa valet att lägga dessa resurser på. Fortsättningsvis visade resultaten även att för ett lägre antal användare så var den negativa effekten på prestandan nästan likvärdig mellan de olika mönstren. Detta innebar att det specifika fallet då mikrotjänster ser en lägre mängd trafik så är det rekommenderade säkerhetsmönstret det som implementerad flest åtkomstkontroller. I fallet för den miljö där undersökningen tog plats förekom det en lägre mängd trafik och därför rekommenderades det säkerhetsmönster som säkrade alla tjänster närvarande i mikrotjänsten.
|
Page generated in 0.0547 seconds