liu.seSearch for publications in DiVA
Change search
Refine search result
1 - 18 of 18
CiteExportLink to result list
Permanent link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Rows per page
  • 5
  • 10
  • 20
  • 50
  • 100
  • 250
Sort
  • Standard (Relevance)
  • Author A-Ö
  • Author Ö-A
  • Title A-Ö
  • Title Ö-A
  • Publication type A-Ö
  • Publication type Ö-A
  • Issued (Oldest first)
  • Issued (Newest first)
  • Created (Oldest first)
  • Created (Newest first)
  • Last updated (Oldest first)
  • Last updated (Newest first)
  • Disputation date (earliest first)
  • Disputation date (latest first)
  • Standard (Relevance)
  • Author A-Ö
  • Author Ö-A
  • Title A-Ö
  • Title Ö-A
  • Publication type A-Ö
  • Publication type Ö-A
  • Issued (Oldest first)
  • Issued (Newest first)
  • Created (Oldest first)
  • Created (Newest first)
  • Last updated (Oldest first)
  • Last updated (Newest first)
  • Disputation date (earliest first)
  • Disputation date (latest first)
Select
The maximal number of hits you can export is 250. When you want to export more records please use the Create feeds function.
  • 1.
    Fritzson, Peter
    et al.
    Linköping University, Department of Computer and Information Science.
    Gyimothy, Tibor
    Hungarian Academy of Sciences.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science.
    Shahmehri, Nahid
    Linköping University, Department of Computer and Information Science.
    Generalized algorithmic debugging and testing1991Conference paper (Refereed)
    Abstract [en]

    This paper presents a method for semi-automatic bug localization, generalized algorithmic debugging, which has been integrated with the category partition method for functional testing. In this way the efficiency of the algorithmic debugging method for bug localization can be improved by using test specifications and test results. The long-range goal of this work is a semi-automatic debugging and testing system which can be used during large-scale program development of nontrivial programs. The method is generally applicable to procedural langua ges and is not dependent on any ad hoc assumptions regarding the subject program. The original form of algorithmic debugging, introduced by Shapiro, was however limited to small Prolog programs without side-effects, but has later been generalized to concurrent logic programming languages. Another drawback of the original method is the large number of interactions with the user during bug localization. To our knowledge, this is the first method which uses category partition testing to improve the bug localization properties of algorithmic debugging. The method can avoid irrelevant questions to the programmer by categorizing input parameters and then match these against test cases in the test database. Additionally, we use program slicing, a data flow analysis technique, to dynamically compute which parts of the program are relevant for the search, thus further improving bug localization. We believe that this is the first generalization of algorithmic debugging for programs with side-effects written in imperative languages such as Pascal. These improvements together makes it more feasible to debug larger programs. However, additional improvements are needed to make it handle pointer-related side-effects and concurrent Pascal programs. A prototype generalized algorithmic debugger for a Pascal subset without pointer side-effects and a test case generator for application programs in Pascal, C, dBase, and LOTUS have been implemented.

  • 2.
    Fritzson, Peter
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Shahmehri, Nahid
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Gyimothy, Tibor
    Research Group on the Theory of Automata, Hungarian Academy of Sciences.
    Generalized algorithmic debugging and testing1992In: ACM Letters on Programming Languages and Systems, ISSN 1057-4514, Vol. 1, no 4, p. 303-322Article in journal (Refereed)
    Abstract [en]

    This paper presents a method for semi-automatic bug localization, generalized algorithmic debugging, which has been integrated with the category partition method for functional testing. In this way the efficiency of the algorithmic debugging method for bug localization can be improved by using test specifications and test results. The long-range goal of this work is a semi-automatic debugging and testing system which can be used during large-scale program development of nontrivial programs. The method is generally applicable to procedural langua ges and is not dependent on any ad hoc assumptions regarding the subject program. The original form of algorithmic debugging, introduced by Shapiro, was however limited to small Prolog programs without side-effects, but has later been generalized to concurrent logic programming languages. Another drawback of the original method is the large number of interactions with the user during bug localization. To our knowledge, this is the first method which uses category partition testing to improve the bug localization properties of algorithmic debugging. The method can avoid irrelevant questions to the programmer by categorizing input parameters and then match these against test cases in the test database. Additionally, we use program slicing, a data flow analysis technique, to dynamically compute which parts of the program are relevant for the search, thus further improving bug localization. We believe that this is the first generalization of algorithmic debugging for programs with side-effects written in imperative languages such as Pascal. These improvements together makes it more feasible to debug larger programs. However, additional improvements are needed to make it handle pointer-related side-effects and concurrent Pascal programs. A prototype generalized algorithmic debugger for a Pascal subset without pointer side-effects and a test case generator for application programs in Pascal, C, dBase, and LOTUS have been implemented

  • 3.
    Hoffner, Tommy
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Evaluation of Program Slicing tools1995Conference paper (Refereed)
    Abstract [en]

    This paper presents an evaluation and comparison of practical implementations of program slicing, which is a technique for extracting parts of computer programs by tracing the program's control and data flow related to some data item. Slicing has applications is several areas such as debugging, data flow testing, integration of several source program versions into single version, etc. The usefulness of slicing is related to its ability to focus on relevant parts of large programs.

    Static program slicing, which is a compile-time version of the analysis, was first introduced 1982, whereas run-time based dynamic slicing systems appeared around 1988. However, previously there has not been any comprehensive evaluation of the state of the art regarding slicing system implementations. This is an attempt to partially fill that need, by evaluating five implementations. Not surprisingly, it was observed that dynamic slicing systems often give smaller and more precise slices than static slicing systems, since in the dynamic case an actual flow of control is known. An unexpected observation was that dynamic slicers can sometimes be faster than static slicers. One of the systems shows how slicing can be integrated into a conventional debugging tool. All systems can be regarded as first generation systems, in that they have some performance problems and in several cases support rather small language subsets. The next generation of such systems may become useful tools integrated as part of program development environments.

  • 4.
    Kamkar, Mariam
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Shahmehri, Nahid
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Interprocedural dynamic slicing applied to interprocedural data flow testing1993In: Conference on Software Maintenance, 1993, IEEE , 1993Conference paper (Refereed)
    Abstract [en]

    During the past ten years several variants of an analysis technique called program slicing have been developed. Program slicing has applications in maintenance tasks such as debugging, testing, program integration, program verification, etc. and can be characterized as a type of dependence analysis. A program slice can loosely be defined as the subset of a program needed to compute a certain variable value at a certain program position. A novel method for interprocedural dynamic slicing which is more precise than interprocedural static slicing methods and is useful for dependence analysis at the procedural abstraction level was given by M. Kamkar et al. (1992, 1993). It is demonstrated here how interprocedural dynamic slicing can be used to increase the reliability and precision of interprocedural data flow testing. The work on data flow testing reported by E. Duesterwald et al. (1992), which is a novel method for data flow testing through output influences, is generalized

  • 5.
    Kamkar, Mariam
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Shahmehri, Nahid
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Affect-chaining in program flow analysis applied to queries of programs1987Licentiate thesis, monograph (Other academic)
    Abstract [en]

    This thesis presents how program flow analysis methods can be used to help the programmer understand data flow and data dependencies in programs. The design and implementation of an interactive query tool based on static analysis methods is presented. These methods include basic analysis and cross-reference analysis, intraprocedural data flow analysis, interprocedural data flow analysis and affect-chaining analysis.The novel concept of affect-chaining is introduced, which is the process of analysing flow of data between variables in a program. We present forward- and backward- affect-chaining, and also algorithms to compute these quantities. Also, a theorem about affect-chaining is proved.We have found that data flow problems appropriate for query applications often need to keep track of paths associated with data flows. By contrast, flow analysis in conventional compiler optimization

  • 6.
    Kamkar, Mariam
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Shahmehri, Nahid
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Affect-Chaining and Dependency Oriented Flow Analysis Applied to Queries of Programs1988Conference paper (Refereed)
    Abstract [en]

     Most of the work on static program flow analysis has been done in the context of code optimization. The situation is different for an application such as an interactive query tool for programmer support. Primarily this is because the information wanted is different from what is needed for optimization, but also because incremental flow analysis algorithms are much more relevant in this context.In this paper we introduce the concept of affect-chaining, which is the process of analysing flow of data between variables in a program. The objective is to help the user to better understand data flow and data dependencies in programs not only during design and coding but also during test, debugging and maintenance. We present both forward- and backward- versions of affect-chaining analysis together with efficient algorithms.A long term goal of the work presented in this paper is to combine results from static analysis of a program and information from the run-time state during execution of the same program. The idea is, that this combination will enable an interactive query tool to answer questions about possible reasons for unexpected program behavior, and also to inform about possible consequences of a program change which may be considered. Another goal is to develop better estimates of software complexity based on affect-chaining dependencies.

  • 7.
    Kamkar, Mariam
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Shahmehri, Nahid
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Bug Localization by Algorithmic Debugging and Program Slicing1990In: Programming Language Implementation and Logic Programming, Springer Berlin/Heidelberg, 1990, p. 60-74Conference paper (Refereed)
    Abstract [en]

    This paper presents a generalized version of algorithmic debugging, a method for semi-automatic bug localization. The method is generally applicable to procedural languages, and is not dependent on any ad hoc assumptions regarding the subject program. The original form of algorithmic debugging, introduced by Shapiro [Shapiro-83], is however limited to small Prolog programs without side-effects. Another drawback of the original method is the large number of interactions with the user during bug localization. To our knowledge, this work is the first generalization of algorithmic debugging for programs with side-effects written in imperative languages such as Pascal. Also, we have improved the search method in a way that eliminates many irrelevant questions to the programmer during bug localization. This makes it feasible to debug larger programs. The focusing of the localization process is achieved by using program slicing, a data flow analysis technique, to dynamically compute which parts of the program are relevant for the search. A prototype generalized algorithmic debugger for Pascal has been implemented in Pascal.

  • 8.
    Kamkar, Mariam
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Shahmehri, Nahid
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Interprocedural dynamic slicing1992In: Programming Language Implementation and Logic Programming / [ed] Bruynooghe, Maurice, Wirsing, Martin, Springer Berlin/Heidelberg, 1992, p. 370-384Conference paper (Refereed)
    Abstract [en]

    This paper presents the first algorithm for interprocedural dynamic slicing. Previous methods for dynamic slicing only considered languages without procedures and procedure calls. This method generates summary information for each procedure call and represents a program as a summary graph of dynamic dependencies. A slice on this graph consists of nodes for all procedure calls of the program that affect the value of a given variable. The size of the information saved by this method is considerably smaller than what is needed by previous methods for dynamic slicing [AH90], since it only depends on the size of the program's execution tree, i.e. the number of executed procedure calls, which is much smaller than the size of a trace of all executed statements. In addition, work space for the temporary graph is needed, proportional to the maximum sum of the sizes of simultaneously active procedures. A program slice can be produced from the interprocedural slice on the graph if a suitable definition of control dependency is used when the summary graph is constructed. The interprocedural dynamic slicing introduced in this paper is being used to improve the bug localization properties of the Generalized Algorithmic Debugging Technique [FGKS91], a method for declarative semi-automatic debugging.

  • 9.
    Kamkar, Mariam
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Shahmehri, Nahid
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Three Approaches to Interprocedural Dynamic Slicing1993In: Microprocessing and Microprogramming, ISSN 0165-6074, Vol. 38, no 1-5, p. 625-636Article in journal (Refereed)
    Abstract [en]

    The need of maintenance and modification demand that large programs be decomposed into manageable parts. Program slicing is one method for such decomposition. A program slice with respect to a specified variable at some program point consists of those parts of the program that may directly or indirectly affect the value of that variable at the particular program point. This is useful for understanding dependences within programs. A static program slice [Wei84] is computed using static data-and control flow analysis and is valid for all possible executions of the program. Static slices are often impricise, i.e., they contain unnecessarily large parts of the program. Dynamic slices [KL90] [AH90] [however, are precise but are valid only for a single execution of the program. Interprocedural dynamic slices can be computed for programs with procedures.

    This paper presents the first three techniques for interprocedural dynamic slicing which deal with procedures/ functions at the abstract level. All three methods first generate summary information for each procedure call 9or function application), then represent a program as a summary graph of dynamic dependences. A slice on this graph consists of vertices for all procedure calls of the program that affect the value of a given variable at the specified program point. The amount of information saved by these methods is considerably less than what is needed by previous methods for dynamic slicing [KL90] [AH90], since it only depends on the size of the program's execution tree, i.e., the number of executed procedure calls, which is smaller than a trace of all executed statements.

    The interprocedural dynamic slicing methods introduced here are applicable in at least two areas, program debugging [SKF90] [KSF90] and data flow testing.

  • 10.
    Lambrix, Patrick
    et al.
    Linköping University, Department of Computer and Information Science, Database and information techniques. Linköping University, Faculty of Science & Engineering.
    Göthe Lundgren, Maud
    Linköping University, Department of Science and Technology, Communications and Transport Systems. Linköping University, Faculty of Science & Engineering.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Computer science as an integrated part of engineering education1997In: Proceedings of the ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education, 1997, p. 151-Conference paper (Refereed)
  • 11.
    Lambrix, Patrick
    et al.
    Linköping University, Department of Computer and Information Science, Database and information techniques. Linköping University, Faculty of Science & Engineering.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Computer Science as an Integrated Part of Engineering Education1998In: Proceedings of the Third ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education, 1998, p. 153-156Conference paper (Refereed)
    Abstract [en]

    The Information Technology curriculum at Linköping University has as goal to form engineers with an integrated view of engineering. The teaching philosophy in this curriculum is Problem-Based Learning. The education in each term is organised in a number of themes where topics from different disciplines are integrated. We describe a particular term in the Information Technology curriculum as an example of the approach and the integration of computer science teaching with the teaching of other disciplines. An important advantage of the approach is that the students discover interactions between different disciplines and view the different topics as naturally connected. Also, the students seem to have a better understanding of the topics and are better motivated. Further, they obtain improved communication and co-operation skills. Another advantage is that the approach is appreciated by our female students, which has led to a higher percentage of female students in this curriculum compared to our other computer science curricula.

  • 12.
    Shahmehri, Nahid
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Semi-automatic bug localization in software maintenance1990In: Software Maintenance, 1990, IEEE , 1990, p. 30-36Conference paper (Refereed)
    Abstract [en]

     An algorithmic program debugger for imperative languages is presented, with Pascal as an example case. This debugger extends the power of existing debuggers by providing an interactive debugging facility where errors can be localized semiautomatically. The debugger is activated on demand when the user discovers a symptom of an error as the result of some computation. This symptom presumably denotes a difference between the intended program behavior and the actual behavior. The proposed approach consists of three phases: program transformation, tracing, and debugging. The first phase transforms the source program into an internal representation which is appropriate, according to the Shapiro model, for algorithmic debugging. This phase produces an intermediate program which is free from side effects and loops. The program tracing phase generates trace information which builds an execution tree for the erroneous program. The debugging phase performs bug localization through a number of user interactions. This phase consists of pure algorithmic program debugging and program slicing

  • 13.
    Shahmehri, Nahid
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Usability criteria for automated debugging systems1995In: Journal of Systems and Software, ISSN 0164-1212, E-ISSN 1873-1228, Vol. 31, no 1, p. 55-70Article in journal (Refereed)
    Abstract [en]

    Much of the current discussion around automated debugging systems is centered around various technical issues. In contrast, this paper focuses on user oriented usability criteria for automated debugging systems, and reviews several systems according to these criteria. We introduce four usability criteria: generality, cognitive plausibility, degree of automation and appreciation of the user's expertise. A debugging system which is general is able to understand a program without restrictive assumptions about the class of algorithms, the implementation, etc. A cognitively plausible debugging system supports debugging according to the user's mental model, e.g. by supporting several levels of abstraction and directions of bug localization. A high degree of automation means that fewer interactions with the user are required to find a bug. A debugging system that appreciates the user's expertise is suitable for both expert and novice programmers, and has the ability to take advantage of the additional knowledge of an expert programmer to speed up and improve the debugging process. Existing automated debugging systems fulfill these user-oriented requirements to a varying degree. However, many improvements are still needed to make automated debugging systems attractive to a broad range of users.

  • 14.
    Shahmehri, Nahid
    et al.
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science. Linköping University, The Institute of Technology.
    Fritzson, Peter
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Usability criteria for automated debugging systems1993In: Automated and Algorithmic Debugging / [ed] Peter A. Fritzson, Springer Berlin/Heidelberg, 1993, p. 16-39Conference paper (Refereed)
    Abstract [en]

    Much of the current discussion around automated debugging systems is centered around various technical issues. In contrast, this paper focuses on user oriented usability criteria for automated debugging systems, and reviews several systems according to these criteria. We introduce four usability criteria: generality, cognitive plausibility, degree of automation and appreciation of the user's expertise. A debugging system which is general is able to understand a program without restrictive assumptions about the class of algorithms, the implementation, etc. A cognitively plausible debugging system supports debugging according to the user's mental model, e.g. by supporting several levels of abstraction and directions of bug localization. A high degree of automation means that fewer interactions with the user are required to find a bug. A debugging system that appreciates the user's expertise is suitable for both expert and novice programmers, and has the ability to take advantage of the additional knowledge of an expert programmer to speed up and improve the debugging process. Existing automated debugging systems fulfill these user-oriented requirements to a varying degree. However, many improvements are still needed to make automated debugging systems attractive to a broad range of users.

  • 15.
    Strömbäck, Filip
    et al.
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Mannila, Linda
    Linköping University, Department of Computer and Information Science, Artificial Intelligence and Integrated Computer Systems. Linköping University, Faculty of Science & Engineering.
    Asplund, Mikael
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, Software and Systems. Linköping University, Faculty of Science & Engineering.
    A Student's View of Concurrency: A Study of Common Mistakes in Introductory Courses on Concurrency2019In: Proceedings of the 2019 ACM Conference on International Computing Education Research, New York, NY, USA: Association for Computing Machinery (ACM), 2019, p. 229-237Conference paper (Refereed)
    Abstract [en]

    This paper investigates common misconceptions held by students regarding concurrency in order to better understand how concurrency education can be improved in the future. As a part of the exam in two courses on concurrency and operating systems, students were asked to identify and eliminate any concurrency issues in a piece of code as a part of their final exam. Different types of mistakes were identified and the 216 answers were sorted into categories accordingly. The results presented in this paper show that while most students were able to identify the cause of an issue given its symptoms, only approximately half manage to successfully eliminate the concurrency issues. Many of the incorrect solutions fail to associate shared data with a synchronization primitive, e.g. using one lock to protect multiple instances of a data structure, or multiple locks to protect the same instance in different situations. This suggests that students may not only have trouble dealing with concepts related to concurrency, but also more fundamental concepts related to the underlying computational model. Finally, this paper proposes possible explanations for the students' mistakes in terms of improper mental models, and suggests types of problems that highlight the issues with these mental models to improve students' understanding of the subject.

  • 16.
    Wilander, John
    et al.
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    A Comparison of Publicly Available Tools for Dynamic Buffer Overflow Prevention2003In: Proceedings of the 10th Network and Distributed System Security Symposium, 2003, Reston, Virginia, USA: Internet Society , 2003, p. 149-Conference paper (Refereed)
    Abstract [en]

    The size and complexity of software systems is growing, increasing the number of bugs. Many of these bugs constitute security vulnerabilities. Most common of these bugs is the buffer overflow vulnerability. In this paper we implement a testbed of 20 different buffer overflow attacks, and use it to compare four publicly available tools for dynamic intrusion prevention aiming to stop buffer overflows. The tools are compared empirically and theoretically. The best tool is effective against only 50% of the attacks and there are six attack forms which none of the tools can handle.

  • 17.
    Wilander, John
    et al.
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    A Comparison of Publicly Available Tools for Static Intrusion Prevention2002In: Nordic Workshop on Secure IT Systems NordSec,2002, Karlstad, Sweden: Karlstad University Studies , 2002, p. 68-Conference paper (Refereed)
    Abstract [en]

    The size and complexity of today's software systems is growing, increasing the number of bugs and thus the possibility of security vulnerabilities. Two common attacks against such vulnerabilities are buffer overflow and format string attacks. In this paper we implement a testbed of 44 function calls in C to empirically compare five publicly available tools for static analysis aiming to stop these attacks. The results show very high rates of false positives for the tools building on lexical analysis and very low rates of true positives for the tools building on syntactical and semantical analysis.

  • 18.
    Wilander, John
    et al.
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Nikiforakis, Nick
    Katholieke Universiteit, Leuven, Belgium.
    Younan, Yves
    Katholieke Universiteit, Leuven, Belgium.
    Kamkar, Mariam
    Linköping University, Department of Computer and Information Science, PELAB - Programming Environment Laboratory. Linköping University, The Institute of Technology.
    Joosen, Wouter
    Katholieke Universiteit, Leuven, Belgium.
    RIPE: Runtime Intrusion Prevention Evaluator2011In: Proceedings of the 27th Annual Computer Security Applications Conference, 2011, p. 41-50Conference paper (Other academic)
    Abstract [en]

    Despite the plethora of research done in code injection countermeasures, buffer overflows still plague modern software. In 2003, Wilander and Kamkar published a comparative evaluation on runtime buffer overflow prevention technologies using a testbed of 20 attack forms and demonstrated that the best prevention tool missed 50% of the attack forms. Since then, many new prevention tools have been presented using that testbed to show that they performed better, not missing any of the attack forms. At the same time though, there have been major developments in the ways of buffer overflow exploitation.

    In this paper we present RIPE, an extension of Wilander's and Kamkar's testbed which covers 850 attack forms. The main purpose of RIPE is to provide a standard way of testing the coverage of a defense mechanism against buffer overflows. In order to test RIPE we use it to empirically evaluate some of the newer prevention techniques. Our results show that the most popular, publicly available countermeasures cannot prevent all of RIPE's buffer overflow attack forms. ProPolice misses 60%, LibsafePlus+TIED misses 23%, CRED misses 21%, and Ubuntu 9.10 with nonexecutable memory and stack protection misses 11%.

1 - 18 of 18
CiteExportLink to result list
Permanent link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf