liu.seSearch for publications in DiVA
Change search
Link to record
Permanent link

Direct link
BETA
Kamkar, Mariam
Publications (10 of 16) Show all publications
Wilander, J., Nikiforakis, N., Younan, Y., Kamkar, M. & Joosen, W. (2011). RIPE: Runtime Intrusion Prevention Evaluator. In: Proceedings of the 27th Annual Computer Security Applications Conference. Paper presented at 27th Annual Computer Security Applications Conference (ACSAC 2011), December 5-9, Orlando, Florida, USA (pp. 41-50).
Open this publication in new window or tab >>RIPE: Runtime Intrusion Prevention Evaluator
Show others...
2011 (English)In: Proceedings of the 27th Annual Computer Security Applications Conference, 2011, p. 41-50Conference paper, Published 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%.

Keywords
Security intrusion; buffer overflow; intrusion prevention; dynamic analysis
National Category
Computer Sciences
Identifiers
urn:nbn:se:liu:diva-90030 (URN)10.1145/2076732.2076739 (DOI)978-1-4503-0672-0 (ISBN)
Conference
27th Annual Computer Security Applications Conference (ACSAC 2011), December 5-9, Orlando, Florida, USA
Available from: 2013-03-15 Created: 2013-03-15 Last updated: 2018-01-11Bibliographically approved
Wilander, J. & Kamkar, M. (2003). A Comparison of Publicly Available Tools for Dynamic Buffer Overflow Prevention. In: Proceedings of the 10th Network and Distributed System Security Symposium, 2003. Paper presented at The 10th Network & Distributed System Security Symposium 2003 (NDSS), San Diego, California, USA (pp. 149). Reston, Virginia, USA: Internet Society
Open this publication in new window or tab >>A Comparison of Publicly Available Tools for Dynamic Buffer Overflow Prevention
2003 (English)In: Proceedings of the 10th Network and Distributed System Security Symposium, 2003, Reston, Virginia, USA: Internet Society , 2003, p. 149-Conference paper, Published 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.

Place, publisher, year, edition, pages
Reston, Virginia, USA: Internet Society, 2003
Keywords
Security intrusion; buffer overflow; intrusion prevention; dynamic analysis
National Category
Computer Sciences
Identifiers
urn:nbn:se:liu:diva-29495 (URN)14850 (Local ID)14850 (Archive number)14850 (OAI)
Conference
The 10th Network & Distributed System Security Symposium 2003 (NDSS), San Diego, California, USA
Available from: 2009-10-09 Created: 2009-10-09 Last updated: 2018-01-13Bibliographically approved
Wilander, J. & Kamkar, M. (2002). A Comparison of Publicly Available Tools for Static Intrusion Prevention. In: Nordic Workshop on Secure IT Systems NordSec,2002. Paper presented at 7th Nordic Workshop on Secure IT Systems, "Towards Secure and Privacy-Enhanced Systems", 7-8 November 2002, Karlstad University, Sweden (pp. 68). Karlstad, Sweden: Karlstad University Studies
Open this publication in new window or tab >>A Comparison of Publicly Available Tools for Static Intrusion Prevention
2002 (English)In: Nordic Workshop on Secure IT Systems NordSec,2002, Karlstad, Sweden: Karlstad University Studies , 2002, p. 68-Conference paper, Published 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.

Place, publisher, year, edition, pages
Karlstad, Sweden: Karlstad University Studies, 2002
Keywords
Security intrusions, intrusion prevention, static analysis, security testing, bu↵er overflow, format string attack
National Category
Computer Sciences
Identifiers
urn:nbn:se:liu:diva-29494 (URN)14849 (Local ID)14849 (Archive number)14849 (OAI)
Conference
7th Nordic Workshop on Secure IT Systems, "Towards Secure and Privacy-Enhanced Systems", 7-8 November 2002, Karlstad University, Sweden
Available from: 2009-10-09 Created: 2009-10-09 Last updated: 2018-01-13Bibliographically approved
Lambrix, P. & Kamkar, M. (1998). Computer Science as an Integrated Part of Engineering Education. In: Proceedings of the Third ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education: . Paper presented at Third ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education (pp. 153-156).
Open this publication in new window or tab >>Computer Science as an Integrated Part of Engineering Education
1998 (English)In: Proceedings of the Third ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education, 1998, p. 153-156Conference paper, Published 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.

National Category
Computer Sciences Educational Sciences
Identifiers
urn:nbn:se:liu:diva-119315 (URN)10.1145/282991.283105 (DOI)1-58113-000-7 (ISBN)
Conference
Third ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education
Available from: 2015-06-12 Created: 2015-06-12 Last updated: 2018-01-11
Lambrix, P., Göthe Lundgren, M. & Kamkar, M. (1997). Computer science as an integrated part of engineering education. In: Proceedings of the ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education: . Paper presented at ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education (pp. 151).
Open this publication in new window or tab >>Computer science as an integrated part of engineering education
1997 (English)In: Proceedings of the ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education, 1997, p. 151-Conference paper, Poster (with or without abstract) (Refereed)
National Category
Computer Sciences Educational Sciences
Identifiers
urn:nbn:se:liu:diva-119316 (URN)10.1145/266057.266212 (DOI)1-58113-012-0 (ISBN)
Conference
ACM SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education
Available from: 2015-06-12 Created: 2015-06-12 Last updated: 2018-01-11
Hoffner, T., Kamkar, M. & Fritzson, P. (1995). Evaluation of Program Slicing tools. In: : . Paper presented at AADEBUG '95, 2nd Int. Workshop on Automated and Algorithmic Debugging, St. Malo, France, May 22-24, 1995.
Open this publication in new window or tab >>Evaluation of Program Slicing tools
1995 (English)Conference paper, Published 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.

