You Are Hacked End-to-End Java EE Security in Practice. Karthik Shyamsunder, Principal Technologist Phani Pattapu, Engineer
|
|
|
- Rafe Flowers
- 10 years ago
- Views:
Transcription
1 You Are Hacked End-to-End Java EE Security in Practice Karthik Shyamsunder, Principal Technologist Phani Pattapu, Engineer
2 Who Are We? Karthik Shyamsunder Principal Technologist, Verisign Adjunct Faculty, Johns Hopkins University Phani Pattapu Software Engineer, Verisign 2
3 Overall Presentation Goal 1. Overview of Java EE security features that can help you in building secure enterprise applications 2. Best practices that you can employ while using Java EE security features 3
4 Outline The Internet Threat Model Java EE Security Model Web Tier Security EJB Tier Security EIS Tier Security Java EE Security Challenges Summary Questions 4
5 Outline The Internet Threat Model Java EE Security Model Web Tier Security EJB Tier Security EIS Tier Security Java EE Security Challenges Summary Questions 5
6 6 Headlines, Headlines, Headlines!
7 The Attacks? Who initiates the attack? Hackers, Crackers, Cyber Terrorists, Script Kiddies, Competitors, Industrial Spies, Foreign Countries Why do they attack? Intellectually Motivated, Personally Motivated, Socially Motivated, Politically Motivated, Financially Motivated, Ego Damage of an Attack Financial, Customers losing trust, Legal, Loss of Data, Bad Publicity 7
8 The Problem is Real Cyber crimes and incidents are on the rise 3 out of 4 business web sites are vulnerable to attack (Gartner) 75% of the hacks occur at the application level (Gartner) 8
9 Seven Steps of Doom Step 1:Develop Software w/o Security Step 2: Get Hacked Step 3: Discover flaws that were introduced in step 1 that caused step 2 Step 4: Fix bug Step 5: Wait Step 6: Find out that while waiting in step 5, another new hack was developed Step 7: Get Hacked Again 9
10 Steps to Success Secure Design Secure Development Secure Testing Secure Deployment & Operations Audit Process Think About Security Build Software with Security in Mind Continue thinking about Security Build your Software on a Platform that Gives you Security Features 10
11 Outline The Internet Threat Model Java EE Security Model Web Tier Security EJB Tier Security EIS Tier Security Java EE Security Challenges Summary Questions 11
12 Java EE Architecture Client Tier Web Tier EJB Tier EIS Tier Standadlone Client Or Browser Java EE Server Web Container JSP Servlets JSF Web Services EJB Container Session EJB Message EJB RDBMS Timer Application Client Container Listener Filter EJB Lite Web Services Message Queue Java EE Application Client EIS Services 12
13 Characteristics of App Security Authentication Ensuring that users are who they say they are Authorization, or Access control Ensuring users have permission to perform operations Confidentiality, or Data privacy Ensuring that only authorized users can view sensitive data Non-repudiation Ensuring that transactions can be proved to have happened Auditing Maintaining record of transactions and security information Quality of Service Ensuring that the users experience a good quality of service 13 Java EE App Server offers several mechanism to achieve these security characteristics
14 Two ways to express Security 1. Declarative 1. Java Annotations Advantage is easier to apply security as you are coding Limited functionality compared to deployment descriptors 2. Through Deployment descriptors Advantage is security concern is kept outside the code Can override security features defined through annotation 2. Programmatic May times when declarative security alone may not be sufficient to express the application logic, in which programmatic security comes to the rescue Security logic is embedded inside the applications and is used to make security decisions 14 Prefer using Declarative Security, and fall back into Programmatic security when it is not sufficient for the application
15 Java EE Security Terminology In order to achieve the Application Security in the Java Platform, Java EE specifically defines User Credential Group Identity Storage Security Realm Principal Role 15
16 User, Credential and Group User An individual(or machine), whose identity is defined in the identity storage Credential Information used to authenticate a user Typically a password, sometimes a client certificate password User 1 Group Set of users classified with a set of common characteristics -> a set of common permissions and access levels User 1 User 2 User 3 manager 16
17 Identity Storage and Security Realm Identity Storage Place where you store user, group and credential 17 Flat File RDBMS LDAP Tree Cert Repository Security Realm Mechanism by which an application server stores user s credential and group information Different application servers use different methods to map users, groups and roles to each other Glassfish provides FILE, JDBC, LDAP, CERT Also provides a few other ones like PAM for unix If you want, you can also the app server specific API to provide your own custom implementation
18 Take a look at JDBC Realm # USERS table CREATE TABLE `users` ( `user_id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(10) NOT NULL, `first_name` varchar(20) DEFAULT NULL, `middle_name` varchar(20) DEFAULT NULL, `last_name` varchar(20) DEFAULT NULL, `password` char(32) NOT NULL, PRIMARY KEY (`user_id`) ); # GROUPS table CREATE TABLE groups ( `group_id int(10) NOT NULL, `group_name` varchar(20) NOT NULL, `group_desc` varchar(200) DEFAULT NULL, PRIMARY KEY (`group_id`) ); #USERS_GROUPS JOIN TABLE CREATE TABLE `user_groups` ( `user_id` int(10) NOT NULL, `group_id` int(10) NOT NULL, PRIMARY KEY (`user_id`,`group_id`), ); 18
19 Realm to RDBMS Table Mapping in Glassfish CREATE VIEW `v_user_role` AS SELECT u.username, u.password, g.group_name FROM `user_groups` ug INNER JOIN `users` u ON u.user_id = ug.user_id INNER JOIN `groups` g ON g.group_id = ug.group_id; INSERT INTO `groups`(`group_id`,`group_name`,`group_desc`) VALUES (1,'USER','Regular users'), (2,'ADMIN','Administration users'); INSERT INTO `users`(`user_id`,`username`,`first_name`,`middle_name`, `last_name`, `password`) VALUES (1,'john','John',NULL,'Doe','6e0b a29d5dfcbd b7b'), (2,'admin',NULL,NULL,NULL,'21232f297a57a5a743894a0e4a801fc3'); INSERT INTO `user_groups`(`user_id`,`group_id`) VALUES (1,1),(2,1),(2,2); 19
20 20 Mapping Tables to JDBC Realm
21 Principal and Role Principal Java EE concept to represent a user, but is more generic to handle client side certs besides just the username java.security.principal represents a Principal Role Java EE concept to define access levels Java EE Roles are mapped to users and groups using vendor specific configuration files Application developer specifies which roles can access which set of the application functionalities 21
22 Mapping Users & Groups to Roles Mapping Essential to map the users and groups -> Java EE roles Typically done in vendor specific configuration files files <glassfish-web.xml> <security-role-mapping> <role-name>manager</role-name> <group-name>team-leads</group-name> <principal-name>ppattapu</principal-name> <principal-name>kshyamsu</principal-name> </security-role-mapping> <security-role-mapping> <role-name>administrator</role-name> <principal-name>ppattapu</principal-name> </security-role-mapping> 22 </glassfish-web.xml>
23 Outline The Internet Threat Model Java EE Security Model Web Tier Security EJB Tier Security EIS Tier Security Java EE Security Challenges Summary Questions 23
24 Accessing the Web Tier Client Tier Web Tier EJB Tier EIS Tier Credentials for authentication and authorization Java EE Server Web Container EJB Container Standadlone Client Or Browser JSP Servlets JSF Web Services Session EJB Message EJB RDBMS Timer EE Application Client Container Listener Filter EJB Lite Web Services Message Queue Java EE Application Client EIS Services 24
25 Authentication in Web Tier Authentication Methods HTTP BASIC Authentication HTTP DIGEST Authentication Form Based Authentication Client Certificate Authentication Important to Understand the pros/cons of each model Can be achieved Declaratively XML based only No annotation based authentication exists Programmatically (recent API) 25
26 Declarative Authentication web.xml <web.xml>... <login-config> <auth-method>basic DIGEST CLIENT-CERT FORM</auth-method> <realm-name>name-as-defined-in-appserver</real-name> <form-login-config> <form-login-page>url-of-login-page</form-login-page> <form-error-page>url-of-error-page</form-error-page> </form-login-config> </login-config>... </web.xml> 26
27 Declarative Authentication Basic <login-config> <auth-method>basic</auth-method> </login-config> GET /secure/showmyaccount.do HTTP HTTP 401 Unauthorized WWW-Authenticate: Basic realm= BankUser" Web Server GET /secure/showmyaccount.do HTTP Authorization: Basic amf2yxnvznq6amf2yxnvznq= Password sent is BASE64Encoded; Not Encrypted 27
28 Declarative Authentication Digest <login-config> <auth-method>digest</auth-method> </login-config> GET /secure/showmyaccount.do HTTP 401 Unauthorized WWW-Authenticate: Digest realm= BankUser", qop="auth", nonce=" ", opaque="55 a27031c05" GET /secure/showmyaccount.do HTTP Authorization: Digest username="javasoft", realm= BankUser", qop="auth", algorithm="md5", uri=" ", nonce=" ", nc=, cnonce=" ", opaque=" ", response= " Web Server Password is not sent to Server; Only DIGEST
29 Declarative Authentication Form Declarative Form based auth relies upon a login page that uses special built in HTML fields to posted to a special server side service j_username and j_userpassword are POST form fields j_security_check is POST submission service that starts the login process 29 <html>... <form method="post" action="j_security_check"> <input type="text" name="j_username"> <input type="password" name= "j_password"> </form> </html> An error page that is displayed when authentication failes <html>... <h1> Login Faile :-( </h1> </html>
30 Declarative Authentication Form <login-config> <auth-method>form</auth-method> <form-login-config> <form-login-page>login.jsp</form-login-page> <form-error-page>error.jsp</form-error-page> </form-login-config> </login-config> GET /secure/showmyaccount.do HTTP 302 login.jsp GET login.jsp login.jsp POST j_security_check(with j_username j_password) HTTP 302 /secure/showmyaccount.do GET /secure/showmyaccount.do Web Server 30 Username/Password sent via POST
31 Declarative Authentication Cert <login-config> <auth-method>client-cert</auth-method> </login-config> GET /secure/showmyaccount.do Mutual Authentication SSL 1. HTTP Server retrieved client certificate from SSL 2. HTTP Server transmits certificate information to WAS 3. WAS map s client s certificate to a principal 4. WAS establishes identity of the principal 5. If client is authorized, WAS allows access to the resource Web Server /secure/showmyaccount.do 31 Stronger Authentication Model Uses digital signature instead of password
32 Programmatic Authentication in Web Tier Client Tier Web Tier EJB Tier EIS Tier Java EE Server Standadlone Client Or Browser Web Container JSP Servlets JSF Web Services EJB Container Session EJB Message EJB RDBMS Timer Application Client Container Listener Filter EJB Lite Web Services Message Queue Java EE Application Client EIS Services 32
33 Programmatic Authentication HttpServletRequest interface has several methods to enable programmatic authentication void login(string user, String password) Allows a program to collect username and password information as an alternative to form-based deployment Aids in building in making REST API based clients authenticate Helps in building custom UI forms such as AJAX API based login void authenticate() Allows an application to instigate authentication of the request caller by the container from within an unconstrained request context 33
34 Session Management in Web Tier Define Idle Session timeout <session-config> <session-timeout>30</session-timeout> </ session-config> session.setmaxinactiveinterval(long t) Explicit logout to invalidate session when the user logs out if (logoutaction) request.logout() ; 34
35 Authorization in Web Tier Proper Authorization Authorization refers to access control Regulate access to functionality based on the role of the user Can be achieved Declaratively Programmatically Combination of Declarative and Programmatic (Preferred) 35
36 Declarative Authorization web.xml <security-role> <!-- Can have Many --> <role-name>role-name from-vendor-specific-file</role-name> </security-role> <security-constraint> <!-- Can have Many --> <web-resource-collection> <web-resource-name>descriptive name</web-resource-name> <url-pattern>url-pattern</url-pattern> <http-method>get POST PUT </http-method> <!-- multiple --> <http-method-omission>get POST PUT </http-method-omission> </web-resource-collection> <auth-constraint> <role-name>role-name from above</role-name> <!-- multiple --> </auth-constraint> <user-data-constraint> <transport-guarantee><!-- later --></transport-guarantee> </user-data-constraint> </security-constraint> 36
37 Declarative Authorization Example <security-role> <role-name>hr</role-name> </security-role> <security-constraint> <web-resource-collection> <web-resource-name>payroll</web-resource-name> <url-pattern>/employee/payroll/*</url-pattern> <http-method>get</http-method> <http-method>post</http-method> </web-resource-collection> <auth-constraint> <role-name>hr</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee><!-- later --></transport-guarantee> </user-data-constraint> </security-constraint> 37
38 Declarative Authorization using (list-of-roles) Analogous to <security-role> in web.xml Specified on a class (EJB/Servlet) to declare all the roles used in it Typically used in conjunction with Programmatic Analogous to <security-constraint> in web.xml Type annotation used to specify security Constraint applies to all HTTP Analogous to <http-method> in web.xml Constraint applies to only a specific HTTP (role-name) Used to specify the role to be used for propagated security 38
39 Declarative Authorization using Annotations CONFIDENTIAL, rolesallowed={"manager"}), rolesallowed={"hr"}), emptyrolesemantic=servletsecurity.emptyrolesemantic.deny), }) public class MyServlet extends HttpServlet { } /* Code goes here */ 39
40 Programmatic Authorization in Web Tier HttpServletRequest interface has several methods to aid in programmatic authorization String getremoteuser() Returns the login of the user making this request, if the user has been authenticated, null otherwise Principal getuserprincipal() Returns java.secucrity.principal object containing the name of the authenticated user There are specialized versions of Principal like X509 Principal which have more information associated with the user boolean isuserinrole(string role) Returns a boolean indicating whether the authenticated user is included in the specified logical role 40
41 Programmatic Authorization in Web public class PayrollServlet extends HttpServlet { protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException {... } } if (request.isuserinrole("hr")) { hirenewemployee("blah ); }... 41
42 Confidentiality and Non- Repudiation in Web Tier Use HTTPS to secure communication Uses Secured Sockets as Transport Layer Encrypts all data communication between end points Use Client Certificates to achieve Non-Repudiation <transport-guarantee> element in web.xml achieves confidentiality and non-repudiation Takes on values CONFIDENTIAL, INTEGRAL, NONE CONFIDENTIAL and INTEGRAL mean the same - SSL <user-data-constraint> <transport-guarantee>confidential</transport-guarantee> </user-data-constraint> 42 request.getscheme(); // Programmatically to check // communication scheme (HTTP/HTTPS)
43 Auditing in Web Tier Filters are great ways by which you can capture every request/response into audit log <filter-mapping> <filter-name>auditfilter</filter-name> <filter-url>/*</filter-url> </filter-mapping> public class ValidationFilter implements javax.servlet.filter { public void dofilter(servletrequest req, ServletResponse res, FilterChain fc) { logrequest(req); fc.dofilter(req, res); logresponse(res); } private void logrequest(httpservletrequest req) {... } private void logresponse(httpservletrequest req) {... } 43 }
44 Quality of Service in Web Tier Ensure a high Quality of Service to ALL users Minimizing Denial Of Service attacks Preventing hackers from injecting malicious code such as Cross Site Scripting Never trust the client! Validate all input data to the application for correctness, data type, format, length, range etc Don t use blacklisting, use white listing Escaping Input might be required Encode all output response 44
45 Quality of Service in Web Tier Minimizing Hackers knowing Internal Details Use server side comments <%-- JSP style comment --%> Handle Global declarative Exceptions in web.xml <error-page> <exception-type>fqen</exception-type> <location>path/to/resource</location> <error-page> Use HTTP error codes <error-page> <error-code>httperrorcodenumber</error-code> <location>path/to/resource</location> <error-page> 45
46 46 JavaOne 2004
47 47 JavaOne 2007
48 Outline The Internet Threat Model Java EE Architecture Model Java EE Security Model Web Tier Security EJB Tier Security EIS Tier Security Java EE Security Challenges Summary Questions 48
49 Authentication for EJB Tier Client Tier Web Tier EJB Tier EIS Tier Java EE Server Web Container EJB Container Browser JSP Servlets JSF Web Services Session EJB Message EJB RDBMS Timer EE Application Client Container Listener Filter EJB Lite Web Services Message Queue 49 Java EE Application Client Authentication happens on ACC and subject is propagated Subject propagation between container during invocation EIS Services
50 Programmatic Authentication in EJB Tier (Glassfish) com.sun.appserv.security.programmaticlogin Boolean login(string user, String password) Boolean login(string user, String password, String realm, boolean errors) Will set the SecurityContext in the name of the given user upon successful login Boolean logout() Boolean logout(boolean errors) Will attempt to logout the user 50
51 Declarative Authorization ejbjar.xml <security-role> <!-- Can have Many --> <role-name>role-name</role-name> </security-role> <method-permission> <description>user-friendly description</description> <role-name>role-name</role-name> <!-- Can have Many --> <unchecked /> <!-- instead of role names --> <method> <!-- Can have Many --> <ejb-name>name of the EJB</ejb-name> <method-name>method-name or * </method-name> <method-params> <method-param>param type</method-param> </method-params> </method> </method-permission> <exclude-list> <description>user-friendly description</description> <method> <!-- same as above à </method> </exclude-list> 51
52 Declarative Authorization ejbjar.xml Example <method-permission> <role-name>manager</role-name> <method> <ejb-name>payrollservice</ejb-name> <method-name>hirenewemployee</method-name> </method> </method-permission> <method-permission> <role-name>hr</role-name> <method> <ejb-name>payrollservice</ejb-name> <method-name>*</method-name> </method> </method-permission> 52 <exclude-list> <method> <ejb-name>payrollservice</ejb-name> <method-name>fireallemployees</method-name> </method> </exclude-list>
53 More Security Related Deployment Descriptors on EJB Tier <run-as> Declared within the <security-identity> in EJB declarations in ejbjar.xml It specifies the identity to use to execute the EJB methods <use-caller-identity> Declared within the <security-identity> in EJB declarations in ejbjar.xml Specifies that the caller s security identity needs to be used to execute the EJB methods 53
54 Declarative Authorization using (list-of-roles) Can be applied to a Class or a Method When applied to a method, it specifies roles that have access to it When applied to a class, it specifies roles that have access to all the methods, unless the method is also annotated with Can be applied to a Class or a Method Permits users with any role to access the method or all methods in the Can be applied to a Class or a Method Denies all users access to a specific method or all methods in the (role-name) 54
55 Declarative Authorization using Annotaions RestrictedUsers ) public class EmployeeService{ } public long viewemployeeinfo() { //... Manager ) public void hirenew() { //... public long providefeedback() { //... public long fireallemployees() { //... } 55
56 Programmatic Authorization in EJB Tier javax.ejb.ejbcontext java.security.principal getcallerprincipal() Obtain the java.security.principal that identifies the caller. boolean iscallerinrole(string rolename) Test if the caller has a given security role. 56
57 Programmatic Authorization in EJB public class PayrollBean implements PayrollService SessionContext ctx; public void updateemployeeinfo(emplinfo info) { // obtain the caller principal. callerprincipal = ctx.getcallerprincipal(); // obtain the caller principal's name. callerkey = callerprincipal.getname(); oldinfo =... Use caller name to retrieve caller info; 57 } } // The salary field can be changed only by callers // who have the security role "payroll" if (info.salary!= oldinfo.salary &&!ctx.iscallerinrole("payroll")) { throw new SecurityException(...); }...
58 Auditing in EJB Tier EJB Interceptors provide a nice way of auditing the 58
59 Outline The Internet Threat Model Java EE Architecture Model Java EE Security Model Web Tier Security EJB Tier Security EIS Tier Security Java EE Security Challenges Summary Questions 59
60 Protecting the EIS Tier Client Tier Web Tier EJB Tier EIS Tier Standadlone Client Or Browser Java EE Server Web Container JSP Servlets JSF Web Services EJB Container Session EJB Message EJB RDBMS Timer Application Client Container Listener Filter EJB Lite Web Services Message Queue Java EE Application Client EIS Services 60
61 Stealing Stored and Transient Data Many security compromises are because applications store and transmit data in in plain text Encrypt all critical data Passwords, Cookies, Hidden fields Do not invent your own encryption algorithm Chooses a good cryptography library Choose a library that has been exposed to public scrutiny Make sure that there are no open vulnerabilities 61
62 Protecting Databases Use EE server connection pool for DB connections, which encrypt DB credentials Prefer using JPA for CRUD operations If you have to write SQL, prefer using prepared statements String usr = reg.getparameter( username ); String passwd = reg.getparameter( password ); String sql = SELECT * FROM USERS WHERE username = ' + usr + ' AND password = ' + pwd + ' ; Consider username: ' OR 1=1-- password: foobar1 SELECT * FROM USERS WHERE username = '' OR 1=1-- AND password= 'foobar1' PreparedStatement ps = conn.preparestatement( SELECT * FROM USERS where username=? AND password=? ); ps.setstring(1, request.getparameter( username )); ps.setstring(2, request.getparameter( password )); 62
63 Protecting Message Queues Validate messages before you put into the message queue to prevent poisoned message Set limits on size of messages that can be put on the queue Java EE Server EIS Service Client Poisoned Data Web Container Poisoned Message EJB Container Poisoned Message Message Queue 63
64 Protecting Integrated Systems Communicate with external EIS services over secure channel Use JSSE secure socket API for secure TCP communication Use EJBs for enterprise integration with init and max-beans-in-pool configuration Sizing EJBs is done using app server specific EJB configuration Web Container EJB Container Secure connection EIS Service 64
65 Outline The Internet Threat Model Java EE Architecture Model Java EE Security Model Web Tier Security EJB Tier Security EIS Tier Security Java EE Security Challenges Summary Questions 65
66 Java EE Security Challenges No out-of-box support for SAML No Remember Me No Error Messaging No URL for logout No Support for Regular Expressions for URLs Linking Groups/Principals to Roles is vendor specific Unable to define Roles on the fly 66
67 Summary Security is a problem! With more and more enterprise applications moving to the cloud, the attack surface has only gone up Java EE provides several security mechanisms Understand what they are and implement them in your application Think Security First While building software, keep security in mind Secure Platform -> Secure Design -> Secure Development -> Secure Testing -> Secure Deployment 67
68 Other JavaOne Security Sessions New Security Features and Fundamentals: JDK 8 and Beyond Tuesday, Oct 6:30PM Brad Wetmore & Jeff Nisewanger Security in the real world Wednesday, Oct 1:00PM Ryan Sciampacone Front-to-Back Security for Mobile, HTML5, and Java EE Applications Thursday, Oct 2:00PM Marius Bogoevici & Jay Balunas 68
69 69
70 70
71 You Are Hacked End-to-End Java EE Security Karthik Shyamsunder, Principal Technologist Phani Pattapu, Engineer
Recommended readings. Lecture 11 - Securing Web. Applications. Security. Declarative Security
Recommended readings Lecture 11 Securing Web http://www.theserverside.com/tt/articles/content/tomcats ecurity/tomcatsecurity.pdf http://localhost:8080/tomcat-docs/security-managerhowto.html http://courses.coreservlets.com/course-
Application Security
2009 Marty Hall Declarative Web Application Security Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/msajsp.html Customized Java EE Training: http://courses.coreservlets.com/
Java EE 6 New features in practice Part 3
Java EE 6 New features in practice Part 3 Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. License for use and distribution
How To Protect Your Computer From Being Hacked On A J2Ee Application (J2Ee) On A Pc Or Macbook Or Macintosh (Jvee) On An Ipo (J 2Ee) (Jpe) On Pc Or
Pistoia_ch03.fm Page 55 Tuesday, January 6, 2004 1:56 PM CHAPTER3 Enterprise Java Security Fundamentals THE J2EE platform has achieved remarkable success in meeting enterprise needs, resulting in its widespread
An Introduction to Application Security in J2EE Environments
An Introduction to Application Security in J2EE Environments Dan Cornell Denim Group, Ltd. www.denimgroup.com Overview Background What is Application Security and Why is It Important? Specific Reference
Securing JAX-RS RESTful services. Miroslav Fuksa (software developer) Michal Gajdoš (software developer)
Securing JAX-RS RESTful services Miroslav Fuksa (software developer) Michal Gajdoš (software developer) The following is intended to outline our general product direction. It is intended for information
JVA-122. Secure Java Web Development
JVA-122. Secure Java Web Development Version 7.0 This comprehensive course shows experienced developers of Java EE applications how to secure those applications and to apply best practices with regard
Security Code Review- Identifying Web Vulnerabilities
Security Code Review- Identifying Web Vulnerabilities Kiran Maraju, CISSP, CEH, ITIL, SCJP Email: [email protected] 1 1.1.1 Abstract Security Code Review- Identifying Web Vulnerabilities This paper
Managing Data on the World Wide-Web
Managing Data on the World Wide-Web Sessions, Listeners, Filters, Shopping Cart Elad Kravi 1 Web Applications In the Java EE platform, web components provide the dynamic extension capabilities for a web
Securing a Web Service
1 Securing a Web Service HTTP Basic Authentication and HTTPS/SSL Authentication and Encryption - Read Chaper 32 of the J2EE Tutorial - protected session, described later in this chapter, which ensur content
Java Web Programming. Student Workbook
Student Workbook Java Web Programming Mike Naseef, Jamie Romero, and Rick Sussenbach Published by ITCourseware, LLC., 7245 South Havana Street, Suite 100, Centennial, CO 80112 Editors: Danielle Hopkins
Servlet 3.0. Alexis Moussine-Pouchkine. mercredi 13 avril 2011
Servlet 3.0 Alexis Moussine-Pouchkine 1 Overview Java Servlet 3.0 API JSR 315 20 members Good mix of representation from major Java EE vendors, web container developers and web framework authors 2 Overview
<Insert Picture Here> Hudson Security Architecture. Winston Prakash. Click to edit Master subtitle style
Hudson Security Architecture Click to edit Master subtitle style Winston Prakash Hudson Security Architecture Hudson provides a security mechanism which allows Hudson Administrators
Java Enterprise Security. Stijn Van den Enden [email protected]
Java Enterprise Security Stijn Van den Enden [email protected] Agenda Java EE introduction Web module security EJB module security Runtime configuration Other security aspects Spring Security JBoss
What is Web Security? Motivation
[email protected] http://www.brucker.ch/ Information Security ETH Zürich Zürich, Switzerland Information Security Fundamentals March 23, 2004 The End Users View The Server Providers View What is Web
Java Servlet 3.0. Rajiv Mordani Spec Lead
Java Servlet 3.0 Rajiv Mordani Spec Lead 1 Overview JCP Java Servlet 3.0 API JSR 315 20 members > Good mix of representation from major Java EE vendors, web container developers and web framework authors
Supporting Multi-tenancy Applications with Java EE
Supporting Multi-tenancy Applications with Java EE Rodrigo Cândido da Silva @rcandidosilva JavaOne 2014 CON4959 About Me Brazilian guy ;) Work for Integritas company http://integritastech.com Software
The Top Web Application Attacks: Are you vulnerable?
QM07 The Top Web Application Attacks: Are you vulnerable? John Burroughs, CISSP Sr Security Architect, Watchfire Solutions [email protected] Agenda Current State of Web Application Security Understanding
JBoss Enterprise Application Platform 6.2 Security Guide
JBoss Enterprise Application Platform 6.2 Security Guide For Use with Red Hat JBoss Enterprise Application Platform 6 Edition 1 Nidhi Chaudhary Lucas Costi Russell Dickenson Sande Gilda Vikram Goyal Eamon
Transport Layer Security Protocols
SSL/TLS 1 Transport Layer Security Protocols Secure Socket Layer (SSL) Originally designed to by Netscape to secure HTTP Version 2 is being replaced by version 3 Subsequently became Internet Standard known
Using Foundstone CookieDigger to Analyze Web Session Management
Using Foundstone CookieDigger to Analyze Web Session Management Foundstone Professional Services May 2005 Web Session Management Managing web sessions has become a critical component of secure coding techniques.
Keycloak SAML Client Adapter Reference Guide
Keycloak SAML Client Adapter Reference Guide SAML 2.0 Client Adapters 1.7.0.Final Preface... v 1. Overview... 1 2. General Adapter Config... 3 2.1. SP Element... 4 2.2. SP Keys and Key elements... 5 2.2.1.
Apache Roller, Acegi Security and Single Sign-on
Apache Roller, Acegi Security and Single Sign-on Matt Raible [email protected] http://raibledesigns.com Matt Raible Apache Roller, Acegi Security and Single Sign-on Slide 1 Today s Agenda Introductions
CSE598i - Web 2.0 Security OWASP Top 10: The Ten Most Critical Web Application Security Vulnerabilities
CSE598i - Web 2.0 Security OWASP Top 10: The Ten Most Critical Web Application Security Vulnerabilities Thomas Moyer Spring 2010 1 Web Applications What has changed with web applications? Traditional applications
GlassFish Security. open source community experience distilled. security measures. Secure your GlassFish installation, Web applications,
GlassFish Security Secure your GlassFish installation, Web applications, EJB applications, application client module, and Web Services using Java EE and GlassFish security measures Masoud Kalali PUBLISHING
Advanced OpenEdge REST/Mobile Security
Advanced OpenEdge REST/Mobile Security Securing your OpenEdge Web applications Michael Jacobs August 2013 Legal Disclaimer The contents of these materials are confidential information of Progress Software
The end. Carl Nettelblad 2015-06-04
The end Carl Nettelblad 2015-06-04 The exam and end of the course Don t forget the course evaluation! Closing tomorrow, Friday Project upload deadline tonight Book presentation appointments with Kalyan
Controlling Web Application Behavior
2006 Marty Hall Controlling Web Application Behavior The Deployment Descriptor: web.xml JSP, Servlet, Struts, JSF, AJAX, & Java 5 Training: http://courses.coreservlets.com J2EE Books from Sun Press: http://www.coreservlets.com
Where every interaction matters.
Where every interaction matters. Peer 1 Vigilant Web Application Firewall Powered by Alert Logic The Open Web Application Security Project (OWASP) Top Ten Web Security Risks and Countermeasures White Paper
Web Application Security. Vulnerabilities, Weakness and Countermeasures. Massimo Cotelli CISSP. Secure
Vulnerabilities, Weakness and Countermeasures Massimo Cotelli CISSP Secure : Goal of This Talk Security awareness purpose Know the Web Application vulnerabilities Understand the impacts and consequences
Still Aren't Doing. Frank Kim
Ten Things Web Developers Still Aren't Doing Frank Kim Think Security Consulting Background Frank Kim Consultant, Think Security Consulting Security in the SDLC SANS Author & Instructor DEV541 Secure Coding
1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications
1. Introduction 2. Web Application 3. Components 4. Common Vulnerabilities 5. Improving security in Web applications 2 What does World Wide Web security mean? Webmasters=> confidence that their site won
Spring Security 3. rpafktl Pen source. intruders with this easy to follow practical guide. Secure your web applications against malicious
Spring Security 3 Secure your web applications against malicious intruders with this easy to follow practical guide Peter Mularien rpafktl Pen source cfb II nv.iv I I community experience distilled
Java EE Introduction, Content. Component Architecture: Why and How Java EE: Enterprise Java
Java EE Introduction, Content Component Architecture: Why and How Java EE: Enterprise Java The Three-Tier Model The three -tier architecture allows to maintain state information, to improve performance,
Rational AppScan & Ounce Products
IBM Software Group Rational AppScan & Ounce Products Presenters Tony Sisson and Frank Sassano 2007 IBM Corporation IBM Software Group The Alarming Truth CheckFree warns 5 million customers after hack http://infosecurity.us/?p=5168
Supplement IV.E: Tutorial for Tomcat. For Introduction to Java Programming By Y. Daniel Liang
Supplement IV.E: Tutorial for Tomcat For Introduction to Java Programming By Y. Daniel Liang This supplement covers the following topics: Obtaining and Installing Tomcat Starting and Stopping Tomcat Choosing
FINAL DoIT 04.01.2013- v.8 APPLICATION SECURITY PROCEDURE
Purpose: This procedure identifies what is required to ensure the development of a secure application. Procedure: The five basic areas covered by this document include: Standards for Privacy and Security
Pierce County IT Department GIS Division Xuejin Ruan Dan King
Pierce County IT Department GIS Division Xuejin Ruan Dan King Web Application Work Flow Main Topics Authentication Authorization Session Management * Concurrent Session Management * Session Timeout Single
WHITE PAPER. FortiWeb and the OWASP Top 10 Mitigating the most dangerous application security threats
WHITE PAPER FortiWeb and the OWASP Top 10 PAGE 2 Introduction The Open Web Application Security project (OWASP) Top Ten provides a powerful awareness document for web application security. The OWASP Top
How To Understand The Architecture Of Java 2Ee, J2Ee, And J2E (Java) In A Wordpress Blog Post
Understanding Architecture and Framework of J2EE using Web Application Devadrita Dey Sarkar,Anavi jaiswal, Ankur Saxena Amity University,UTTAR PRADESH Sector-125, Noida, UP-201303, India Abstract: This
Please send your comments to: [email protected]
Sun Certified Web Component Developer Study Guide - v2 Sun Certified Web Component Developer Study Guide...1 Authors Note...2 Servlets...3 The Servlet Model...3 The Structure and Deployment of Modern Servlet
Objectives. Security. Fixing Our JSTL Problem. Web Application Architecture. Web Security. A few lines of code can wreak more havoc than a bomb.
Objectives JSTL Review Designing for Security JSTL Review What is the purpose of JSTL? What is the goal of JSTL? What is JSTL? What are some common tags in the JSTL Core library? How do they work? What
Piotr Nowicki's Homepage. Java EE 6 SCWCD Mock Exam. "Simplicity is the ultimate sophistication." Important!
Piotr Nowicki's Homepage "Simplicity is the ultimate sophistication." Java EE 6 SCWCD Mock Exam Posted on March 27, 2011 by Piotr 47 Replies Edit This test might help to test your knowledge before taking
Web Application Security
Web Application Security Prof. Sukumar Nandi Indian Institute of Technology Guwahati Agenda Web Application basics Web Network Security Web Host Security Web Application Security Best Practices Questions?
Liferay Enterprise ecommerce. Adding ecommerce functionality to Liferay Reading Time: 10 minutes
Liferay Enterprise ecommerce Adding ecommerce functionality to Liferay Reading Time: 10 minutes Broadleaf + Liferay ecommerce + Portal Options Integration Details REST APIs Integrated IFrame Separate Conclusion
Application Security. Petr Křemen. [email protected]
Application Security Petr Křemen [email protected] What is application security? Security is a set of measures that So, what can happen? taken from [7] first half of 2013 Let's focus on application
Check list for web developers
Check list for web developers Requirement Yes No Remarks 1. Input Validation 1.1) Have you done input validation for all the user inputs using white listing and/or sanitization? 1.2) Does the input validation
Thick Client Application Security
Thick Client Application Security Arindam Mandal ([email protected]) (http://www.paladion.net) January 2005 This paper discusses the critical vulnerabilities and corresponding risks in a two
Integrating Apex into Federated Environment using SAML 2.0. Jon Tupman Portalsoft Solutions Ltd
Integrating Apex into Federated Environment using SAML 2.0 Jon Tupman Portalsoft Solutions Ltd Introduction Migration challenge Federated vs Single sign-on SAML process flow Integrating Apex and Weblogic
Advanced Web Technology 10) XSS, CSRF and SQL Injection 2
Berner Fachhochschule, Technik und Informatik Advanced Web Technology 10) XSS, CSRF and SQL Injection Dr. E. Benoist Fall Semester 2010/2011 Table of Contents Cross Site Request Forgery - CSRF Presentation
Oracle WebLogic Server
Oracle WebLogic Server Developing Web Applications, Servlets, and JSPs for Oracle WebLogic Server 10g Release 3 (10.3) July 2008 Oracle WebLogic Server Developing Web Applications, Servlets, and JSPs for
Single Sign On In A CORBA-Based
Single Sign On In A CORBA-Based Based Distributed System Igor Balabine IONA Security Architect Outline A standards-based framework approach to the Enterprise application security Security framework example:
Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB
September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets
FINAL DoIT 11.03.2015 - v.4 PAYMENT CARD INDUSTRY DATA SECURITY STANDARDS APPLICATION DEVELOPMENT AND MAINTENANCE PROCEDURES
Purpose: The Department of Information Technology (DoIT) is committed to developing secure applications. DoIT s System Development Methodology (SDM) and Application Development requirements ensure that
Oracle WebLogic Server 11g Administration
Oracle WebLogic Server 11g Administration This course is designed to provide instruction and hands-on practice in installing and configuring Oracle WebLogic Server 11g. These tasks include starting and
CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS
CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS Java EE Components Java EE Vendor Specifications Containers Java EE Blueprint Services JDBC Data Sources Java Naming and Directory Interface Java Message
SSC - Web applications and development Introduction and Java Servlet (II)
SSC - Web applications and development Introduction and Java Servlet (II) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics Servlet Configuration
Spring Security 3. http://www.springsource.com/download/community?project=spring%20security
Spring Security 3 1. Introduction http://www.springsource.com/download/community?project=spring%20security 2. Security Namespace Configuration Web.xml configuration: springsecurityfilterchain
Java Web Security Antipatterns
Java Web Security Antipatterns JavaOne 2015 Dominik Schadow bridgingit Failed with nothing but the best intentions Architect Implement Maintain Architect Skipping threat modeling Software that is secure
Application Security Policy
Purpose This document establishes the corporate policy and standards for ensuring that applications developed or purchased at LandStar Title Agency, Inc meet a minimum acceptable level of security. Policy
Web Security (SSL) Tecniche di Sicurezza dei Sistemi 1
Web Security (SSL) Tecniche di Sicurezza dei Sistemi 1 How the Web Works - HTTP Hypertext transfer protocol (http). Clients request documents (or scripts) through URL. Server response with documents. Documents
Out of the Fire - Adding Layers of Protection When Deploying Oracle EBS to the Internet
Out of the Fire - Adding Layers of Protection When Deploying Oracle EBS to the Internet March 8, 2012 Stephen Kost Chief Technology Officer Integrigy Corporation Phil Reimann Director of Business Development
Using weblock s Servlet Filters for Application-Level Security
Using weblock s Servlet Filters for Application-Level Security September 2006 www.2ab.com Introduction Access management is a simple concept. Every business has information that needs to be protected from
enterprise^ IBM WebSphere Application Server v7.0 Security "publishing Secure your WebSphere applications with Java EE and JAAS security standards
IBM WebSphere Application Server v7.0 Security Secure your WebSphere applications with Java EE and JAAS security standards Omar Siliceo "publishing enterprise^ birmingham - mumbai Preface 1 Chapter 1:
IBM WebSphere Server Administration
IBM WebSphere Server Administration This course teaches the administration and deployment of web applications in the IBM WebSphere Application Server. Duration 24 hours Course Objectives Upon completion
Securing Your Web Application against security vulnerabilities. Ong Khai Wei, IT Specialist, Development Tools (Rational) IBM Software Group
Securing Your Web Application against security vulnerabilities Ong Khai Wei, IT Specialist, Development Tools (Rational) IBM Software Group Agenda Security Landscape Vulnerability Analysis Automated Vulnerability
Apache Ki (formerly JSecurity) DevNexus - 2009
Apache Ki (formerly JSecurity) DevNexus - 2009 Introduction Jeremy Haile Project Co-Founder VP Product Development, WeTheCitizens Agenda What is Apache Ki? Terminology Authentication, Authorization, Session
FileCloud Security FAQ
is currently used by many large organizations including banks, health care organizations, educational institutions and government agencies. Thousands of organizations rely on File- Cloud for their file
HTTP connections can use transport-layer security (SSL or its successor, TLS) to provide data integrity
Improving File Sharing Security: A Standards Based Approach A Xythos Software White Paper January 2, 2003 Abstract Increasing threats to enterprise networks coupled with an ever-growing dependence upon
Complete Java Web Development
Complete Java Web Development JAVA-WD Rev 11.14 4 days Description Complete Java Web Development is a crash course in developing cutting edge Web applications using the latest Java EE 6 technologies from
LISTSERV LDAP Documentation
LISTSERV LDAP Documentation L Soft Sweden AB 2007 28 November 2007 Overview LISTSERV version 15.5 can interface to LDAP servers to authenticate user logins, to insert LDAP attributes in mail merge distributions
WEB APPLICATION FIREWALLS: DO WE NEED THEM?
DISTRIBUTING EMERGING TECHNOLOGIES, REGION-WIDE WEB APPLICATION FIREWALLS: DO WE NEED THEM? SHAIKH SURMED Sr. Solutions Engineer [email protected] www.fvc.com HAVE YOU BEEN HACKED????? WHAT IS THE PROBLEM?
CA Performance Center
CA Performance Center Single Sign-On User Guide 2.4 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is
Customer Bank Account Management System Technical Specification Document
Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6
WebSphere Server Administration Course
WebSphere Server Administration Course Chapter 1. Java EE and WebSphere Overview Goals of Enterprise Applications What is Java? What is Java EE? The Java EE Specifications Role of Application Server What
Web Application Report
Web Application Report This report includes important security information about your Web Application. Security Report This report was created by IBM Rational AppScan 8.5.0.1 11/14/2012 8:52:13 AM 11/14/2012
Tableau Server Security. Version 8.0
Version 8.0 Author: Marc Rueter Senior Director, Strategic Solutions, Tableau Software June 2013 p2 Today s enterprise class systems need to provide robust security in order to meet the varied and dynamic
Web Container Components Servlet JSP Tag Libraries
Web Application Development, Best Practices by Jeff Zhuk, JavaSchool.com ITS, Inc. [email protected] Web Container Components Servlet JSP Tag Libraries Servlet Standard Java class to handle an HTTP request
Oracle EXAM - 1Z0-897. Java EE 6 Web Services Developer Certified Expert Exam. Buy Full Product. http://www.examskey.com/1z0-897.
Oracle EXAM - 1Z0-897 Java EE 6 Web Services Developer Certified Expert Exam Buy Full Product http://www.examskey.com/1z0-897.html Examskey Oracle 1Z0-897 exam demo product is here for you to test the
Application Design and Development
C H A P T E R9 Application Design and Development Practice Exercises 9.1 What is the main reason why servlets give better performance than programs that use the common gateway interface (CGI), even though
Passing PCI Compliance How to Address the Application Security Mandates
Passing PCI Compliance How to Address the Application Security Mandates The Payment Card Industry Data Security Standards includes several requirements that mandate security at the application layer. These
Web Application Architecture (based J2EE 1.4 Tutorial)
Web Application Architecture (based J2EE 1.4 Tutorial) 1 Disclaimer & Acknowledgments Even though Sang Shin is a full-time employee of Sun Microsystems, the contents here are created as his own personal
Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework
JOURNAL OF APPLIED COMPUTER SCIENCE Vol. 21 No. 1 (2013), pp. 53-69 Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework Marcin Kwapisz 1 1 Technical University of Lodz Faculty
An Oracle White Paper Dec 2013. Oracle Access Management Security Token Service
An Oracle White Paper Dec 2013 Oracle Access Management Security Token Service Disclaimer The following is intended to outline our general product direction. It is intended for information purposes only,
Top Ten Web Application Vulnerabilities in J2EE. Vincent Partington and Eelco Klaver Xebia
Top Ten Web Application Vulnerabilities in J2EE Vincent Partington and Eelco Klaver Xebia Introduction Open Web Application Security Project is an open project aimed at identifying and preventing causes
The purpose of this report is to educate our prospective clients about capabilities of Hackers Locked.
This sample report is published with prior consent of our client in view of the fact that the current release of this web application is three major releases ahead in its life cycle. Issues pointed out
3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management
What is an? s Ten Most Critical Web Application Security Vulnerabilities Anthony LAI, CISSP, CISA Chapter Leader (Hong Kong) [email protected] Open Web Application Security Project http://www.owasp.org
Creating Java EE Applications and Servlets with IntelliJ IDEA
Creating Java EE Applications and Servlets with IntelliJ IDEA In this tutorial you will: 1. Create IntelliJ IDEA project for Java EE application 2. Create Servlet 3. Deploy the application to JBoss server
Security features of ZK Framework
1 Security features of ZK Framework This document provides a brief overview of security concerns related to JavaScript powered enterprise web application in general and how ZK built-in features secures
TypingMaster Intra. LDAP / Active Directory Installation. Technical White Paper (2009-9)
TypingMaster Intra LDAP / Active Directory Installation Technical White Paper (2009-9) CONTENTS Contents... 2 TypingMaster Intra LDAP / Active Directory White Paper... 3 Background INFORMATION... 3 Overall
Is your data safe out there? -A white Paper on Online Security
Is your data safe out there? -A white Paper on Online Security Introduction: People should be concerned of sending critical data over the internet, because the internet is a whole new world that connects
Lecture 11 Web Application Security (part 1)
Lecture 11 Web Application Security (part 1) Computer and Network Security 4th of January 2016 Computer Science and Engineering Department CSE Dep, ACS, UPB Lecture 11, Web Application Security (part 1)
NetBrain Security Guidance
NetBrain Security Guidance 1. User Authentication and Authorization 1.1. NetBrain Components NetBrain Enterprise Server includes five components: Customer License Server (CLS), Workspace Server (WSS),
