This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
GSOC2018 Ideas
OWASP Project Requests
Tips to get you started in no particular order:
* Read Google Summer of Code Program(GSOC) * Read the GSoC SAT * Read the GSOC Student Guidelines * Contact us through the mailing list or irc channel. * Check our github organization
OWASP ZAP
OWASP Zed Attack Proxy Project (ZAP) The OWASP Zed Attack Proxy (ZAP) is one of the world’s most popular free security tools and is actively maintained by hundreds of international volunteers. Previous GSoC students have implemented key parts of the ZAP core functionality and have been offered (and accepted) jobs based on their work on ZAP.
We have just included a few of the ideas we have here, for a more complete list see the issues on the ZAP bug tracker with the project label.
React Handling
Brief Explanation:
ZAP doesnt understand React applications as well as it should be able to.
It would be great if ZAP had a much better understanding of such applications, including how to explore and attack them more effectively.
Expected Results:
- ZAP able to explore React applications more effectively
- ZAP able to attack React applications more effectively
Getting started:
- Have a look at the ZAP CONTRIBUTING.md file, especially the 'Coding section.
- We like to see students who have already contributed to ZAP, so try fixing one of the bugs flagged as IdealFirstBug.
Knowledge Prerequisites:
- As React is written in JavaScript, good knowledge of this language is recommended. ZAP is written in Java, so some knowledge of this language would be useful. Some knowledge of application security would be useful, but not essential.
Mentors: Simon Bennetts @ and the rest of the ZAP Core Team
Automated authentication detection and configuration
Brief Explanation:
Currently a user must manually configure ZAP to handle authentication, eg as per https://github.com/zaproxy/zaproxy/wiki/FAQformauth
This is time consuming and error prone.
Ideally ZAP would help detect login and registration pages and provide more assistance when configuring authentication, ideally being able to completely automate the task for as many sort of webapps as possible.
Expected Results:
- Detect login and registration pages
- Provide a wizard to walk users through the process of setting up authentication, with as much assistance as possible
- An option to completely automate the authentication process, for as many authentication mechanisms as possible
Getting started:
- Have a look at the ZAP CONTRIBUTING.md file, especially the 'Coding section.
- We like to see students who have already contributed to ZAP, so try fixing one of the bugs flagged as IdealFirstBug.
Knowledge Prerequisites:
- ZAP is written in Java, so a good knowledge of this language is recommended. Some knowledge of application security would be useful, but not essential.
Mentors: Simon Bennetts @ and the rest of the ZAP Core Team
Zest Text Representation and Parser
Brief Explanation:
Zest is a graphical scripting language from the Mozilla Security team, and is used as the ZAP macro language.
A standardized text representation and parser would be very useful and help its adoption.
Expected Results:
- A documented definition of a text representation for Zest
- A parser that converts the text representation into a working Zest script
- An option in the Zest java implementation to output Zest scripts text format
Getting started:
- Have a look at the ZAP CONTRIBUTING.md file, especially the 'Coding section.
- We like to see students who have already contributed to ZAP, so try fixing one of the bugs flagged as IdealFirstBug.
Knowledge Prerequisites:
- The Zest reference implementation is written in Java, so a good knowledge of this language is recommended. Some knowledge of application security would be useful, but not essential.
Mentors: Simon Bennetts @ and the rest of the ZAP Core Team
Develop Bamboo Addon
Brief Explanation:
It would be great to have an official ZAP add-on for Bamboo, equivalent to the one we now have for Jenkins
For more information about Bamboo plugins see the Bamboo plugin guide.
Expected Results:
A Bamboo addon that supports:
- Spidering (using the traditional and Ajax spiders)
- Active Scanning
- Authentication
Getting started:
- Have a look at the ZAP CONTRIBUTING.md file, especially the 'Coding section.
- We like to see students who have already contributed to ZAP, so try fixing one of the bugs flagged as IdealFirstBug.
Knowledge Prerequisites:
- ZAP and Bamboo are written in Java, so a good knowledge of this language is recommended. Some knowledge of application security would be useful, but not essential.
Mentors: Simon Bennetts @ and the rest of the ZAP Core Team
Your Idea
Brief Explanation:
ZAP is a great framework for building new and innovative security testing solutions. If you have an idea that is not on this list then don't worry, you can still submit it, we have accepted original projects in previous years and have even paid a student to work on their idea when we did not get enough GSoC slots to accept all of the projects we wanted.
Expected Results:
- A new feature that makes ZAP even better
- Code that conforms to our Development Rules and Guidelines
Getting started:
- Have a look at the ZAP CONTRIBUTING.md file, especially the 'Coding section.
- We like to see students who have already contributed to ZAP, so try fixing one of the bugs flagged as IdealFirstBug.
Knowledge Prerequisites:
- ZAP is written in Java, so a good knowledge of this language is recommended. Some knowledge of application security would be useful, but not essential.
Mentors: Simon Bennetts @ and the rest of the ZAP Core Team
OWASP Juice Shop
OWASP Juice Shop Project is an intentionally insecure webapp for security trainings written entirely in Javascript which encompasses the entire OWASP Top Ten and other severe security flaws. Juice Shop is written in Node.js, Express and AngularJS. The application contains more than 30 challenges of varying difficulty where the user is supposed to exploit the underlying vulnerabilities. Apart from the hacker and awareness training use case, pentesting proxies or security scanners can use Juice Shop as a "guinea pig"-application to check how well their tools cope with Javascript-heavy application frontends and REST APIs.
Challenge Pack 2018
Brief Explanation:
Ideas for potential new hacking challenges are collected in GitHub issues labeled "challenge". This project could implement a whole bunch of challenges one by one and release them over the course of several small releases. This would allow the student to work in a professional Continuous Delivery kind of way while bringing benefit to the Juice Shop over the duration of the project.
Coming up with additional ideas for challenges would be part of the project scope, as the list of pre-existing ideas might not be sufficient for a GSoC project.
Expected Results:
- 10 or more new challenges for OWASP Juice Shop (including required functional enhancements to place the challenges in, e.g. the Order Dashboard user story])
- Each challenge comes with full functional unit and integration tests
- Each challenge is verified to be exploitable by corresponding end-to-end tests
- Hint and solution sections for each new challenge are added to the "Pwning OWASP Juice Shop" ebook
- Code follows existing styleguides and passes all existing quality gates regarding code smells, test coverage etc.
Getting started:
- Get familiar with the architecture and code base of the application's rich Javascript frontend and RESTful backend
- Get a feeling for the high code & test quality bar by inspecting the existing test suites and static code analysis results
- Get familiar with the CI/CD process based on Travis-CI and several associated 3rd party services
Knowledge Prerequisites:
- Javascript, Unit/Integration testing, experience with (or willingness to learn) AngularJS (1.x) and NodeJS/Express, some security knowledge would be preferable.
Mentors:
- Bjoern Kimminich - OWASP Juice Shop Project Leader
Frontend Technology Update
Brief Explanation:
Development of OWASP Juice Shop started in 2014 and was based on - back then - quite recent Javascript frontend framework AngularJS 1.x along with Bootstrap 3. Several major releases later, there now are Angular 5 and Bootstrap 4 available as well as other mature web frontend frameworks. Migrating the OWASP Juice Shop to the latest version of Angular and Bootstrap is an important step to keep the application relevant as the most modern intentionally broken web application. Moving to entirely different frameworks might be taken into considerationas well.
Expected Results:
- High-level target client-architecture overview including a migration plan with intermediary milestones
- Execution of migration without breaking functionality or losing tests along the way
- Code follows existing (or new) styleguides and passes all existing (or new) quality gates regarding code smells, test coverage etc.
Getting started:
- Get familiar with the architecture and code base of the application's rich Javascript frontend and RESTful backend
- Get a feeling for the high code & test quality bar by inspecting the existing test suites and static code analysis results
- Get familiar with the CI/CD process based on Travis-CI and several associated 3rd party services
Knowledge Prerequisites:
- Javascript, experience with latest Javascript frameworks for frontend, testing and building
Mentors:
- Bjoern Kimminich - OWASP Juice Shop Project Leader
- Timo Pagel - OWASP Juice Shop Project Contributor
UI/Graphics Design Update
Brief Explanation:
The UI of OWASP Juice Shop was written following recommendations from Twitter Bootstrap to be responsive, but it never had an actual designer or graphics artist take a look or add some insight. Currently the look & feel comes "out of the box" from a Bootswatch theme and Font Awesome 4 icons. This gives it a quite modern look, but also leaves it very generic. The project could greatly benefit from involvement of someone with actual UI/UX Design expertise. Having a matching theme for CTFd would be another big achievement for the Juice Shop.
Expected Results:
- Design concepts to pick or have the user community vote on (including color schemes, sample screens, icons etc.)
- Overhauling the overall UI look & feel, e.g. by making an individual Bootswatch theme or designing some individual icons
- Getting rid of the stock images by providing individually designed product images for the standard inventory of the shop
- Design a "Juice Shop" CTFd-theme playing well with the look & feel of the application
- Execution of migration without breaking functionality or client-side unit and end-to-end tests along the way
Getting started:
- Get familiar with the existing HTML views and CSS of the frontend
- Get a feeling for the high quality bar by inspecting the existing client-side unit and e2e test suites
Knowledge Prerequisites:
- Strong web and graphic design experience
- Sophisticated HTML and CSS experience
Mentors:
- Bjoern Kimminich - OWASP Juice Shop Project Leader
- Timo Pagel - OWASP Juice Shop Project Contributor
Your idea
Brief Explanation:
You have an awesome idea to improve OWASP Juice Shop that is not on this list? Great, please submit it!
Getting started
- Get in touch with Bjoern Kimminich
Expected Results:
- A new feature that makes OWASP Juice Shop even better
- Code follows existing styleguides and passes all existing quality gates regarding code smells, test coverage etc.
Knowledge Prerequisites:
- Javascript, Unit/Integration testing, experience with (or willingness to learn) AngularJS and NodeJS/Express, some security knowledge would be preferable.
Mentors:
- Bjoern Kimminich - OWASP Juice Shop Project Leader
OWASP Security Knowledge Framework
Brief Explanation
The OWASP Security Knowledge Framework is intended to be a tool that is used as a guide for building and verifying secure software. It can also be used to train developers about application security. Education is the first step in the Secure Software Development Lifecycle. This software can be run on Windows/Linux/OSX using python-flask.
In a nutshell
- Training developers in writing secure code
- Security support pre-development ( Security by design, early feedback of possible security issues )
- Security support post-development ( Double check your code by means of the OWASP ASVS checklists )
- Code examples for secure coding
Your idea / Getting started
- Please send an email to [email protected] [[email protected]] or [email protected] [[email protected]] and we would love to tell you all about it! :-)
Expected Results
- Adding features to SKF project
- Adding/updating code examples ( PHP, Java, .NET, Go, Python, NodeJS and more )
- Adding/updating knowledge base items
- Adding CWE references to knowledgebase items
- Improve unit testing of the Angular quality, currently only 68% of the front-end is unit tested automated
Knowledge Prerequisites
- For helping in the development of new features and functions you need Python flask and for the frond-end we use Angular 4.0
- For writing knowledgebase items only technical knowledge of application security is required
- For writing / updating code examples you need to know a programming language along with secure development.
- For writing the verification guide you need some penetration testing experience.
Mentors:
Riccardo ten Cate [1] Glenn ten Cate [2]
OWASP Nettacker
Brief Explanation
OWASP Nettacker project is created to automate information gathering, vulnerability scanning and eventually generating a report for networks, including services, bugs, vulnerabilities, misconfigurations, and other information. This software will utilize TCP SYN, ACK, ICMP and many other protocols in order to detect and bypass Firewall/IDS/IPS devices. By leveraging a unique method in OWASP Nettacker for discovering protected services and devices such as SCADA. It would make a competitive edge compared to other scanner making it one of the bests.
if you need more details please visit the GitHub page or contact a leader(Ali Razmjoo Qalaei, Reza Espargham).
Getting started
- You may read the available documents in the wiki page. Developers and users documents are separated.
A Better Penetration Testing Automated Framework
Expected Results
The expected results are to contribute the OWASP Nettacker framework issues (mostly help wanted or enhancement). Please check the GitHub repo to learn more.
Knowledge Prerequisites
- The whole framework was written in Python language. You must be familiar with Python 2.x, 3.x.
- Good knowledge of computer security (and penetration testing)
- Knowledge of OS (Linux, Windows, Mac...) and Services
- Familiar with IDS/IPS/Firewalls and ...
- To develop the API you should be familiar with HTTP, Database...
Mentors
Mentors are: Ali Razmjoo Qalaei, Abbas Naderi Afooshteh
OWASP OWTF
Offensive Web Testing Framework (OWTF) is a project focused on penetration testing efficiency and alignment of security tests to security standards like the OWASP Testing Guide (v3 and v4), the OWASP Top 10, PTES and NIST. Most of the ideas below focus on rewrite of some major components of OWTF to make it more modular. OWTF is moving to a fresh codebase with a fully Docker testing and deployment environment. If you want to get a jumpstart, check out https://github.com/owtf/owtf/tree/new-arch.
OWASP OWTF - MiTM proxy interception and replay capabilities
Brief Explanation:
The OWTF man-in-the-middle proxy is written completely in Python (based on the excellent Tornado framework) and was benchmarked to be the fastest MiTM python proxy. However it lacks the useful and much need interception and replay capabilities of mitmproxy (https://github.com/mitmproxy/mitmproxy).
The current implementation of the MiTM proxy serves its purpose very well. Its fast but its not extensible. There are a number of good use cases for being extensible
- ability to intercept the transactions
- modify or replay transaction on the fly
- add additional capabilities to the proxy (such as session marking/changing) without polluting the main proxy code
Bonus:
- Design and implement a proxy plugin (middleware) architecture so that the plugins can be defined separately and the user can choose what plugins to include dynamically (from the web interface).
- Replace the current Requester (based on urllib, urllib2) with a more robust Requester based on the new urllib3 with support for a real headless browser factory. The typical flow when requested for an authenticated browser instance (using PhantomJS)
- The "Requester" module checks if there is any login parameters provided (i.e form-based or script - look at https://github.com/owtf/login-sessions-plugin)
- Create a browser instance and do the necessary login procedure
- Handle the browser for the URI
- When called to close the browser, do a clean logout and kill the browser instance.
Expected results:
- IMPORTANT: PEP-8 compliant code in all modified code and surrounding areas.
- IMPORTANT: OWTF contributor README compliant code
- IMPORTANT: Sphinx-friendly python comments example Sphinx-friendly python comments here
- CRITICAL: Excellent reliability
- Good performance
- Unit tests / Functional tests
- Good documentation
Knowledge Prerequisite: Python proficiency, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn.
OWASP OWTF Mentors: Contact: Abraham ArangurenViyat BhalodiaBharadwaj Machiraju OWASP OWTF Project Leaders
OWASP OWTF - Web interface enhancements
Brief explanation:
The current web interface is a mixture of Tornado Jinja templates and ReactJS. A complete UI change to a stable ReactJS-based interface should be the deliverable for this project. Most of the hard part for the change has already been done and added in a separate branch at https://github.com/owtf/owtf/tree/ui-break.
For background on OWASP OWTF please see: https://www.owasp.org/index.php/OWASP_OWTF
Expected results:
- IMPORTANT:Clean, maintainable (ES6 compatible and using recommended design patterns) React (JavaScript) code. (This is a good example!)
- IMPORTANT: Thoroughly documented code along with API examples and example future components.
- CRITICAL: Excellent reliability and performance.
- Unit tests / Functional tests and easy to setup testing environment (preferably automated).
Knowledge Prerequisite: Python (reading API source code and endpoints), React.JS (high proficiency) and general JavaScript proficiency.
OWASP OWTF Mentors: Contact: Abraham ArangurenViyat BhalodiaBharadwaj Machiraju OWASP OWTF Project Leaders
OWASP OWTF - New plugin architecture
Brief explanation:
The current plugin system is not very useful and it is painful to browse many plugins. Most of the plugins do have much code and most of is repeated - much refactoring needed there.
This issue is documented in detail at https://github.com/owtf/owtf/issues/905.
For background on OWASP OWTF please see: https://www.owasp.org/index.php/OWASP_OWTF
Expected results:
- IMPORTANT: PEP-8 compliant code in all modified code and surrounding areas.
- IMPORTANT: OWTF contributor README compliant code
- IMPORTANT: Sphinx-friendly python comments example Sphinx-friendly python comments here
- CRITICAL: Excellent reliability
- Good performance
- Unit tests / Functional tests
- Good documentation
OWASP CSRF Protector
OWASP CSRF Protector Project is a project started with the goal to help developer to mitigate CSRF in web applications with ease. It's based on Synchronizer Token Pattern and leverages an injected java-script code to provide CSRF mitigation without much developer intervention. So far it has been implemented as a PHP Library and an Apache 2.2.x module. Although different libraries and frameworks provide CSRF mitigation these days - all of them require developer to explicitly inject tokens with every form.
OWASP CSRF Protector - Extending the design as a python package to work with Flask and an Express JS (Node.JS) middleware
Brief explanation:
The design of CSRF Protector involves a server side middle-ware that intercepts every incoming request and validates them for CSRF attacks. If the validation is successful the flow of control goes to business logic and the tokens are refreshed. In case of failed validation configured actions are taken. Post that, another middle ware takes care of injecting a JavaScript code (refer CSRF Protector PHP JS Code) to HTML output. On the client side this code ensures that, for every request that require validation - the correct token is sent along with the request.
Check GitHub Wiki for some reference;
The goal of this project would be to:
- Port this design to a python module that can be used easily with Flask - Kanban Board
- Port this design to a node js module that can work well with express js (a popular Node.JS based framework). - Initial Repo Link
- Fix some outstanding issues with java-script code used in library: Issues
Expected results:
- IMPORTANT: Clean, maintainable (ES6 compatible and using recommended design patterns) in case of Node.JS
- IMPORTANT: PEP-8 compliant code in all modified code and surrounding areas.
- IMPORTANT: Thoroughly documented code along with API examples and example future components.
- CRITICAL: Excellent reliability and performance.
- Unit tests / Functional tests and easy to setup testing environment (preferably automated).
Knowledge Prerequisite: Javascript (Client Side), Python (having worked with flask preferable), Node.JS (having worked with node.js and middle wares preferable)
Mentors: Contact: Minhaz A V