OWASP Security Knowledge Framework
Security Knowledge Framework is an expert system application that uses the OWASP Application Security Verification Standard with detailed code examples (secure coding principles) to help developers in pre-development and post-development phases and create applications that are secure by design.
Table of Contents
- Introduction
- Installing
- Usage
- CI-Pipeline
- Development-API
- Development-Angular
- Testing
- Scrum Board
- License
- Contributors
Introduction
Our experience taught us that the current level of security of web-applications is not sufficient enough to ensure security. This is mainly because web-developers simply aren't aware of the risks and dangers that are lurking, waiting to be exploited by hackers.
Because of this we decided to develop a framework in order to create a guide-system available for all developers so they can develop applications secure by design from the start.
The OWASP Security Knowledge Framework is here to support developers create secure applications. By using the OWASP Application Security Verification Standards. as a security requirement and give the developer feedback regarding descriptions and solutions on how to properly implement these security controls in a safe manner.
The second stage is validating if the developer properly implemented different security controls and the belonging defence mechanisms by means of checklists created with the OWASP Application Security Verification Standards. By means of the answers supplied by the developer the application again generates documentation in which it gives feedback on what defence mechanisms the developer forgot to implement and give him feedback regarding descriptions and solutions on how to properly implement these techniques in a safe manner.
Installing
Docker
The fastest way to start using the SKF project is using the pre-built container hosted at Docker hub. This container always has the very latest version from the master repository. Change the JWT_SECRET value to a new random secret string before starting the docker image.
First run the docker pull command to get the latest image
docker pull blabla1337/skf-flask
Then start the docker image
docker run -e "ORIGIN=localhost" -e "JWT_SECRET=change_this_super_secret_random_string" -ti -p 127.0.0.1:443:443 blabla1337/skf-flask
The application will greet you on: https://localhost
Usage
For more detailed information such as setting up an admin account and user guides please see the extended documentation that can be found below:
Readme: extended documentation
Development SKF-API
- Fork and clone https://github.com/blabla1337/skf-flask
- pip install -r requirements.txt
- export FLASK_APP=skf/app.py
- export PYTHONPATH=.:$PYTHONPATH
- python3.6 skf/app.py
- Run the manual test first to verify if everything is good
coverage run tests/run.py test
- Create your changes and write a unit test, commit and open a PR from your fork to the master repo. All CI test must pass before we accept pull requests.
Development SKF-ANGULAR
- Fork and clone https://github.com/blabla1337/skf-flask
- cd Angular
- npm install
- ng serve --host=0.0.0.0
- Run the manual test in the Angular dir first to verify if everything is good
npm test
- Create your changes and write a unit test, commit and open a PR from your fork to the master repo. All CI test must pass before we accept pull requests.
Scrum Board
Waffle.io:
https://waffle.io/blabla1337/skf-flask
CI-Pipeline
Travis-ci.org:
Test and Deploy with Confidence. Easily sync your GitHub projects with Travis CI and you'll be testing your code in minutes!
SKF Build details:
https://travis-ci.org/blabla1337/skf-flask
Coveralls.io Python:
DELIVER BETTER CODE. We help developers deliver code confidently by showing which parts of your code aren't covered by your test suite.
SKF Coveralls details:
https://coveralls.io/r/blabla1337/skf-flask
codecov.io for Angular:
Code coverage done right. Highly integrated with GitHub, Bitbucket and GitLab.
SKF codecov details:
https://codecov.io/gh/blabla1337/skf-flask
Scrutinizer-ci.com:
Why to use Scrutinizer. Improve code quality and find bugs before they hit production with our continuous inspection platform. Improve Code Quality.
SKF Scrutinizer details:
https://scrutinizer-ci.com/g/blabla1337/skf-flask/
Bithound.io NPM packages:
BitHound provides your Node team with comprehensive and prioritized issues in your code and npm packages.
SKF Bithound details:
https://www.bithound.io/github/blabla1337/skf-flask
Requires.io pip packages:
Stay Up-to-date! Stay secure! Requires.io monitors your Python projects dependencies, and notify you whenever any of your dependency is out-of-date.
SKF Requires details:
https://requires.io/github/blabla1337/skf-flask/requirements/
Black Duck Security Risk:
Announcing Black Duck CoPilot, a new service helping open source project teams catalog and report on their project's dependencies.
SKF Requires details:
https://copilot.blackducksoftware.com/github/groups/blabla1337/locations/skf-flask/public/results
uptimerobot.com:
Monitor HTTP(s), Ping, Port and check Keywords. Get alerted via e-mail, SMS, Twitter, web-hooks or push. View uptime, downtime and response times.
ssllabs.com & sslbadge.org:
ssllabs.org:
Bringing you the best SSL/TLS and PKI testing tools and documentation.
sslbadge.org:
Creates a nice badge for your website SSL/TLS security settings based on the Qualys SSL Labs testing.
Testing
TESTING SKF-API
Go to the SKF root dir and run:
export FLASK_APP=skf/app.py
export PYTHONPATH=.:$PYTHONPATH
coverage run tests/run.py test
TESTING SKF-ANGULAR
Go to the Angular dir in the SKF root dir and run:
npm test
License
Copyright (C) 2017 Glenn ten Cate, Riccardo ten Cate
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
OWASP:
- Owasp
Licensed under the creative commons license
Contributors
- Glenn ten Cate
- Riccardo ten Cate
- Alexander Kaasjager
- John Haley
- Daniel Paulus
- Erik de Kuijper
- Roderick Schaefer
- Jim Manico
- Martijn Gijsberti Hodenpijl
- Bithin Alangot
- Martin Knobloch
- Adam Fisher
- Tom Wirschell
- Joerg Stephan
- Simon Brakhane
- Gerco Grandia
- Ross Nanopoulos
- Bob van den Heuvel
- Mariano Jose Abdala
- Ilguiz Latypov
- Laurence Keijmel
- Ross Nanopoulos
- Rick Mitchell (Kingthorin)
- Xenofon Vassilakopoulos
- Heeraj Nair
- Alpha Kitonga