<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AmrThabet</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AmrThabet"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/AmrThabet"/>
		<updated>2026-04-23T14:25:00Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=180959</id>
		<title>File:SRDF-Design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=180959"/>
				<updated>2014-08-22T14:13:38Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: AmrThabet uploaded a new version of &amp;amp;quot;File:SRDF-Design.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User-Mode Design&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=180958</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=180958"/>
				<updated>2014-08-22T14:12:30Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:100%;border:0;margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:SRDF-Project-Header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== Abstract: ==&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction: ==&lt;br /&gt;
 &lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
'''SRDF is seeking contributors to help with the next releases . Contact [mailto:amr.thabet@owasp.org Amr Thabet] for more info.&lt;br /&gt;
&lt;br /&gt;
'''We can help you create your own project based on SRDF .. just contact us from the email above&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
SRDF is a free open source framework. It is licensed under the GPL v2 &lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==The Features:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
===in Malware:===&lt;br /&gt;
&lt;br /&gt;
•  Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
•  x86 Emulator&lt;br /&gt;
&lt;br /&gt;
•  x86 Debugger&lt;br /&gt;
&lt;br /&gt;
•  PE Analyzer, ELF Analyzer, PDF Analyzer (still in progress), Android APK Analyzer&lt;br /&gt;
&lt;br /&gt;
•  Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
•  MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
•  API Hooker, IAT Hooking and Process Injection &lt;br /&gt;
&lt;br /&gt;
•  Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
===in Network:===&lt;br /&gt;
&lt;br /&gt;
•  Packet capturing using winpcap&lt;br /&gt;
&lt;br /&gt;
•  Pcap file analysis and packet analyzer&lt;br /&gt;
&lt;br /&gt;
•  detecting malformed packets and packet generator&lt;br /&gt;
&lt;br /&gt;
•  Session analysis and session separation&lt;br /&gt;
&lt;br /&gt;
•  Protocol Analysis like tcp, udp, icmp .. etc &lt;br /&gt;
&lt;br /&gt;
•  Application layer protocol analysis like http and dns &lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and the project is totally object oriented, very expandable and well organized&lt;br /&gt;
&lt;br /&gt;
''' the project development still active and still expanding&lt;br /&gt;
&lt;br /&gt;
== Python SRDF (pySRDF)==&lt;br /&gt;
&lt;br /&gt;
it's an implementation for SRDF on python and very easy to use like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;from pySRDF import *&lt;br /&gt;
 &amp;gt;&amp;gt;dbg = Dbg(&amp;quot;C:\\test.exe&amp;quot;)&lt;br /&gt;
 &amp;gt;&amp;gt;dbg.SetBp(0x401000)&lt;br /&gt;
 &amp;gt;&amp;gt;dbg.Run()&lt;br /&gt;
&lt;br /&gt;
OR Using the Emulator:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; emu = Emulator(&amp;quot;C:\\test.exe&amp;quot;)&lt;br /&gt;
 &amp;gt;&amp;gt; emu.SetBp(&amp;quot;eip == 0x401000&amp;quot;)&lt;br /&gt;
 &amp;gt;&amp;gt; emu.Run()&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt; emu.SetBp(&amp;quot;__isdirty(eip)&amp;quot;) #which set bp on Execute on modified data &lt;br /&gt;
 &amp;gt;&amp;gt; emu.Run()&lt;br /&gt;
&lt;br /&gt;
Find it at:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/pySRDF pySRDF Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/pySRDF/tree/master/Examples Examples]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Source Code: ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/winSRDF Github]&lt;br /&gt;
&lt;br /&gt;
[https://www.openhub.net/p/winSRDF Openhub]&lt;br /&gt;
&lt;br /&gt;
[http://www.security-framework.com Our Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project Leader ==&lt;br /&gt;
[mailto:amr.thabet@owasp.org Amr Thabet]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Design=&lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
&lt;br /&gt;
the main design is:&lt;br /&gt;
&lt;br /&gt;
[[File:SRDF-Design.png]]&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure: ===&lt;br /&gt;
&lt;br /&gt;
This includes the essential elements of any development framework and it’s not related to security like: string, hash, list, serializer, database, registry manipulation, sockets and so on.&lt;br /&gt;
&lt;br /&gt;
We decided to create this part rather than depending on any development framework to make this framework independent from any other development frameworks and to be portable on any development framework&lt;br /&gt;
&lt;br /&gt;
==== Targets: ==== &lt;br /&gt;
&lt;br /&gt;
This is the beginning of the SRDF. This part is simply the Target from your security tool. What do you want to secure or secure from. And it includes Files (PE Files and others), Processes and Packets.&lt;br /&gt;
&lt;br /&gt;
==== Libraries: ====&lt;br /&gt;
&lt;br /&gt;
That’s the security tools that the SRDF support. And it’s divided into two namespaces: malware and network&lt;br /&gt;
&lt;br /&gt;
Malware includes the assemblers and disassemblers, emulator, debugger, API Hooker, Yara Scanner (wildcard scanner) file recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
Network includes User-Mode capturing and Firewall&lt;br /&gt;
&lt;br /&gt;
==== Core (The Application Interface): ====&lt;br /&gt;
&lt;br /&gt;
The Core includes the Logging system and the back-end Database.&lt;br /&gt;
&lt;br /&gt;
And also, it’s the Application Interface. Like cConsoleApp … and you can inherit from it to create your own User-Interface.&lt;br /&gt;
&lt;br /&gt;
We wish this part to be expanded to include more user interfaces and management systems&lt;br /&gt;
&lt;br /&gt;
== The Infrastructure: ==&lt;br /&gt;
 &lt;br /&gt;
=== Elements: ===&lt;br /&gt;
 &lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	String: it contains the string class, encoded string, hash and list&lt;br /&gt;
&lt;br /&gt;
2.	Code: it contains the NativeCode class and StoredProcedure … and they represents the shellcode and the code that stored in database. Like a virus detection routines inside an Antivirus&lt;br /&gt;
&lt;br /&gt;
3.	XML: and it contains the XML Encoder and the Serializer.&lt;br /&gt;
&lt;br /&gt;
=== Connections: ===&lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Internet: and it contains the internet communication protocols like sockets, HTTP Sockets and so on.&lt;br /&gt;
&lt;br /&gt;
2.	IPC: and it contains the Inter-Process Communication protocol&lt;br /&gt;
&lt;br /&gt;
3.	User-Mode to Kernel-Mode Communication: and it contains the communication protocol to communicate to the kernel-mode part of the SRDF&lt;br /&gt;
&lt;br /&gt;
=== Storage: === &lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Databases: and it contains the Database class and SQLiteDB and so on.&lt;br /&gt;
&lt;br /&gt;
2.	Files: and contains the File writing and logging classes&lt;br /&gt;
&lt;br /&gt;
3.	Registry: and it contains the registry read and write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Targets: == &lt;br /&gt;
&lt;br /&gt;
=== Files: ===&lt;br /&gt;
&lt;br /&gt;
This namespace describes the File Formats of The Files that could contain malicious code like: Executable Files (PE and ELF) and Document Files (PDF, Docx …) and so on.&lt;br /&gt;
&lt;br /&gt;
Until now it contains The PE Files parser&lt;br /&gt;
&lt;br /&gt;
=== Process: ===&lt;br /&gt;
&lt;br /&gt;
And it includes one class only named cProcess. And, this class describes a running process and parses its PEB and gives you the important information about the process and its memory map. And support injecting code and create a remote thread.&lt;br /&gt;
&lt;br /&gt;
=== Packets: === &lt;br /&gt;
&lt;br /&gt;
And it includes classes that describe an internet packets captured on the wire or generated for an attack.&lt;br /&gt;
&lt;br /&gt;
== Libraries: ==&lt;br /&gt;
&lt;br /&gt;
It contains two namespaces:&lt;br /&gt;
&lt;br /&gt;
=== Malware: === &lt;br /&gt;
&lt;br /&gt;
This namespace contains the scanning, Hooking and emulation libraries and contains Pokas Emulator wrapper class, Yara wrapper class (wildcard scanner), a debugger and contains a directory recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
And also, it contains the x86 assembler and disassembler (using Pokas Emulator Assembler) and allow to contain other assemblers and for other platforms.&lt;br /&gt;
&lt;br /&gt;
=== Network: === &lt;br /&gt;
&lt;br /&gt;
This namespace should contain the User-Mode Packet capture and firewall. And should contain the Winpcap Packet capturing and firewall system.&lt;br /&gt;
It also should include Application Layer parsers for FTP, HTTP, IRC and all known protocols and include Pcap Reader and writer.&lt;br /&gt;
&lt;br /&gt;
== The Core: ==&lt;br /&gt;
&lt;br /&gt;
And the core includes the cApp class that contains the back-end database and logging and the User-Interface such as cConsoleApp&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_Security_Research_and_Development_Framework}} &lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
[[Category:OWASP Project]]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=180957</id>
		<title>File:SRDF-Design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=180957"/>
				<updated>2014-08-22T14:11:36Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: AmrThabet uploaded a new version of &amp;amp;quot;File:SRDF-Design.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User-Mode Design&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180954</id>
		<title>File:SRDF-Project-Header.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180954"/>
				<updated>2014-08-22T09:47:21Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: AmrThabet uploaded a new version of &amp;amp;quot;File:SRDF-Project-Header.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Security Research and Development Framework Project&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180894</id>
		<title>File:SRDF-Project-Header.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180894"/>
				<updated>2014-08-21T09:38:59Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: AmrThabet uploaded a new version of &amp;amp;quot;File:SRDF-Project-Header.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Security Research and Development Framework Project&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=180839</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=180839"/>
				<updated>2014-08-20T16:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:100%;border:0;margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:SRDF-Project-Header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== Abstract: ==&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction: ==&lt;br /&gt;
 &lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
'''SRDF is seeking contributors to help with the next releases . Contact [mailto:amr.thabet@owasp.org Amr Thabet] for more info.&lt;br /&gt;
&lt;br /&gt;
'''We can help you create your own project based on SRDF .. just contact us from the email above&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
SRDF is a free open source framework. It is licensed under the GPL v2 &lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==The Features:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
===in Malware:===&lt;br /&gt;
&lt;br /&gt;
•  Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
•  x86 Emulator&lt;br /&gt;
&lt;br /&gt;
•  x86 Debugger&lt;br /&gt;
&lt;br /&gt;
•  PE Analyzer, ELF Analyzer, PDF Analyzer (still in progress), Android APK Analyzer&lt;br /&gt;
&lt;br /&gt;
•  Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
•  MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
•  API Hooker, IAT Hooking and Process Injection &lt;br /&gt;
&lt;br /&gt;
•  Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
===in Network:===&lt;br /&gt;
&lt;br /&gt;
•  Packet capturing using winpcap&lt;br /&gt;
&lt;br /&gt;
•  Pcap file analysis and packet analyzer&lt;br /&gt;
&lt;br /&gt;
•  detecting malformed packets and packet generator&lt;br /&gt;
&lt;br /&gt;
•  Session analysis and session separation&lt;br /&gt;
&lt;br /&gt;
•  Protocol Analysis like tcp, udp, icmp .. etc &lt;br /&gt;
&lt;br /&gt;
•  Application layer protocol analysis like http and dns &lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and the project is totally object oriented, very expandable and well organized&lt;br /&gt;
&lt;br /&gt;
''' the project development still active and still expanding&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Source Code: ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/winSRDF Github]&lt;br /&gt;
&lt;br /&gt;
[https://www.openhub.net/p/winSRDF Openhub]&lt;br /&gt;
&lt;br /&gt;
[http://www.security-framework.com Our Website]&lt;br /&gt;
&lt;br /&gt;
== Python SRDF (pySRDF)==&lt;br /&gt;
&lt;br /&gt;
it's an implementation for SRDF on python and very easy to use like this:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;from pySRDF import *&lt;br /&gt;
&amp;gt;&amp;gt;dbg = Dbg(&amp;quot;C:\\test.exe&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt;dbg.SetBp(0x401000)&lt;br /&gt;
&amp;gt;&amp;gt;dbg.Run()&lt;br /&gt;
&lt;br /&gt;
OR Using the Emulator:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; emu = Emulator(&amp;quot;C:\\test.exe&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt; emu.SetBp(&amp;quot;eip == 0x401000&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt; emu.Run()&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; emu.SetBp(&amp;quot;__isdirty(eip)&amp;quot;) #which set bp on Execute on modified data &lt;br /&gt;
&amp;gt;&amp;gt; emu.Run()&lt;br /&gt;
&lt;br /&gt;
Find it at:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/pySRDF pySRDF Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/pySRDF/tree/master/Examples Examples]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_Security_Research_and_Development_Framework}} &lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
[[Category:OWASP Project]]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180838</id>
		<title>File:SRDF-Project-Header.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180838"/>
				<updated>2014-08-20T16:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: AmrThabet uploaded a new version of &amp;amp;quot;File:SRDF-Project-Header.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Security Research and Development Framework Project&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180837</id>
		<title>File:SRDF-Project-Header.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180837"/>
				<updated>2014-08-20T15:56:33Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: AmrThabet uploaded a new version of &amp;amp;quot;File:SRDF-Project-Header.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Security Research and Development Framework Project&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180836</id>
		<title>File:SRDF-Project-Header.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Project-Header.jpg&amp;diff=180836"/>
				<updated>2014-08-20T15:40:50Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: Security Research and Development Framework Project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Security Research and Development Framework Project&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=180828</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=180828"/>
				<updated>2014-08-20T12:01:25Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:160px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:OWASP_Project_Header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP Security Reseach and Development Framework ==&lt;br /&gt;
&lt;br /&gt;
''Do you see writing a security tool in windows is hard?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a great idea but you can’t implement it?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a good malware analysis tool and you don’t need it to become a plugin in OllyDbg or IDA Pro?''&lt;br /&gt;
&lt;br /&gt;
''So, Security Research and Development Framework is for you.''&lt;br /&gt;
&lt;br /&gt;
= Abstract: =&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
'''SRDF is seeking contributors to help with the next releases . Contact [mailto:amr.thabet@owasp.org Amr Thabet] for more info.&lt;br /&gt;
&lt;br /&gt;
'''We can help you create your own project based on SRDF .. just contact us from the email above&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
SRDF is a free open source framework. It is licensed under the GPL v2 &lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==The Features:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
===in Malware:===&lt;br /&gt;
&lt;br /&gt;
•  Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
•  x86 Emulator&lt;br /&gt;
&lt;br /&gt;
•  x86 Debugger&lt;br /&gt;
&lt;br /&gt;
•  PE Analyzer, ELF Analyzer, PDF Analyzer (still in progress), Android APK Analyzer&lt;br /&gt;
&lt;br /&gt;
•  Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
•  MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
•  API Hooker, IAT Hooking and Process Injection &lt;br /&gt;
&lt;br /&gt;
•  Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
===in Network:===&lt;br /&gt;
&lt;br /&gt;
•  Packet capturing using winpcap&lt;br /&gt;
&lt;br /&gt;
•  Pcap file analysis and packet analyzer&lt;br /&gt;
&lt;br /&gt;
•  detecting malformed packets and packet generator&lt;br /&gt;
&lt;br /&gt;
•  Session analysis and session separation&lt;br /&gt;
&lt;br /&gt;
•  Protocol Analysis like tcp, udp, icmp .. etc &lt;br /&gt;
&lt;br /&gt;
•  Application layer protocol analysis like http and dns &lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and the project is totally object oriented, very expandable and well organized&lt;br /&gt;
&lt;br /&gt;
''' the project development still active and still expanding&lt;br /&gt;
&lt;br /&gt;
== Join Us: ==&lt;br /&gt;
&lt;br /&gt;
''Do you get benefit from this framework and you need to give something back?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to add something to your CV?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to meet smart developers and join a big community?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to learn new things?''&lt;br /&gt;
&lt;br /&gt;
''Here is place … join the development community, meet new smart people and have fun.''&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Source Code: ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/winSRDF Github]&lt;br /&gt;
&lt;br /&gt;
[https://www.openhub.net/p/winSRDF Openhub]&lt;br /&gt;
&lt;br /&gt;
[http://www.security-framework.com Our Website]&lt;br /&gt;
&lt;br /&gt;
== Python SRDF (pySRDF)==&lt;br /&gt;
&lt;br /&gt;
it's an implementation for SRDF on python and very easy to use like this:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;from pySRDF import *&lt;br /&gt;
&amp;gt;&amp;gt;dbg = Dbg(&amp;quot;C:\\test.exe&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt;dbg.SetBp(0x401000)&lt;br /&gt;
&amp;gt;&amp;gt;dbg.Run()&lt;br /&gt;
&lt;br /&gt;
OR Using the Emulator:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; emu = Emulator(&amp;quot;C:\\test.exe&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt; emu.SetBp(&amp;quot;eip == 0x401000&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt; emu.Run()&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; emu.SetBp(&amp;quot;__isdirty(eip)&amp;quot;) #which set bp on Execute on modified data &lt;br /&gt;
&amp;gt;&amp;gt; emu.Run()&lt;br /&gt;
&lt;br /&gt;
Find it at:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/pySRDF pySRDF Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/pySRDF/tree/master/Examples Examples]&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=180827</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=180827"/>
				<updated>2014-08-20T12:00:01Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:160px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:OWASP_Project_Header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP Security Reseach and Development Framework ==&lt;br /&gt;
&lt;br /&gt;
''Do you see writing a security tool in windows is hard?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a great idea but you can’t implement it?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a good malware analysis tool and you don’t need it to become a plugin in OllyDbg or IDA Pro?''&lt;br /&gt;
&lt;br /&gt;
''So, Security Research and Development Framework is for you.''&lt;br /&gt;
&lt;br /&gt;
= Abstract: =&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
'''SRDF is seeking contributors to help with the next releases . Contact [mailto:amr.thabet@owasp.org Amr Thabet] for more info.&lt;br /&gt;
&lt;br /&gt;
'''We can help you create your own project based on SRDF .. just contact us from the email above&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
SRDF is a free open source framework. It is licensed under the GPL v2 &lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==The Features:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
===in Malware:===&lt;br /&gt;
&lt;br /&gt;
•  Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
•  x86 Emulator&lt;br /&gt;
&lt;br /&gt;
•  x86 Debugger&lt;br /&gt;
&lt;br /&gt;
•  PE Analyzer, ELF Analyzer, PDF Analyzer (still in progress), Android APK Analyzer&lt;br /&gt;
&lt;br /&gt;
•  Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
•  MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
•  API Hooker, IAT Hooking and Process Injection &lt;br /&gt;
&lt;br /&gt;
•  Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
===in Network:===&lt;br /&gt;
&lt;br /&gt;
•  Packet capturing using winpcap&lt;br /&gt;
&lt;br /&gt;
•  Pcap file analysis and packet analyzer&lt;br /&gt;
&lt;br /&gt;
•  detecting malformed packets and packet generator&lt;br /&gt;
&lt;br /&gt;
•  Session analysis and session separation&lt;br /&gt;
&lt;br /&gt;
•  Protocol Analysis like tcp, udp, icmp .. etc &lt;br /&gt;
&lt;br /&gt;
•  Application layer protocol analysis like http and dns &lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and the project is totally object oriented, very expandable and well organized&lt;br /&gt;
&lt;br /&gt;
''' the project development still active and still expanding&lt;br /&gt;
&lt;br /&gt;
== Join Us: ==&lt;br /&gt;
&lt;br /&gt;
''Do you get benefit from this framework and you need to give something back?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to add something to your CV?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to meet smart developers and join a big community?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to learn new things?''&lt;br /&gt;
&lt;br /&gt;
''Here is place … join the development community, meet new smart people and have fun.''&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Source Code: ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/winSRDF Github]&lt;br /&gt;
&lt;br /&gt;
[https://www.openhub.net/p/winSRDF Openhub]&lt;br /&gt;
&lt;br /&gt;
[http://www.security-framework.com Our Website]&lt;br /&gt;
&lt;br /&gt;
== Python SRDF (pySRDF)==&lt;br /&gt;
&lt;br /&gt;
it's an implementation for SRDF on python and very easy to use like this:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;from pySRDF import *&lt;br /&gt;
&amp;gt;&amp;gt;dbg = Dbg(&amp;quot;C:\\test.exe&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt;dbg.SetBp(0x401000)&lt;br /&gt;
&amp;gt;&amp;gt;dbg.Run()&lt;br /&gt;
&lt;br /&gt;
OR Using the Emulator:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; emu = Emulator(&amp;quot;C:\\test.exe&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt; emu.SetBp(&amp;quot;eip == 0x401000&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt; emu.Run()&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; emu.SetBp(&amp;quot;__isdirty(eip)&amp;quot;) #which set bp on Execute on modified data &lt;br /&gt;
&amp;gt;&amp;gt; emu.Run()&lt;br /&gt;
&lt;br /&gt;
Find it at:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/pySRDF pySRDF Github]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/AmrThabet/pySRDF/tree/master/Examples Examples]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
= Roadmap: = &lt;br /&gt;
&lt;br /&gt;
=== 1.	 Antivirus: ===&lt;br /&gt;
&lt;br /&gt;
a.	XRAY Tool&lt;br /&gt;
&lt;br /&gt;
b.	Heuristics Analysis&lt;br /&gt;
&lt;br /&gt;
c.	Behavior-based Detection Tools.&lt;br /&gt;
&lt;br /&gt;
d.	More File Formats and improve what we have like (PDF, apk, …)&lt;br /&gt;
&lt;br /&gt;
e.	OpenSBI and other Virus Classification File Formats&lt;br /&gt;
&lt;br /&gt;
f.	Sandboxing Mechanism.&lt;br /&gt;
&lt;br /&gt;
i.	Using API/ SSDT Hooking&lt;br /&gt;
&lt;br /&gt;
ii.	Emulation Based on Pokas Emulator.&lt;br /&gt;
&lt;br /&gt;
g.	Update System with Flexible Mechanism&lt;br /&gt;
&lt;br /&gt;
=== 2.	Malware Analysis: ===&lt;br /&gt;
&lt;br /&gt;
a.	Support idb (IDA Pro Database) to read it and use its analysis &lt;br /&gt;
&lt;br /&gt;
b.	API Hooking (for the same as above)&lt;br /&gt;
&lt;br /&gt;
c.	Improvement in Pokas Emulator, Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
d.	Recursive Disassembler&lt;br /&gt;
&lt;br /&gt;
e.	More APIs Emulation in Pokas x86 Emulator&lt;br /&gt;
&lt;br /&gt;
f.	Support more Instructions (All FPU instructions, All general purpose instructions and support mmx and 3dnow)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3.	Unpackers: ===&lt;br /&gt;
&lt;br /&gt;
I’m aiming to create a database for all static unpacking codes for the mostly common unpackers and I hope it could be updated by the community&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4.	Integrations: ===&lt;br /&gt;
&lt;br /&gt;
a.	Integration into IDA Pro Plugin Interface … and in (Debugger Menu)&lt;br /&gt;
&lt;br /&gt;
b.	OllyDbg Plugin Interface&lt;br /&gt;
&lt;br /&gt;
c.	Ollyscript Executer on cDebugger&lt;br /&gt;
&lt;br /&gt;
d.	Metasploit Integeration (in Meterpreter Post Exploitation&lt;br /&gt;
&lt;br /&gt;
e.	Python, Ruby, Delphi Header files and cTypes for SRDF.dll&lt;br /&gt;
&lt;br /&gt;
=== 5.	Network: ===&lt;br /&gt;
&lt;br /&gt;
a.	Proxy Server and Emulated IRC and HTTP Connection (Server emulate the replies to the malware and log the data)&lt;br /&gt;
&lt;br /&gt;
b.	Improve the HTTP analyzer and file capturing&lt;br /&gt;
&lt;br /&gt;
c.	Add more protocols like SMTP and FTP&lt;br /&gt;
&lt;br /&gt;
=== 6.	Others: ===&lt;br /&gt;
&lt;br /&gt;
We need more helpful tools and applications based on SRDF&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas&amp;diff=149915</id>
		<title>GSoC2013 Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas&amp;diff=149915"/>
				<updated>2013-04-16T09:27:43Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OWASP Project Requests==&lt;br /&gt;
===OWASP WebGoatPHP===&lt;br /&gt;
'''Description:'''&lt;br /&gt;
[[Webgoat]] is a deliberately insecure open source software made by OWASP using Java programming language. It has a set of challenges and steps, each providing the user with one or more web application vulnerability which user tries to solve. There are also hints and auto-detection of correct solutions. &lt;br /&gt;
Since Java is not the most common web application programming language, and it doesn't have many of the bugs other languages such as PHP have when it comes to security, OWASP has [[OWASP_WebGoat_Reboot2012|dedicated in 2012]] an amount of $5000 for promotion of WebGoatPHP.&lt;br /&gt;
&lt;br /&gt;
If you want to know more about WebGoatPHP, I suggest downloading and giving WebGoat a try. It is one of OWASP prides (about 200000 downloads).&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:''' WebGoatPHP will be a deliberately insecure PHP web application which operates in different modes. A contest mode where challenges are selected by an admin and the system starts a contest. Admins can open up hints for participants and manage everything. A workshop mode, where the educator has control of the most of application features, as well as feedback of user activities and is ideal for learning environments, and a single mode where someone can browse challenges and solve them.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisite:''' You just need to know PHP. You are supposed to define flawed systems, which is not the hardest thing. Familiarity with web application security and SQL is recommended.&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
===OWASP CSRF Guard===&lt;br /&gt;
'''Description:''' [[Cross-Site_Request_Forgery_(CSRF)|CSRF]] is a complicated yet very effective web attack. The most important thing about CSRF is that it's hard to properly defend against it, specially when it comes to Web 2 and AJAX. We have had discussions on means of mitigating CSRF for years at OWASP, and are now ready to develop libraries for it. Many of the key ideas of this library can be found at [http://www.cs.sunysb.edu/~rpelizzi/jcsrf.pdf].&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:''' A transparent Apache 2 module properly mitigating all POST CSRF attacks, as well as a lightweight PHP library doing the same.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisites:''' Knowing CSRF and at least one way to defend against it, PHP, C/C++, Linux.&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP PHP Security Project===&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
OWASP PHP Security project plans to gather around secure PHP libraries, and provide a full featured framework of libraries for secure web applications in PHP, both as separate de-coupled libraries and as a whole secure web application framework. Many aspects of this project are already handled, and are being added to OWASP.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results: ''' Result of this project is much more security among PHP applications. Most PHP applications are vulnerable and there's no central approach to secure them (due to open source nature). Many people look at OWASP for such information.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisite:''' Anyone with adequate PHP programming language experience (possibly web application development in PHP).  There are hard and easy parts of this project. For tougher parts, familiarity with security concepts, advanced SQL, and advanced PHP and web server configuration is required. &lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
===OWASP RBAC Project===&lt;br /&gt;
'''Description:''' ''For the last 6 years, improper access control has been the issue behind two of the Top Ten lists''. &lt;br /&gt;
&lt;br /&gt;
RBAC stands for Role Based Access Control and is the de-facto access control and authorization standard. It simplifies access control and its maintenance for small and enterprise systems alike. NIST RBAC standard has four levels, the second level hierarchical RBAC is intended for this project.&lt;br /&gt;
&lt;br /&gt;
Unfortunately because of many performance and development problems, no suitable RBAC implementation was available until recently, so developers and admins mostly used ACLs and other forms of simple access control methods, which leads to broken and unmaintainable access control over the time. &lt;br /&gt;
&lt;br /&gt;
OWASP provides the RBAC project, as a stand-alone library with very fast access control checks and standard mature code-base. Currently [[PHPRBAC]] which is the PHP version of the RBAC project is released.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:''' Standard NIST level 2 hierarchical RBAC libraries for different programming languages, specially web-based ones such as C/C++/Java/ASP/ASPX/Python/Perl/etc.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisite:''' Good SQL knowledge, library development schemes, familiarity with one of the programming languages.&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
'''Skill Level:''' Advanced&lt;br /&gt;
&lt;br /&gt;
For more info, visit [http://phprbac.net phprbac.net]&lt;br /&gt;
&lt;br /&gt;
===OWASP XSSer Project===&lt;br /&gt;
&lt;br /&gt;
XSSer has a correct engine implementation to search/exploit XSS vulnerabilities, but it is necessary to work on some different fields to obtain better results. Some of them are: to fight against &amp;quot;false positive&amp;quot; results, to implemenet a better human-readable output results and to develop some new features (like; CSSer, Code checks user inputs, etc...). Also, it will be nice to update the tool with more valid XSS vectors (DOM, DCP, reflected, etc...) and some &amp;quot;anti-anti-XSS&amp;quot; systems for more common browsers. &lt;br /&gt;
&lt;br /&gt;
There is a roadmap on a pdf file with all tasks required to advance to next release of 'XSSer' (v1.7b - Total Swarm!)&lt;br /&gt;
&lt;br /&gt;
Download: http://xsser.sourceforge.net/xsser/xsser-roadmap.pdf &lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Below is shown a structure of phases and milestones code areas.&lt;br /&gt;
&lt;br /&gt;
Milestones:&lt;br /&gt;
    • Phase 1: Core:&lt;br /&gt;
        + Bugfixing:&lt;br /&gt;
             - False positives&lt;br /&gt;
             - Fix “swarm” results&lt;br /&gt;
             - Fix 'maximize' screen (bug reported)&lt;br /&gt;
             - Add auto-update revision&lt;br /&gt;
             - Fix multithreading (review)&lt;br /&gt;
             - Research 'glibc' corruption&lt;br /&gt;
&lt;br /&gt;
        + Add crawlering for POST+GET (auto test 'whole' page forms)&lt;br /&gt;
        + Update XSS payloads (vectors.py / DOM.py / DCP.py / etc...)&lt;br /&gt;
        + Advance Statistics results (show more detailed outputs)&lt;br /&gt;
        + Advance Exporting methods (create 'whitehat' reports (xml/json))&lt;br /&gt;
        + Advance “WebSockets” technology on XSSer 'fortune' option&lt;br /&gt;
        + Update Interface (GTK+)&lt;br /&gt;
&lt;br /&gt;
    • Phase 2: New features:&lt;br /&gt;
        + Add 'code pre-check' option: Users can set which code will return target's website, to try to evade false positive results.&lt;br /&gt;
        + Add 'CSSer' option: Payloads for CSS injections.&lt;br /&gt;
        + Research/Search anti-IDS/NIDS/IPS... codes to evade XSS filters.&lt;br /&gt;
        + BurpXSSer: Create a Burp plugin (with Jython libs)&lt;br /&gt;
        + ZAPXSSer: Create a ZAP plugin (with Jython libs)&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* To deploy a new stable version of XSSer with GTk+/Web/Shell main features working propertly,&lt;br /&gt;
&lt;br /&gt;
The code should be:&lt;br /&gt;
&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
XSSer is written in Python, so a good knowledge of this language is recommended, as is knowledge of HTML and Javascript. Also, is necessary to have some knowledge of application security and more in concret about XSS techniques.&lt;br /&gt;
&lt;br /&gt;
'''Skill Level:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Mentor: epsylon (psy) - OWASP XSSer Project Leader'''&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Dynamically Configurable actions===&lt;br /&gt;
&lt;br /&gt;
ZAP provides various mechanisms which allow HTTP requests and responses to be changed dynamically. So (for example) a string in an HTTP request can automatically be changed to another string.&lt;br /&gt;
&lt;br /&gt;
It also supports a scripting interface, which is very powerful but at the moment difficult to use.&lt;br /&gt;
&lt;br /&gt;
This project would introduce something inbetween thess 2 options - a powerful way of defining (potentially) complex rules using a wizard based interface.&lt;br /&gt;
&lt;br /&gt;
The challenge will be to make it as usable as possible while still providing a wide range of functionality.&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
This component would provide a set of highly configurable 'actions' which the user would see up via a wizard.&lt;br /&gt;
&lt;br /&gt;
So they would initially define when the action applies, based on things like regex matching on request elements. And they should be able to define multiple criteria with ANDs and ORs.&lt;br /&gt;
&lt;br /&gt;
Then they would define the actions, which could include:&lt;br /&gt;
&lt;br /&gt;
* Changing the request (adding, removing or replacing strings)&lt;br /&gt;
* Raising alerts&lt;br /&gt;
* Breaking (to replace existing break points)&lt;br /&gt;
* Running custom scripts (which could do pretty much anything) &lt;br /&gt;
&lt;br /&gt;
They would then be able to switch the actions on and off from the full list of defined actions using checkboxes&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* A new ZAP add-on providing the above functionality&lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Simon Bennetts - OWASP ZAP Project Leader'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Enhanced HTTP Session Handling===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
ZAP can currently manage multiple sessions. This development would allow ZAP to better handle HTTP Sessions to provide different views of a given target depending on the different user's permissions that the targeted site supports.&lt;br /&gt;
&lt;br /&gt;
This implementation such provide a set of methods to answer questions such as: 1)What nodes(pages) are available to a group of users and not to other groups of users 2)What nodes are available to different users but these contain significant differences in the HTTP headers and/or in the body content.&lt;br /&gt;
&lt;br /&gt;
This will allow ZAP to be used to detect access control issues which would otherwise require manual testing.&lt;br /&gt;
Expected results:&lt;br /&gt;
&lt;br /&gt;
* ZAP will have an understanding of both users and roles and be able to associate them with HTTP sessions.&lt;br /&gt;
* The user will be able to associate credentials with different roles allowing ZAP to automatically authenticate as any user / role.&lt;br /&gt;
* ZAP will be able to spider an application using a given user/role.&lt;br /&gt;
* ZAP will be able to report the differences between different HTTP sessions.&lt;br /&gt;
* ZAP will be able to show different views of the site in the site's tree tab with the pages visible for each session.&lt;br /&gt;
* ZAP will be able to attack one session based on the URLs accessed in another session and report which appear to work. &lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
Users will be able to:&lt;br /&gt;
* specify exactly which alerts are included, by context, site or on an individual alert basis&lt;br /&gt;
* specify what information is included and how it is layed out&lt;br /&gt;
* specify a range of output formats, at least including HTML and PDF&lt;br /&gt;
* include details of what testing has been performed (automatically generated where possible)&lt;br /&gt;
* apply their own branding&lt;br /&gt;
* save report templates, and apply templates downloaded from the ZAP marketplace &lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML and the HTTP protocol specification. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Guifre Ruiz - OWASP ZAP Dev Team'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Exploring Advanced reporting using BIRT===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
BIRT (Business Intelligence and Reporting Tools) is an open source development framework used for report development. The objective of the project is to explore the development of advance reports in OWASP ZAP using the BIRT Report Designer, which is a an Eclipse plug-in that utilizes BIRT technologies.&lt;br /&gt;
&lt;br /&gt;
Reports can be designed using the BIRT Report Designer; however a complete integration within OWASP ZAP is the ideal solution. This can be achieve integrating BIRT with OWASP ZAP since  the reporting application does not require the BIRT Report Designer user interface to generate a report.&lt;br /&gt;
The org.eclipse.birt.report.engine.api package contains the classes and interfaces that an application uses to generate reports. The main classes and interfaces are ReportEngine, EngineConfig, IReportRunnable, IRenderOption and its descendants, and IEngineTask and its descendants.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
*Installed and Configured BIRT Environment into the Eclipse OWASP ZAP project ( this can be delivered as an independent project)&lt;br /&gt;
*Analysis report of the pros-and cons of using BIRT within OWASP ZAP as reporting tool&lt;br /&gt;
*Be able to Generate reports from the application using the BIRT report engine API.&lt;br /&gt;
*Creation of prototype reports regarding the results output of the Sessions &amp;amp; attacks such as: Alerts, History, Search etc.&lt;br /&gt;
*A new user interface for generating reports which is easy to use and provides the user with a wide range of options.&lt;br /&gt;
&lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Johanna Curiel'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP - SAML 2.0 Support===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
SAML 2.0 is an XML-based federated single sign-on (FSSO) protocol that uses security tokens containing assertions to pass information about a principal (usually an end user) between a SAML authority, that is an identity provider, and a SAML consumer, that is a service provider. SAML 2.0 enables web-based authentication and authorization scenarios including cross-domain single sign-on (SSO). SAML specifications support many ways, called profiles and bindings, to generate and transport assertions between trusted entities The Web Browser SSO profile is of particular interest here since it enables web applications from 2 separate domains to leverage SSO easily by exchanging assertions via a web browser session.&lt;br /&gt;
&lt;br /&gt;
ZAP provides various mechanisms which allow HTTP requests and responses to be changed dynamically. This project will enhance those capabilities to be able to detect and fuzz various elements and attributes of a SAML Assertion.&lt;br /&gt;
&lt;br /&gt;
The scope of this project is limited to the following SAML bindings, profiles and protocols:&lt;br /&gt;
&lt;br /&gt;
Profiles :&lt;br /&gt;
* Web Browser SSO &lt;br /&gt;
&lt;br /&gt;
Bindings:&lt;br /&gt;
* HTTP POST&lt;br /&gt;
* HTTP Redirect &lt;br /&gt;
&lt;br /&gt;
Protocols:&lt;br /&gt;
* Authentication Request Protocol &lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
This component would enable ZAP to:&lt;br /&gt;
* Detect SAML Assertions in HTTP requests and responses&lt;br /&gt;
* Decode SAML Assertions&lt;br /&gt;
* Fuzz various entities and attributes within a SAML assertion&lt;br /&gt;
* Re-encode the assertion and send it forward &lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
Users would have a choice either to fuzz the attributes within an assertion or just add/remove arbitrary attribute (to check for XML and SAML Schema Conformance).&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML and SAML 2.0 Protocol. Some knowledge of application security would be useful, but not essential. Understanding of SSO and Federated SSO is preferred.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Prasad N. Shenoy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: SOCKS support===&lt;br /&gt;
&lt;br /&gt;
This project is to extend ZAP to act as an intercepting proxy for SOCKS 4 and 5.&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Suggested phases include:&lt;br /&gt;
&lt;br /&gt;
* Identifying suitable Java SOCKS libraries&lt;br /&gt;
* Evaluating the SOCKS support other security tools provide (eg Mallory and Burp)&lt;br /&gt;
* Enhance ZAP to provide an option to use SOCKS for all outgoing connections&lt;br /&gt;
* Enhance ZAP to act as invisible SOCKS proxy&lt;br /&gt;
* Display the SOCKS data in ZAP&lt;br /&gt;
* Support searching of SOCKS data&lt;br /&gt;
* Support breaking and changing the data manually&lt;br /&gt;
* Support fuzzing SOCKS data&lt;br /&gt;
* Support SOCKS authentication &lt;br /&gt;
&lt;br /&gt;
The ZAP WebSockets addon should be used as an indication of how this could be achieved both technically and visually, but should not limit the implementation.&lt;br /&gt;
&lt;br /&gt;
Each phase should be tested against 3rd party tools which use SOCKS and include stand alone unit tests. &lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
ZAP will be able to act as a SOCKS proxy, displaying the data sent and allowing it to be intercepted and changed. &lt;br /&gt;
&lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Simon Bennetts - OWASP ZAP Project Leader'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP Security Research and Development Framework ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation. &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF. &lt;br /&gt;
&lt;br /&gt;
'''Targeted Applications:'''&lt;br /&gt;
&lt;br /&gt;
* Packet Analysis Tools (Personal Firewalls, HIDS/HIPS, WAF, Network Analysis, Network Capture)&lt;br /&gt;
* Malware Analysis Tools (Static, Dynamic, Behavioral)&lt;br /&gt;
* Antivirus and Virus Removal Tools (Signature-based, Behavioral-based)&lt;br /&gt;
&lt;br /&gt;
'''Features:'''&lt;br /&gt;
&lt;br /&gt;
The User Mode Features: &lt;br /&gt;
&lt;br /&gt;
* Assembler and Disassembler &lt;br /&gt;
* x86 Emulator &lt;br /&gt;
* Debugger &lt;br /&gt;
* PE Analyzer &lt;br /&gt;
* Process Analyzer (Loaded DLLs, Memory Maps … etc) &lt;br /&gt;
* MD5, SSDeep and Wildlist Scanner (YARA) &lt;br /&gt;
* API Hooker and Process Injection &lt;br /&gt;
* Backend Database, XML Serializer &lt;br /&gt;
* Packet Analysis Tool and Session Separation&lt;br /&gt;
* Protocol Analyzers for TCP,UDP,ICMP,ARP and Application Layer like HTTP and DNS&lt;br /&gt;
* and many more&lt;br /&gt;
&lt;br /&gt;
The Kernel Mode Features:&lt;br /&gt;
 &lt;br /&gt;
* Object-oriented and easy to use development framework &lt;br /&gt;
* Easy IRP dispatching mechanism &lt;br /&gt;
* SSDT Hooker &lt;br /&gt;
* Layered Devices Filtering &lt;br /&gt;
* TDI Firewall &lt;br /&gt;
* File and Registry Manager &lt;br /&gt;
* Kernel Mode easy to use internet sockets &lt;br /&gt;
* Filesystem Filter &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Future Plan'''&lt;br /&gt;
 &lt;br /&gt;
we need to do the following:&lt;br /&gt;
&lt;br /&gt;
*  WOW64 Hooker (Hooking system calls on wow64 processes .. it will be like an API hooker in a wrapper dll inside the wow64 processes)&lt;br /&gt;
*  Improve our Kernel-Mode part to work on 64-bits and to implement NDIS, Kernel Sockets and Packet Filtering System (as we support TDI only and it's out-date)&lt;br /&gt;
*  We need to implement SRDF in linux ... implement the file parsers and the packet analysis is easy .. but we need to implement memory analysis on linux and so on &lt;br /&gt;
*  We need to improve the static analysis tools .. we need to implement the X-RAY and Recursive Disassembler Tool&lt;br /&gt;
*  we need to improve our dynamic analysis tools ... we need to support more APIs in Pokas Emulator and need more beta-testing&lt;br /&gt;
*  we need to create a tool that do emulation and debugging (we have a debugger in SRDF) for beta-testing&lt;br /&gt;
*  we need to improve the Behavioral Analysis Tools ... if you have ideas in behavioral analysis that's will be great&lt;br /&gt;
*  we need to implement more file formats like swf and rtf&lt;br /&gt;
*  we need to implement srdf in python using SWIG&lt;br /&gt;
*  we need more improvement on memory usage and detecting memory-leaks&lt;br /&gt;
*  we need to implement OpenSBI virus classification file format&lt;br /&gt;
*  we need to collect static unpacking codes (static means no debugger, no breakpoints, no kernel-mode and no emulator . just decrypt using equations) for known unpackers like upx, fsg and so on. as a library for developers&lt;br /&gt;
*  we need to implement zip library to decompress and rar library for the same&lt;br /&gt;
*  we need a Process Analyzer for 64 applications .. and could it be done by a wow64 process?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
We need variety of skills in different languages and platforms. We need a good knowledge in C++ in windows. We need a python developer for integrating SRDF in python. We need C++ developers have a good knowledge in Assembly (for working in disassembling part) and we need C++ developers have a knowledge in Kernel-Mode(for Kernel-Mode improvement and beta-testing)&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Amr Thabet - OWASP Security Research and Development Framework Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Create &amp;quot;Sniffer-Mode&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' &lt;br /&gt;
&lt;br /&gt;
The ModSecurity code includes a &amp;quot;standalone&amp;quot; version that wraps a light weight Apache/APR around the ModSecurity code.  This is used as the basis for the ports to the IIS/Nginx web server platforms.  The goal for this project task is to extend this standalone version so that it can accept a data feed of network traffic (e.g. libpcap) data as input and apply the ModSecurity CRS rules.  One possible solution would be create a ModSecurity &amp;quot;plugin&amp;quot; for the Snort IDS.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
This new sniffer mode would allow organizations to run ModSecurity/OWASP ModSecurity CRS in an out of line mode as they do IDS systems.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Port to Java ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' &lt;br /&gt;
&lt;br /&gt;
The goal is to have a ModSecurity version that can be used within Java servers (e.g. Tomcat).  There may be methods to use JNI to call the standalone code from a filter in Tomcat.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
This new version allow organizations to run ModSecurity/OWASP ModSecurity CRS in Java web servers.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Implement libinjection Code ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' https://www.modsecurity.org/tracker/browse/MODSEC-327&lt;br /&gt;
&lt;br /&gt;
libinjection (https://github.com/client9/libinjection) is a C library that detects SQLi attacks in user input. It is designed to be embedded in existing or new applications:&lt;br /&gt;
&lt;br /&gt;
*Fast &amp;gt; 100k inspections per second&lt;br /&gt;
*No memory allocation&lt;br /&gt;
*No threads&lt;br /&gt;
*Stable memory usage (approximately 500 bytes on stack)&lt;br /&gt;
*500 lines of C code (plus a few kiobytes of data)&lt;br /&gt;
&lt;br /&gt;
It is based on lexical analysis of SQL and SQLi attempts and does not use regular expressions.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
The new C code in ModSecurity will allow us to add new SQL Injection detection methods to the OWASP ModSecurity CRS.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Implement DoS Prevention Code ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' https://www.modsecurity.org/tracker/browse/MODSEC-265&lt;br /&gt;
&lt;br /&gt;
Implement a request velocity learning engine to identify dynamic DoS thresholds for both the site and for the particular URL.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
The new C code in ModSecurity will allow us to add new DoS Protection methods to the OWASP ModSecurity CRS.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Create a Positive Learning/Profile Engine ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' https://www.modsecurity.org/tracker/browse/MODSEC-193&lt;br /&gt;
&lt;br /&gt;
ModSecurity needs a profiling engine that implements the various AppSensor Detection Points - http://blog.spiderlabs.com/2011/08/implementing-appsensor-detection-points-in-modsecurity.html.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
The new engine will implement more detection points to detect abnormal request attributes.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Create an Engine to Detect Application Flow Anomalies ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Need an engine that can track normal application flow paths (click-flows) for business logic transactions - such as transferring money from accounts.  After profiling normal application path flows, we want to then be able to alert to anomalies.  This type of logic can help to prevent Banking Trojan attacks.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
The engine will be able to alert on anomalous application flows.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Stateful Browser with configurable authentication ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
The automated functionality of OWASP OWTF is currently limited to the non-authenticated portion of a website. We would like to implement authentication support through:&lt;br /&gt;
&lt;br /&gt;
1) OWTF parameters&lt;br /&gt;
&lt;br /&gt;
2) Configuration files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we would like to do here is to leverage the [http://wwwsearch.sourceforge.net/mechanize/ powerful mechanize python library] and build at least support for the following authentication options:&lt;br /&gt;
* Basic authentication - As requested here: [https://github.com/7a/owtf/issues/9 https://github.com/7a/owtf/issues/9]. .&lt;br /&gt;
* Cookie based authentication&lt;br /&gt;
* Form-based authentication&lt;br /&gt;
&lt;br /&gt;
Additionally, we would welcome here a feature to detect when the user has been logged off, to log OWTF back in again before retrying the next request. &amp;lt;-- The proxy is probably a better place to implement this since external tools would also benefit from this. This feature will have to be coordinated with the MiTM proxy project below.&lt;br /&gt;
&lt;br /&gt;
The solution will ideally be as simple and extensible as possible so that the codebase does not become unmaintanable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* High performance&lt;br /&gt;
* Reliability&lt;br /&gt;
* Ease of use&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, experience with the mechanize library or HTTP state is very welcome but not strictly necessary, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Inbound Proxy with MiTM and caching capabilities ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
At the moment one of the most seriously lacking features of OWASP OWTF is the Inbound proxy. Desired features here include:&lt;br /&gt;
* Proxy mode: Ability to start OWTF in &amp;quot;proxy mode&amp;quot; so that a human can review a site manually while taking advantage of all the OWTF grep plugins, without launching any tools.&lt;br /&gt;
* Proxy cache: At present, OWTF runs external tools to save time to a human pentester, the proxy cache would make OWTF smart enough to make external tools use the OWTF proxy and then avoid sending identical requests to the site (i.e. if 30 tools run by OWTF try to request X, OWTF will only make 1 request and not 30 anymore). OWTF should also be smart enough to use its own cache obviously :). The cache should be smart enough to detect lack of disk space and crashing :).&lt;br /&gt;
* Proxy throttling: We would like the proxy to auto-adjust speed to the speed of the target (i.e. based on how slower response times are getting) in a configurable fashion&lt;br /&gt;
* Proxy retry: We would like to have the ability to retry failed requests in an automated fashion for a configurable number of times &lt;br /&gt;
* Proxy MiTM: Proxy Man in The Middle capabilities are a must on any web app security tool. We need the ability to create a fake certificate on the fly to intercept and be able to analyse communications going to and from an &amp;quot;https&amp;quot; site.&lt;br /&gt;
* HTTP Transaction storage: The whole point here is of course, to store the HTTP transactions in the same way &lt;br /&gt;
&lt;br /&gt;
Potential python libraries and references that could help here are: &lt;br /&gt;
* http://twistedmatrix.com/documents/10.0.0/api/twisted.web.proxy.Proxy.html&lt;br /&gt;
* https://github.com/moxie0/sslstrip&lt;br /&gt;
* https://github.com/7a/owtf/tree/master/framework/http &amp;lt;-- Current WIP OWTF state in this regard&lt;br /&gt;
&lt;br /&gt;
The solution will ideally be as simple and extensible as possible so that the codebase does not become unmaintanable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Increased overall performance: We should only be sending each probe once ever if several tools try to send the same HTTP request multiple times.&lt;br /&gt;
* Additional HTTP transactions logged for analysis&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, previous exposure to Twisted Proxy or other python HTTP proxies will be very welcome here, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Reporting ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
A common complaint about OWASP OWTF so far has been that the report is not very shiny. The intention here is to:&lt;br /&gt;
* Move as much of the HTML away from python files into template files: This will facilitate web designer's work in the future.&lt;br /&gt;
* Apply some nice web design to the report so that it is more nice and comfortable to work with: Clear the HTML, CSS, etc&lt;br /&gt;
* Identify and fix areas of improvement in click flow: For example, try to reduce the distance to move the mouse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* The first reaction when an OWASP OWTF users opens the report is now &amp;quot;wow&amp;quot;&lt;br /&gt;
* The report is reliable and easy to work with, even when more than 30 URLs have been assessed (i.e. a lot of data in the report does not crash or make the browser slow)&lt;br /&gt;
* The improved design is lightweight and keeps the browser responsive at all times&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
HTML, JavaScript, CSS and a bit of Python. Web Designer background or experience would be beneficial for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Multiprocessing ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
OWASP OWTF can be quite slow when scanning multiple URLs simultanously due to not scanning several hosts in parallel. We would like to use the multiprocessing python library over the threading one to take full advantage of multi-core processors without the global interpreter lock (GIL) issues associated with the threading libary :)&lt;br /&gt;
* We would like to scan in parallel several websites when on a different IP: &lt;br /&gt;
* We would like to monitor the host machine resources to avoid crashing it before spawning new processes :)&lt;br /&gt;
* We would like to run plugins in parallel as much as possible but without compromising integrity: Using file locks where appropriate and so on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Reliability&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, multiprocessing experience would be beneficial for this, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - SQL database ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
OWASP OWTF scans may take a large amount of disk space due to saving information in text files, we would like to add an option to use a SQL database, probably using the sqlalchemy python library.&lt;br /&gt;
* Keep the current text file format as an option&lt;br /&gt;
* Add a database storage option using the sqlalchemy library &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Reliability: Both with the sql database option and the text file options.&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, sqlalchemy experience would be beneficial for this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Unit Test Framework ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
As OWASP OWTF grows it makes sense to build custom unit tests to automatically re-test that functionality has not been broken. In this project we would like to create a unit testing framework so that creating OWASP OWTF unit tests is as simple as possible. The goal of this project is to create the Unit Test Framework and as many unit tests as possible to verify OWASP OWTF functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Performant and automated regression testing&lt;br /&gt;
* Unit tests for a wide coverage of OWASP OWTF, ideally leveraging the Unit Test Framework where possible&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, experience with unit tests and automated regression testing would be beneficial, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Python version upgrade and compatibility ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Right now OWASP OWTF works on Python 2.6.5-2.7.3 (might work on surrounding versions too), the aim of this project would be to change the existing codebase so that it additionally works on newer python versions too, for example Python 3.3.&lt;br /&gt;
The intention here is to take advantage of improvements in newer python versions when available while letting OWASP OWTF work on older python versions too (i.e. 2.6.5) if that is the only option available.&lt;br /&gt;
The solution will ideally be as simple and extensible as possible so that the codebase does not become unmaintanable due to compatibility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Performant and reliable OWASP OWTF execution on multiple python versions, in particular the latest python version (i.e. 3.3.x) as well as the previous 2.6.5-2.7.3 range.&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, experience with python version upgrades and python version compatibility implementations, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP Hackademic Challenges - New challenges and Improvements to the existing ones ===&lt;br /&gt;
&lt;br /&gt;
''''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
The challenges that have been implemented so far include: web application challenges covering several vulnerabilities included in the OWASP Top 10, cryptographic challenges, and entire virtual machines including several vulnerabilities.&lt;br /&gt;
New challenges need to be created in order to cover a broader set of vulnerabilities.&lt;br /&gt;
Also existing challenges can be modified to accept a broader set of valid answers, e.g. by using regular expressions.&lt;br /&gt;
&lt;br /&gt;
Ideas on the project:&lt;br /&gt;
&lt;br /&gt;
* Simulated simple buffer overflows&lt;br /&gt;
* SQL injections&lt;br /&gt;
* Man in the middle simulation&lt;br /&gt;
* Bypassing regular expression filtering&lt;br /&gt;
* Your idea here&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
New cool challenges&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''' Νοte:  ''''&lt;br /&gt;
The ideas on each proposed project are examples, it would be good if you undertook any of these but we equally value creativity and we are always looking for awesome new features to add to the project, so if you have an idea don't be shy, contact us. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' Konstantinos Papapanagiotou - Hackademic Challenges Project Leader&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP Hackademic Challenges - Source Code testing environment ===&lt;br /&gt;
&lt;br /&gt;
''''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Existing challenges are based on a dynamic application testing concept. We would like to work on a project that will give the capability to the attacker to review a vulnerable piece of source code, make corrections and see the result in a realistic (but yet safe) runtime environment. The code can either be run if needed or tested for correctness and security. The implementation challenges of such a project can be numerous, including creating a realistic but also secure environment, testing submitted solutions and grading them in an automatic manner. At the same time there are now numerous sites that support submitting code and then simulate or implement a compiler's functionality.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A source code testing and improvement environment where a user will be able to review, improve and test the result of a piece of source code.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Java. Good understanding of Application Security, source code analysis and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''' Νοte:  ''''&lt;br /&gt;
The ideas on each proposed project are examples, it would be good if you undertook any of these but we equally value creativity and we are always looking for awesome new features to add to the project, so if you have an idea don't be shy, contact us. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' Konstantinos Papapanagiotou - Hackademic Challenges Project Leader&lt;br /&gt;
&lt;br /&gt;
=== OWASP Hackademic Challenges - CMS improvements ===&lt;br /&gt;
&lt;br /&gt;
''''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
The new CMS was created during last year's GSOC. We have received feedback from users that suggest various improvements regarding functionality e.g. better user, teacher and challenges management. There are also some security improvements that are needed and in general any functionality that adds up to the educational nature of the project is more than welcome.&lt;br /&gt;
&lt;br /&gt;
Ideas on this project:&lt;br /&gt;
&lt;br /&gt;
* '''Plugin api and plugin actions interface'''&lt;br /&gt;
&lt;br /&gt;
An easy way for users to code their own plugins which will modify the appearance of hackademic or add to the functionality.&lt;br /&gt;
&lt;br /&gt;
* '''Ability to show different articles on the user's home screen''' &lt;br /&gt;
&lt;br /&gt;
Now each user is served the latest article in her/his home screen. We need the ability for either  the teacher/admin to be able to define what article each class is served.&lt;br /&gt;
&lt;br /&gt;
* '''Ability to define series of challenges'''&lt;br /&gt;
&lt;br /&gt;
The teacher/admin should be able to define a series of challenges (e.g. 2,5,3,1) which are meant to be solved in that order and if one is not solved then the student can't try the next one.&lt;br /&gt;
&lt;br /&gt;
* ''' Tagging of articles, users, challenges '''&lt;br /&gt;
&lt;br /&gt;
A user should be able to put tags on articles and challenges if he is a student and on users, classes, articles and challenges if he is a teacher.&lt;br /&gt;
Also the user should be able to search according to the tags.&lt;br /&gt;
&lt;br /&gt;
* '''Your idea here''' &lt;br /&gt;
&lt;br /&gt;
We welcome new ideas to make the project look awesome.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
New features  and security improvements on the CMS part of the project.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP and HTML. Good understanding of Application Security and related vulnerabilities if you undertake security improvements. &lt;br /&gt;
&lt;br /&gt;
'''' Νοte:  ''''&lt;br /&gt;
The ideas on each proposed project are examples, it would be good if you undertook any of these but we equally value creativity and we are always looking for awesome new features to add to the project, so if you have an idea don't be shy, contact us. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' Konstantinos Papapanagiotou - Hackademic Challenges Project Leader&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas&amp;diff=149914</id>
		<title>GSoC2013 Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas&amp;diff=149914"/>
				<updated>2013-04-16T09:23:56Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OWASP Project Requests==&lt;br /&gt;
===OWASP WebGoatPHP===&lt;br /&gt;
'''Description:'''&lt;br /&gt;
[[Webgoat]] is a deliberately insecure open source software made by OWASP using Java programming language. It has a set of challenges and steps, each providing the user with one or more web application vulnerability which user tries to solve. There are also hints and auto-detection of correct solutions. &lt;br /&gt;
Since Java is not the most common web application programming language, and it doesn't have many of the bugs other languages such as PHP have when it comes to security, OWASP has [[OWASP_WebGoat_Reboot2012|dedicated in 2012]] an amount of $5000 for promotion of WebGoatPHP.&lt;br /&gt;
&lt;br /&gt;
If you want to know more about WebGoatPHP, I suggest downloading and giving WebGoat a try. It is one of OWASP prides (about 200000 downloads).&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:''' WebGoatPHP will be a deliberately insecure PHP web application which operates in different modes. A contest mode where challenges are selected by an admin and the system starts a contest. Admins can open up hints for participants and manage everything. A workshop mode, where the educator has control of the most of application features, as well as feedback of user activities and is ideal for learning environments, and a single mode where someone can browse challenges and solve them.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisite:''' You just need to know PHP. You are supposed to define flawed systems, which is not the hardest thing. Familiarity with web application security and SQL is recommended.&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
===OWASP CSRF Guard===&lt;br /&gt;
'''Description:''' [[Cross-Site_Request_Forgery_(CSRF)|CSRF]] is a complicated yet very effective web attack. The most important thing about CSRF is that it's hard to properly defend against it, specially when it comes to Web 2 and AJAX. We have had discussions on means of mitigating CSRF for years at OWASP, and are now ready to develop libraries for it. Many of the key ideas of this library can be found at [http://www.cs.sunysb.edu/~rpelizzi/jcsrf.pdf].&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:''' A transparent Apache 2 module properly mitigating all POST CSRF attacks, as well as a lightweight PHP library doing the same.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisites:''' Knowing CSRF and at least one way to defend against it, PHP, C/C++, Linux.&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP PHP Security Project===&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
OWASP PHP Security project plans to gather around secure PHP libraries, and provide a full featured framework of libraries for secure web applications in PHP, both as separate de-coupled libraries and as a whole secure web application framework. Many aspects of this project are already handled, and are being added to OWASP.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results: ''' Result of this project is much more security among PHP applications. Most PHP applications are vulnerable and there's no central approach to secure them (due to open source nature). Many people look at OWASP for such information.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisite:''' Anyone with adequate PHP programming language experience (possibly web application development in PHP).  There are hard and easy parts of this project. For tougher parts, familiarity with security concepts, advanced SQL, and advanced PHP and web server configuration is required. &lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
===OWASP RBAC Project===&lt;br /&gt;
'''Description:''' ''For the last 6 years, improper access control has been the issue behind two of the Top Ten lists''. &lt;br /&gt;
&lt;br /&gt;
RBAC stands for Role Based Access Control and is the de-facto access control and authorization standard. It simplifies access control and its maintenance for small and enterprise systems alike. NIST RBAC standard has four levels, the second level hierarchical RBAC is intended for this project.&lt;br /&gt;
&lt;br /&gt;
Unfortunately because of many performance and development problems, no suitable RBAC implementation was available until recently, so developers and admins mostly used ACLs and other forms of simple access control methods, which leads to broken and unmaintainable access control over the time. &lt;br /&gt;
&lt;br /&gt;
OWASP provides the RBAC project, as a stand-alone library with very fast access control checks and standard mature code-base. Currently [[PHPRBAC]] which is the PHP version of the RBAC project is released.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:''' Standard NIST level 2 hierarchical RBAC libraries for different programming languages, specially web-based ones such as C/C++/Java/ASP/ASPX/Python/Perl/etc.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisite:''' Good SQL knowledge, library development schemes, familiarity with one of the programming languages.&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
'''Skill Level:''' Advanced&lt;br /&gt;
&lt;br /&gt;
For more info, visit [http://phprbac.net phprbac.net]&lt;br /&gt;
&lt;br /&gt;
===OWASP XSSer Project===&lt;br /&gt;
&lt;br /&gt;
XSSer has a correct engine implementation to search/exploit XSS vulnerabilities, but it is necessary to work on some different fields to obtain better results. Some of them are: to fight against &amp;quot;false positive&amp;quot; results, to implemenet a better human-readable output results and to develop some new features (like; CSSer, Code checks user inputs, etc...). Also, it will be nice to update the tool with more valid XSS vectors (DOM, DCP, reflected, etc...) and some &amp;quot;anti-anti-XSS&amp;quot; systems for more common browsers. &lt;br /&gt;
&lt;br /&gt;
There is a roadmap on a pdf file with all tasks required to advance to next release of 'XSSer' (v1.7b - Total Swarm!)&lt;br /&gt;
&lt;br /&gt;
Download: http://xsser.sourceforge.net/xsser/xsser-roadmap.pdf &lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Below is shown a structure of phases and milestones code areas.&lt;br /&gt;
&lt;br /&gt;
Milestones:&lt;br /&gt;
    • Phase 1: Core:&lt;br /&gt;
        + Bugfixing:&lt;br /&gt;
             - False positives&lt;br /&gt;
             - Fix “swarm” results&lt;br /&gt;
             - Fix 'maximize' screen (bug reported)&lt;br /&gt;
             - Add auto-update revision&lt;br /&gt;
             - Fix multithreading (review)&lt;br /&gt;
             - Research 'glibc' corruption&lt;br /&gt;
&lt;br /&gt;
        + Add crawlering for POST+GET (auto test 'whole' page forms)&lt;br /&gt;
        + Update XSS payloads (vectors.py / DOM.py / DCP.py / etc...)&lt;br /&gt;
        + Advance Statistics results (show more detailed outputs)&lt;br /&gt;
        + Advance Exporting methods (create 'whitehat' reports (xml/json))&lt;br /&gt;
        + Advance “WebSockets” technology on XSSer 'fortune' option&lt;br /&gt;
        + Update Interface (GTK+)&lt;br /&gt;
&lt;br /&gt;
    • Phase 2: New features:&lt;br /&gt;
        + Add 'code pre-check' option: Users can set which code will return target's website, to try to evade false positive results.&lt;br /&gt;
        + Add 'CSSer' option: Payloads for CSS injections.&lt;br /&gt;
        + Research/Search anti-IDS/NIDS/IPS... codes to evade XSS filters.&lt;br /&gt;
        + BurpXSSer: Create a Burp plugin (with Jython libs)&lt;br /&gt;
        + ZAPXSSer: Create a ZAP plugin (with Jython libs)&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* To deploy a new stable version of XSSer with GTk+/Web/Shell main features working propertly,&lt;br /&gt;
&lt;br /&gt;
The code should be:&lt;br /&gt;
&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
XSSer is written in Python, so a good knowledge of this language is recommended, as is knowledge of HTML and Javascript. Also, is necessary to have some knowledge of application security and more in concret about XSS techniques.&lt;br /&gt;
&lt;br /&gt;
'''Skill Level:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Mentor: epsylon (psy) - OWASP XSSer Project Leader'''&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Dynamically Configurable actions===&lt;br /&gt;
&lt;br /&gt;
ZAP provides various mechanisms which allow HTTP requests and responses to be changed dynamically. So (for example) a string in an HTTP request can automatically be changed to another string.&lt;br /&gt;
&lt;br /&gt;
It also supports a scripting interface, which is very powerful but at the moment difficult to use.&lt;br /&gt;
&lt;br /&gt;
This project would introduce something inbetween thess 2 options - a powerful way of defining (potentially) complex rules using a wizard based interface.&lt;br /&gt;
&lt;br /&gt;
The challenge will be to make it as usable as possible while still providing a wide range of functionality.&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
This component would provide a set of highly configurable 'actions' which the user would see up via a wizard.&lt;br /&gt;
&lt;br /&gt;
So they would initially define when the action applies, based on things like regex matching on request elements. And they should be able to define multiple criteria with ANDs and ORs.&lt;br /&gt;
&lt;br /&gt;
Then they would define the actions, which could include:&lt;br /&gt;
&lt;br /&gt;
* Changing the request (adding, removing or replacing strings)&lt;br /&gt;
* Raising alerts&lt;br /&gt;
* Breaking (to replace existing break points)&lt;br /&gt;
* Running custom scripts (which could do pretty much anything) &lt;br /&gt;
&lt;br /&gt;
They would then be able to switch the actions on and off from the full list of defined actions using checkboxes&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* A new ZAP add-on providing the above functionality&lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Simon Bennetts - OWASP ZAP Project Leader'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Enhanced HTTP Session Handling===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
ZAP can currently manage multiple sessions. This development would allow ZAP to better handle HTTP Sessions to provide different views of a given target depending on the different user's permissions that the targeted site supports.&lt;br /&gt;
&lt;br /&gt;
This implementation such provide a set of methods to answer questions such as: 1)What nodes(pages) are available to a group of users and not to other groups of users 2)What nodes are available to different users but these contain significant differences in the HTTP headers and/or in the body content.&lt;br /&gt;
&lt;br /&gt;
This will allow ZAP to be used to detect access control issues which would otherwise require manual testing.&lt;br /&gt;
Expected results:&lt;br /&gt;
&lt;br /&gt;
* ZAP will have an understanding of both users and roles and be able to associate them with HTTP sessions.&lt;br /&gt;
* The user will be able to associate credentials with different roles allowing ZAP to automatically authenticate as any user / role.&lt;br /&gt;
* ZAP will be able to spider an application using a given user/role.&lt;br /&gt;
* ZAP will be able to report the differences between different HTTP sessions.&lt;br /&gt;
* ZAP will be able to show different views of the site in the site's tree tab with the pages visible for each session.&lt;br /&gt;
* ZAP will be able to attack one session based on the URLs accessed in another session and report which appear to work. &lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
Users will be able to:&lt;br /&gt;
* specify exactly which alerts are included, by context, site or on an individual alert basis&lt;br /&gt;
* specify what information is included and how it is layed out&lt;br /&gt;
* specify a range of output formats, at least including HTML and PDF&lt;br /&gt;
* include details of what testing has been performed (automatically generated where possible)&lt;br /&gt;
* apply their own branding&lt;br /&gt;
* save report templates, and apply templates downloaded from the ZAP marketplace &lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML and the HTTP protocol specification. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Guifre Ruiz - OWASP ZAP Dev Team'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Exploring Advanced reporting using BIRT===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
BIRT (Business Intelligence and Reporting Tools) is an open source development framework used for report development. The objective of the project is to explore the development of advance reports in OWASP ZAP using the BIRT Report Designer, which is a an Eclipse plug-in that utilizes BIRT technologies.&lt;br /&gt;
&lt;br /&gt;
Reports can be designed using the BIRT Report Designer; however a complete integration within OWASP ZAP is the ideal solution. This can be achieve integrating BIRT with OWASP ZAP since  the reporting application does not require the BIRT Report Designer user interface to generate a report.&lt;br /&gt;
The org.eclipse.birt.report.engine.api package contains the classes and interfaces that an application uses to generate reports. The main classes and interfaces are ReportEngine, EngineConfig, IReportRunnable, IRenderOption and its descendants, and IEngineTask and its descendants.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
*Installed and Configured BIRT Environment into the Eclipse OWASP ZAP project ( this can be delivered as an independent project)&lt;br /&gt;
*Analysis report of the pros-and cons of using BIRT within OWASP ZAP as reporting tool&lt;br /&gt;
*Be able to Generate reports from the application using the BIRT report engine API.&lt;br /&gt;
*Creation of prototype reports regarding the results output of the Sessions &amp;amp; attacks such as: Alerts, History, Search etc.&lt;br /&gt;
*A new user interface for generating reports which is easy to use and provides the user with a wide range of options.&lt;br /&gt;
&lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Johanna Curiel'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP - SAML 2.0 Support===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
SAML 2.0 is an XML-based federated single sign-on (FSSO) protocol that uses security tokens containing assertions to pass information about a principal (usually an end user) between a SAML authority, that is an identity provider, and a SAML consumer, that is a service provider. SAML 2.0 enables web-based authentication and authorization scenarios including cross-domain single sign-on (SSO). SAML specifications support many ways, called profiles and bindings, to generate and transport assertions between trusted entities The Web Browser SSO profile is of particular interest here since it enables web applications from 2 separate domains to leverage SSO easily by exchanging assertions via a web browser session.&lt;br /&gt;
&lt;br /&gt;
ZAP provides various mechanisms which allow HTTP requests and responses to be changed dynamically. This project will enhance those capabilities to be able to detect and fuzz various elements and attributes of a SAML Assertion.&lt;br /&gt;
&lt;br /&gt;
The scope of this project is limited to the following SAML bindings, profiles and protocols:&lt;br /&gt;
&lt;br /&gt;
Profiles :&lt;br /&gt;
* Web Browser SSO &lt;br /&gt;
&lt;br /&gt;
Bindings:&lt;br /&gt;
* HTTP POST&lt;br /&gt;
* HTTP Redirect &lt;br /&gt;
&lt;br /&gt;
Protocols:&lt;br /&gt;
* Authentication Request Protocol &lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
This component would enable ZAP to:&lt;br /&gt;
* Detect SAML Assertions in HTTP requests and responses&lt;br /&gt;
* Decode SAML Assertions&lt;br /&gt;
* Fuzz various entities and attributes within a SAML assertion&lt;br /&gt;
* Re-encode the assertion and send it forward &lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
Users would have a choice either to fuzz the attributes within an assertion or just add/remove arbitrary attribute (to check for XML and SAML Schema Conformance).&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML and SAML 2.0 Protocol. Some knowledge of application security would be useful, but not essential. Understanding of SSO and Federated SSO is preferred.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Prasad N. Shenoy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: SOCKS support===&lt;br /&gt;
&lt;br /&gt;
This project is to extend ZAP to act as an intercepting proxy for SOCKS 4 and 5.&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Suggested phases include:&lt;br /&gt;
&lt;br /&gt;
* Identifying suitable Java SOCKS libraries&lt;br /&gt;
* Evaluating the SOCKS support other security tools provide (eg Mallory and Burp)&lt;br /&gt;
* Enhance ZAP to provide an option to use SOCKS for all outgoing connections&lt;br /&gt;
* Enhance ZAP to act as invisible SOCKS proxy&lt;br /&gt;
* Display the SOCKS data in ZAP&lt;br /&gt;
* Support searching of SOCKS data&lt;br /&gt;
* Support breaking and changing the data manually&lt;br /&gt;
* Support fuzzing SOCKS data&lt;br /&gt;
* Support SOCKS authentication &lt;br /&gt;
&lt;br /&gt;
The ZAP WebSockets addon should be used as an indication of how this could be achieved both technically and visually, but should not limit the implementation.&lt;br /&gt;
&lt;br /&gt;
Each phase should be tested against 3rd party tools which use SOCKS and include stand alone unit tests. &lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
ZAP will be able to act as a SOCKS proxy, displaying the data sent and allowing it to be intercepted and changed. &lt;br /&gt;
&lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Simon Bennetts - OWASP ZAP Project Leader'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP Security Research and Development Framework ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation. &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF. &lt;br /&gt;
&lt;br /&gt;
'''Targeted Applications:'''&lt;br /&gt;
&lt;br /&gt;
* Packet Analysis Tools (Personal Firewalls, HIDS/HIPS, WAF, Network Analysis, Network Capture)&lt;br /&gt;
* Malware Analysis Tools (Static, Dynamic, Behavioral)&lt;br /&gt;
* Antivirus and Virus Removal Tools (Signature-based, Behavioral-based)&lt;br /&gt;
&lt;br /&gt;
'''Features:'''&lt;br /&gt;
&lt;br /&gt;
The User Mode Features: &lt;br /&gt;
&lt;br /&gt;
• Assembler and Disassembler &lt;br /&gt;
• x86 Emulator &lt;br /&gt;
• Debugger &lt;br /&gt;
• PE Analyzer &lt;br /&gt;
• Process Analyzer (Loaded DLLs, Memory Maps … etc) &lt;br /&gt;
• MD5, SSDeep and Wildlist Scanner (YARA) &lt;br /&gt;
• API Hooker and Process Injection &lt;br /&gt;
• Backend Database, XML Serializer &lt;br /&gt;
• Packet Analysis Tool and Session Separation&lt;br /&gt;
• Protocol Analyzers for TCP,UDP,ICMP,ARP and Application Layer like HTTP and DNS&lt;br /&gt;
• and many more&lt;br /&gt;
&lt;br /&gt;
The Kernel Mode Features:&lt;br /&gt;
 &lt;br /&gt;
• Object-oriented and easy to use development framework &lt;br /&gt;
• Easy IRP dispatching mechanism &lt;br /&gt;
• SSDT Hooker &lt;br /&gt;
• Layered Devices Filtering &lt;br /&gt;
• TDI Firewall &lt;br /&gt;
• File and Registry Manager &lt;br /&gt;
• Kernel Mode easy to use internet sockets &lt;br /&gt;
• Filesystem Filter &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Future Plan'''&lt;br /&gt;
 &lt;br /&gt;
and we need to do the following:&lt;br /&gt;
&lt;br /&gt;
*  WOW64 Hooker (Hooking system calls on wow64 processes .. it will be like an API hooker in a wrapper dll inside the wow64 processes)&lt;br /&gt;
*  Improve our Kernel-Mode part to work on 64-bits and to implement NDIS, Kernel Sockets and Packet Filtering System (as we support TDI only and it's out-date)&lt;br /&gt;
*  We need to implement SRDF in linux ... implement the file parsers and the packet analysis is easy .. but we need to implement memory analysis on linux and so on &lt;br /&gt;
*  We need to improve the static analysis tools .. we need to implement the X-RAY and Recursive Disassembler Tool&lt;br /&gt;
*  we need to improve our dynamic analysis tools ... we need to support more APIs in Pokas Emulator and need more beta-testing&lt;br /&gt;
*  we need to create a tool that do emulation and debugging (we have a debugger in SRDF) for beta-testing&lt;br /&gt;
*  we need to improve the Behavioral Analysis Tools ... if you have ideas in behavioral analysis that's will be great&lt;br /&gt;
*  we need to implement more file formats like swf and rtf&lt;br /&gt;
*  we need to implement srdf in python using SWIG&lt;br /&gt;
*  we need more improvement on memory usage and detecting memory-leaks&lt;br /&gt;
*  we need to implement OpenSBI virus classification file format&lt;br /&gt;
*  we need to collect static unpacking codes (static means no debugger, no breakpoints, no kernel-mode and no emulator . just decrypt using equations) for known unpackers like upx, fsg and so on. as a library for developers&lt;br /&gt;
*  we need to implement zip library to decompress and rar library for the same&lt;br /&gt;
*  we need a Process Analyzer for 64 applications .. and could it be done by a wow64 process?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
We need variety of skills in different languages and platforms. We need a good knowledge in C++ in windows. We need a python developer for integrating SRDF in python. We need C++ developers have a good knowledge in Assembly (for working in disassembling part) and we need C++ developers have a knowledge in Kernel-Mode(for Kernel-Mode improvement and beta-testing)&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Amr Thabet - OWASP Security Research and Development Framework Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Create &amp;quot;Sniffer-Mode&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' &lt;br /&gt;
&lt;br /&gt;
The ModSecurity code includes a &amp;quot;standalone&amp;quot; version that wraps a light weight Apache/APR around the ModSecurity code.  This is used as the basis for the ports to the IIS/Nginx web server platforms.  The goal for this project task is to extend this standalone version so that it can accept a data feed of network traffic (e.g. libpcap) data as input and apply the ModSecurity CRS rules.  One possible solution would be create a ModSecurity &amp;quot;plugin&amp;quot; for the Snort IDS.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
This new sniffer mode would allow organizations to run ModSecurity/OWASP ModSecurity CRS in an out of line mode as they do IDS systems.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Port to Java ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' &lt;br /&gt;
&lt;br /&gt;
The goal is to have a ModSecurity version that can be used within Java servers (e.g. Tomcat).  There may be methods to use JNI to call the standalone code from a filter in Tomcat.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
This new version allow organizations to run ModSecurity/OWASP ModSecurity CRS in Java web servers.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Implement libinjection Code ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' https://www.modsecurity.org/tracker/browse/MODSEC-327&lt;br /&gt;
&lt;br /&gt;
libinjection (https://github.com/client9/libinjection) is a C library that detects SQLi attacks in user input. It is designed to be embedded in existing or new applications:&lt;br /&gt;
&lt;br /&gt;
*Fast &amp;gt; 100k inspections per second&lt;br /&gt;
*No memory allocation&lt;br /&gt;
*No threads&lt;br /&gt;
*Stable memory usage (approximately 500 bytes on stack)&lt;br /&gt;
*500 lines of C code (plus a few kiobytes of data)&lt;br /&gt;
&lt;br /&gt;
It is based on lexical analysis of SQL and SQLi attempts and does not use regular expressions.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
The new C code in ModSecurity will allow us to add new SQL Injection detection methods to the OWASP ModSecurity CRS.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Implement DoS Prevention Code ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' https://www.modsecurity.org/tracker/browse/MODSEC-265&lt;br /&gt;
&lt;br /&gt;
Implement a request velocity learning engine to identify dynamic DoS thresholds for both the site and for the particular URL.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
The new C code in ModSecurity will allow us to add new DoS Protection methods to the OWASP ModSecurity CRS.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Create a Positive Learning/Profile Engine ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:''' https://www.modsecurity.org/tracker/browse/MODSEC-193&lt;br /&gt;
&lt;br /&gt;
ModSecurity needs a profiling engine that implements the various AppSensor Detection Points - http://blog.spiderlabs.com/2011/08/implementing-appsensor-detection-points-in-modsecurity.html.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
The new engine will implement more detection points to detect abnormal request attributes.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP ModSecurity CRS - Create an Engine to Detect Application Flow Anomalies ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Need an engine that can track normal application flow paths (click-flows) for business logic transactions - such as transferring money from accounts.  After profiling normal application path flows, we want to then be able to alert to anomalies.  This type of logic can help to prevent Banking Trojan attacks.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
The engine will be able to alert on anomalous application flows.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
C programming and ModSecurity Development Guidelines - http://www.modsecurity.org/developers/.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Ryan Barnett - OWASP ModSecurity Core Rule Set Project Leader'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Stateful Browser with configurable authentication ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
The automated functionality of OWASP OWTF is currently limited to the non-authenticated portion of a website. We would like to implement authentication support through:&lt;br /&gt;
&lt;br /&gt;
1) OWTF parameters&lt;br /&gt;
&lt;br /&gt;
2) Configuration files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we would like to do here is to leverage the [http://wwwsearch.sourceforge.net/mechanize/ powerful mechanize python library] and build at least support for the following authentication options:&lt;br /&gt;
* Basic authentication - As requested here: [https://github.com/7a/owtf/issues/9 https://github.com/7a/owtf/issues/9]. .&lt;br /&gt;
* Cookie based authentication&lt;br /&gt;
* Form-based authentication&lt;br /&gt;
&lt;br /&gt;
Additionally, we would welcome here a feature to detect when the user has been logged off, to log OWTF back in again before retrying the next request. &amp;lt;-- The proxy is probably a better place to implement this since external tools would also benefit from this. This feature will have to be coordinated with the MiTM proxy project below.&lt;br /&gt;
&lt;br /&gt;
The solution will ideally be as simple and extensible as possible so that the codebase does not become unmaintanable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* High performance&lt;br /&gt;
* Reliability&lt;br /&gt;
* Ease of use&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, experience with the mechanize library or HTTP state is very welcome but not strictly necessary, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Inbound Proxy with MiTM and caching capabilities ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
At the moment one of the most seriously lacking features of OWASP OWTF is the Inbound proxy. Desired features here include:&lt;br /&gt;
* Proxy mode: Ability to start OWTF in &amp;quot;proxy mode&amp;quot; so that a human can review a site manually while taking advantage of all the OWTF grep plugins, without launching any tools.&lt;br /&gt;
* Proxy cache: At present, OWTF runs external tools to save time to a human pentester, the proxy cache would make OWTF smart enough to make external tools use the OWTF proxy and then avoid sending identical requests to the site (i.e. if 30 tools run by OWTF try to request X, OWTF will only make 1 request and not 30 anymore). OWTF should also be smart enough to use its own cache obviously :). The cache should be smart enough to detect lack of disk space and crashing :).&lt;br /&gt;
* Proxy throttling: We would like the proxy to auto-adjust speed to the speed of the target (i.e. based on how slower response times are getting) in a configurable fashion&lt;br /&gt;
* Proxy retry: We would like to have the ability to retry failed requests in an automated fashion for a configurable number of times &lt;br /&gt;
* Proxy MiTM: Proxy Man in The Middle capabilities are a must on any web app security tool. We need the ability to create a fake certificate on the fly to intercept and be able to analyse communications going to and from an &amp;quot;https&amp;quot; site.&lt;br /&gt;
* HTTP Transaction storage: The whole point here is of course, to store the HTTP transactions in the same way &lt;br /&gt;
&lt;br /&gt;
Potential python libraries and references that could help here are: &lt;br /&gt;
* http://twistedmatrix.com/documents/10.0.0/api/twisted.web.proxy.Proxy.html&lt;br /&gt;
* https://github.com/moxie0/sslstrip&lt;br /&gt;
* https://github.com/7a/owtf/tree/master/framework/http &amp;lt;-- Current WIP OWTF state in this regard&lt;br /&gt;
&lt;br /&gt;
The solution will ideally be as simple and extensible as possible so that the codebase does not become unmaintanable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Increased overall performance: We should only be sending each probe once ever if several tools try to send the same HTTP request multiple times.&lt;br /&gt;
* Additional HTTP transactions logged for analysis&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, previous exposure to Twisted Proxy or other python HTTP proxies will be very welcome here, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Reporting ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
A common complaint about OWASP OWTF so far has been that the report is not very shiny. The intention here is to:&lt;br /&gt;
* Move as much of the HTML away from python files into template files: This will facilitate web designer's work in the future.&lt;br /&gt;
* Apply some nice web design to the report so that it is more nice and comfortable to work with: Clear the HTML, CSS, etc&lt;br /&gt;
* Identify and fix areas of improvement in click flow: For example, try to reduce the distance to move the mouse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* The first reaction when an OWASP OWTF users opens the report is now &amp;quot;wow&amp;quot;&lt;br /&gt;
* The report is reliable and easy to work with, even when more than 30 URLs have been assessed (i.e. a lot of data in the report does not crash or make the browser slow)&lt;br /&gt;
* The improved design is lightweight and keeps the browser responsive at all times&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
HTML, JavaScript, CSS and a bit of Python. Web Designer background or experience would be beneficial for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Multiprocessing ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
OWASP OWTF can be quite slow when scanning multiple URLs simultanously due to not scanning several hosts in parallel. We would like to use the multiprocessing python library over the threading one to take full advantage of multi-core processors without the global interpreter lock (GIL) issues associated with the threading libary :)&lt;br /&gt;
* We would like to scan in parallel several websites when on a different IP: &lt;br /&gt;
* We would like to monitor the host machine resources to avoid crashing it before spawning new processes :)&lt;br /&gt;
* We would like to run plugins in parallel as much as possible but without compromising integrity: Using file locks where appropriate and so on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Reliability&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, multiprocessing experience would be beneficial for this, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - SQL database ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
OWASP OWTF scans may take a large amount of disk space due to saving information in text files, we would like to add an option to use a SQL database, probably using the sqlalchemy python library.&lt;br /&gt;
* Keep the current text file format as an option&lt;br /&gt;
* Add a database storage option using the sqlalchemy library &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Reliability: Both with the sql database option and the text file options.&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, sqlalchemy experience would be beneficial for this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Unit Test Framework ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
As OWASP OWTF grows it makes sense to build custom unit tests to automatically re-test that functionality has not been broken. In this project we would like to create a unit testing framework so that creating OWASP OWTF unit tests is as simple as possible. The goal of this project is to create the Unit Test Framework and as many unit tests as possible to verify OWASP OWTF functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Performant and automated regression testing&lt;br /&gt;
* Unit tests for a wide coverage of OWASP OWTF, ideally leveraging the Unit Test Framework where possible&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, experience with unit tests and automated regression testing would be beneficial, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP OWTF - Python version upgrade and compatibility ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Right now OWASP OWTF works on Python 2.6.5-2.7.3 (might work on surrounding versions too), the aim of this project would be to change the existing codebase so that it additionally works on newer python versions too, for example Python 3.3.&lt;br /&gt;
The intention here is to take advantage of improvements in newer python versions when available while letting OWASP OWTF work on older python versions too (i.e. 2.6.5) if that is the only option available.&lt;br /&gt;
The solution will ideally be as simple and extensible as possible so that the codebase does not become unmaintanable due to compatibility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For background on OWASP OWTF please see: [https://www.owasp.org/index.php/OWASP_OWTF https://www.owasp.org/index.php/OWASP_OWTF]&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* Performant and reliable OWASP OWTF execution on multiple python versions, in particular the latest python version (i.e. 3.3.x) as well as the previous 2.6.5-2.7.3 range.&lt;br /&gt;
* Test cases&lt;br /&gt;
* Good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
Python, experience with python version upgrades and python version compatibility implementations, some previous exposure to security concepts and penetration testing is welcome but not strictly necessary as long as there is will to learn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Abraham Aranguren - OWASP OWTF Project Leader - Contact: name.surname@owasp.org'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP Hackademic Challenges - New challenges and Improvements to the existing ones ===&lt;br /&gt;
&lt;br /&gt;
''''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
The challenges that have been implemented so far include: web application challenges covering several vulnerabilities included in the OWASP Top 10, cryptographic challenges, and entire virtual machines including several vulnerabilities.&lt;br /&gt;
New challenges need to be created in order to cover a broader set of vulnerabilities.&lt;br /&gt;
Also existing challenges can be modified to accept a broader set of valid answers, e.g. by using regular expressions.&lt;br /&gt;
&lt;br /&gt;
Ideas on the project:&lt;br /&gt;
&lt;br /&gt;
* Simulated simple buffer overflows&lt;br /&gt;
* SQL injections&lt;br /&gt;
* Man in the middle simulation&lt;br /&gt;
* Bypassing regular expression filtering&lt;br /&gt;
* Your idea here&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
New cool challenges&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Javascript. Good understanding of Application Security and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''' Νοte:  ''''&lt;br /&gt;
The ideas on each proposed project are examples, it would be good if you undertook any of these but we equally value creativity and we are always looking for awesome new features to add to the project, so if you have an idea don't be shy, contact us. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' Konstantinos Papapanagiotou - Hackademic Challenges Project Leader&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWASP Hackademic Challenges - Source Code testing environment ===&lt;br /&gt;
&lt;br /&gt;
''''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
Existing challenges are based on a dynamic application testing concept. We would like to work on a project that will give the capability to the attacker to review a vulnerable piece of source code, make corrections and see the result in a realistic (but yet safe) runtime environment. The code can either be run if needed or tested for correctness and security. The implementation challenges of such a project can be numerous, including creating a realistic but also secure environment, testing submitted solutions and grading them in an automatic manner. At the same time there are now numerous sites that support submitting code and then simulate or implement a compiler's functionality.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
A source code testing and improvement environment where a user will be able to review, improve and test the result of a piece of source code.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP, HTML and possibly Java. Good understanding of Application Security, source code analysis and related vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
'''' Νοte:  ''''&lt;br /&gt;
The ideas on each proposed project are examples, it would be good if you undertook any of these but we equally value creativity and we are always looking for awesome new features to add to the project, so if you have an idea don't be shy, contact us. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' Konstantinos Papapanagiotou - Hackademic Challenges Project Leader&lt;br /&gt;
&lt;br /&gt;
=== OWASP Hackademic Challenges - CMS improvements ===&lt;br /&gt;
&lt;br /&gt;
''''Brief Explanation:'''&lt;br /&gt;
&lt;br /&gt;
The new CMS was created during last year's GSOC. We have received feedback from users that suggest various improvements regarding functionality e.g. better user, teacher and challenges management. There are also some security improvements that are needed and in general any functionality that adds up to the educational nature of the project is more than welcome.&lt;br /&gt;
&lt;br /&gt;
Ideas on this project:&lt;br /&gt;
&lt;br /&gt;
* '''Plugin api and plugin actions interface'''&lt;br /&gt;
&lt;br /&gt;
An easy way for users to code their own plugins which will modify the appearance of hackademic or add to the functionality.&lt;br /&gt;
&lt;br /&gt;
* '''Ability to show different articles on the user's home screen''' &lt;br /&gt;
&lt;br /&gt;
Now each user is served the latest article in her/his home screen. We need the ability for either  the teacher/admin to be able to define what article each class is served.&lt;br /&gt;
&lt;br /&gt;
* '''Ability to define series of challenges'''&lt;br /&gt;
&lt;br /&gt;
The teacher/admin should be able to define a series of challenges (e.g. 2,5,3,1) which are meant to be solved in that order and if one is not solved then the student can't try the next one.&lt;br /&gt;
&lt;br /&gt;
* ''' Tagging of articles, users, challenges '''&lt;br /&gt;
&lt;br /&gt;
A user should be able to put tags on articles and challenges if he is a student and on users, classes, articles and challenges if he is a teacher.&lt;br /&gt;
Also the user should be able to search according to the tags.&lt;br /&gt;
&lt;br /&gt;
* '''Your idea here''' &lt;br /&gt;
&lt;br /&gt;
We welcome new ideas to make the project look awesome.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:'''&lt;br /&gt;
&lt;br /&gt;
New features  and security improvements on the CMS part of the project.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisites:'''&lt;br /&gt;
&lt;br /&gt;
Comfortable in PHP and HTML. Good understanding of Application Security and related vulnerabilities if you undertake security improvements. &lt;br /&gt;
&lt;br /&gt;
'''' Νοte:  ''''&lt;br /&gt;
The ideas on each proposed project are examples, it would be good if you undertook any of these but we equally value creativity and we are always looking for awesome new features to add to the project, so if you have an idea don't be shy, contact us. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' Konstantinos Papapanagiotou - Hackademic Challenges Project Leader&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=148735</id>
		<title>File:SRDF-Design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=148735"/>
				<updated>2013-03-28T08:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: uploaded a new version of &amp;amp;quot;File:SRDF-Design.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User-Mode Design&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=148734</id>
		<title>File:SRDF-Design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=148734"/>
				<updated>2013-03-28T08:08:32Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: uploaded a new version of &amp;amp;quot;File:SRDF-Design.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User-Mode Design&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=148733</id>
		<title>File:SRDF-Design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=148733"/>
				<updated>2013-03-28T08:07:55Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: uploaded a new version of &amp;amp;quot;File:SRDF-Design.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User-Mode Design&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=GSoC2013_Ideas&amp;diff=148210</id>
		<title>GSoC2013 Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=GSoC2013_Ideas&amp;diff=148210"/>
				<updated>2013-03-20T11:59:16Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OWASP Project Requests==&lt;br /&gt;
===OWASP PHP Security Project===&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&lt;br /&gt;
OWASP PHP Security project plans to gather around secure PHP libraries, and provide a full featured framework of libraries for secure web applications in PHP, both as separate de-coupled libraries and as a whole secure web application framework. Many aspects of this project are already handled, and are being added to OWASP.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results: ''' Result of this project is much more security among PHP applications. Most PHP applications are vulnerable and there's no central approach to secure them (due to open source nature). Many people look at OWASP for such information.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisite:''' Anyone with adequate PHP programming language experience (possibly web application development in PHP).  There are hard and easy parts of this project. For tougher parts, familiarity with security concepts, advanced SQL, and advanced PHP and web server configuration is required. &lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
===OWASP RBAC Project===&lt;br /&gt;
'''Description:''' ''For the last 6 years, improper access control has been the issue behind two of the Top Ten lists''. &lt;br /&gt;
&lt;br /&gt;
RBAC stands for Role Based Access Control and is the de-facto access control and authorization standard. It simplifies access control and its maintenance for small and enterprise systems alike. NIST RBAC standard has four levels, the second level hierarchical RBAC is intended for this project.&lt;br /&gt;
&lt;br /&gt;
Unfortunately because of many performance and development problems, no suitable RBAC implementation was available until recently, so developers and admins mostly used ACLs and other forms of simple access control methods, which leads to broken and unmaintainable access control over the time. &lt;br /&gt;
&lt;br /&gt;
OWASP provides the RBAC project, as a stand-alone library with very fast access control checks and standard mature code-base. Currently [[PHPRBAC]] which is the PHP version of the RBAC project is released.&lt;br /&gt;
&lt;br /&gt;
'''Expected Results:''' Standard NIST level 2 hierarchical RBAC libraries for different programming languages, specially web-based ones such as C/C++/Java/ASP/ASPX/Python/Perl/etc.&lt;br /&gt;
&lt;br /&gt;
'''Knowledge prerequisite:''' Good SQL knowledge, library development schemes, familiarity with one of the programming languages.&lt;br /&gt;
&lt;br /&gt;
'''Mentor:''' [[User:Abbas Naderi|Abbas Naderi]]&lt;br /&gt;
&lt;br /&gt;
'''Skill Level:''' Advanced&lt;br /&gt;
&lt;br /&gt;
For more info, visit [http://phprbac.net phprbac.net]&lt;br /&gt;
&lt;br /&gt;
===OWASP XSSer Project===&lt;br /&gt;
&lt;br /&gt;
XSSer has a correct engine implementation to search/exploit XSS vulnerabilities, but it is necessary to work on some different fields to obtain better results. Some of them are: to fight against &amp;quot;false positive&amp;quot; results, to implemenet a better human-readable output results and to develop some new features (like; CSSer, Code checks user inputs, etc...). Also, it will be nice to update the tool with more valid XSS vectors (DOM, DCP, reflected, etc...) and some &amp;quot;anti-anti-XSS&amp;quot; systems for more common browsers. &lt;br /&gt;
&lt;br /&gt;
There is a roadmap on a pdf file with all tasks required to advance to next release of 'XSSer' (v1.7b - Total Swarm!)&lt;br /&gt;
&lt;br /&gt;
Download: http://xsser.sourceforge.net/xsser/xsser-roadmap.pdf &lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
Below is shown a structure of phases and milestones code areas.&lt;br /&gt;
&lt;br /&gt;
Milestones:&lt;br /&gt;
    • Phase 1: Core:&lt;br /&gt;
        + Bugfixing:&lt;br /&gt;
             - False positives&lt;br /&gt;
             - Fix “swarm” results&lt;br /&gt;
             - Fix 'maximize' screen (bug reported)&lt;br /&gt;
             - Add auto-update revision&lt;br /&gt;
             - Fix multithreading (review)&lt;br /&gt;
             - Research 'glibc' corruption&lt;br /&gt;
&lt;br /&gt;
        + Add crawlering for POST+GET (auto test 'whole' page forms)&lt;br /&gt;
        + Update XSS payloads (vectors.py / DOM.py / DCP.py / etc...)&lt;br /&gt;
        + Advance Statistics results (show more detailed outputs)&lt;br /&gt;
        + Advance Exporting methods (create 'whitehat' reports (xml/json))&lt;br /&gt;
        + Advance “WebSockets” technology on XSSer 'fortune' option&lt;br /&gt;
        + Update Interface (GTK+)&lt;br /&gt;
&lt;br /&gt;
    • Phase 2: New features:&lt;br /&gt;
        + Add 'code pre-check' option: Users can set which code will return target's website, to try to evade false positive results.&lt;br /&gt;
        + Add 'CSSer' option: Payloads for CSS injections.&lt;br /&gt;
        + Research/Search anti-IDS/NIDS/IPS... codes to evade XSS filters.&lt;br /&gt;
        + BurpXSSer: Create a Burp plugin (with Jython libs)&lt;br /&gt;
        + ZAPXSSer: Create a ZAP plugin (with Jython libs)&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* To deploy a new stable version of XSSer with GTk+/Web/Shell main features working propertly,&lt;br /&gt;
&lt;br /&gt;
The code should be:&lt;br /&gt;
&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
XSSer is written in Python, so a good knowledge of this language is recommended, as is knowledge of HTML and Javascript. Also, is necessary to have some knowledge of application security and more in concret about XSS techniques.&lt;br /&gt;
&lt;br /&gt;
'''Skill Level:''' Medium&lt;br /&gt;
&lt;br /&gt;
'''Mentor: epsylon (psy) - OWASP XSSer Project Leader'''&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Dynamically Configurable actions===&lt;br /&gt;
&lt;br /&gt;
ZAP provides various mechanisms which allow HTTP requests and responses to be changed dynamically. So (for example) a string in an HTTP request can automatically be changed to another string.&lt;br /&gt;
&lt;br /&gt;
It also supports a scripting interface, which is very powerful but at the moment difficult to use.&lt;br /&gt;
&lt;br /&gt;
This project would introduce something inbetween thess 2 options - a powerful way of defining (potentially) complex rules using a wizard based interface.&lt;br /&gt;
&lt;br /&gt;
The challenge will be to make it as usable as possible while still providing a wide range of functionality.&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
This component would provide a set of highly configurable 'actions' which the user would see up via a wizard.&lt;br /&gt;
&lt;br /&gt;
So they would initially define when the action applies, based on things like regex matching on request elements. And they should be able to define multiple criteria with ANDs and ORs.&lt;br /&gt;
&lt;br /&gt;
Then they would define the actions, which could include:&lt;br /&gt;
&lt;br /&gt;
* Changing the request (adding, removing or replacing strings)&lt;br /&gt;
* Raising alerts&lt;br /&gt;
* Breaking (to replace existing break points)&lt;br /&gt;
* Running custom scripts (which could do pretty much anything) &lt;br /&gt;
&lt;br /&gt;
They would then be able to switch the actions on and off from the full list of defined actions using checkboxes&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
* A new ZAP add-on providing the above functionality&lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Simon Bennetts - OWASP ZAP Project Leader'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Enhanced HTTP Session Handling===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
ZAP can currently manage multiple sessions. This development would allow ZAP to better handle HTTP Sessions to provide different views of a given target depending on the different user's permissions that the targeted site supports.&lt;br /&gt;
&lt;br /&gt;
This implementation such provide a set of methods to answer questions such as: 1)What nodes(pages) are available to a group of users and not to other groups of users 2)What nodes are available to different users but these contain significant differences in the HTTP headers and/or in the body content.&lt;br /&gt;
&lt;br /&gt;
This will allow ZAP to be used to detect access control issues which would otherwise require manual testing.&lt;br /&gt;
Expected results:&lt;br /&gt;
&lt;br /&gt;
* ZAP will have an understanding of both users and roles and be able to associate them with HTTP sessions.&lt;br /&gt;
* The user will be able to associate credentials with different roles allowing ZAP to automatically authenticate as any user / role.&lt;br /&gt;
* ZAP will be able to spider an application using a given user/role.&lt;br /&gt;
* ZAP will be able to report the differences between different HTTP sessions.&lt;br /&gt;
* ZAP will be able to show different views of the site in the site's tree tab with the pages visible for each session.&lt;br /&gt;
* ZAP will be able to attack one session based on the URLs accessed in another session and report which appear to work. &lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
Users will be able to:&lt;br /&gt;
* specify exactly which alerts are included, by context, site or on an individual alert basis&lt;br /&gt;
* specify what information is included and how it is layed out&lt;br /&gt;
* specify a range of output formats, at least including HTML and PDF&lt;br /&gt;
* include details of what testing has been performed (automatically generated where possible)&lt;br /&gt;
* apply their own branding&lt;br /&gt;
* save report templates, and apply templates downloaded from the ZAP marketplace &lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML and the HTTP protocol specification. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Guifre Ruiz - OWASP ZAP Dev Team'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP: Advanced reporting===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
The reports that ZAP generates are in a fixed format which is not particularly useful or attractive. This development would provide the user with a fine grained control over the contents, layout and branding of the reports.&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
A new user interface for genrating reports which is easy to use and provides the user with a wide range of options.&lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML. Some knowledge of application security would be useful, but not essential.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Simon Bennetts - OWASP ZAP Project Leader'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OWASP ZAP - SAML 2.0 Support===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
SAML 2.0 is an XML-based federated single sign-on (FSSO) protocol that uses security tokens containing assertions to pass information about a principal (usually an end user) between a SAML authority, that is an identity provider, and a SAML consumer, that is a service provider. SAML 2.0 enables web-based authentication and authorization scenarios including cross-domain single sign-on (SSO). SAML specifications support many ways, called profiles and bindings, to generate and transport assertions between trusted entities The Web Browser SSO profile is of particular interest here since it enables web applications from 2 separate domains to leverage SSO easily by exchanging assertions via a web browser session.&lt;br /&gt;
&lt;br /&gt;
ZAP provides various mechanisms which allow HTTP requests and responses to be changed dynamically. This project will enhance those capabilities to be able to detect and fuzz various elements and attributes of a SAML Assertion.&lt;br /&gt;
&lt;br /&gt;
The scope of this project is limited to the following SAML bindings, profiles and protocols:&lt;br /&gt;
&lt;br /&gt;
Profiles :&lt;br /&gt;
* Web Browser SSO &lt;br /&gt;
&lt;br /&gt;
Bindings:&lt;br /&gt;
* HTTP POST&lt;br /&gt;
* HTTP Redirect &lt;br /&gt;
&lt;br /&gt;
Protocols:&lt;br /&gt;
* Authentication Request Protocol &lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
&lt;br /&gt;
This component would enable ZAP to:&lt;br /&gt;
* Detect SAML Assertions in HTTP requests and responses&lt;br /&gt;
* Decode SAML Assertions&lt;br /&gt;
* Fuzz various entities and attributes within a SAML assertion&lt;br /&gt;
* Re-encode the assertion and send it forward &lt;br /&gt;
The code should be:&lt;br /&gt;
* Clean and easy to follow&lt;br /&gt;
* Include a full set of unit tests&lt;br /&gt;
* Include good documentation&lt;br /&gt;
&lt;br /&gt;
Users would have a choice either to fuzz the attributes within an assertion or just add/remove arbitrary attribute (to check for XML and SAML Schema Conformance).&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
ZAP is written in Java, so a good knowledge of this language is recommended, as is knowledge of HTML and SAML 2.0 Protocol. Some knowledge of application security would be useful, but not essential. Understanding of SSO and Federated SSO is preferred.&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Prasad N. Shenoy'''&lt;br /&gt;
&lt;br /&gt;
===OWASP Security Research and Development Framework ===&lt;br /&gt;
&lt;br /&gt;
'''Brief explanation:'''&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation. &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF. &lt;br /&gt;
&lt;br /&gt;
Targeted Applications:&lt;br /&gt;
&lt;br /&gt;
* Packet Analysis Tools (Personal Firewalls, HIDS/HIPS, WAF, Network Analysis, Network Capture)&lt;br /&gt;
* Malware Analysis Tools (Static, Dynamic, Behavioral)&lt;br /&gt;
* Antivirus and Virus Removal Tools (Signature-based, Behavioral-based)&lt;br /&gt;
&lt;br /&gt;
'''Expected results:'''&lt;br /&gt;
 &lt;br /&gt;
* Implement XRAY Tool, Recursive Disassembler Tool (based on our disassembler)&lt;br /&gt;
* Improve Pokas Emulator and its disassembler engine&lt;br /&gt;
* Improve The Kernel-Mode Part and more beta-testing&lt;br /&gt;
* Integrate SRDF in python using SWIG&lt;br /&gt;
&lt;br /&gt;
'''Knowledge Prerequisite:'''&lt;br /&gt;
&lt;br /&gt;
We need variety of skills in different languages and platforms. We need a good knowledge in C++ in windows. We need a python developer for integrating SRDF in python. We need C++ developers have a good knowledge in Assembly (for working in disassembling part) and we need C++ developers have a knowledge in Kernel-Mode(for Kernel-Mode improvement and beta-testing)&lt;br /&gt;
&lt;br /&gt;
'''Mentor: Amr Thabet - OWASP Security Research and Development Framework Project Leader'''&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Projects/OWASP_Security_Research_and_Development_Framework/Releases/Current&amp;diff=141796</id>
		<title>Projects/OWASP Security Research and Development Framework/Releases/Current</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Projects/OWASP_Security_Research_and_Development_Framework/Releases/Current&amp;diff=141796"/>
				<updated>2013-01-04T01:12:47Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://code.google.com/p/srdf/downloads/detail?name=SRDF-v1.00.rar&amp;amp;can=2&amp;amp;q= SRDF-v1.00.rar]&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/srdf/downloads/detail?name=SRDF%20Reference%20Manual.pdf&amp;amp;can=2&amp;amp;q= SRDF Reference Manual v.100.pdf]&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/srdf/source/browse Browse Source Code]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Projects/OWASP_Security_Research_and_Development_Framework/Releases/Current&amp;diff=141795</id>
		<title>Projects/OWASP Security Research and Development Framework/Releases/Current</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Projects/OWASP_Security_Research_and_Development_Framework/Releases/Current&amp;diff=141795"/>
				<updated>2013-01-04T01:12:14Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://code.google.com/p/srdf/downloads/detail?name=SRDF-v1.00.rar&amp;amp;can=2&amp;amp;q= SRDF-v1.00.rar]&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/srdf/downloads/detail?name=SRDF%20Reference%20Manual.pdf&amp;amp;can=2&amp;amp;q= SRDF Reference Manual v.100.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also .. you can browse the source code:&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/srdf/source/browse Browse Code]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Projects/OWASP_Security_Research_and_Development_Framework/Releases/Current&amp;diff=141794</id>
		<title>Projects/OWASP Security Research and Development Framework/Releases/Current</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Projects/OWASP_Security_Research_and_Development_Framework/Releases/Current&amp;diff=141794"/>
				<updated>2013-01-04T01:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: Created page with &amp;quot;The First Release is: --------------------- [http://code.google.com/p/srdf/downloads/detail?name=SRDF-v1.00.rar&amp;amp;can=2&amp;amp;q= SRDF-v1.00.rar]  [http://code.google.com/p/srdf/downlo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The First Release is:&lt;br /&gt;
---------------------&lt;br /&gt;
[http://code.google.com/p/srdf/downloads/detail?name=SRDF-v1.00.rar&amp;amp;can=2&amp;amp;q= SRDF-v1.00.rar]&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/srdf/downloads/detail?name=SRDF%20Reference%20Manual.pdf&amp;amp;can=2&amp;amp;q= SRDF Reference Manual v.100.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also .. you can browse the source code:&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/srdf/source/browse Browse Code]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141065</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141065"/>
				<updated>2012-12-11T21:21:31Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Do you see writing a security tool in windows is hard?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a great idea but you can’t implement it?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a good malware analysis tool and you don’t need it to become a plugin in OllyDbg or IDA Pro?''&lt;br /&gt;
&lt;br /&gt;
''So, Security Research and Development Framework is for you.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Abstract: =&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The Features: =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
In User-Mode part, SRDF gives you many helpful tools&lt;br /&gt;
&lt;br /&gt;
=== The User Mode Features: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•  Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
•  x86 Emulator&lt;br /&gt;
&lt;br /&gt;
•  Debugger&lt;br /&gt;
&lt;br /&gt;
•  PE Analyzer&lt;br /&gt;
&lt;br /&gt;
•  Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
•  MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
•  API Hooker and Process Injection&lt;br /&gt;
&lt;br /&gt;
•  Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
In the Kernel-Mode part, it tries to make it easy to write your own filter device driver (not with WDF and callbacks) and gives an easy, object oriented (as much as we can) development framework with these features.&lt;br /&gt;
&lt;br /&gt;
=== The Kernel Mode Features: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•  Object-oriented and easy to use development framework&lt;br /&gt;
&lt;br /&gt;
•  Easy IRP dispatching mechanism&lt;br /&gt;
&lt;br /&gt;
•  SSDT Hooker&lt;br /&gt;
&lt;br /&gt;
•  Layered Devices Filtering&lt;br /&gt;
&lt;br /&gt;
•  TDI Firewall&lt;br /&gt;
&lt;br /&gt;
• File and Registry Manager&lt;br /&gt;
&lt;br /&gt;
•  Kernel Mode easy to use internet sockets&lt;br /&gt;
&lt;br /&gt;
•  Filesystem Filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Still the Kernel-Mode in progress and many features will be added in the near future.&lt;br /&gt;
&lt;br /&gt;
Let’s now see the design:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The User-Mode Part: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
&lt;br /&gt;
[[File:SRDF-Design.png]]&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure: ===&lt;br /&gt;
&lt;br /&gt;
This includes the essential elements of any development framework and it’s not related to security like: string, hash, list, serializer, database, registry manipulation, sockets and so on.&lt;br /&gt;
&lt;br /&gt;
We decided to create this part rather than depending on any development framework to make this framework independent from any other development frameworks and to be portable on any development framework&lt;br /&gt;
&lt;br /&gt;
==== Targets: ==== &lt;br /&gt;
&lt;br /&gt;
This is the beginning of the SRDF. This part is simply the Target from your security tool. What do you want to secure or secure from. And it includes Files (PE Files and others), Processes and Packets.&lt;br /&gt;
&lt;br /&gt;
==== Libraries: ====&lt;br /&gt;
&lt;br /&gt;
That’s the security tools that the SRDF support. And it’s divided into two namespaces: malware and network&lt;br /&gt;
&lt;br /&gt;
Malware includes the assemblers and disassemblers, emulator, debugger, API Hooker, Yara Scanner (wildcard scanner) file recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
Network includes User-Mode capturing and Firewall&lt;br /&gt;
&lt;br /&gt;
==== Core (The Application Interface): ====&lt;br /&gt;
&lt;br /&gt;
The Core includes the Logging system and the back-end Database.&lt;br /&gt;
&lt;br /&gt;
And also, it’s the Application Interface. Like cConsoleApp … and you can inherit from it to create your own User-Interface.&lt;br /&gt;
&lt;br /&gt;
We wish this part to be expanded to include more user interfaces and management systems&lt;br /&gt;
&lt;br /&gt;
== The Infrastructure: ==&lt;br /&gt;
 &lt;br /&gt;
=== Elements: ===&lt;br /&gt;
 &lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	String: it contains the string class, encoded string, hash and list&lt;br /&gt;
&lt;br /&gt;
2.	Code: it contains the NativeCode class and StoredProcedure … and they represents the shellcode and the code that stored in database. Like a virus detection routines inside an Antivirus&lt;br /&gt;
&lt;br /&gt;
3.	XML: and it contains the XML Encoder and the Serializer.&lt;br /&gt;
&lt;br /&gt;
=== Connections: ===&lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Internet: and it contains the internet communication protocols like sockets, HTTP Sockets and so on.&lt;br /&gt;
&lt;br /&gt;
2.	IPC: and it contains the Inter-Process Communication protocol&lt;br /&gt;
&lt;br /&gt;
3.	User-Mode to Kernel-Mode Communication: and it contains the communication protocol to communicate to the kernel-mode part of the SRDF&lt;br /&gt;
&lt;br /&gt;
=== Storage: === &lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Databases: and it contains the Database class and SQLiteDB and so on.&lt;br /&gt;
&lt;br /&gt;
2.	Files: and contains the File writing and logging classes&lt;br /&gt;
&lt;br /&gt;
3.	Registry: and it contains the registry read and write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Targets: == &lt;br /&gt;
&lt;br /&gt;
=== Files: ===&lt;br /&gt;
&lt;br /&gt;
This namespace describes the File Formats of The Files that could contain malicious code like: Executable Files (PE and ELF) and Document Files (PDF, Docx …) and so on.&lt;br /&gt;
&lt;br /&gt;
Until now it contains The PE Files parser&lt;br /&gt;
&lt;br /&gt;
=== Process: ===&lt;br /&gt;
&lt;br /&gt;
And it includes one class only named cProcess. And, this class describes a running process and parses its PEB and gives you the important information about the process and its memory map. And support injecting code and create a remote thread.&lt;br /&gt;
&lt;br /&gt;
=== Packets: === &lt;br /&gt;
&lt;br /&gt;
And it includes classes that describe an internet packets captured on the wire or generated for an attack.&lt;br /&gt;
&lt;br /&gt;
== Libraries: ==&lt;br /&gt;
&lt;br /&gt;
It contains two namespaces:&lt;br /&gt;
&lt;br /&gt;
=== Malware: === &lt;br /&gt;
&lt;br /&gt;
This namespace contains the scanning, Hooking and emulation libraries and contains Pokas Emulator wrapper class, Yara wrapper class (wildcard scanner), a debugger and contains a directory recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
And also, it contains the x86 assembler and disassembler (using Pokas Emulator Assembler) and allow to contain other assemblers and for other platforms.&lt;br /&gt;
&lt;br /&gt;
=== Network: === &lt;br /&gt;
&lt;br /&gt;
This namespace should contain the User-Mode Packet capture and firewall. And should contain the Winpcap Packet capturing and firewall system.&lt;br /&gt;
It also should include Application Layer parsers for FTP, HTTP, IRC and all known protocols and include Pcap Reader and writer.&lt;br /&gt;
&lt;br /&gt;
== The Core: ==&lt;br /&gt;
&lt;br /&gt;
And the core includes the cApp class that contains the back-end database and logging and the User-Interface such as cConsoleApp&lt;br /&gt;
&lt;br /&gt;
= The Kernel-Mode: =&lt;br /&gt;
&lt;br /&gt;
== The Kernel-Mode Goals: ==&lt;br /&gt;
&lt;br /&gt;
The Goals of the kernel-Mode development Framework are:&lt;br /&gt;
&lt;br /&gt;
1.	Easy to create a Kernel-Mode security tool&lt;br /&gt;
&lt;br /&gt;
2.	Support OOP using the native device driver programming APIs&lt;br /&gt;
&lt;br /&gt;
3.	Support detaching between  devices in IRPs&lt;br /&gt;
&lt;br /&gt;
4.	Easy to use files, registry and so on&lt;br /&gt;
&lt;br /&gt;
5.	Create a User-Mode/Kernel-Mode communication protocol &lt;br /&gt;
&lt;br /&gt;
6.	Designed only for hooking and security tools.&lt;br /&gt;
&lt;br /&gt;
The Kernel-Mode SRDF is designed on native device driver programming APIs and independent from the WDF (windows drivers foundation).&lt;br /&gt;
&lt;br /&gt;
Now we will describe the design of Framework and then we will go through the IRP dispatching mechanism in the KM-SRDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
&lt;br /&gt;
[[File:SRDF-Kernel-Design.png]]&lt;br /&gt;
&lt;br /&gt;
'''Driver:''' It’s the core management system that dispatching the IRPs to the devices and manage the devices.&lt;br /&gt;
&lt;br /&gt;
'''Device:''' it represents a device object and it contains the IRP dispatching between the control device object and the filtering device objects and includes attaching and detaching from a devices chain and all necessary functions for a device object&lt;br /&gt;
&lt;br /&gt;
'''SSDT Device:''' this class is inherited from device class and it’s created for SSDT Hooking&lt;br /&gt;
&lt;br /&gt;
'''Filter Device:''' this class created for attaching to a chain and filtering the inputs and the outputs of the IRPs&lt;br /&gt;
&lt;br /&gt;
'''File Filter Device:''' this class is inherited from Filter Device and it’s created for filtering the File system I/O request packets (IRPs) or monitoring file operations&lt;br /&gt;
&lt;br /&gt;
'''TDI Firewall:''' this class is inherited from Filter Device and it’s created for filtering the internet packets and connections and the processes that tries to connect to the internet&lt;br /&gt;
&lt;br /&gt;
'''DKOM Device:''' this class created to provide a generic way to work with opaque structures in windows without worrying about windows version and subversion (under construction)&lt;br /&gt;
&lt;br /&gt;
'''Process Device:''' this class provides a way to inject code or modify the memory of a process from the kernel-mode&lt;br /&gt;
&lt;br /&gt;
'''File/Registry Managers:''' they are tools created to support writing files and working with registry easily without worrying about IRQL&lt;br /&gt;
&lt;br /&gt;
'''Sockets:''' it’s an easy interface to connect to the internet using the TDI interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The IRP Dispatching: ==&lt;br /&gt;
 &lt;br /&gt;
[[File:SRDF-IRP-Dispatching.png]]&lt;br /&gt;
&lt;br /&gt;
•	The IRP dispatching begins from the entry.cpp and it dispatch the IRP to the Driver&lt;br /&gt;
&lt;br /&gt;
•	The driver checks the device object and dispatch the IRP to the related device&lt;br /&gt;
&lt;br /&gt;
•	The device sends the IRP to the User-Mode communication object to work with it as it’s sent to the control device object&lt;br /&gt;
&lt;br /&gt;
•	If it’s a FileFilter Device, the device dispatches the IRP based on the device object to the Attached Device Objects or to the control device object and the user-mode communication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Source Code: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/srdf/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Join Us: =&lt;br /&gt;
&lt;br /&gt;
''Do you get benefit from this framework and you need to give something back?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to add something to your CV?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to meet smart developers and join a big community?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to learn new things?''&lt;br /&gt;
&lt;br /&gt;
''Here is place … join the development community, meet new smart people and have fun.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Roadmap: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== 1.	 Antivirus: ==&lt;br /&gt;
&lt;br /&gt;
a.	XRAY Tool&lt;br /&gt;
&lt;br /&gt;
b.	Heuristics Analysis&lt;br /&gt;
&lt;br /&gt;
c.	Behavior-based Detection Tools.&lt;br /&gt;
&lt;br /&gt;
d.	More File Formats (PDF, apk, …)&lt;br /&gt;
&lt;br /&gt;
e.	OpenSBI and other Virus Classification File Formats&lt;br /&gt;
&lt;br /&gt;
f.	Sandboxing Mechanism.&lt;br /&gt;
&lt;br /&gt;
i.	Using API/ SSDT Hooking&lt;br /&gt;
&lt;br /&gt;
ii.	Emulation Based on Pokas Emulator.&lt;br /&gt;
&lt;br /&gt;
g.	Update System with Flexible Mechanism&lt;br /&gt;
&lt;br /&gt;
== 2.	Malware Analysis: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a.	SSDT Hooking for (Processes, Files, Registry and Sockets System Calls)&lt;br /&gt;
&lt;br /&gt;
b.	API Hooking (for the same as above)&lt;br /&gt;
&lt;br /&gt;
c.	Improvement in Pokas Emulator, Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
d.	Packet Capturing Tool and Emulated IRC and HTTP Connection (Server emulate the replies to the malware and log the data)&lt;br /&gt;
&lt;br /&gt;
e.	Recursive Disassembler&lt;br /&gt;
&lt;br /&gt;
f.	More APIs Emulation in Pokas x86 Emulator&lt;br /&gt;
&lt;br /&gt;
g.	Support more Instructions (All FPU instructions, All general purpose instructions and support mmx and 3dnow)&lt;br /&gt;
&lt;br /&gt;
h.	Support idb (IDA Pro Database) to read it and use its analysis &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3.	Unpackers: ==&lt;br /&gt;
&lt;br /&gt;
I’m aiming to create a database for all static unpacking codes for the mostly common unpackers and I hope it could be updated by the community&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 4.	Integrations: ==&lt;br /&gt;
&lt;br /&gt;
a.	Integration into IDA Pro Plugin Interface … and in (Debugger Menu)&lt;br /&gt;
&lt;br /&gt;
b.	OllyDbg Plugin Interface&lt;br /&gt;
&lt;br /&gt;
c.	Ollyscript Executer on cDebugger&lt;br /&gt;
&lt;br /&gt;
d.	Metasploit Integeration (in Meterpreter Post Exploitation&lt;br /&gt;
&lt;br /&gt;
e.	Python, Ruby, Delphi Header files and cTypes for SRDF.dll&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 5.	Network: ==&lt;br /&gt;
&lt;br /&gt;
a.	Support NDIS, kernel sockets and more new libraries&lt;br /&gt;
&lt;br /&gt;
b.	Process Analyzer in Kernel-Mode&lt;br /&gt;
&lt;br /&gt;
c.	Packet Capturing Library&lt;br /&gt;
&lt;br /&gt;
d.	More Debugging and Bug fixing&lt;br /&gt;
&lt;br /&gt;
== 6.	Others: ==&lt;br /&gt;
&lt;br /&gt;
a.	We need to build website.&lt;br /&gt;
&lt;br /&gt;
b.	We need activities for learning.&lt;br /&gt;
&lt;br /&gt;
c.	We need more documentations and tutorials&lt;br /&gt;
&lt;br /&gt;
d.	We need more helpful tools and applications based on SRDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion: =&lt;br /&gt;
&lt;br /&gt;
This development framework will support the anti-malware technologies to grow and support implementing researches in the malware field more to withstand against the new attacks nowadays&lt;br /&gt;
&lt;br /&gt;
The framework is based on community and we aim to create a big community for it. We didn’t finished the framework … we just begin&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_Security_Research_and_Development_Framework}} &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141064</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141064"/>
				<updated>2012-12-11T21:19:17Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Do you see writing a security tool in windows is hard?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a great idea but you can’t implement it?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a good malware analysis tool and you don’t need it to become a plugin in OllyDbg or IDA Pro?''&lt;br /&gt;
&lt;br /&gt;
''So, Security Research and Development Framework is for you.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Abstract: =&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The Features: =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
In User-Mode part, SRDF gives you many helpful tools&lt;br /&gt;
&lt;br /&gt;
=== The User Mode Features: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•  Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
•  x86 Emulator&lt;br /&gt;
&lt;br /&gt;
•  Debugger&lt;br /&gt;
&lt;br /&gt;
•  PE Analyzer&lt;br /&gt;
&lt;br /&gt;
•  Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
•  MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
•  API Hooker and Process Injection&lt;br /&gt;
&lt;br /&gt;
•  Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
In the Kernel-Mode part, it tries to make it easy to write your own filter device driver (not with WDF and callbacks) and gives an easy, object oriented (as much as we can) development framework with these features.&lt;br /&gt;
&lt;br /&gt;
=== The Kernel Mode Features: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•  Object-oriented and easy to use development framework&lt;br /&gt;
&lt;br /&gt;
•  Easy IRP dispatching mechanism&lt;br /&gt;
&lt;br /&gt;
•  SSDT Hooker&lt;br /&gt;
&lt;br /&gt;
•  Layered Devices Filtering&lt;br /&gt;
&lt;br /&gt;
•  TDI Firewall&lt;br /&gt;
&lt;br /&gt;
• File and Registry Manager&lt;br /&gt;
&lt;br /&gt;
•  Kernel Mode easy to use internet sockets&lt;br /&gt;
&lt;br /&gt;
•  Filesystem Filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Still the Kernel-Mode in progress and many features will be added in the near future.&lt;br /&gt;
&lt;br /&gt;
Let’s now see the design:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The User-Mode Part: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
&lt;br /&gt;
[[File:SRDF-Design.png]]&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure: ===&lt;br /&gt;
&lt;br /&gt;
This includes the essential elements of any development framework and it’s not related to security like: string, hash, list, serializer, database, registry manipulation, sockets and so on.&lt;br /&gt;
&lt;br /&gt;
We decided to create this part rather than depending on any development framework to make this framework independent from any other development frameworks and to be portable on any development framework&lt;br /&gt;
&lt;br /&gt;
==== Targets: ==== &lt;br /&gt;
&lt;br /&gt;
This is the beginning of the SRDF. This part is simply the Target from your security tool. What do you want to secure or secure from. And it includes Files (PE Files and others), Processes and Packets.&lt;br /&gt;
&lt;br /&gt;
==== Libraries: ====&lt;br /&gt;
&lt;br /&gt;
That’s the security tools that the SRDF support. And it’s divided into two namespaces: malware and network&lt;br /&gt;
&lt;br /&gt;
Malware includes the assemblers and disassemblers, emulator, debugger, API Hooker, Yara Scanner (wildcard scanner) file recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
Network includes User-Mode capturing and Firewall&lt;br /&gt;
&lt;br /&gt;
==== Core (The Application Interface): ====&lt;br /&gt;
&lt;br /&gt;
The Core includes the Logging system and the back-end Database.&lt;br /&gt;
&lt;br /&gt;
And also, it’s the Application Interface. Like cConsoleApp … and you can inherit from it to create your own User-Interface.&lt;br /&gt;
&lt;br /&gt;
We wish this part to be expanded to include more user interfaces and management systems&lt;br /&gt;
&lt;br /&gt;
== The Infrastructure: ==&lt;br /&gt;
 &lt;br /&gt;
=== Elements: ===&lt;br /&gt;
 &lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	String: it contains the string class, encoded string, hash and list&lt;br /&gt;
2.	Code: it contains the NativeCode class and StoredProcedure … and they represents the shellcode and the code that stored in database. Like a virus detection routines inside an Antivirus&lt;br /&gt;
3.	XML: and it contains the XML Encoder and the Serializer.&lt;br /&gt;
&lt;br /&gt;
=== Connections: ===&lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Internet: and it contains the internet communication protocols like sockets, HTTP Sockets and so on.&lt;br /&gt;
2.	IPC: and it contains the Inter-Process Communication protocol&lt;br /&gt;
3.	User-Mode to Kernel-Mode Communication: and it contains the communication protocol to communicate to the kernel-mode part of the SRDF&lt;br /&gt;
&lt;br /&gt;
=== Storage: === &lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Databases: and it contains the Database class and SQLiteDB and so on.&lt;br /&gt;
2.	Files: and contains the File writing and logging classes&lt;br /&gt;
3.	Registry: and it contains the registry read and write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Targets: == &lt;br /&gt;
&lt;br /&gt;
=== Files: ===&lt;br /&gt;
&lt;br /&gt;
This namespace describes the File Formats of The Files that could contain malicious code like: Executable Files (PE and ELF) and Document Files (PDF, Docx …) and so on.&lt;br /&gt;
&lt;br /&gt;
Until now it contains The PE Files parser&lt;br /&gt;
&lt;br /&gt;
=== Process: ===&lt;br /&gt;
&lt;br /&gt;
And it includes one class only named cProcess. And, this class describes a running process and parses its PEB and gives you the important information about the process and its memory map. And support injecting code and create a remote thread.&lt;br /&gt;
&lt;br /&gt;
=== Packets: === &lt;br /&gt;
&lt;br /&gt;
And it includes classes that describe an internet packets captured on the wire or generated for an attack.&lt;br /&gt;
&lt;br /&gt;
== Libraries: ==&lt;br /&gt;
&lt;br /&gt;
It contains two namespaces:&lt;br /&gt;
&lt;br /&gt;
=== Malware: === &lt;br /&gt;
&lt;br /&gt;
This namespace contains the scanning, Hooking and emulation libraries and contains Pokas Emulator wrapper class, Yara wrapper class (wildcard scanner), a debugger and contains a directory recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
And also, it contains the x86 assembler and disassembler (using Pokas Emulator Assembler) and allow to contain other assemblers and for other platforms.&lt;br /&gt;
&lt;br /&gt;
=== Network: === &lt;br /&gt;
&lt;br /&gt;
This namespace should contain the User-Mode Packet capture and firewall. And should contain the Winpcap Packet capturing and firewall system.&lt;br /&gt;
It also should include Application Layer parsers for FTP, HTTP, IRC and all known protocols and include Pcap Reader and writer.&lt;br /&gt;
&lt;br /&gt;
== The Core: ==&lt;br /&gt;
&lt;br /&gt;
And the core includes the cApp class that contains the back-end database and logging and the User-Interface such as cConsoleApp&lt;br /&gt;
&lt;br /&gt;
= The Kernel-Mode: =&lt;br /&gt;
&lt;br /&gt;
== The Kernel-Mode Goals: ==&lt;br /&gt;
&lt;br /&gt;
The Goals of the kernel-Mode development Framework are:&lt;br /&gt;
&lt;br /&gt;
1.	Easy to create a Kernel-Mode security tool&lt;br /&gt;
&lt;br /&gt;
2.	Support OOP using the native device driver programming APIs&lt;br /&gt;
&lt;br /&gt;
3.	Support detaching between  devices in IRPs&lt;br /&gt;
&lt;br /&gt;
4.	Easy to use files, registry and so on&lt;br /&gt;
&lt;br /&gt;
5.	Create a User-Mode/Kernel-Mode communication protocol &lt;br /&gt;
&lt;br /&gt;
6.	Designed only for hooking and security tools.&lt;br /&gt;
&lt;br /&gt;
The Kernel-Mode SRDF is designed on native device driver programming APIs and independent from the WDF (windows drivers foundation).&lt;br /&gt;
&lt;br /&gt;
Now we will describe the design of Framework and then we will go through the IRP dispatching mechanism in the KM-SRDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
&lt;br /&gt;
[[File:SRDF-Kernel-Design.png]]&lt;br /&gt;
&lt;br /&gt;
'''Driver:''' It’s the core management system that dispatching the IRPs to the devices and manage the devices.&lt;br /&gt;
&lt;br /&gt;
'''Device:''' it represents a device object and it contains the IRP dispatching between the control device object and the filtering device objects and includes attaching and detaching from a devices chain and all necessary functions for a device object&lt;br /&gt;
&lt;br /&gt;
'''SSDT Device:''' this class is inherited from device class and it’s created for SSDT Hooking&lt;br /&gt;
&lt;br /&gt;
'''Filter Device:''' this class created for attaching to a chain and filtering the inputs and the outputs of the IRPs&lt;br /&gt;
&lt;br /&gt;
'''File Filter Device:''' this class is inherited from Filter Device and it’s created for filtering the File system I/O request packets (IRPs) or monitoring file operations&lt;br /&gt;
&lt;br /&gt;
'''TDI Firewall:''' this class is inherited from Filter Device and it’s created for filtering the internet packets and connections and the processes that tries to connect to the internet&lt;br /&gt;
&lt;br /&gt;
'''DKOM Device:''' this class created to provide a generic way to work with opaque structures in windows without worrying about windows version and subversion (under construction)&lt;br /&gt;
&lt;br /&gt;
'''Process Device:''' this class provides a way to inject code or modify the memory of a process from the kernel-mode&lt;br /&gt;
&lt;br /&gt;
'''File/Registry Managers:''' they are tools created to support writing files and working with registry easily without worrying about IRQL&lt;br /&gt;
&lt;br /&gt;
'''Sockets:''' it’s an easy interface to connect to the internet using the TDI interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The IRP Dispatching: ==&lt;br /&gt;
 &lt;br /&gt;
[[File:SRDF-IRP-Dispatching.png]]&lt;br /&gt;
&lt;br /&gt;
•	The IRP dispatching begins from the entry.cpp and it dispatch the IRP to the Driver&lt;br /&gt;
&lt;br /&gt;
•	The driver checks the device object and dispatch the IRP to the related device&lt;br /&gt;
&lt;br /&gt;
•	The device sends the IRP to the User-Mode communication object to work with it as it’s sent to the control device object&lt;br /&gt;
&lt;br /&gt;
•	If it’s a FileFilter Device, the device dispatches the IRP based on the device object to the Attached Device Objects or to the control device object and the user-mode communication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Source Code: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/srdf/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Join Us: =&lt;br /&gt;
&lt;br /&gt;
''Do you get benefit from this framework and you need to give something back?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to add something to your CV?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to meet smart developers and join a big community?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to learn new things?''&lt;br /&gt;
&lt;br /&gt;
''Here is place … join the development community, meet new smart people and have fun.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Roadmap: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== 1.	 Antivirus: ==&lt;br /&gt;
&lt;br /&gt;
a.	XRAY Tool&lt;br /&gt;
&lt;br /&gt;
b.	Heuristics Analysis&lt;br /&gt;
&lt;br /&gt;
c.	Behavior-based Detection Tools.&lt;br /&gt;
&lt;br /&gt;
d.	More File Formats (PDF, apk, …)&lt;br /&gt;
&lt;br /&gt;
e.	OpenSBI and other Virus Classification File Formats&lt;br /&gt;
&lt;br /&gt;
f.	Sandboxing Mechanism.&lt;br /&gt;
&lt;br /&gt;
i.	Using API/ SSDT Hooking&lt;br /&gt;
&lt;br /&gt;
ii.	Emulation Based on Pokas Emulator.&lt;br /&gt;
&lt;br /&gt;
g.	Update System with Flexible Mechanism&lt;br /&gt;
&lt;br /&gt;
== 2.	Malware Analysis: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a.	SSDT Hooking for (Processes, Files, Registry and Sockets System Calls)&lt;br /&gt;
&lt;br /&gt;
b.	API Hooking (for the same as above)&lt;br /&gt;
&lt;br /&gt;
c.	Improvement in Pokas Emulator, Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
d.	Packet Capturing Tool and Emulated IRC and HTTP Connection (Server emulate the replies to the malware and log the data)&lt;br /&gt;
&lt;br /&gt;
e.	Recursive Disassembler&lt;br /&gt;
&lt;br /&gt;
f.	More APIs Emulation in Pokas x86 Emulator&lt;br /&gt;
&lt;br /&gt;
g.	Support more Instructions (All FPU instructions, All general purpose instructions and support mmx and 3dnow)&lt;br /&gt;
&lt;br /&gt;
h.	Support idb (IDA Pro Database) to read it and use its analysis &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3.	Unpackers: ==&lt;br /&gt;
&lt;br /&gt;
I’m aiming to create a database for all static unpacking codes for the mostly common unpackers and I hope it could be updated by the community&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 4.	Integrations: ==&lt;br /&gt;
&lt;br /&gt;
a.	Integration into IDA Pro Plugin Interface … and in (Debugger Menu)&lt;br /&gt;
&lt;br /&gt;
b.	OllyDbg Plugin Interface&lt;br /&gt;
&lt;br /&gt;
c.	Ollyscript Executer on cDebugger&lt;br /&gt;
&lt;br /&gt;
d.	Metasploit Integeration (in Meterpreter Post Exploitation&lt;br /&gt;
&lt;br /&gt;
e.	Python, Ruby, Delphi Header files and cTypes for SRDF.dll&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 5.	Network: ==&lt;br /&gt;
&lt;br /&gt;
a.	Support NDIS, kernel sockets and more new libraries&lt;br /&gt;
&lt;br /&gt;
b.	Process Analyzer in Kernel-Mode&lt;br /&gt;
&lt;br /&gt;
c.	Packet Capturing Library&lt;br /&gt;
&lt;br /&gt;
d.	More Debugging and Bug fixing&lt;br /&gt;
&lt;br /&gt;
== 6.	Others: ==&lt;br /&gt;
&lt;br /&gt;
a.	We need to build website.&lt;br /&gt;
&lt;br /&gt;
b.	We need activities for learning.&lt;br /&gt;
&lt;br /&gt;
c.	We need more documentations and tutorials&lt;br /&gt;
&lt;br /&gt;
d.	We need more helpful tools and applications based on SRDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion: =&lt;br /&gt;
&lt;br /&gt;
This development framework will support the anti-malware technologies to grow and support implementing researches in the malware field more to withstand against the new attacks nowadays&lt;br /&gt;
&lt;br /&gt;
The framework is based on community and we aim to create a big community for it. We didn’t finished the framework … we just begin&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_Security_Research_and_Development_Framework}} &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Kernel-Design.png&amp;diff=141063</id>
		<title>File:SRDF-Kernel-Design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Kernel-Design.png&amp;diff=141063"/>
				<updated>2012-12-11T21:16:35Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-IRP-Dispatching.png&amp;diff=141062</id>
		<title>File:SRDF-IRP-Dispatching.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-IRP-Dispatching.png&amp;diff=141062"/>
				<updated>2012-12-11T21:16:22Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=141061</id>
		<title>File:SRDF-Design.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:SRDF-Design.png&amp;diff=141061"/>
				<updated>2012-12-11T21:15:51Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: The User-Mode Design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User-Mode Design&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141060</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141060"/>
				<updated>2012-12-11T21:09:45Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Do you see writing a security tool in windows is hard?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a great idea but you can’t implement it?''&lt;br /&gt;
&lt;br /&gt;
''Do you have a good malware analysis tool and you don’t need it to become a plugin in OllyDbg or IDA Pro?''&lt;br /&gt;
&lt;br /&gt;
''So, Security Research and Development Framework is for you.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Abstract: =&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The Features: =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
In User-Mode part, SRDF gives you many helpful tools&lt;br /&gt;
&lt;br /&gt;
=== The User Mode Features: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•  Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
•  x86 Emulator&lt;br /&gt;
&lt;br /&gt;
•  Debugger&lt;br /&gt;
&lt;br /&gt;
•  PE Analyzer&lt;br /&gt;
&lt;br /&gt;
•  Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
•  MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
•  API Hooker and Process Injection&lt;br /&gt;
&lt;br /&gt;
•  Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
•  And many more&lt;br /&gt;
&lt;br /&gt;
In the Kernel-Mode part, it tries to make it easy to write your own filter device driver (not with WDF and callbacks) and gives an easy, object oriented (as much as we can) development framework with these features.&lt;br /&gt;
&lt;br /&gt;
=== The Kernel Mode Features: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•  Object-oriented and easy to use development framework&lt;br /&gt;
&lt;br /&gt;
•  Easy IRP dispatching mechanism&lt;br /&gt;
&lt;br /&gt;
•  SSDT Hooker&lt;br /&gt;
&lt;br /&gt;
•  Layered Devices Filtering&lt;br /&gt;
&lt;br /&gt;
•  TDI Firewall&lt;br /&gt;
&lt;br /&gt;
• File and Registry Manager&lt;br /&gt;
&lt;br /&gt;
•  Kernel Mode easy to use internet sockets&lt;br /&gt;
&lt;br /&gt;
•  Filesystem Filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Still the Kernel-Mode in progress and many features will be added in the near future.&lt;br /&gt;
&lt;br /&gt;
Let’s now see the design:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The User-Mode Part: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
 &lt;br /&gt;
=== Infrastructure: ===&lt;br /&gt;
&lt;br /&gt;
This includes the essential elements of any development framework and it’s not related to security like: string, hash, list, serializer, database, registry manipulation, sockets and so on.&lt;br /&gt;
&lt;br /&gt;
We decided to create this part rather than depending on any development framework to make this framework independent from any other development frameworks and to be portable on any development framework&lt;br /&gt;
&lt;br /&gt;
==== Targets: ==== &lt;br /&gt;
&lt;br /&gt;
This is the beginning of the SRDF. This part is simply the Target from your security tool. What do you want to secure or secure from. And it includes Files (PE Files and others), Processes and Packets.&lt;br /&gt;
&lt;br /&gt;
==== Libraries: ====&lt;br /&gt;
&lt;br /&gt;
That’s the security tools that the SRDF support. And it’s divided into two namespaces: malware and network&lt;br /&gt;
&lt;br /&gt;
Malware includes the assemblers and disassemblers, emulator, debugger, API Hooker, Yara Scanner (wildcard scanner) file recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
Network includes User-Mode capturing and Firewall&lt;br /&gt;
&lt;br /&gt;
==== Core (The Application Interface): ====&lt;br /&gt;
&lt;br /&gt;
The Core includes the Logging system and the back-end Database.&lt;br /&gt;
&lt;br /&gt;
And also, it’s the Application Interface. Like cConsoleApp … and you can inherit from it to create your own User-Interface.&lt;br /&gt;
&lt;br /&gt;
We wish this part to be expanded to include more user interfaces and management systems&lt;br /&gt;
&lt;br /&gt;
== The Infrastructure: ==&lt;br /&gt;
 &lt;br /&gt;
=== Elements: ===&lt;br /&gt;
 &lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	String: it contains the string class, encoded string, hash and list&lt;br /&gt;
2.	Code: it contains the NativeCode class and StoredProcedure … and they represents the shellcode and the code that stored in database. Like a virus detection routines inside an Antivirus&lt;br /&gt;
3.	XML: and it contains the XML Encoder and the Serializer.&lt;br /&gt;
&lt;br /&gt;
=== Connections: ===&lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Internet: and it contains the internet communication protocols like sockets, HTTP Sockets and so on.&lt;br /&gt;
2.	IPC: and it contains the Inter-Process Communication protocol&lt;br /&gt;
3.	User-Mode to Kernel-Mode Communication: and it contains the communication protocol to communicate to the kernel-mode part of the SRDF&lt;br /&gt;
&lt;br /&gt;
=== Storage: === &lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Databases: and it contains the Database class and SQLiteDB and so on.&lt;br /&gt;
2.	Files: and contains the File writing and logging classes&lt;br /&gt;
3.	Registry: and it contains the registry read and write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Targets: == &lt;br /&gt;
&lt;br /&gt;
=== Files: ===&lt;br /&gt;
&lt;br /&gt;
This namespace describes the File Formats of The Files that could contain malicious code like: Executable Files (PE and ELF) and Document Files (PDF, Docx …) and so on.&lt;br /&gt;
&lt;br /&gt;
Until now it contains The PE Files parser&lt;br /&gt;
&lt;br /&gt;
=== Process: ===&lt;br /&gt;
&lt;br /&gt;
And it includes one class only named cProcess. And, this class describes a running process and parses its PEB and gives you the important information about the process and its memory map. And support injecting code and create a remote thread.&lt;br /&gt;
&lt;br /&gt;
=== Packets: === &lt;br /&gt;
&lt;br /&gt;
And it includes classes that describe an internet packets captured on the wire or generated for an attack.&lt;br /&gt;
&lt;br /&gt;
== Libraries: ==&lt;br /&gt;
&lt;br /&gt;
It contains two namespaces:&lt;br /&gt;
&lt;br /&gt;
=== Malware: === &lt;br /&gt;
&lt;br /&gt;
This namespace contains the scanning, Hooking and emulation libraries and contains Pokas Emulator wrapper class, Yara wrapper class (wildcard scanner), a debugger and contains a directory recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
And also, it contains the x86 assembler and disassembler (using Pokas Emulator Assembler) and allow to contain other assemblers and for other platforms.&lt;br /&gt;
&lt;br /&gt;
=== Network: === &lt;br /&gt;
&lt;br /&gt;
This namespace should contain the User-Mode Packet capture and firewall. And should contain the Winpcap Packet capturing and firewall system.&lt;br /&gt;
It also should include Application Layer parsers for FTP, HTTP, IRC and all known protocols and include Pcap Reader and writer.&lt;br /&gt;
&lt;br /&gt;
== The Core: ==&lt;br /&gt;
&lt;br /&gt;
And the core includes the cApp class that contains the back-end database and logging and the User-Interface such as cConsoleApp&lt;br /&gt;
&lt;br /&gt;
= The Kernel-Mode: =&lt;br /&gt;
&lt;br /&gt;
== The Kernel-Mode Goals: ==&lt;br /&gt;
&lt;br /&gt;
The Goals of the kernel-Mode development Framework are:&lt;br /&gt;
&lt;br /&gt;
1.	Easy to create a Kernel-Mode security tool&lt;br /&gt;
&lt;br /&gt;
2.	Support OOP using the native device driver programming APIs&lt;br /&gt;
&lt;br /&gt;
3.	Support detaching between  devices in IRPs&lt;br /&gt;
&lt;br /&gt;
4.	Easy to use files, registry and so on&lt;br /&gt;
&lt;br /&gt;
5.	Create a User-Mode/Kernel-Mode communication protocol &lt;br /&gt;
&lt;br /&gt;
6.	Designed only for hooking and security tools.&lt;br /&gt;
&lt;br /&gt;
The Kernel-Mode SRDF is designed on native device driver programming APIs and independent from the WDF (windows drivers foundation).&lt;br /&gt;
&lt;br /&gt;
Now we will describe the design of Framework and then we will go through the IRP dispatching mechanism in the KM-SRDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
'''Driver:''' It’s the core management system that dispatching the IRPs to the devices and manage the devices.&lt;br /&gt;
&lt;br /&gt;
'''Device:''' it represents a device object and it contains the IRP dispatching between the control device object and the filtering device objects and includes attaching and detaching from a devices chain and all necessary functions for a device object&lt;br /&gt;
&lt;br /&gt;
'''SSDT Device:''' this class is inherited from device class and it’s created for SSDT Hooking&lt;br /&gt;
&lt;br /&gt;
'''Filter Device:''' this class created for attaching to a chain and filtering the inputs and the outputs of the IRPs&lt;br /&gt;
&lt;br /&gt;
'''File Filter Device:''' this class is inherited from Filter Device and it’s created for filtering the File system I/O request packets (IRPs) or monitoring file operations&lt;br /&gt;
&lt;br /&gt;
'''TDI Firewall:''' this class is inherited from Filter Device and it’s created for filtering the internet packets and connections and the processes that tries to connect to the internet&lt;br /&gt;
&lt;br /&gt;
'''DKOM Device:''' this class created to provide a generic way to work with opaque structures in windows without worrying about windows version and subversion (under construction)&lt;br /&gt;
&lt;br /&gt;
'''Process Device:''' this class provides a way to inject code or modify the memory of a process from the kernel-mode&lt;br /&gt;
&lt;br /&gt;
'''File/Registry Managers:''' they are tools created to support writing files and working with registry easily without worrying about IRQL&lt;br /&gt;
&lt;br /&gt;
'''Sockets:''' it’s an easy interface to connect to the internet using the TDI interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The IRP Dispatching: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
•	The IRP dispatching begins from the entry.cpp and it dispatch the IRP to the Driver&lt;br /&gt;
&lt;br /&gt;
•	The driver checks the device object and dispatch the IRP to the related device&lt;br /&gt;
&lt;br /&gt;
•	The device sends the IRP to the User-Mode communication object to work with it as it’s sent to the control device object&lt;br /&gt;
&lt;br /&gt;
•	If it’s a FileFilter Device, the device dispatches the IRP based on the device object to the Attached Device Objects or to the control device object and the user-mode communication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Source Code: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/srdf/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Join Us: =&lt;br /&gt;
&lt;br /&gt;
''Do you get benefit from this framework and you need to give something back?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to add something to your CV?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to meet smart developers and join a big community?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to learn new things?''&lt;br /&gt;
&lt;br /&gt;
''Here is place … join the development community, meet new smart people and have fun.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Roadmap: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== 1.	 Antivirus: ==&lt;br /&gt;
&lt;br /&gt;
a.	XRAY Tool&lt;br /&gt;
&lt;br /&gt;
b.	Heuristics Analysis&lt;br /&gt;
&lt;br /&gt;
c.	Behavior-based Detection Tools.&lt;br /&gt;
&lt;br /&gt;
d.	More File Formats (PDF, apk, …)&lt;br /&gt;
&lt;br /&gt;
e.	OpenSBI and other Virus Classification File Formats&lt;br /&gt;
&lt;br /&gt;
f.	Sandboxing Mechanism.&lt;br /&gt;
&lt;br /&gt;
i.	Using API/ SSDT Hooking&lt;br /&gt;
&lt;br /&gt;
ii.	Emulation Based on Pokas Emulator.&lt;br /&gt;
&lt;br /&gt;
g.	Update System with Flexible Mechanism&lt;br /&gt;
&lt;br /&gt;
== 2.	Malware Analysis: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a.	SSDT Hooking for (Processes, Files, Registry and Sockets System Calls)&lt;br /&gt;
&lt;br /&gt;
b.	API Hooking (for the same as above)&lt;br /&gt;
&lt;br /&gt;
c.	Improvement in Pokas Emulator, Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
d.	Packet Capturing Tool and Emulated IRC and HTTP Connection (Server emulate the replies to the malware and log the data)&lt;br /&gt;
&lt;br /&gt;
e.	Recursive Disassembler&lt;br /&gt;
&lt;br /&gt;
f.	More APIs Emulation in Pokas x86 Emulator&lt;br /&gt;
&lt;br /&gt;
g.	Support more Instructions (All FPU instructions, All general purpose instructions and support mmx and 3dnow)&lt;br /&gt;
&lt;br /&gt;
h.	Support idb (IDA Pro Database) to read it and use its analysis &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3.	Unpackers: ==&lt;br /&gt;
&lt;br /&gt;
I’m aiming to create a database for all static unpacking codes for the mostly common unpackers and I hope it could be updated by the community&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 4.	Integrations: ==&lt;br /&gt;
&lt;br /&gt;
a.	Integration into IDA Pro Plugin Interface … and in (Debugger Menu)&lt;br /&gt;
&lt;br /&gt;
b.	OllyDbg Plugin Interface&lt;br /&gt;
&lt;br /&gt;
c.	Ollyscript Executer on cDebugger&lt;br /&gt;
&lt;br /&gt;
d.	Metasploit Integeration (in Meterpreter Post Exploitation&lt;br /&gt;
&lt;br /&gt;
e.	Python, Ruby, Delphi Header files and cTypes for SRDF.dll&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 5.	Network: ==&lt;br /&gt;
&lt;br /&gt;
a.	Support NDIS, kernel sockets and more new libraries&lt;br /&gt;
&lt;br /&gt;
b.	Process Analyzer in Kernel-Mode&lt;br /&gt;
&lt;br /&gt;
c.	Packet Capturing Library&lt;br /&gt;
&lt;br /&gt;
d.	More Debugging and Bug fixing&lt;br /&gt;
&lt;br /&gt;
== 6.	Others: ==&lt;br /&gt;
&lt;br /&gt;
a.	We need to build website.&lt;br /&gt;
&lt;br /&gt;
b.	We need activities for learning.&lt;br /&gt;
&lt;br /&gt;
c.	We need more documentations and tutorials&lt;br /&gt;
&lt;br /&gt;
d.	We need more helpful tools and applications based on SRDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion: =&lt;br /&gt;
&lt;br /&gt;
This development framework will support the anti-malware technologies to grow and support implementing researches in the malware field more to withstand against the new attacks nowadays&lt;br /&gt;
&lt;br /&gt;
The framework is based on community and we aim to create a big community for it. We didn’t finished the framework … we just begin&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_Security_Research_and_Development_Framework}} &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141059</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141059"/>
				<updated>2012-12-11T21:02:36Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Do you see writing a security tool in windows is hard?&lt;br /&gt;
&lt;br /&gt;
Do you have a great idea but you can’t implement it?&lt;br /&gt;
&lt;br /&gt;
Do you have a good malware analysis tool and you don’t need it to become a plugin in OllyDbg or IDA Pro?&lt;br /&gt;
&lt;br /&gt;
So, Security Research and Development Framework is for you.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Abstract: =&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The Features: =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
In User-Mode part, SRDF gives you many helpful tools … and they are:&lt;br /&gt;
&lt;br /&gt;
• Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
• x86 Emulator&lt;br /&gt;
&lt;br /&gt;
• Debugger&lt;br /&gt;
&lt;br /&gt;
• PE Analyzer&lt;br /&gt;
&lt;br /&gt;
• Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
• MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
• API Hooker and Process Injection&lt;br /&gt;
&lt;br /&gt;
• Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
• And many more&lt;br /&gt;
&lt;br /&gt;
In the Kernel-Mode part, it tries to make it easy to write your own filter device driver (not with WDF and callbacks) and gives an easy, object oriented (as much as we can) development framework with these features:&lt;br /&gt;
&lt;br /&gt;
• Object-oriented and easy to use development framework&lt;br /&gt;
&lt;br /&gt;
• Easy IRP dispatching mechanism&lt;br /&gt;
&lt;br /&gt;
• SSDT Hooker&lt;br /&gt;
&lt;br /&gt;
• Layered Devices Filtering&lt;br /&gt;
&lt;br /&gt;
• TDI Firewall&lt;br /&gt;
&lt;br /&gt;
• File and Registry Manager&lt;br /&gt;
&lt;br /&gt;
• Kernel Mode easy to use internet sockets&lt;br /&gt;
&lt;br /&gt;
• Filesystem Filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Still the Kernel-Mode in progress and many features will be added in the near future.&lt;br /&gt;
&lt;br /&gt;
Let’s now see the design:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The User-Mode Part: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
 &lt;br /&gt;
=== Infrastructure: ===&lt;br /&gt;
&lt;br /&gt;
This includes the essential elements of any development framework and it’s not related to security like: string, hash, list, serializer, database, registry manipulation, sockets and so on.&lt;br /&gt;
&lt;br /&gt;
We decided to create this part rather than depending on any development framework to make this framework independent from any other development frameworks and to be portable on any development framework&lt;br /&gt;
&lt;br /&gt;
==== Targets: ==== &lt;br /&gt;
&lt;br /&gt;
This is the beginning of the SRDF. This part is simply the Target from your security tool. What do you want to secure or secure from. And it includes Files (PE Files and others), Processes and Packets.&lt;br /&gt;
&lt;br /&gt;
==== Libraries: ====&lt;br /&gt;
&lt;br /&gt;
That’s the security tools that the SRDF support. And it’s divided into two namespaces: malware and network&lt;br /&gt;
&lt;br /&gt;
Malware includes the assemblers and disassemblers, emulator, debugger, API Hooker, Yara Scanner (wildcard scanner) file recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
Network includes User-Mode capturing and Firewall&lt;br /&gt;
&lt;br /&gt;
==== Core (The Application Interface): ====&lt;br /&gt;
&lt;br /&gt;
The Core includes the Logging system and the back-end Database.&lt;br /&gt;
&lt;br /&gt;
And also, it’s the Application Interface. Like cConsoleApp … and you can inherit from it to create your own User-Interface.&lt;br /&gt;
&lt;br /&gt;
We wish this part to be expanded to include more user interfaces and management systems&lt;br /&gt;
&lt;br /&gt;
== The Infrastructure: ==&lt;br /&gt;
 &lt;br /&gt;
=== Elements: ===&lt;br /&gt;
 &lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	String: it contains the string class, encoded string, hash and list&lt;br /&gt;
2.	Code: it contains the NativeCode class and StoredProcedure … and they represents the shellcode and the code that stored in database. Like a virus detection routines inside an Antivirus&lt;br /&gt;
3.	XML: and it contains the XML Encoder and the Serializer.&lt;br /&gt;
&lt;br /&gt;
=== Connections: ===&lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Internet: and it contains the internet communication protocols like sockets, HTTP Sockets and so on.&lt;br /&gt;
2.	IPC: and it contains the Inter-Process Communication protocol&lt;br /&gt;
3.	User-Mode to Kernel-Mode Communication: and it contains the communication protocol to communicate to the kernel-mode part of the SRDF&lt;br /&gt;
&lt;br /&gt;
=== Storage: === &lt;br /&gt;
&lt;br /&gt;
It’s divided into three namespaces:&lt;br /&gt;
&lt;br /&gt;
1.	Databases: and it contains the Database class and SQLiteDB and so on.&lt;br /&gt;
2.	Files: and contains the File writing and logging classes&lt;br /&gt;
3.	Registry: and it contains the registry read and write&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Targets: === &lt;br /&gt;
&lt;br /&gt;
==== Files: ====&lt;br /&gt;
&lt;br /&gt;
This namespace describes the File Formats of The Files that could contain malicious code like: Executable Files (PE and ELF) and Document Files (PDF, Docx …) and so on.&lt;br /&gt;
&lt;br /&gt;
Until now it contains The PE Files parser&lt;br /&gt;
&lt;br /&gt;
==== Process: ==== &lt;br /&gt;
&lt;br /&gt;
And it includes one class only named cProcess. And, this class describes a running process and parses its PEB and gives you the important information about the process and its memory map. And support injecting code and create a remote thread.&lt;br /&gt;
&lt;br /&gt;
==== Packets: ==== &lt;br /&gt;
&lt;br /&gt;
And it includes classes that describe an internet packets captured on the wire or generated for an attack.&lt;br /&gt;
&lt;br /&gt;
=== Libraries: ===&lt;br /&gt;
&lt;br /&gt;
It contains two namespaces:&lt;br /&gt;
&lt;br /&gt;
==== Malware: ==== &lt;br /&gt;
&lt;br /&gt;
This namespace contains the scanning, Hooking and emulation libraries and contains Pokas Emulator wrapper class, Yara wrapper class (wildcard scanner), a debugger and contains a directory recursive scanner and other tools&lt;br /&gt;
&lt;br /&gt;
And also, it contains the x86 assembler and disassembler (using Pokas Emulator Assembler) and allow to contain other assemblers and for other platforms.&lt;br /&gt;
&lt;br /&gt;
==== Network: ==== &lt;br /&gt;
&lt;br /&gt;
This namespace should contain the User-Mode Packet capture and firewall. And should contain the Winpcap Packet capturing and firewall system.&lt;br /&gt;
It also should include Application Layer parsers for FTP, HTTP, IRC and all known protocols and include Pcap Reader and writer.&lt;br /&gt;
&lt;br /&gt;
=== The Core: ===&lt;br /&gt;
&lt;br /&gt;
And the core includes the cApp class that contains the back-end database and logging and the User-Interface such as cConsoleApp&lt;br /&gt;
&lt;br /&gt;
= The Kernel-Mode: =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Kernel-Mode Goals: ==&lt;br /&gt;
&lt;br /&gt;
The Goals of the kernel-Mode development Framework are:&lt;br /&gt;
&lt;br /&gt;
1.	Easy to create a Kernel-Mode security tool&lt;br /&gt;
2.	Support OOP using the native device driver programming APIs&lt;br /&gt;
3.	Support detaching between  devices in IRPs&lt;br /&gt;
4.	Easy to use files, registry and so on&lt;br /&gt;
5.	Create a User-Mode/Kernel-Mode communication protocol &lt;br /&gt;
6.	Designed only for hooking and security tools.&lt;br /&gt;
&lt;br /&gt;
The Kernel-Mode SRDF is designed on native device driver programming APIs and independent from the WDF (windows drivers foundation).&lt;br /&gt;
&lt;br /&gt;
Now we will describe the design of Framework and then we will go through the IRP dispatching mechanism in the KM-SRDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Design: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
'''Driver:''' It’s the core management system that dispatching the IRPs to the devices and manage the devices.&lt;br /&gt;
&lt;br /&gt;
'''Device:''' it represents a device object and it contains the IRP dispatching between the control device object and the filtering device objects and includes attaching and detaching from a devices chain and all necessary functions for a device object&lt;br /&gt;
&lt;br /&gt;
'''SSDT Device:''' this class is inherited from device class and it’s created for SSDT Hooking&lt;br /&gt;
&lt;br /&gt;
'''Filter Device:''' this class created for attaching to a chain and filtering the inputs and the outputs of the IRPs&lt;br /&gt;
&lt;br /&gt;
'''File Filter Device:''' this class is inherited from Filter Device and it’s created for filtering the File system I/O request packets (IRPs) or monitoring file operations&lt;br /&gt;
&lt;br /&gt;
'''TDI Firewall:''' this class is inherited from Filter Device and it’s created for filtering the internet packets and connections and the processes that tries to connect to the internet&lt;br /&gt;
&lt;br /&gt;
'''DKOM Device:''' this class created to provide a generic way to work with opaque structures in windows without worrying about windows version and subversion (under construction)&lt;br /&gt;
&lt;br /&gt;
'''Process Device:''' this class provides a way to inject code or modify the memory of a process from the kernel-mode&lt;br /&gt;
&lt;br /&gt;
'''File/Registry Managers:''' they are tools created to support writing files and working with registry easily without worrying about IRQL&lt;br /&gt;
&lt;br /&gt;
'''Sockets:''' it’s an easy interface to connect to the internet using the TDI interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The IRP Dispatching: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
•	The IRP dispatching begins from the entry.cpp and it dispatch the IRP to the Driver&lt;br /&gt;
•	The driver checks the device object and dispatch the IRP to the related device&lt;br /&gt;
•	The device sends the IRP to the User-Mode communication object to work with it as it’s sent to the control device object&lt;br /&gt;
•	If it’s a FileFilter Device, the device dispatches the IRP based on the device object to the Attached Device Objects or to the control device object and the user-mode communication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Source Code: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/srdf/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Join Us: =&lt;br /&gt;
&lt;br /&gt;
''Do you get benefit from this framework and you need to give something back?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to add something to your CV?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to meet smart developers and join a big community?''&lt;br /&gt;
&lt;br /&gt;
''Do you want to learn new things?''&lt;br /&gt;
&lt;br /&gt;
Here is place … join the development community, meet new smart people and have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Roadmap: =&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== 1.	 Antivirus: ==&lt;br /&gt;
&lt;br /&gt;
a.	XRAY Tool&lt;br /&gt;
b.	Heuristics Analysis&lt;br /&gt;
c.	Behavior-based Detection Tools.&lt;br /&gt;
d.	More File Formats (PDF, apk, …)&lt;br /&gt;
e.	OpenSBI and other Virus Classification File Formats&lt;br /&gt;
f.	Sandboxing Mechanism.&lt;br /&gt;
i.	Using API/ SSDT Hooking&lt;br /&gt;
ii.	Emulation Based on Pokas Emulator.&lt;br /&gt;
g.	Update System with Flexible Mechanism&lt;br /&gt;
&lt;br /&gt;
== 2.	Malware Analysis: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a.	SSDT Hooking for (Processes, Files, Registry and Sockets System Calls)&lt;br /&gt;
b.	API Hooking (for the same as above)&lt;br /&gt;
c.	Improvement in Pokas Emulator, Assembler and Disassembler&lt;br /&gt;
d.	Packet Capturing Tool and Emulated IRC and HTTP Connection (Server emulate the replies to the malware and log the data)&lt;br /&gt;
e.	Recursive Disassembler&lt;br /&gt;
f.	More APIs Emulation in Pokas x86 Emulator&lt;br /&gt;
g.	Support more Instructions (All FPU instructions, All general purpose instructions and support mmx and 3dnow)&lt;br /&gt;
h.	Support idb (IDA Pro Database) to read it and use its analysis &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3.	Unpackers: ==&lt;br /&gt;
&lt;br /&gt;
I’m aiming to create a database for all static unpacking codes for the mostly common unpackers and I hope it could be updated by the community&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 4.	Integrations: ==&lt;br /&gt;
&lt;br /&gt;
a.	Integration into IDA Pro Plugin Interface … and in (Debugger Menu)&lt;br /&gt;
b.	OllyDbg Plugin Interface&lt;br /&gt;
c.	Ollyscript Executer on cDebugger&lt;br /&gt;
d.	Metasploit Integeration (in Meterpreter Post Exploitation&lt;br /&gt;
e.	Python, Ruby, Delphi Header files and cTypes for SRDF.dll&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 5.	Network: ==&lt;br /&gt;
&lt;br /&gt;
a.	Support NDIS, kernel sockets and more new libraries&lt;br /&gt;
b.	Process Analyzer in Kernel-Mode&lt;br /&gt;
c.	Packet Capturing Library&lt;br /&gt;
d.	More Debugging and Bug fixing&lt;br /&gt;
&lt;br /&gt;
== 6.	Others: ==&lt;br /&gt;
&lt;br /&gt;
a.	We need to build website.&lt;br /&gt;
b.	We need activities for learning.&lt;br /&gt;
c.	We need more documentations and tutorials&lt;br /&gt;
d.	We need more helpful tools and applications based on SRDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion: =&lt;br /&gt;
&lt;br /&gt;
This development framework will support the anti-malware technologies to grow and support implementing researches in the malware field more to withstand against the new attacks nowadays&lt;br /&gt;
&lt;br /&gt;
The framework is based on community and we aim to create a big community for it. We didn’t finished the framework … we just begin&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_Security_Research_and_Development_Framework}} &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141058</id>
		<title>OWASP Security Research and Development Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Security_Research_and_Development_Framework&amp;diff=141058"/>
				<updated>2012-12-11T20:51:50Z</updated>
		
		<summary type="html">&lt;p&gt;AmrThabet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Do you see writing a security tool in windows is hard?&lt;br /&gt;
Do you have a great idea but you can’t implement it?&lt;br /&gt;
Do you have a good malware analysis tool and you don’t need it to become a plugin in OllyDbg or IDA Pro?&lt;br /&gt;
So, Security Research and Development Framework is for you.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abstract: ==&lt;br /&gt;
&lt;br /&gt;
This is a free open source Development Framework created to support writing security tools and malware analysis tools. And to convert the security researches and ideas from the theoretical approach to the practical implementation.  &lt;br /&gt;
&lt;br /&gt;
This development framework created mainly to support the malware field to create malware analysis tools and anti-virus tools easily without reinventing the wheel and inspire the innovative minds to write their researches on this field and implement them using SRDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the last several years, the malware black market grows widely. The statistics shows that the number of new viruses increased from 300,000 viruses to millions and millions nowadays.&lt;br /&gt;
&lt;br /&gt;
The complexity of malware attacks also increased from small amateur viruses to stuxnet, duqu and flame.&lt;br /&gt;
&lt;br /&gt;
The malware field is searching for new technologies and researches, searching for united community can withstand against these attacks. And that’s why SRDF &lt;br /&gt;
&lt;br /&gt;
The SRDF is not and will not be developed by one person or a team. It will be developed by a big community tries to share their knowledge and tools inside this Framework&lt;br /&gt;
&lt;br /&gt;
SRDF still not finished … and it will not be finished as it’s a community based framework developed by the contributors. We just begin the idea.&lt;br /&gt;
&lt;br /&gt;
The SRDF is divided into 2 parts: User-Mode and Kernel-Mode. And we will describe each one in the next section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Features: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Before talking about SRDF Design and structure, I want to give you what you will gain from SRDF and what it could add to your project.&lt;br /&gt;
&lt;br /&gt;
In User-Mode part, SRDF gives you many helpful tools … and they are:&lt;br /&gt;
&lt;br /&gt;
• Assembler and Disassembler&lt;br /&gt;
&lt;br /&gt;
• x86 Emulator&lt;br /&gt;
&lt;br /&gt;
• Debugger&lt;br /&gt;
&lt;br /&gt;
• PE Analyzer&lt;br /&gt;
&lt;br /&gt;
• Process Analyzer (Loaded DLLs, Memory Maps … etc)&lt;br /&gt;
&lt;br /&gt;
• MD5, SSDeep and Wildlist Scanner (YARA)&lt;br /&gt;
&lt;br /&gt;
• API Hooker and Process Injection&lt;br /&gt;
&lt;br /&gt;
• Backend Database, XML Serializer&lt;br /&gt;
&lt;br /&gt;
• And many more&lt;br /&gt;
&lt;br /&gt;
In the Kernel-Mode part, it tries to make it easy to write your own filter device driver (not with WDF and callbacks) and gives an easy, object oriented (as much as we can) development framework with these features:&lt;br /&gt;
&lt;br /&gt;
• Object-oriented and easy to use development framework&lt;br /&gt;
&lt;br /&gt;
• Easy IRP dispatching mechanism&lt;br /&gt;
&lt;br /&gt;
• SSDT Hooker&lt;br /&gt;
&lt;br /&gt;
• Layered Devices Filtering&lt;br /&gt;
&lt;br /&gt;
• TDI Firewall&lt;br /&gt;
&lt;br /&gt;
• File and Registry Manager&lt;br /&gt;
&lt;br /&gt;
• Kernel Mode easy to use internet sockets&lt;br /&gt;
&lt;br /&gt;
• Filesystem Filter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Still the Kernel-Mode in progress and many features will be added in the near future.&lt;br /&gt;
&lt;br /&gt;
Let’s now see the design:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_Security_Research_and_Development_Framework}} &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]&lt;/div&gt;</summary>
		<author><name>AmrThabet</name></author>	</entry>

	</feed>