National Category
Electrical Engineering, Electronic Engineering, Information Engineering
Identifiers
urn:nbn:se:liu:diva-110108 (URN)
Conference
AADEBUG '95, 2nd Int. Workshop on Automated and Algorithmic Debugging, St. Malo, France, May 22-24, 1995
Available from: 2014-09-02 Created: 2014-09-02 Last updated: 2014-10-03
Shahmehri, N., Kamkar, M. & Fritzson, P. (1995). Usability criteria for automated debugging systems. Journal of Systems and Software, 31(1), 55-70
Open this publication in new window or tab >>Usability criteria for automated debugging systems
1995 (English)In: Journal of Systems and Software, ISSN 0164-1212, E-ISSN 1873-1228, Vol. 31, no 1, p. 55-70Article in journal (Refereed) Published
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.

Place, publisher, year, edition, pages
Elsevier, 1995
National Category
Electrical Engineering, Electronic Engineering, Information Engineering
Identifiers
urn:nbn:se:liu:diva-109762 (URN)10.1016/0164-1212(94)00087-4 (DOI)
Available from: 2014-08-27 Created: 2014-08-27 Last updated: 2017-12-05Bibliographically approved
Kamkar, M., Fritzson, P. & Shahmehri, N. (1993). Interprocedural dynamic slicing applied to interprocedural data flow testing. In: Conference on Software Maintenance, 1993: . Paper presented at Conference on Software Maintenance, CSM-93, 27-30 September 1993, Montreal, Canada. IEEE
Open this publication in new window or tab >>Interprocedural dynamic slicing applied to interprocedural data flow testing
1993 (English)In: Conference on Software Maintenance, 1993, IEEE , 1993Conference paper, Published 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

Place, publisher, year, edition, pages
IEEE, 1993
National Category
Electrical Engineering, Electronic Engineering, Information Engineering
Identifiers
urn:nbn:se:liu:diva-110092 (URN)10.1109/ICSM.1993.366924 (DOI)0-8186-4600-4 (ISBN)
Conference
Conference on Software Maintenance, CSM-93, 27-30 September 1993, Montreal, Canada
Available from: 2014-09-02 Created: 2014-09-02 Last updated: 2014-10-01Bibliographically approved
Kamkar, M., Shahmehri, N. & Fritzson, P. (1993). Three Approaches to Interprocedural Dynamic Slicing. Paper presented at Euromicro 93 Open System Design: Hardware, Software and Applications, Barcelona, 6–9 September 1993. Microprocessing and Microprogramming, 38(1-5), 625-636
Open this publication in new window or tab >>Three Approaches to Interprocedural Dynamic Slicing
1993 (English)In: Microprocessing and Microprogramming, ISSN 0165-6074, Vol. 38, no 1-5, p. 625-636Article in journal (Refereed) Published
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.

Place, publisher, year, edition, pages
Elsevier, 1993
National Category
Electrical Engineering, Electronic Engineering, Information Engineering
Identifiers
urn:nbn:se:liu:diva-110101 (URN)10.1016/0165-6074(93)90203-W (DOI)
Conference
Euromicro 93 Open System Design: Hardware, Software and Applications, Barcelona, 6–9 September 1993
Available from: 2014-09-02 Created: 2014-09-02 Last updated: 2014-10-03Bibliographically approved
Shahmehri, N., Kamkar, M. & Fritzson, P. (1993). Usability criteria for automated debugging systems. In: Peter A. Fritzson (Ed.), Automated and Algorithmic Debugging: . Paper presented at First International Workshop, AADEBUG '93, Linköping, Sweden, May 3–5, 1993 (pp. 16-39). Springer Berlin/Heidelberg
Open this publication in new window or tab >>Usability criteria for automated debugging systems
1993 (English)In: Automated and Algorithmic Debugging / [ed] Peter A. Fritzson, Springer Berlin/Heidelberg, 1993, p. 16-39Conference paper, Published 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.

Place, publisher, year, edition, pages
Springer Berlin/Heidelberg, 1993
Series
Lecture Notes in Computer Science, ISSN 0302-9743, E-ISSN 1611-3349 ; 749
National Category
Electrical Engineering, Electronic Engineering, Information Engineering
Identifiers
urn:nbn:se:liu:diva-110095 (URN)10.1007/BFb0019398 (DOI)978-3-540-57417-0 (ISBN)978-3-540-48141-6 (ISBN)
Conference
First International Workshop, AADEBUG '93, Linköping, Sweden, May 3–5, 1993
Available from: 2014-09-02 Created: 2014-09-02 Last updated: 2018-02-21Bibliographically approved
Organisations

Search in DiVA

Show all publications