CHAPTER 1 INTRODUCTION 1.1 BACKGROUND Security tactics are a useful tool that can help people immediately to start reasoning about secure software design. A security tactic is a typical design concept that addresses a different security problem at architectural design level. In particular, flaws in implementation of security tactics or the deterioration of security tactics when doing coding and maintenance activities 2,it can result some vulnerabilities in the security architecture of the system, named these vulnerabilities as tactical vulnerabilities. The correct implementation of Manage User Sessions tactic in a web application, that would allow the system to keep path of users that are currently authenticated Once the user authenticates him/herself with this forged session identifier, the attacker will be able to steal his/her authenticated session. The architects have used the Manage User Sessions tactic in the architecture design of the web application, the developers have failed to implement it correctly. Therefore, here conduct a deep study about the errors related to security tactics. Authentication of user is a process that permits a system to clarify the uniqueness of someone who connects to a resource. Nowadays many technologies are available to a network security to authenticate users 4. The actors HYPERLINK http// authentication is worked in all human with computer interaction and they can automatically logged in. The Authentication means, it authorizes client to server interactions on every networks to allow access control to network and Internet connected systems. In many systems, user authentication is typically considered as a simple user ID and password combination. If an actors authentication is not implemented strictly, the attackers can steal the user information and act as a user by providing identical terms to the application. So here introducing MVC new framework to see the security issues to the application developed while or after the execution. Validation detection and access control specification are the two methods used here to clear the basic issues. The model, view and controller (MVC) is an architectural pattern, that could separate an application into three main components the model, the view, and the controller 7. All of these components are able to handle specific 1 development theme of an application. To create an extensible project, one of the most frequently used web development framework is MVC. 1.2 RESEARCH PROBLEM For security of interactions, access control specifications includes the authorization, authentication and an entity trying to gain access. Access control models depends on the customer. The thing is, the client or user is the one trying to receive access to the application or the software. In many systems, an access control list is there, that includes a list of permissions and it know about to whom and to where these permissions can apply. Such kind of things can be viewed by some specific people and not by others and it is controlled by access control. It permits an administrator to protect information and set some rules as to what information, who can access it and at what time it can be accessed. The input or data validation is considered as best older method to provide security as authentication. The correct checking of different input that is supplied by someone else. This is the concept of input validation. All systems require a variety type of inputs. User inputs may come from different sources, or any number of other sources. The malicious users is not going to declare that, they are going to attack our software or application. This means to reason that all input should check and validate, because people may not know exactly who or what is giving to the software or application as input to process. Applications and software should check all input entered by a user or coming from anywhere, but this is not the only time that input should be checked. Web applications created by frameworks, one of the important framework is named as MVC new framework. It can detect logical errors in software development life cycle and it is a part of artificial intelligence. Mainly this framework focus on input validation such as SQL injection or file injection and access control issues such as spoofing. 2 1.3 SCOPE AND OBJECTIVES There are several scopes and objectives for the system Deep study about the type and impact of vulnerabilities related to security tactics Application , that load our system and can identify the problems Allows the access control with a proper authentication. Identification of vulnerability type. Tactic related vulnerability fixing Input validation Authentication 3 CHAPTER 2 LITERATURE SURVEY A security tactic is a design concept that addresses a security problem at the architectural design level. Architectural security tactics are used for resisting, detecting and to recover from many kinds of attacks. Software architects often adopt some security mechanisms for this purpose. Consequently, flaws in the implementation of security tactics or their deterioration during software evolution and maintenance can introduce severe vulnerabilities that could be exploited by attackers. Then refer to these vulnerabilities as tactical vulnerabilities. This shows that, a programmer does not have an idea about the types and also the impacts of vulnerabilities. So here conduct a deep study about the types and effects of vulnerabilities. Software architectural specifications using SAM is a concept, in which SAM is considered as a framework based on two concepts called Petri nets and temporal logic. SAM software architecture can be analysed using one technique called symbolic model checking with tool Symbolic Model Verifier. SAM supports just formal analysis in many techniques. Security Code Review involves Make sure you know what youre doing, prioritize and Review the code. UML metamodel level, it will allows device developers to build support for creating patterns and for checking conformance to pattern specifications. The pattern specification techniques to support practical and rigorous pattern based model transformation techniques. In dynamic rule space, software architectures should be viewed and analysed as multi-layered overlapping DRSpaces, it might be able to identify a large number of structural and evolutionary problems. Architecture design methods, such as ADD,it describes an idealization of how architects perform their duties. The frameworks might generate new requirements .This shows a principled way to use frameworks in the architecture design. Two best hotspot patterns used here is, Unstable Interface and Implicit Cross-module Dependency. It is based on Baldwin and Clarks design rule theory, for the automatic detection of architectural issues. These patterns could identify the most error-prone and change-prone files, they also point out specific architecture Problems. In an architecture centric approach, it may focuses entirely on the design decisions, when doing this analysis does not require access to the source code, just a knowledge of the structural and historical relations between files. A machine learning approach is here for discovering and visualizing architectural tactics in code. Mapping these code 4 segments to Tactic Traceability Patterns, and monitoring sensitive areas of the code for some modification events. TECHNIQUES TO IDENTIFY SOME VULNERABILITIES Archie is having some responsibility like detection of architectural tactics such as heartbeat, resource pooling, and role based access control (RBAC) in the source code of a project. Archie needs to construct a traceability links between the tactics., Archies primary contribution is in the area of architectural preservation through detecting and tracing architectural concerns. The method of systematic review is applied with the purpose of identifying, extracting and analyzing the main proposals for security ontologies. The main identified proposals are compared using a formal framework. Next is, various recent developments in the area of design level vulnerabilities are reviewed. Future research directions are proposed, which can be used by the researchers for further extension of their research in the area of securing a software design 9. A semantic template for each type of vulnerability is created from information in the Common Weakness Enumeration dictionary. Next, known vulnerabilities and related concepts in the repository are tagged with concepts from the template and done a comparison process. Attack based approaches are based on knowing the enemy and assessing the possibility of similar attacks. Although the taxonomy proposed here is incomplete and imperfect, it provides an important first step. It focuses on collecting well known or common errors and explaining them in a way that makes sense to programmers. This new taxonomy is made up of two distinct kinds of sets, which are stealing from biology named as a phylum and a kingdom. Other approaches to software security including penetrate patch, secure operational environment, and secure software engineering. It is clear that early detection of security problems and countering them in the software development cycle will save time and energy spent on removing flaws after software release. A variation in anyone of these approach causes misuse detection. The state transition analysis, by using pattern matching can detect system attacks. Knowledge about attacks is represented as a specialized graphs. These graphs are an adaptation of Colored Petri Nets with guards, it representing signature context and vertices representing system states. A new methodology to develop countermeasures against code injection attacks, and validates the methodology by working out a specific countermeasure. This methodology is 5 based on modeling the execution environment of a program. Such a model is then used to build countermeasures. Nowadays design and implementation methods exists for reducing the security vulnerabilities of software. A variety of source code security checkers are available, that use automatic scanning to indicate potential security pitfalls in a software application. Nevertheless, the imperative nature of the majority of programming languages used now may lie at the source of the security vulnerabilities. new technique for finding potential buffer overrun vulnerabilities in security-critical C code. The key to success is to use static analysis, Then formulate detection of buffer overruns as an integer range analysis problem. One major advantage of static analysis is that security bugs can be eliminated before code is deployed. 6 CHAPTER 3 DISCUSSIONS 3.1 FRAMEWORKS IN ARCHITECTURE DESIGN A framework is a reusable software theme that provides generic functionality like addressing recurring concerns across a wide range of applications. Frameworks will helps to increase productivity by letting programmers focus on business logic and end user value rather than its underlying technologies. Frameworks is an abstract of some combination of application, language, hardware, networking, storage, or operating system characteristics. One aim of it is to reduce the cognitive burden on the programmer, who needs to learn only the framework rather than all the underlying technological details 13. The abstractions should change more slowly than the details, easing portability and evolution. Moreover, these abstractions being shared among many systems, will more likely be heavily tested, reducing or entirely eliminating classes of bugs. Frameworks might generate new requirements consider an example, if plan on using Ajax (Asynchronous JavaScript and XML), the customers will need a Web browser that supports JavaScript. In this way, frameworks can limit the architecture design options. However, they might also create new opportunities and introducing the possibility of new features. 3.2 HOTSPOT PATTERNS The industrial study to determine the usefulness of hotspot patterns in practice for qualitative evaluation. Wanted to evaluate if these patterns reveal the major architecture problems that are valuable to the architect and developers, and if, in addition to identifying where to refactor, these patterns can provide suggestions about how to refactor. In this case study, identified the two instances of Unstable Interface patterns and one instance of Implicit Cross-module Dependency, also it influencing more than hundred files 8. The architect and developers in this study confirmed that this hotspot detector discovered a majority of the architecture problems that are causing maintenance pain. Furthermore based on the nature of the patterns identified or discovered, they were able to identify the hidden dependencies behind its Implicit Cross-module Dependency issue, and the two interfaces that have grown into 7 God interfaces, thus needing to be refactored. They have started to improve the maintainability of their system by refactoring and fixing these architecture issues. 3.3 ARCHITECTURE-CENTRIC APPROACH The impact of the architectural relations among different files on software security, as well as the impact of security patches to architecture, were never can fully 9. The architectural flaws may be one of the significant causes of the difficulty of fixing security issues, and the ad hoc patches may deteriorate software architecture, which will attempt to incur more, and wide-spreading the security issues. Now, there has been increasing interest in the consequences of architectural design for security. The research goal is to reveal the significant relationship between architectural design and security tactics also in particular, to show how architectural issues are strongly correlated with high rates of security bugs. The fact is that the vast majority of open source projects do not tag security at all in their issue tracking system. And developers suspect that many projects that are using CVEs, that are actually under reporting their security bugs. Part of the reason for this discrepancy is that CVEs are a subset of all security issues. CVEs are security issues that are publicly known and acknowledged vulnerabilities in architecture. 3.4 DETECTING ARCHITECTURAL TACTICS IN CODE Software architectures are often constructed through a series of design decisions. In particular, architectural tactics are normally selected to satisfy some specific quality concerns such as reliability, performance, and security 10. However, the knowledge of these tactical decisions is often losts, it results in a gradual degradation of architectural quality as developers modify the code without fully understanding the architectural decisions. Here present a machine learning approach for identifying, discovering and visualizing architectural tactics in code, then mapping these code as segments to Tactic Traceability Patterns, and monitoring sensitive areas of the code for modification events in order to provide users with up-to-date information about underlying architectural concerns. Initially the tactic detection problem may appear to be as a special case of design pattern recognition, it turns out to be more challenging. Unlike the design patterns which tend to be described in terms of classes and their associations,tactics are described in terms of roles and interactions. This means that a single tactic might be implemented using a variety of different design patterns. For example observed the heartbeat tactic implemented using (i) direct 8 communication between the sender and receiver roles, (ii) the observer pattern in which the receiver registered as a listener to the sender found in the system 3.5 TOOL FOR DETECTING ARCHITECTURALLY SIGNIFICANT CODE The quality of a software architecture is largely dependent upon the architectural decisions at the framework, tactic, and pattern levels 11. Decisions to adopt certain solutions determine the extent to which desired qualities such as security, availability, and performance, that are achieved in the delivered system. Archie detects architectural tactics such as heartbeat, resource pooling, and role-based access control (RBAC) in the source code of a project constructs traceability links between the tactics, design models, rationales and source code and then uses these to monitor the environment for architecturally significant changes and to keep developers informed of underlying design decisions and their associated rationales. An alternate solution is to use trace links to connect design rationales with impacted parts of the code. Unfortunately, while it is conceptually simple to create a trace matrix documenting the relationships between design decisions, their rationales, and the impacted code elements, in practice any efforts to establish traceability at the code level are very challenging. There are several contributing factors including lack of adequate tooling and the fact that traceability links are often created, maintained, and used in isolation from regular development activities, and are not accessible to support daily software engineering tasks. 3.6 RESEARCH ON SOFTWARE SECURITY VULNERABILITIES One of the major problems in software security is the lack of knowledge about security among software developers 12. Even if a developer has good knowledge about current software vulnerabilities, they generally have little or no idea about the causes and measures that can avoid those vulnerabilities. Now it is established fact that most of the vulnerabilities arise in design phase of the software development lifecycle. Keeping in view the importance of software design level security, a study of current software design level vulnerabilities and their cause is conducted. In this context, discuss current practices in specific software design tasks, vulnerabilities and mitigation mechanism. On the basis of the critical review, areas of research are identified that warrant further investigation. There has been plenty of work around on software security and development of tools. Most of these, evaluate security in all phases of software development process. CLASP, Secure 9 Tropos, Framework for secure system development are good examples that address security throughout the software development cycle. CLASP is a plug-in that can be integrated into other processes like RUP (Rational Unified Process). As already reported importance of security integration in the design phase in previous section, do not find much work reported in the area as compared to its importance. However, a rapid growth has been visualized recently. 3.7 A TAXONOMY OF SOFTWARE SECURITY ERRORS This approach represents a striking alternative to taxonomies of attack patterns1 or simple-minded collections of specific vulnerabilities (such as MITREs CVE, www.cve. 14. Attack-based approaches are based on knowing your enemy and assessing the possibility of similar attack they represent the black hat side of the software security equation. However, a taxonomy of software security errors is more positive in nature its most useful to the white hat side of the software security world. In the end, both approaches are valid and necessary. Although the taxonomy proposed here is incomplete and imperfect, it provides an important first step. It focuses on collecting common errors and explaining them in a way that makes sense to programmers. This new taxonomy is made up of two distinct kinds of sets, which are stealing from biology a phylum (a type of coding error, such as illegal pointer value) and a kingdom (a collection of phyla that shares a common theme, such as input validation and representation). Both kingdoms and phyla naturally emerge from a soup of coding rules relevant to enterprise software, and its for this reason that this taxonomy is likely to be incomplete and might lack certain coding errors. In some cases, its easier and more effective to talk about a category of errors than to talk about any particular attack. Although categories are certainly related to attacks, they arent the same as attack patterns. 3.8 A VULNERABILITY-ACTIVITY REVISIT There are three major approaches to develop secure software. The first approach is known as penetrate and patch. Penetrate and patch means applying patches to fix vulnerable applications 15. It is a common approach to securing applications but, the cost of finding and fixing a bug after a software product has been released can be 100 times more expensive than solving the problem in the development phases 16. Furthermore, patches can contain yet vulnerabilities. 10 The goal of vulnerability analysis is to develop methodologies that provide the ability to specify, design and implement software without vulnerabilities and also ability to detect vulnerabilities during system operation. Vulnerability classification frameworks describe security flaws from various perspectives. Some frameworks describe vulnerabilities by classifying the techniques used to exploit them, others characterize vulnerabilities in terms of the software and hardware components and interfaces that make up the vulnerability, and also others classify vulnerabilities by their nature. In this section briefly describe the most important works on vulnerability classification. The most important activities in the implementation phase, on the order of importance, includes security code review, input validation, use of secure library functions rather than relying on system calls. Manual code review is a tedious job. There are some automated tools that scan the code for vulnerabilities and security problems. However, they do not guarantee the removal of all those vulnerabilities which can be removed by code review. Nevertheless, they are a good aid for security professionals and programmers to solve preliminary security flaws in the programs. For input validation, the input is assumed to be malicious by default and its format and type must be carefully validated. It is done using limiting rules that are specified by programmers depending on the input type. Insecure functions as well as system functions should be replaced by safe library functions made for the corresponding programming language. 3.9 REMOVAL OF SOFTWARE SECURITY VULNERABILITIES Simply including some standard data validation techniques in the source code can prevent many software security vulnerabilities. These techniques are based on the principle that all data should be filtered and then either accepted or rejected. Then recommends several data validation rules such as assuming all input is guilty until proven otherwise, preferring to reject data rather than filter it, performing data validation both at input points and at the component level, not accepting commands from the user unless they are parsed by the software, and making policy decisions based on a default deny rule. Buffer overflow attacks occur when a string of characters of unchecked length is entered into a program 16. This allows user supplied input to overwrite other variables, thereby changing their values. Such attacks can change the value of a return address from a function call and cause control to jump to malicious code that was also entered via the buffer overflow. 11 Some solutions are declaring all local variables in C as static to keep them off of the stack. Patches can be added to an operating system to make code in the stack non-executable. The idea of proving a software program correct has been researched for decades. These principles and techniques can be used to build purely functional programs that are correct. Such principles and techniques can then be applied to secure software. This refinement approach may reveal that incomplete and faulty security requirements result in incomplete and faulty security designs and programs. Refining a requirement specification down to its functional implementation may reveal mathematically that the original specification is incorrect. This approach could identify a security vulnerability in a requirement long before the program is implemented and released to the public for possible virus attacks 3.10 APPROACH TO APPLY SECURITY TACTICS Architectural tactics represent codified knowledge obtained from the experience gained by architects. Architectural tactics are high-level decisions made by architects to meet or improve a quality attribute 17. Tactics are general guidelines on how to design a specific aspect of a software system without imposing a particular structure of software. However, much of the literature describes the tactics as a catalog organized hierarchically but do not describe the activities to be incorporated into the architecture. On the other hand, security is a quality attribute with particular characteristics that makes a complex property due to its strong dependence on the application domain and requires a sophisticated analysis. Security is an attribute that is not planned at the beginning of the software life cycle. In terms of architecture design, security is a quality property that cannot be resolved in a separate view because it is traversal to the concerns considered into architectural views. Security has dimensions such as process security, information security, operational security and security deployment. Security tactics can be applied simultaneously in multiple models and use several forms of implementation such as introduce a new hardware or software security technology, add operational procedures to support secure operation or modify existing structures, among others. The proposed architecture is organized into two major subsystems The first is the Premodeled Scenarios Subsystem, responsible for the preparation of a database with a large number of simulated scenarios using bathymetry. The second is the Alert Decision-Making Subsystem to support the tsunami alert generation and monitoring. 12 CHAPTER 4 MODELING In web applications, the programmers needs to create registration form to enter the inputs. Mostly the programmer does not have any knowledge about security in web application. For a fresher, he will take time to create a registration form. At that time, he will make bugs. So, the industry itself needs to set a system to provide security in the web application. This system may be considered as a framework. For this framework using some tools or components. The framework created for input validation, actor authentication and also for monitoring and suggestion purpose. RequestVALIDATIONResponseFRAMEWORKSERVERACTORAUTHENTICATION Suggestion MONITORING SYSTEM Fig 4.1 Concept based design 13 The programmer creating a framework to retrieve the data from the system. The framework is used to call validation and actor authentication. The problem existing here is, the system cannot know who the user is or whether the user is a authenticated person or not. To solve this issue, we created a new framework called MVC new framework. This concept is showed in figure 1.By using this new framework the system can monitor the security issues to the application developed while or after the execution. If an actor authentication is not implemented strictly, the attacker can steal the user information. The attacker can act as a user by providing similar requests to the application. MVC NEW FRAMEWORK As touched on above, model, view and controller is called as a new framework named as MVC new framework. They can solve the problem with input validation and access control. It can identify the vulnerability type. Some MVC frameworks do not contain all of these features, most contain one or two. A simple way to understand the concepts of framework is, a user can interacts with the view state by clicking on a link or submitting a form. The controller will handles the user input when it entered, and transfers the user information to the model state. The model receives the information and can updates its state like adds data to a database. The view will checks the state of the model and its updates. It responds accordingly or one by one. The view waits for another interaction from the user or it waits for some inputs from user. Some details of MVC new frameworks User Request The software architects often adopt some security mechanisms for resisting attacks. Incorrect implementation or deterioration during software evolution leads to some security bugs. If a system that contains a lots of information, that may be used by an administrator or a user. Sometimes the user can act as an administrator like requesting to the application. They can steal their information. Frameworks for basic issues There are many frameworks in many platform to provide security to the system. Most commonly used framework is model, view, controller framework. But in php, there is no 14 framework for input validation and access control specification as logical issues. So, we are introducing an MVC new framework to solve the problem with logical issues. The user can request to the system and he can act as an administrator by sending administrator id. At that time the system cannot know who is the authenticated user. He will give the administrator information to the attacker. A new framework for any web application security. If an attacker injects some spywares to the administrator, the spywares will take the IP address of administrator and give it to the user. By this way, the user can change the IP address of itself as same as administrator. So, the system cannot differentiate them as user and as administrator. MVC new framework can solve this issue. Components for framework There are four components used for framework Form Assist Component Input Validator Component Input Data Analyzer Auto authentication Form Creation Form assist component contains modules to create and fill form elements like text boxes, select boxes, check box groups and radio groups etc. It also contains auto refilling for posted backforms. The form assist component is used to create, populate and to repopulate the registration forms. The web form creation, population and repopulation can be g into framework models in MVC framework architecture. In MVC architecture, there are three basic components. First one is a model, the models are components that manages operations. Second one is view, it will manages user interface. Third one is a controller, that organizes responses. Form Validator Form validator is a component, which is responsible for validating user inputs in a web form by referring given set of rules. It will automatically takes input data and validates the data with respect to the rules and generate errors corresponding to each input. The validator needs to set the rules manually. The drawbacks of form validator component is, it needs to set the 15 rules manually and the programmer does not have any idea about which rules where to be applied. Input Data Analyzer It is a component that analyzes data given in forms and generates rules for each input with respect to the data given for them. The analysis will involve behavior analysis, type analysis, mandatory field analysis, data length analysis, range analysis and data field comparison analysis. After this, the rules automatically generated for each field. Then, the rules generated by input data analyzer will be forwarded to the validator. So, the validator can use the rules to validate the form. Auto authentication The authenticator component analyze users and provide access control to the web pages with respect to the given access control specification. It auto authenticate users with pages and provides page if allowed. Otherwise, if it detects an unauthorized access from a user, it will end the current session of the user to prevent further intrusion from that user. ACCESS CONTROL Enterprise resource planning pattern in which, it will create pages and give access control to the pages. But in waterfall model, its drawback is, the access control cannot be set to pages. Each user requires individual page, it to be named as static model. ERP is a development system that allows to create and customize projects with respect to enterprise organizational structure. Here, introducing an ERP based access control method for projects developed waterfall model. The steps to provide access control within a single page is, user type identification, process filtration, check authentication and session termination or block. The technologies used to provide access control is session and cookie. The session is temporary storage in server to keep data of clients. Cookie is a small piece of data sent from a site and that stored on the users system by the users browser. 16 CHAPTER 5 CONCLUSION Software architects often adopt some security mechanisms to recovering from attacks. But still we are facing some problem with input validation and access control specification. If an actor authentication is not implemented strictly, others can steal their information. There are many frameworks to find the attacker by tracking the IP address of users. Although there exists some attackers by changing the IP address of attacker as same as administrator. So, here introducing an MVC new framework to monitor and suggesting the system. This framework could solve the problem with input validation and access control specification. 17 REFERENCES M. E. Fagan, (2010) Design and code inspections to reduce errors in program development, IBM Systems Journal, vol. 15, no. 3, pp. 182 211. G. McGraw, (2010) Software security, IEEE Security Privacy, vol. 2, no. 2,pp. 80 83. A. Bosu (2010) ,Automated code review tools for security, Computer, vol. 41,no. 12, pp. 108 111. J. C. Carver, Peer code review in open source communities using Review board, (2010) in Proc. of the 4th ACM Wksp. on Evaluationand Usability of Prog. Lang. and Tools. K. Tsipenyuk, B. Chess, and G. McGraw,(2010) Seven pernicious kingdomsa taxonomy of software security errors, IEEE Security Privacy, vol. 3. M. Dowd, J. McDonald, and J. Schuh, (2010) The Art of Software Security Assessment Identifying and Preventing Software Vulnerabilities. Addison- Wesley Professional.. P. C. Rigby, D. M. German, and M.-A. Storey, (2010) Open source softwarein Proc. of thepeer review practices a case study of the apache server. M.A. Hadavi, H. M. Sangchi, V. S. Hamishagi, H. Shirazi, (2010), Software Security A Vulnerability-Activity Revisit. The Third International Conference on Availability, Reliability and Security. Qiong Feng, Rick Kazman, Yuanfang Cai, Ran Mo, Lu Xiao (2010), Towards an Architecture-centric Approach to Security Analysis 13th Working IEEE/IFIP Conference on Software Architecture. Jay-Evan J. Tevis (2011) Methods For The Prevention, Detection And Removal Of Software Security Vulnerabilities, ACM Southeast Conference04, April 23, 2004, Huntsville, AL, USA. Mehdi Mirakhorli ,(2014) , Archie A Tool for Detecting, Monitoring, and Preserving Architecturally Significant Code, S. Rehman1 K. Mustafa2, (2014), Research on Software Design Level Security Vulnerabilities, ACM SIGSOFT Software Engineering Notes Page 1. Humberto Cervantes, (2014), A Principled Way to Use Frameworks in Architecture Design, IEEE Software published by the IEEE computer society. 18 Gary McGraw, (2014), Seven Pernicious Kingdoms A Taxonomy of Software Security Errors, PUBLISHED BY THE IEEE COMPUTER SOCIETY. M.A. Hadavi, H. M. Sangchi, V. S. Hamishagi, H. Shirazi, (2015), Software Security A Vulnerability-Activity Revisit, The Third International Conference on Availability, Reliability and Security. John A. Hamilton,(2015), Methods For The Prevention, Detection And Removal Of Software Security Vulnerabilities. ACM Southeast Conference04, April 23, 2004, Huntsville, AL, USA. Xudong He , Huiqun Yu, Tianjun Shi, Junhua Ding, Yi Deng, (2015), Formally analyzing software architectural specifications using SAM, The Journal of Systems and Software 71. 19 20 21 Gv PRG8Y .MXdSO OKKIrHv([email protected] Y, dXiJ(x(I_TS1EZBmU/xYy5g/GMGeD3Vqq8K)fw9
(W )6-rCSj id DAIqbJx6kASht(QpmcaSlXP1Mh9MVdDAaVBfJP8AVf 6Q