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

Difference between revisions of "OWASP WebSpa Project"

From OWASP
Jump to: navigation, search
m (Quick Download)
(News)
 
(16 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
=Main=
 
=Main=
 
+
<div style="width:100%;height:90px;border:0,margin:0;overflow: hidden;">[[File:Incubator_big.jpg|link=OWASP_Project_Stages#tab=Incubator_Projects]]</div>
 
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 
{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 
| valign="top"  style="border-right: 1px dotted gray;padding-right:25px;" |
 
| valign="top"  style="border-right: 1px dotted gray;padding-right:25px;" |
Line 14: Line 14:
  
 
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.
 
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.
 +
 +
If port knocking is defined as "a form of host-to-host communication in which information flows across closed ports" then we define web knocking as "a form of host-to-host communication in which information flows across erroneous URLs". Finally, in an attempt to mirror the operation of Single Packet Authorisation (SPA), the entirety of a user's action is submitted through a single GET request.
  
 
==Licensing==
 
==Licensing==
Line 19: Line 21:
 
The OWASP WebSpa Project 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.
 
The OWASP WebSpa Project 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.
  
The source code that comes with the OWASP WebSpa Project in the form of the tool named Web-Spa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; web-spa will always remain an open source project free for use by anyone subject to the terms of the license.  
+
The source code that comes with the OWASP WebSpa Project in the form of the tool named WebSpa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; WebSpa will always remain an open source project free for use by anyone subject to the terms of the license.  
  
  
Line 43: Line 45:
 
== Quick Download ==
 
== Quick Download ==
  
[http://sourceforge.net/projects/webspa/files/webspa-07.zip/download WebSpa v0.7]
+
Release:<br>
 +
[http://sourceforge.net/projects/webspa/files/webspa-08.zip/download WebSpa v0.8]
 +
 
 +
Source:<br>
 +
[https://github.com/OWASP/WebSpa/archive/v0.8.zip| WebSpa v0.8.zip]<br>
 +
[https://github.com/OWASP/WebSpa/archive/v0.8.tar.gz| WebSpa v0.8.tar.gz]
  
 
==Classifications==
 
==Classifications==
Line 94: Line 101:
 
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem.  
 
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem.  
  
The user guide aims to enable anyone who would be interested in using web-spa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.
+
The user guide aims to enable anyone who would be interested in using WebSpa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.
  
 
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.
 
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.
Line 100: Line 107:
 
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==
 
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==
  
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with Web-Spa (_v0.5)] on your server.
+
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with WebSpa (_v0.5)] on your server.
  
 
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:
 
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:
Line 121: Line 128:
  
 
  =================================================
 
  =================================================
  - Prerequisites for web-spa
+
  - Prerequisites for WebSpa
 
  =================================================
 
  =================================================
  
 
  The following programs must be installed in order
 
  The following programs must be installed in order
  for web-spa to run:
+
  for WebSpa to run:
  
 
  - Java 1.6 or later
 
  - Java 1.6 or later
Line 258: Line 265:
 
= News =
 
= News =
  
 +
* [19 Feb 2015] The source WebSpa code repository has been migrated to GitHub. The compiled releases (.jar) are still made available on SourceForge.
 +
* [17 Feb 2015] WebSpa has a new contributor – Daniel Imber. Dan, welcome to the team!
 +
* [12 Jan 2015] Patryk Arciszewski decided to retire from the project. Patryk, thank you for your good work and may the Power of SPA be with you.
 +
* [23 Nov 2014] Version 0.8 has been released and can now be found in the download section. We are proud to offer a working, stable proof-of-concept of WebSpa.
 +
* [19 Aug 2014] Our project was featured in the OWASP Connector newsletter. [http://hosted-p0.vresp.com/1479611/4d8d3315c2/ARCHIVE (link)]
 
* [07 May 2014] Added four video links in the respective "Video" tab, referencing YouTube
 
* [07 May 2014] Added four video links in the respective "Video" tab, referencing YouTube
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Paweł and Joël to the team.
+
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Joël to the team.
 
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]
 
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł welcome in the team!
+
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł, welcome to the team!
 
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]
 
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]
 
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!]  
 
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!]  
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from google code
+
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from Google code
 
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section
 
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section
 
* [08 Nov 2013] The OWASP Web Knocking Project is created
 
* [08 Nov 2013] The OWASP Web Knocking Project is created
  
 
=FAQs=
 
=FAQs=
 +
 +
; Does WebSpa supports older versions of Java?
 +
: No. WebSpa is tested with an up-to-date JRE package, thus to run WebSpa a JRE 1.7 or greater is needed.
 +
Using older versions of Java may lead to unexpected system behaviors.
 +
 +
; What does the ASCII-Art for WebSpa look like?
 +
                    __                                         
 +
                  /\ \                                         
 +
  __  __  __    __\ \ \____            ____  _____      __   
 +
/\ \/\ \/\ \  /'__`\ \ '__`\  _______  /',__\/\ '__`\  /'__`\ 
 +
\ \ \_/ \_/ \/\  __/\ \ \L\ \/\______\/\__, `\ \ \L\ \/\ \L\.\_
 +
  \ \___x___/'\ \____\\ \_,__/\/______/\/\____/\ \ ,__/\ \__/.\_\
 +
  \/__//__/  \/____/ \/___/          \/___/  \ \ \/  \/__/\/_/
 +
                                                \ \_\         
 +
                                                  \/_/         
 +
 +
The font is Larry 3D generated [http://patorjk.com/software/taag/#p=display&f=Larry%203D&t=web-spa here].
 +
 +
; Who are the actors required in order to use the WebSpa tool?
 +
 +
There are two actors, the WebSpa administrator and the WebSpa user. Ultimately, they could be the same person. The administrator agrees with each user what each of their allowed O/S commands are, while the user, well, executes these commands on the server by using the client.
 +
 +
; How does the crypto of WebSpa work?
 +
: From the perspective of cryptographic engineering, WebSpa uses a hash [http://en.wikipedia.org/wiki/Commitment_scheme commitment scheme], where the commit phase during which a value is chosen is done using an out of band channel. WebSpa focuses on receiving a value specified through a single request from the client and processing it on the server.
  
 
; Can one deploy WebSpa over HTTP?  
 
; Can one deploy WebSpa over HTTP?  
Line 281: Line 317:
  
 
Active contributors:
 
Active contributors:
* Yiannis Pavlosoglou - Inception & Development  
+
* [[User:Yiannis|Yiannis Pavlosoglou]] - Inception & Development  
* Patryk Arciszewski - Theoretician & Documentation
 
 
* Paweł Goleń - Breaking & Infrastructure  
 
* Paweł Goleń - Breaking & Infrastructure  
 
* Joël Rouiller - Development & Optimisation
 
* Joël Rouiller - Development & Optimisation
* Oliver Merki - Leader & Operations
+
* Daniel Imber - Development & Refactoring
 +
* [[User:Oliver_M.|Oliver Merki]] - Leader & Operations
  
  
 
Retired contributors:
 
Retired contributors:
 
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]
 
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]
 +
* Patryk Arciszewski
  
 
= Roadmap =
 
= Roadmap =
  
== Release 0.9 (Q3/2014) ==  
+
== Release 0.9 (Q3/2015) ==  
 +
 
 +
WebSpa_v0.9 will be major release and include a comprehensive redesign of the WebKnock format in order to improve overall security and robustness of the request, but also offer improved usability features, which will simplify installing, configuring and running WebSpa.. The tickets for this release are:
  
WebSpa_v0.9 will examine attacks on the web knocking tool and propose controls in order to address the issues in question.
+
44 New WebKnock request format should be defined
 +
42 Do not limit the web knock to 100 characters, instead use SHA-512 lengths
 +
35 A threat model for WebSpa should be created and reviewed
 +
33 Apache should be replaced by nginx
 +
15 Add easy way to run the server as a background daemon  
  
== Release 0.8 (Q2/2014) ==
+
== [http://sourceforge.net/projects/webspa/files/webspa-08.zip/download Release 0.8 (Q4/2014)] ==
  
WebSpa_v0.8 will incorporate in the server side component (run with -server option) the ability for a WebSpa administrator to generate a single output of all actions available for a user of WebSpa. The 12 tickets for this release are:
+
WebSpa_v0.8 is sort of a proof-of-concept of WebSpa. A stable version to demonstrate the concept of WebKnocking, however, with some limitations with regards to usability/configuration and modularity (e.g. changing the hashing algorithm). The tickets for this release are:
  
  42 Do not limit the web knock to 100 characters, instead use SHA-512 lengths
+
  43 Change SSL configuration to allow wget
 
  41 WebSpa administrator to WebSpa user output  
 
  41 WebSpa administrator to WebSpa user output  
  40 Log to /​var/​log instead of a log.txt file
+
  40 Log to /​var/​log instead of a log.txt file
 
  38 umask 077 should be added to webspa.sh  
 
  38 umask 077 should be added to webspa.sh  
35 A threat model for WebSpa should be created and reviewed
 
33 Apache should be replaced by nginx
 
 
  32 A known_hosts file should be used to maintain the list of successfully verified keys  
 
  32 A known_hosts file should be used to maintain the list of successfully verified keys  
 
  31 Verification of server's public key fingerprint should be possible  
 
  31 Verification of server's public key fingerprint should be possible  
 
  30 Help Files Update (0.8)  
 
  30 Help Files Update (0.8)  
  27 Arrays.equals is not a constant time function
+
  - FIXED: Modified the checking of 2 arrays being equal to be constant in time (Ticket #27)
15 Add easy way to run the server as a background daemon
 
 
  2 Create maven build task for release  
 
  2 Create maven build task for release  
  
Line 320: Line 360:
 
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.
 
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.
  
  - NEW: The WebSpa client asks the user if he wants to connect web servers with unknown/untrusted/self-signed certificates. (Ticket #28)  
+
  - NEW: The WebSpa client asks the user if they want to connect web servers with untrusted certificates. (Ticket #28)  
 
  - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.
 
  - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.
 
  - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.
 
  - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.

Latest revision as of 15:54, 19 March 2015

Incubator big.jpg

OWASP WebSpa Project

The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. It provides a cryptographically protected "open sesame" mechanism on the web application layer, comparable to well-known port-knocking techniques.

Description

This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.

Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.

If port knocking is defined as "a form of host-to-host communication in which information flows across closed ports" then we define web knocking as "a form of host-to-host communication in which information flows across erroneous URLs". Finally, in an attempt to mirror the operation of Single Packet Authorisation (SPA), the entirety of a user's action is submitted through a single GET request.

Licensing

The OWASP WebSpa Project 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.

The source code that comes with the OWASP WebSpa Project in the form of the tool named WebSpa is released as open source software under the terms of the GNU Public License (GPL) version 3. For reference, the full text of the GPL_v3 can be downloaded from the Free Software Foundation. There are no plans to change the license; WebSpa will always remain an open source project free for use by anyone subject to the terms of the license.


What is WebSpa?

OWASP WebSpa provides:

  • A secure channel for executing premeditated O/S commands on your web server
  • A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters


Presentation

http://sourceforge.net/projects/webspa/



Quick Download

Release:
WebSpa v0.8

Source:
WebSpa v0.8.zip
WebSpa v0.8.tar.gz

Classifications

Owasp-incubator-trans-85.png Owasp-builders-small.png
Owasp-defenders-small.png
Cc-button-y-sa-small.png
Project Type Files CODE.jpg