Difference between revisions of "OWASP ASIDE Project"

From OWASP
Jump to: navigation, search
m
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==== Main  ====
 
==== Main  ====
  
This project is led by [[http://www.linkedin.com/pub/jing-xie/45/890/a1a Jing Xie]] & [[User: Bill Chu|Bill Chu]]. Other major contributors include [[User:Jun Zhu|Jun Zhu]], [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], [[User:John Melton|John Melton]] & [[User: Will Stranathan|Will Stranathan]].<br/>
+
This project is led by [[http://www.linkedin.com/in/junzhu1 Jun Zhu]] and [[User: Bill Chu|Bill Chu]]. Other major contributors include [[http://www.linkedin.com/pub/jing-xie/45/890/a1a Jing Xie]], [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], [[User:John Melton|John Melton]] & [[User: Will Stranathan|Will Stranathan]].<br/>
 
<br/>
 
<br/>
<b>New:</b> Our submission to [http://www.appsecusa.org/ AppSec USA 2012] has been accepted. We'd look forward to meeting with those who are interested in our idea and project at Austin, TX.
+
We have presented our talk [http://vimeo.com/54121249 Using Interactive Static Analysis for Early Detection of Software Vulnerabilities] at [http://www.appsecusa.org/ AppSec USA 2012]. You can view and download our [http://webpages.uncc.edu/~jzhu16/InteractiveStaticAnalysis.pdf presentation] here.
<br/><br/>
+
<br/>
We have presented our talk [http://d5srjexdxko0l.cloudfront.net/talks.html#ide Secure Programming Support in IDE] at [http://d5srjexdxko0l.cloudfront.net/ AppSec USA 2011] in Minneapolis. Although the resources are not available anymore, you can still view and download our [http://webpages.uncc.edu/~jxie2/ASIDE.pdf presentation] here.
+
We have presented our talk [http://vimeo.com/32657812 Secure Programming Support in IDE] at [http://d5srjexdxko0l.cloudfront.net/ AppSec USA 2011] in Minneapolis. You can view and download our [http://webpages.uncc.edu/~jxie2/ASIDE.pdf presentation] here.
  
  
Line 13: Line 13:
 
==== Take a Look ====
 
==== Take a Look ====
  
ASIDE is still under development. But in order to give you a sense of what it should be doing, we have this old version of [http://webpages.uncc.edu/~jxie2/aside_old.swf ASIDE DEMO]. You will need Adobe Flash to display it. A newer version will soon be uploaded.
+
ASIDE currently has two prototype implementations: [http://www.youtube.com/watch?v=VjzlpccMjTM ASIDE CodeRefactoring] and [http://www.youtube.com/watch?v=hyAO8WztiMc ASIDE CodeAnnotate].
 +
 
 +
CodeRefactoring is an Eclipse plugin that aims to detect root cause of vulnerabilities that are caused by untrusted inputs get in to the application and be consumed without validation.
 +
 
 +
CodeAnnotate is another Eclipse plugin which deals with a different class of vulnerabilities that are more application logic specific. Specifically, it is aimed at addressing CSRF and broken access control issues while the developers are writing their code.
 +
 
 +
An older version of [http://webpages.uncc.edu/~jxie2/aside_old.swf ASIDE DEMO] shows you earlier design and implementation of CodeRefactoring, if you are interested in knowing. You will need Adobe Flash to display it.
  
 
==== Download ====
 
==== Download ====
  
The first publicly available [http://webpages.uncc.edu/~jxie2/edu.uncc.sis.aside_0.0.1.jar ASIDE] can be downloaded now. You also need to download the complementary [http://webpages.uncc.edu/~jxie2/edu.uncc.sis.aside.logging_0.0.1.jar logging] facility to make ASIDE work properly. ASIDE is built upon [http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr1 Eclipse IDE for Java EE Developers] Version 3.5+.
+
The recent publicly available plugin can be downloaded from [http://webpages.uncc.edu/~jzhu16/edu.uncc.sis.aside_1.0.0.201302251700.jar here]. You also need to download the complementary [http://webpages.uncc.edu/~jzhu16/edu.uncc.sis.aside.logging_1.0.0.201302251700.jar logging] facility to make ASIDE work properly. ASIDE is built upon [http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr1 Eclipse IDE for Java EE Developers] Version 3.5+.
  
 
To make it work, please place the two jar files under the plugins folder of your Eclipse installation directory and then restart your Eclipse.
 
To make it work, please place the two jar files under the plugins folder of your Eclipse installation directory and then restart your Eclipse.
Line 23: Line 29:
 
==== Source Code ====
 
==== Source Code ====
  
The source code is located at https://github.com/Jing-Xie/owasp-aside
+
A recent version of the code is located at https://github.com/JunZhuSecurity/ASIDE-Education. An older version could be found at https://github.com/Jing-Xie/owasp-aside.
  
 
==== Research Activities ====
 
==== Research Activities ====
  
1. [[User:Jing Xie|Jing Xie]], [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], and [[User:Bill Chu|Bill Chu]], [http://webpages.uncc.edu/~jxie2/XIE-CHI2012.pdf Evaluating Interactive Support for Secure Programming], In Proceedings of ACM Conference on Human Factors in Computing Systems (CHI), May 2012, Austin, Texas, USA
 
  
2. [[User:Jing Xie|Jing Xie]], [[User:Bill Chu|Bill Chu]], [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], and [[User:John Melton|John T. Melton]], [http://www.acsac.org/2011/openconf/modules/request.php?module=oc_program&action=view.php&a=&id=62&type=2 ASIDE:IDE Support for Web Application Security], In Proceedings of 27th Annual Computer Security Applications Conference (ACSAC), December 5–9, 2011, Orlando, FL, USA
+
1. [[User:Jun Zhu|Jun Zhu]], [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], and [[User:Bill Chu|Bill Chu]], [http://webpages.uncc.edu/~jzhu16/SIGCSE12-Zhu.pdf Interactive Support for Secure Programming Education], To appear In Proceedings of ACM Technical
 +
Symposium on Computer Science Education (SIGCSE), March 6-9, 2013, Denver, Colorado, USA
 +
 
 +
2. [[User:Jing Xie|Jing Xie]], [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], and [[User:Bill Chu|Bill Chu]], [http://webpages.uncc.edu/~jxie2/XIE-CHI2012.pdf Evaluating Interactive Support for Secure Programming], In Proceedings of ACM Conference on Human Factors in Computing Systems (CHI), May 2012, Austin, Texas, USA
 +
 
 +
3. [[User:Jing Xie|Jing Xie]], [[User:Bill Chu|Bill Chu]], [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], and [[User:John Melton|John T. Melton]], [http://www.acsac.org/2011/openconf/modules/request.php?module=oc_program&action=view.php&a=&id=62&type=2 ASIDE:IDE Support for Web Application Security], In Proceedings of 27th Annual Computer Security Applications Conference (ACSAC), December 5–9, 2011, Orlando, FL, USA
  
3. [[User:Jing Xie|Jing Xie]],  [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], and [[User:Bill Chu|Bill Chu]], [http://webpages.uncc.edu/~jxie2/XIE-VLHCC2011.pdf Why do programmers make security errors?], In Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), September 18–22, 2011, Pittsburgh, PA, USA
+
4. [[User:Jing Xie|Jing Xie]],  [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford], and [[User:Bill Chu|Bill Chu]], [http://webpages.uncc.edu/~jxie2/XIE-VLHCC2011.pdf Why do programmers make security errors?], In Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), September 18–22, 2011, Pittsburgh, PA, USA
  
4. [[User:Jing Xie|Jing Xie]], [[User:Bill Chu|Bill Chu]], and [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford] [http://www.arc.uncc.edu/pubs/essos2011.pdf Interactive Support for Secure Software Development], In Proceedings of Engineering Secure Software and Systems Third International Symposium (ESSoS), February 2011, Madrid, Spain
+
5. [[User:Jing Xie|Jing Xie]], [[User:Bill Chu|Bill Chu]], and [http://hci.sis.uncc.edu:8080/richter Heather Richter Lipford] [http://www.arc.uncc.edu/pubs/essos2011.pdf Interactive Support for Secure Software Development], In Proceedings of Engineering Secure Software and Systems Third International Symposium (ESSoS), February 2011, Madrid, Spain
  
  

Revision as of 16:25, 25 February 2013

Main

This project is led by [Jun Zhu] and Bill Chu. Other major contributors include [Jing Xie], Heather Richter Lipford, John Melton & Will Stranathan.

We have presented our talk Using Interactive Static Analysis for Early Detection of Software Vulnerabilities at AppSec USA 2012. You can view and download our presentation here.
We have presented our talk Secure Programming Support in IDE at AppSec USA 2011 in Minneapolis. You can view and download our presentation here.


Project About

[edit]

OWASP Project Header.jpg

OWASP ASIDE

OWASP ASIDE is led by [Jun Zhu] and Bill Chu. Other major contributors include [Jing Xie], Heather Richter Lipford, Tyler Thomas, John Melton & Will Stranathan.

We have presented our talk Using Interactive Static Analysis for Early Detection of Software Vulnerabilities at AppSec USA 2012. You can view and download our presentation here.
We have presented our talk Secure Programming Support in IDE at AppSec USA 2011 in Minneapolis. You can view and download our presentation here.

New! OWASP ASIDE has an educational branch, named ESIDE (Educational Security in the IDE), details are described [here].

Introduction

ASIDE is an abbreviation for Application Security plugin for Integrated Development Environment. It is an Eclipse Plugin which is a software tool primarily designed to help developers write more secure code by detecting and identifying potentially vulnerable code and providing informative fixes during the construction of programs in IDEs.

Description

ASIDE currently has three prototype implementations: ASIDE CodeRefactoring for Education, ASIDE CodeAnnotate which consists of two implementations, ASIDE JavaCodeAnnotate and ASIDE PHPCodeAnnotate.

ASIDE CodeRefactoring for Education is an Eclipse plugin that aims to detect root cause of vulnerabilities that are caused by untrusted inputs get in to the application and be consumed without validation, and provide interactive code refactoring support for students and professional developers to learn secure programming practices and write more secure code.

ASIDE CodeAnnotate is another Eclipse plugin which deals with a different class of vulnerabilities that are more application logic specific. Specifically, it is aimed at addressing CSRF and broken access control issues while the developers are writing their code.

An older version of ASIDE DEMO shows you earlier design and implementation of CodeRefactoring, if you are interested in knowing. You will need Adobe Flash to display it.

Research Activities

1. Jun Zhu, Jing Xie, Heather Richter Lipford, and Bill Chu, Supporting Secure Programming in Web Applications through Interactive Static Analysis, In Journal of Advanced Research, Elsevier, December, 2013.

2. Jun Zhu, Heather Richter Lipford, and Bill Chu, Interactive Support for Secure Programming Education, In Proceedings of ACM Technical Symposium on Computer Science Education (SIGCSE), March 6-9, 2013, Denver, Colorado, USA

3. Jing Xie, Heather Richter Lipford, and Bill Chu, Evaluating Interactive Support for Secure Programming, In Proceedings of ACM Conference on Human Factors in Computing Systems (CHI), May 2012, Austin, Texas, USA

4. Jing Xie, Bill Chu, Heather Richter Lipford, and John T. Melton, ASIDE:IDE Support for Web Application Security, In Proceedings of 27th Annual Computer Security Applications Conference (ACSAC), December 5–9, 2011, Orlando, FL, USA

5. Jing Xie, Heather Richter Lipford, and Bill Chu, Why do programmers make security errors?, In Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), September 18–22, 2011, Pittsburgh, PA, USA

6. Jing Xie, Bill Chu, and Heather Richter Lipford Interactive Support for Secure Software Development, In Proceedings of Engineering Secure Software and Systems Third International Symposium (ESSoS), February 2011, Madrid, Spain

Licensing

OWASP ASIDE is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.


What is ASIDE?

OWASP ASIDE provides:

  • Interactive Static Analysis support to developers in Eclipse IDE (for Java and PHP) to detect and mitigate software vulnerabilities in the code
  • Interactive Secure Programming Education opportunities in IDE for students as well as professional developers to help them write more secure code as well as learn best secure programming practices

Presentation

1. Our talk Using Interactive Static Analysis for Early Detection of Software Vulnerabilities at AppSec USA 2012. You can view and download our presentation.

2. Our talk Secure Programming Support in IDE at AppSec USA 2011 in Minneapolis. You can view and download our presentation.

Project Leaders

[Jun Zhu], Bill Chu

Related Projects


Openhub


Quick Download

Runnable plugins and installation guidelines

The recent publicly available ASIDE CodeRefactoring plugin can be downloaded from here. You also need to download the complementary logging facility to make ASIDE work properly. ASIDE CodeRefactoring is built upon Eclipse IDE for Java EE Developers Version 3.5+. To make it work, please place the two jar files under the plugins folder of your Eclipse installation directory and then restart your Eclipse.

The recent publicly available ASIDE CodeAnnotate plugin can be downloaded from here. ASIDE CodeAnnotate is built upon Eclipse IDE for Java EE Developers Version 3.5+. To make it work, please place the jar files under the plugins folder of your Eclipse installation directory and then restart your Eclipse. Demo of how to run CodeAnnotate can be viewed from here.

New! We recently released a version of ASIDE CodeAnnotate plugin for Eclipse PHP Development Environment. It is built upon Eclipse PDT framework, you can download the plugin here. As it is still in incubator phase at this point, we recommend you to first install the configured Eclipse PHP package we provide on Linux, which can be downloaded here, and then place the jar file under the plugins folder of the Eclipse installation directory, and then restart your Eclipse. Demo of how to run CodeAnnotate can be viewed from here. A good PHP open source project you can try the plugin against is Moodle;

Source Code

ASIDE Education with CodeRefactoring: https://github.com/JunZhuSecurity/ASIDE-Education ASIDE PHPCodeAnnotate: https://github.com/JunZhuSecurity/ASIDE-PHPCodeAnnotate ASIDE JavaCodeAnnotate: https://github.com/JunZhuSecurity/ASIDE-JavaCodeAnnotate

Email List

Project Email List: https://lists.owasp.org/mailman/listinfo/owasp-aside-project

News and Events

  • [18-19 September 2014] Bill will be hosting a session about ASIDE project at AppSec USA 2014 in Denver!
  • [30 April 2014] ASIDE PHPCodeAnnotate plugin for Eclipse PHP IDE released!
  • [07 December 2013] ASIDE paper titled "Supporting Secure Programming in Web Applications through Interactive Static Analysis" accepted!
  • [10 May 2013] ASIDE Education with CodeRefactoring plugin for Eclipse Java IDE released!
  • [22 October 2012] ASIDE paper titled "Interactive Support for Secure Programming Education" accepted!
  • [September 2012] Bill and Jun delivered ASIDE talk titled "Using Interactive Static Analysis for Early Detection of Software Vulnerabilities" at OWASP AppSec USA in Austin!
  • [8-10 August 2012] Jun gave a poster about ASIDE at USENIX Security 12!
  • [10 May 2012] ASIDE JavaCodeAnnotate plugin for Eclipse Java IDE released!

In Print

N/A

Classifications

New projects.png Owasp-builders-small.png
Owasp-defenders-small.png
Cc-button-y-sa-small.png
Project Type Files CODE.jpg

ASIDE project has been continuously under active research, development, and evaluation. Involvement in the development and promotion of ASIDE is actively encouraged! You do not have to be a security expert in order to contribute. Some of the ways you can help:

  • Try ASIDE and email your feedback, comments to the project leaders.
  • Do pilot study with ASIDE in your team, and the project leaders would love to collaborate!

ESIDE

The education branch of ASIDE, named ESIDE (Educational Security in the IDE), is led by Michael Whitney and Heather Richter Lipford. Other major contributors include Bill Chu and [Jun Zhu].

Introduction

ESIDE (Educational Security in the IDE) enhances the secure coding instructional process by turning the student's IDE into a real-time secure programming instructional resource. This approach capitalizes on the out of class, in the IDE time by providing layered educational opportunities whenever the student writes specific code patterns (i.e., vulnerable code) in a fashion similar to Microsoft's Grammar Checker. In this manner, ESIDE provides students with the opportunity to learn secure coding principles and practices concurrently with the lessons they are learning in their respective courses.

Description

Deployed as an Eclipse IDE Java plugin, ESIDE continuously searches for predetermined code patterns (e.g., request.getParameter();). Whenever a student writes targeted code, they are provided with an interactive system that provides a layered educational opportunity. Because students are contextually “in the moment” when the support becomes available, they are more receptive to making the connection between classroom principles and coding practices. A secondary effect is the exponential increase in instructional exposure which has been proven to be successful in other instructional areas. The overall goal of ESIDE is to serve as an effective means to educate students at every level on the principles and practices of secure coding throughout their educational experience. To this end, we have developed ESIDE's interactive process as follows: The moment target code is written, ESIDE initiates a layered educational intervention based on the targeted code. The first layer is a warning icon that is placed in the left margin of the code editor. Hovering the icon reveals a short message that encourages further interaction. When the student clicks the icon, ESIDE generates a content specific list of educational options. Each of these options are accompanied with a short explanation of the issue at hand. For each generated list, there also exists the option to access an explanation page that provides a more comprehensive explanation of what was discovered, why it is important, and how to integrate the provided principles into coding practices.

A video of an interaction designed for early students can be found at http://www.youtube.com/watch?v=k-FIcrr1ff8

What ESIDE provides?

• Real-time IDE support for secure code education (Java). • Identification of targeted Java code patterns. • Interactive instructional opportunities for students in the IDE.

Milestone/timeline

Advanced Student Studies – paper accepted to SIGCSE 2015

  • 1. Fall, 2012 – Ten day assignment study at UNCC with the Network Based Application

Development course.

  • 2. Spring, 2013 – Semester long deployment study at UNCC with the Network Based Application

Development course. Early / Intermediate Student Studies – TOCE Journal targeted for submission

  • 1. Fall, 2012 – Classroom activity study with 61 early Elon University students
  • 2. Spring, 2013 – Classroom activity study with 22 intermediate Elon University students
  • 3. Spring, 2013 – Focus group study with 5 JCSU early students
  • 4. Fall, 2013 – Interactive walk through study with 4 JCSU early students
  • 5. Fall, 2013 – Seven day assignment study with 57 Elon University students

Priorities and get involved

As of October 13, 2014 the priorities are:

  • Developing more controls for faculty members to modify educational content
  • Develop a means to control when students are first exposed to warnings. Ideas include:

1. The tool monitors code and only provides warnings after the student has successfully written a particular code pattern x amount of times. 2. Faculty are provided with a means to unlock warnings based on student readiness. 3. Students are asked if they are ready for a particular interaction.

Involvement in the development and promotion of ESIDE is actively encouraged! You do not have to be a security expert in order to contribute. Some of the ways you can help: Individuals who are interested in content contribution, usability evaluation or deploying ESIDE in their classroom would be wonderful!!

Take a Look

ASIDE currently has two prototype implementations: ASIDE CodeRefactoring and ASIDE CodeAnnotate.

CodeRefactoring is an Eclipse plugin that aims to detect root cause of vulnerabilities that are caused by untrusted inputs get in to the application and be consumed without validation.

CodeAnnotate is another Eclipse plugin which deals with a different class of vulnerabilities that are more application logic specific. Specifically, it is aimed at addressing CSRF and broken access control issues while the developers are writing their code.

An older version of ASIDE DEMO shows you earlier design and implementation of CodeRefactoring, if you are interested in knowing. You will need Adobe Flash to display it.

Download

The recent publicly available plugin can be downloaded from here. You also need to download the complementary logging facility to make ASIDE work properly. ASIDE is built upon Eclipse IDE for Java EE Developers Version 3.5+.

To make it work, please place the two jar files under the plugins folder of your Eclipse installation directory and then restart your Eclipse.

Source Code

A recent version of the code is located at https://github.com/JunZhuSecurity/ASIDE-Education. An older version could be found at https://github.com/Jing-Xie/owasp-aside.

Research Activities

1. Jun Zhu, Heather Richter Lipford, and Bill Chu, Interactive Support for Secure Programming Education, To appear In Proceedings of ACM Technical Symposium on Computer Science Education (SIGCSE), March 6-9, 2013, Denver, Colorado, USA

2. Jing Xie, Heather Richter Lipford, and Bill Chu, Evaluating Interactive Support for Secure Programming, In Proceedings of ACM Conference on Human Factors in Computing Systems (CHI), May 2012, Austin, Texas, USA

3. Jing Xie, Bill Chu, Heather Richter Lipford, and John T. Melton, ASIDE:IDE Support for Web Application Security, In Proceedings of 27th Annual Computer Security Applications Conference (ACSAC), December 5–9, 2011, Orlando, FL, USA

4. Jing Xie, Heather Richter Lipford, and Bill Chu, Why do programmers make security errors?, In Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), September 18–22, 2011, Pittsburgh, PA, USA

5. Jing Xie, Bill Chu, and Heather Richter Lipford Interactive Support for Secure Software Development, In Proceedings of Engineering Secure Software and Systems Third International Symposium (ESSoS), February 2011, Madrid, Spain