Security Architecture of the Java Platform (http://www.javaday.bg event - 14....Martin Toshev
The document summarizes the evolution of the Java security model from JDK 1.0 to the present. It discusses how the security model started with a sandbox that divided code into trusted and untrusted domains. It evolved to support signed applets, fine-grained access control using security policies, and role-based access with JAAS. More recent updates applied the security model to modules. The document also discusses APIs for secure coding outside the sandbox, like JCA, PKI, JSSE, and following best practices like least privilege.
Security Аrchitecture of Тhe Java PlatformMartin Toshev
The document summarizes the evolution of the Java security model from JDK 1.0 to the current version. It discusses how the security model started with a simple trusted/untrusted code separation and gradually evolved to support signed applets, fine-grained access control, and role-based access using JAAS. It also discusses how the security model will be applied to modules in future versions. Additionally, it covers some of the key security APIs available outside the sandbox like JCA, PKI, JSSE, and best practices for secure coding.
The document discusses key components of the Java security architecture, including class loaders that enforce separate namespaces, a bytecode verifier that checks for integrity and safety, and a security manager that enforces fine-grained access control based on permissions defined in a policy file. It also covers Java security models from early sandboxing of untrusted code to later models incorporating digital signatures and policy-based access control.
The document discusses Java security and how to configure a security manager and policy in Java. It explains that a security manager creates a sandbox for Java applications and uses a security policy to define permissions. The policy grants or denies permissions to code based on code location, trust via signing, and the user running the code. It provides examples of policy syntax and common permissions.
Martin Toshev - Java Security Architecture - Codemotion Rome 2019Codemotion
The session provides an overview of the security architecture of the Java platform in terms of its evolution throughout the versions of the JDK up to JDK 11 and beyond. The security utilities that fullfill the security portfolio of the JDK will be discussed briefly along with several guidelines in designing and implementing secure applications by following security best practices.
Public REST APIs have become mainstream. Now, almost every company that wants to expose services or an application programming interface does it using a publicly exposed REST API. This talk will give participants the skills they need to identify and understand REST vulnerabilities. The findings are a result of reviewing production REST applications as well as researching popular REST frameworks.
By Dinis Cruz, Abraham Kang and Alvaro Muñoz
Unsafe Deserialization Attacks In Java and A New Approach To Protect The JVM ...Apostolos Giannakidis
This talk provides an introduction and detailed overview of Java deserialization attacks. You will understand the basic concepts of how Java deserialization exploits (gadget chains) work, what solutions exist and the advantages and disadvantages of each. Finally, a new approach will be presented, using Runtime Virtualization, Compartmentalization and Privilege De-escalation.
This talk was presented by Apostolos Giannakidis at the OWASP London meetup on May 2017.
Spring Security is a powerful and highly customizable authentication and authorization framework for Spring-based applications. It provides authentication via mechanisms like username/password, LDAP, and SSO. Authorization can be implemented through voting-based access control or expression-based access control at the web (URL) level and method level. It includes filters, providers, and services to handle authentication, authorization, logout, and remember-me functionality. Configuration can be done through XML or Java configuration with support for common annotations.
The document summarizes security enhancements in Visual Studio 2005 and SQL Server 2005, including managed code security improvements like running under less privileged accounts, code access security, and debugging/IntelliSense in restricted permission zones. It also describes SQL Server 2005 features like secure defaults, strengthened authentication, granular permissions, encryption and execution context.
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Christian Schneider
The hidden danger of Java deserialization vulnerabilities – which often lead to remote code execution – has gained extended visibility in the past year. The issue has been known for years; however, it seems that the majority of developers were unaware of it until recent media coverage around commonly used libraries and major products. This talk aims to shed some light about how this vulnerability can be abused, how to detect it from a static and dynamic point of view, and -- most importantly -- how to effectively protect against it. The scope of this talk is not limited to the Java serialization protocol but also other popular Java libraries used for object serialization.
The ever-increasing number of new vulnerable endpoints and attacker-usable gadgets has resulted in a lot of different recommendations on how to protect your applications, including look-ahead deserialization and runtime agents to monitor and protect the deserialization process. Coming at the problem from a developer’s perspective and triaging the recommendations for you, this talk will review existing protection techniques and demonstrate their effectiveness on real applications. It will also review existing techniques and present new gadgets that demonstrates how attackers can actually abuse your application code and classpath to craft a chain of gadgets that will allow them to compromise your servers.
This talk will also present the typical architectural decisions and code patterns that lead to an increased risk of exposing deserialization vulnerabilities. Mapping the typical anti-patterns that must be avoided, through the use of real code examples we present an overview of hardening techniques and their effectiveness. The talk will also show attendees what to search the code for in order to find potential code gadgets the attackers can leverage to compromise their applications. We’ll conclude with action items and recommendations developers should consider to mitigate this threat.
--
This talk was presented by Alvaro Muñoz & Christian Schneider at the OWASP AppSecEU 2016 conference in Rome.
Que es Spring Security
Arquitectura de Spring Security
Configuraciones:
Modulos de spring security en maven
web.xml
securityContext.xml
applicationContext.xml
AuthenticationProvider.java
Login.xhtml
ManageBean login
This document provides an overview of securing web applications with Spring Security 3. It begins with introductions to the speaker and Spring Security. It then outlines hands-on steps for securing a sample FBI X-Files web application with Spring Security, including setting up authentication, authorization for web resources and business methods, encryption, and more advanced topics. The document emphasizes that Spring Security provides a more flexible and adaptable approach to security than standard JEE security.
Access Control is a necessary security control at almost every layer within a web application. This talk will discuss several of the key access control anti-patterns commonly found during website security audits. These access control anti-patterns include hard-coded security policies, lack of horizontal access control, and "fail open" access control mechanisms. In reviewing these and other access control problems, we will discuss and design a positive access control mechanism that is data contextual, activity based, configurable, flexible, and deny-by-default - among other positive design attributes that make up a robust web-based access-control mechanism.
State of Solr Security 2016: Presented by Ishan Chattopadhyaya, LucidworksLucidworks
This document discusses security in Apache Solr, including its history and current state. It covers SSL, authentication using Kerberos and basic authentication, authorization with the rule-based plugin, encrypting indexes, and securing Zookeeper. Future areas of work include better configuration tools, field-level security, removing dependencies, and securing Zookeeper communication.
The Java EE Security API (JSR-375) wants to simplify the implementation of security-related features in your Java EE application. Application server specific configuration changes will be no longer needed and things will be much more app developer friendly. Aligning security with the ease of development we saw in the recent version of Java EE. We will show you the basic goals and concepts behind Java EE Security API. And of course, demos with the current version of the RI, named Soteria, how you can do Authentication and Authorization.
This document discusses vulnerabilities in application frameworks and the importance of monitoring for vulnerabilities in third party libraries and components. It uses the Equifax breach as an example of how vulnerabilities in the Apache Struts framework were exploited to gain access and steal personal data. The document recommends that software developers and IT security teams regularly check all application components for known vulnerabilities and ensure components and libraries are kept up to date with the latest security patches. It also emphasizes the importance of detection mechanisms to identify suspicious activity resulting from exploited vulnerabilities.
[Wroclaw #2] Web Application Security HeadersOWASP
This document discusses HTTP security headers and techniques for preventing clickjacking and cross-site scripting attacks. It describes the X-Frame-Options header which prevents clickjacking by controlling framing. Content Security Policy (CSP) provides a more powerful alternative to X-Frame-Options and can also prevent cross-site scripting attacks by whitelisting allowed script sources. The document compares X-Frame-Options, CSP directives, and how each addresses different attack vectors. It concludes with recommendations on CSP implementation and testing.
Windows Azure Security Features And Functionalityvivekbhat
Windows Azure is a cloud computing platform that combines compute, storage, and SQL components. It handles threats to its infrastructure like physical attacks and impersonation, while customers are responsible for threats to their tenant like code bugs and privilege abuse by their own administrators. Windows Azure provides security features like network access control, hypervisor isolation of tenants, access controls on storage accounts, and password authentication for SQL databases.
Dos and Don'ts of Android Application Security (Security Professional Perspec...Bijay Senihang
Besides of strong Andorid Security model, android application is still unsecure. There exist lost of vulnerabilities in android application due to lack of secure coding and lack of proper secuity knowledge.
BlackHat Arsenal 2014 - C-SCAD : Assessing Security Flaws in C-SCAD WebX Clie...Aditya K Sood
C-SCAD is an information gathering and penetration testing tool written to assess the security issues present in the Web-X (Internet Explorer-based web interface) client used to interact with the ClearSCADA server. WebX client is hosted on the embedded web server which is shipped as a part of complete ClearSCADA architecture. Primarily, the WebX client is restricted to perform any configuration changes but it can reveal potential information about the ClearSCADA server and associated components. Insecure deployments of WebX client can reveal potential information about the various functions such as alarm pages, SQL lists, and diagnostic checks including various reports.
UKC - Feb 2013 - Analyzing the security of Windows 7 and Linux for cloud comp...Vincent Giersch
University of Kent 2013 - CO899 System security
Presentation of the article:
Salah K, et al, Computers & Security (2012), http://dx.doi.org/10.1016/j.cose.2012.12.001
[OWASP Poland Day] Web App Security ArchitecturesOWASP
The document discusses web application security architectures and their components. It provides an example of a practical web application security architecture that includes: network firewalls separating different zones, web applications and services located in a DMZ zone, a web application firewall, centralized user identities stored in Active Directory, single sign-on authentication, and identity federation components. It also discusses managed security services and a security operations center.
MyFaces CODI and JBoss Seam3 become Apache DeltaSpikeos890
These slides show how to use type-safe mechanisms provided by MyFaces CODI for developing JSF applications which are more type-safe and easier to maintain as well as common pitfalls. Beyond that there is an basic overview of Apache DeltaSpike.
Spring Security is a framework for authentication and authorization in Java applications. It provides components for authentication filters, providers, and managers as well as user details services. Basic authentication uses HTTP basic auth with a username and password encoded in the request header. Form authentication displays a login form and uses CSRF protection. Custom authentication allows multiple auth types by implementing custom auth providers, users, grants, and handlers. The documentation covers getting started, architecture, basic auth, form auth, and custom auth configurations and demos.
- Listeners allow monitoring of events in a web application. Main listener types are servlet context listeners, which monitor initialization and destruction of the servlet context, and session listeners, which monitor creation and destruction of sessions. Listeners are implemented by overriding appropriate methods in listener interfaces and declared in web.xml. They provide access to the servlet context and session to monitor changes.
The presentation is on Persistent Cookies and LDAP Injection. Persistent cookies stay on your hard drive (one of your browser's subfolders) until they expire or get deleted. The session will cover introduction to Persistent Cookies and applicable test-cases with respect to Web Application Penetration Testing. In LDAP Injection section, the presentation will cover: Understanding Active Directory, Understanding LDAP and How does LDAP Injection work.
Modularity of The Java Platform Javaday (http://javaday.org.ua/)Martin Toshev
Project Jigsaw aims to provide modularity for the Java platform by defining modules for the JDK and restructuring it. This will address problems caused by the current monolithic design and dependency mechanism. OSGi also provides modularity on top of Java by defining bundles and a runtime. Project Penrose explores interoperability between Jigsaw and OSGi modules.
Java security in the real world (Ryan Sciampacone)Chris Bailey
Java was built from the ground up with security clearly in mind and is now the engine powering a huge number of business-critical systems. With this visibility and opportunity come attacks, and this session goes through the current state of security in Java in 2012 (including the Java 6 and 7 verifier changes) and discusses some of the attack vectors. It presents a couple of real-world examples and also talks about the real-world challenges in getting security fixes out quickly. Finally, it touches on hardware cryptography. Come learn more about the reality of security today and take away a better awareness of exactly how Java helps protect you.
The document summarizes security enhancements in Visual Studio 2005 and SQL Server 2005, including managed code security improvements like running under less privileged accounts, code access security, and debugging/IntelliSense in restricted permission zones. It also describes SQL Server 2005 features like secure defaults, strengthened authentication, granular permissions, encryption and execution context.
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Christian Schneider
The hidden danger of Java deserialization vulnerabilities – which often lead to remote code execution – has gained extended visibility in the past year. The issue has been known for years; however, it seems that the majority of developers were unaware of it until recent media coverage around commonly used libraries and major products. This talk aims to shed some light about how this vulnerability can be abused, how to detect it from a static and dynamic point of view, and -- most importantly -- how to effectively protect against it. The scope of this talk is not limited to the Java serialization protocol but also other popular Java libraries used for object serialization.
The ever-increasing number of new vulnerable endpoints and attacker-usable gadgets has resulted in a lot of different recommendations on how to protect your applications, including look-ahead deserialization and runtime agents to monitor and protect the deserialization process. Coming at the problem from a developer’s perspective and triaging the recommendations for you, this talk will review existing protection techniques and demonstrate their effectiveness on real applications. It will also review existing techniques and present new gadgets that demonstrates how attackers can actually abuse your application code and classpath to craft a chain of gadgets that will allow them to compromise your servers.
This talk will also present the typical architectural decisions and code patterns that lead to an increased risk of exposing deserialization vulnerabilities. Mapping the typical anti-patterns that must be avoided, through the use of real code examples we present an overview of hardening techniques and their effectiveness. The talk will also show attendees what to search the code for in order to find potential code gadgets the attackers can leverage to compromise their applications. We’ll conclude with action items and recommendations developers should consider to mitigate this threat.
--
This talk was presented by Alvaro Muñoz & Christian Schneider at the OWASP AppSecEU 2016 conference in Rome.
Que es Spring Security
Arquitectura de Spring Security
Configuraciones:
Modulos de spring security en maven
web.xml
securityContext.xml
applicationContext.xml
AuthenticationProvider.java
Login.xhtml
ManageBean login
This document provides an overview of securing web applications with Spring Security 3. It begins with introductions to the speaker and Spring Security. It then outlines hands-on steps for securing a sample FBI X-Files web application with Spring Security, including setting up authentication, authorization for web resources and business methods, encryption, and more advanced topics. The document emphasizes that Spring Security provides a more flexible and adaptable approach to security than standard JEE security.
Access Control is a necessary security control at almost every layer within a web application. This talk will discuss several of the key access control anti-patterns commonly found during website security audits. These access control anti-patterns include hard-coded security policies, lack of horizontal access control, and "fail open" access control mechanisms. In reviewing these and other access control problems, we will discuss and design a positive access control mechanism that is data contextual, activity based, configurable, flexible, and deny-by-default - among other positive design attributes that make up a robust web-based access-control mechanism.
State of Solr Security 2016: Presented by Ishan Chattopadhyaya, LucidworksLucidworks
This document discusses security in Apache Solr, including its history and current state. It covers SSL, authentication using Kerberos and basic authentication, authorization with the rule-based plugin, encrypting indexes, and securing Zookeeper. Future areas of work include better configuration tools, field-level security, removing dependencies, and securing Zookeeper communication.
The Java EE Security API (JSR-375) wants to simplify the implementation of security-related features in your Java EE application. Application server specific configuration changes will be no longer needed and things will be much more app developer friendly. Aligning security with the ease of development we saw in the recent version of Java EE. We will show you the basic goals and concepts behind Java EE Security API. And of course, demos with the current version of the RI, named Soteria, how you can do Authentication and Authorization.
This document discusses vulnerabilities in application frameworks and the importance of monitoring for vulnerabilities in third party libraries and components. It uses the Equifax breach as an example of how vulnerabilities in the Apache Struts framework were exploited to gain access and steal personal data. The document recommends that software developers and IT security teams regularly check all application components for known vulnerabilities and ensure components and libraries are kept up to date with the latest security patches. It also emphasizes the importance of detection mechanisms to identify suspicious activity resulting from exploited vulnerabilities.
[Wroclaw #2] Web Application Security HeadersOWASP
This document discusses HTTP security headers and techniques for preventing clickjacking and cross-site scripting attacks. It describes the X-Frame-Options header which prevents clickjacking by controlling framing. Content Security Policy (CSP) provides a more powerful alternative to X-Frame-Options and can also prevent cross-site scripting attacks by whitelisting allowed script sources. The document compares X-Frame-Options, CSP directives, and how each addresses different attack vectors. It concludes with recommendations on CSP implementation and testing.
Windows Azure Security Features And Functionalityvivekbhat
Windows Azure is a cloud computing platform that combines compute, storage, and SQL components. It handles threats to its infrastructure like physical attacks and impersonation, while customers are responsible for threats to their tenant like code bugs and privilege abuse by their own administrators. Windows Azure provides security features like network access control, hypervisor isolation of tenants, access controls on storage accounts, and password authentication for SQL databases.
Dos and Don'ts of Android Application Security (Security Professional Perspec...Bijay Senihang
Besides of strong Andorid Security model, android application is still unsecure. There exist lost of vulnerabilities in android application due to lack of secure coding and lack of proper secuity knowledge.
BlackHat Arsenal 2014 - C-SCAD : Assessing Security Flaws in C-SCAD WebX Clie...Aditya K Sood
C-SCAD is an information gathering and penetration testing tool written to assess the security issues present in the Web-X (Internet Explorer-based web interface) client used to interact with the ClearSCADA server. WebX client is hosted on the embedded web server which is shipped as a part of complete ClearSCADA architecture. Primarily, the WebX client is restricted to perform any configuration changes but it can reveal potential information about the ClearSCADA server and associated components. Insecure deployments of WebX client can reveal potential information about the various functions such as alarm pages, SQL lists, and diagnostic checks including various reports.
UKC - Feb 2013 - Analyzing the security of Windows 7 and Linux for cloud comp...Vincent Giersch
University of Kent 2013 - CO899 System security
Presentation of the article:
Salah K, et al, Computers & Security (2012), http://dx.doi.org/10.1016/j.cose.2012.12.001
[OWASP Poland Day] Web App Security ArchitecturesOWASP
The document discusses web application security architectures and their components. It provides an example of a practical web application security architecture that includes: network firewalls separating different zones, web applications and services located in a DMZ zone, a web application firewall, centralized user identities stored in Active Directory, single sign-on authentication, and identity federation components. It also discusses managed security services and a security operations center.
MyFaces CODI and JBoss Seam3 become Apache DeltaSpikeos890
These slides show how to use type-safe mechanisms provided by MyFaces CODI for developing JSF applications which are more type-safe and easier to maintain as well as common pitfalls. Beyond that there is an basic overview of Apache DeltaSpike.
Spring Security is a framework for authentication and authorization in Java applications. It provides components for authentication filters, providers, and managers as well as user details services. Basic authentication uses HTTP basic auth with a username and password encoded in the request header. Form authentication displays a login form and uses CSRF protection. Custom authentication allows multiple auth types by implementing custom auth providers, users, grants, and handlers. The documentation covers getting started, architecture, basic auth, form auth, and custom auth configurations and demos.
- Listeners allow monitoring of events in a web application. Main listener types are servlet context listeners, which monitor initialization and destruction of the servlet context, and session listeners, which monitor creation and destruction of sessions. Listeners are implemented by overriding appropriate methods in listener interfaces and declared in web.xml. They provide access to the servlet context and session to monitor changes.
The presentation is on Persistent Cookies and LDAP Injection. Persistent cookies stay on your hard drive (one of your browser's subfolders) until they expire or get deleted. The session will cover introduction to Persistent Cookies and applicable test-cases with respect to Web Application Penetration Testing. In LDAP Injection section, the presentation will cover: Understanding Active Directory, Understanding LDAP and How does LDAP Injection work.
Modularity of The Java Platform Javaday (http://javaday.org.ua/)Martin Toshev
Project Jigsaw aims to provide modularity for the Java platform by defining modules for the JDK and restructuring it. This will address problems caused by the current monolithic design and dependency mechanism. OSGi also provides modularity on top of Java by defining bundles and a runtime. Project Penrose explores interoperability between Jigsaw and OSGi modules.
Java security in the real world (Ryan Sciampacone)Chris Bailey
Java was built from the ground up with security clearly in mind and is now the engine powering a huge number of business-critical systems. With this visibility and opportunity come attacks, and this session goes through the current state of security in Java in 2012 (including the Java 6 and 7 verifier changes) and discusses some of the attack vectors. It presents a couple of real-world examples and also talks about the real-world challenges in getting security fixes out quickly. Finally, it touches on hardware cryptography. Come learn more about the reality of security today and take away a better awareness of exactly how Java helps protect you.
Writing Stored Procedures with Oracle Database 12cMartin Toshev
This document discusses writing Java stored procedures with Oracle Database 12c. It begins by comparing PL/SQL and Java stored procedures, noting that both can be executed directly in the database and recompiled when source code changes. It then covers writing Java stored procedures by loading Java classes into the database, mapping Java methods to PL/SQL functions/procedures, and invoking them. Managing procedures includes monitoring with JMX and debugging with JDBC. New features in Oracle 12c include support for multiple JDK versions, JNDI, and improved debugging support.
Writing Stored Procedures in Oracle RDBMSMartin Toshev
This document discusses writing Java stored procedures with Oracle RDBMS. It covers the differences between PL/SQL and Java stored procedures, how to write Java stored procedures, manage them, and new features in Oracle Database 12c. Key points include: Java procedures use a JVM inside Oracle RDBMS, writing procedures involves loading Java classes and mapping methods, and managing procedures includes debugging, monitoring the JVM, and setting compiler options.
Writing Java Stored Procedures in Oracle 12cMartin Toshev
The session discusses the innerworkings ot the Oracle Aurora JVM, the process of writing and maintaining Java stored procedures and the new features in Oracle database 12c.
This document discusses modularity in Java applications and platforms. It covers OSGi, a popular modular system for Java that allows bundles to be installed and updated dynamically. It also discusses Project Jigsaw, which aims to add built-in modularity to the Java platform starting in JDK 9 by defining Java modules. Project Penrose explores interoperability between OSGi and Jigsaw modular systems.
Introductory presentation for the Clash of Technologies: RxJS vs RxJava event organized by SoftServe @ betahouse (17.01.2015). Comparison document with questions & answers available here: https://docs.google.com/document/d/1VhuXJUcILsMSP4_6pCCXBP0X5lEVTsmLivKHcUkFvFY/edit#.
This document provides an overview of Spring RabbitMQ. It discusses messaging basics and RabbitMQ concepts like exchanges, queues, bindings. It then summarizes the Spring AMQP and Spring Integration frameworks for integrating RabbitMQ in Spring applications. Spring AMQP provides the RabbitAdmin, listener container and RabbitTemplate for declaring and interacting with RabbitMQ components. The document contains code examples for configuring RabbitMQ and consuming/producing messages using Spring AMQP.
KDB database (EPAM tech talks, Sofia, April, 2015)Martin Toshev
KDB is an in-memory column-oriented database that provides high-performance for real-time and historical large volumes of data. It is used widely in the financial industry. KDB supports the Q programming language for querying and manipulating data, and can be deployed in a distributed environment. The Java API provides simple connection and query methods to access a KDB database. KDB is well-suited for use cases involving capturing market data feeds and analyzing FIX messages.
The document discusses Java Security Manager (JSM) and how it can be used to enforce security policies in Java applications. However, JSM has issues with performance and managing policy files. The Pro-Grade library aims to address these issues by providing components like a policy file generator and permissions debugger to make working with JSM easier. The presentation concludes by demonstrating how to generate a security policy for a Java EE server in just 3 minutes using Pro-Grade.
Rest with Java EE 6 , Security , Backbone.jsCarol McDonald
The document discusses REST with JAX-RS and security in Java EE 6, covering how to build a simple RESTful service using JAX-RS annotations to map resources and methods, support multiple representations, and link resources together, and how to secure the service by configuring authentication, authorization, and encryption in the web.xml deployment descriptor.
Security Architecture of the Java platformMartin Toshev
The document discusses the evolution of the Java security model from JDK 1.0 to recent versions. It started with a simple sandbox model separating trusted and untrusted code. Over time, features like applet signing, fine-grained permissions, JAAS roles and principals, and module-based security were added to enhance the security and flexibility of granting access to untrusted code. The model aims to safely execute code from various sources while preventing unauthorized access.
Eclipse plug-in development seminar held by the Bulgarian Java User group covering basic aspects of Eclipse plug-in development and the new stuff in e4
I did this presentation for one of my java user groups at work.
Basically, this is a mashed up version of various presentations, slides and images that I gathered over the internet.
I've quoted the sources in the end. Feel free to reuse it as you like.
1) Spring Security provides authentication and authorization services for Java-based applications. It supports various authentication types including form-based, LDAP, and certificates.
2) Core concepts include the UserDetails interface for user information, UserDetailsService for retrieving user details, and the SecurityContext for holding authentication details.
3) Spring Security configuration is done primarily through the security namespace, defining things like the authentication manager, secured URLs, and form login details.
4) Method-level security and JSP tag libraries allow securing controller methods and restricting JSP content.
This document provides a summary of Michael Bleigh's presentation on the present and future of OAuth. The presentation is presented as a comic strip with 4 acts. Act 1 describes the problems with the initial methods of authorization. Act 2 introduces the creation of OAuth as a new open standard. Act 3 outlines improvements with OAuth 2.0, including making it simpler and adding additional flows. Act 4 discusses implementing OAuth 2.0 both as a consumer and provider.
This document provides an introduction to security concepts like cryptography, digital signatures, and Java security. It discusses symmetric and public key cryptography, hash functions, and digital signatures. It also describes Java security APIs for cryptography, access control, and PKI. Examples are given for cryptographic operations in Java like encrypting/decrypting data, signing/verifying signatures, and working with key stores. The document also discusses XML signature standards and implementations.
RabbitMQ is an open source message broker that implements the AMQP protocol. It provides various messaging patterns using different exchange types and supports clustering for scalability and high availability. Administration of RabbitMQ includes managing queues, exchanges, bindings and other components. Integrations exist for protocols like STOMP, MQTT and frameworks like Spring, while security features include authentication, authorization, and SSL/TLS encryption.
Martin Toshev presented on attack vectors against Oracle database 12c. He began by providing real world examples of attacks, such as privilege escalation exploits. He then discussed potential attack vectors, including those originating from unauthorized, authorized with limited privileges, and SYSDBA users. Finally, he outlined approaches for discovering new vulnerabilities and recommended tools for testing Oracle database security.
The document discusses the evolution of the Java security model from its initial introduction in JDK 1.0 to address security concerns of executing untrusted code, to later refinements that introduced signing of trusted code, fine-grained access control, and integration with user authentication. It also covers security APIs available for secure coding outside the sandbox and best practices for designing code with security in mind, such as respecting the SecurityManager and following the principle of least privilege.
This document discusses Java security. It covers Java's original goals of being robust and secure. It describes the Java sandbox implementation and how it protects memory, files, and network access. It discusses various aspects of the Java security model including the bytecode verifier, class loaders, security manager, access controller, JAAS, JCE, and JSSE.
This document provides an overview of Java platform security architecture. It discusses how security is built into the Java virtual machine and language. It describes key security concepts like protection domains, permissions, policies, security managers, access controllers, bytecode verification, classloaders, and how they provide a secure execution environment. It also covers security for Java applets and how digital signatures can be used to trust applets.
The document discusses Java security and its architecture. It describes how Java uses class loaders, bytecode verification, and a security manager to enforce security. Class loaders load and isolate untrusted code into separate namespaces. Bytecode verification checks untrusted code for integrity before it runs. The security manager enforces permissions defined in a security policy and prevents unauthorized access to system resources. Together these components provide fine-grained security and allow untrusted code to run safely in a sandbox.
Java provides security capabilities that have evolved over time. Version 1.0 used a sandbox model but allowed unlimited access to local applications. Version 1.1 added digital signatures to optionally grant full trust to signed applets. Version 1.2 introduced fine-grained access control policies that can grant specific privileges based on code source and signatures. Java implements security through mechanisms like class loaders, bytecode verification, security managers, and protection domains.
This document discusses security features in Java. It covers applets, security implications of applets running locally, the sandbox model, bytecode verification, class loading, the security manager, language features that enhance security, and signed JAR files. The key points are that applets are restricted to prevent harm, the bytecode is verified before execution, and digital signatures allow verification of untrusted code sources.
This document discusses security in Java, focusing on cryptography APIs. It provides an overview of security services in Java like the Java Virtual Machine, security manager, and cryptography APIs. It then discusses the Java Cryptography Architecture (JCA) and Java Cryptography Extension (JCE) in more detail, comparing their roles and describing the provider architecture and engine classes. The document also provides code examples demonstrating secret key encryption using the Data Encryption Standard (DES) algorithm.
The document discusses sandboxing and signed software to establish trust for distributed programs. It covers techniques like Microsoft Authenticode for signing executables, Java's sandbox model using class loaders and security managers, and the use of digital signatures to prevent man-in-the-middle attacks and establish trust for Java applets and JAR files. The goal is to allow untrusted code from remote sources to run safely by restricting its capabilities and verifying its integrity.
From java to android a security analysisPragati Rai
The document compares the security models of Java and Android. Both use sandboxing techniques like permissions and code signing to restrict apps. Java uses a virtual machine as a security boundary, while Android relies on Linux permissions and does not use its virtual machine for security. Both models aim to protect the host system from malicious code through install-time checks of an app's identity and resource requirements.
This document discusses the security challenges of using Java on smart cards, known as Java Card. Java Card aims to enable multiple applications on a single smart card by using a common Java platform. However, Java Card presents unique security risks compared to regular Java due to constraints of smart cards and the presence of multiple untrusted applications. The document outlines various attacks against Java Card and recommendations for addressing the risks through secure applet design, testing, and platform improvements.
This document discusses security aspects of Java modules and compares them to OSGi bundles. It explains that the Java module system brings improved security while fitting into the existing security architecture. Modules introduce another layer of access control and stronger encapsulation for application code. Both modules and bundles define protection domains and can be signed, but modules lack OSGi's notion of local bundle permissions. The new module system enhances security while modularizing the Java platform.
This session will show that writing secure code and constructing secure systems is not as hard as it may sound. First, we will briefly dissect some well-known security vulnerabilities which were the result of only minor programming errors and we will demonstrate how easy insecurely written Java code can be exploited. However, writing secure code from the start is just as easy. For this we will present a handful of basic rules and tools every secure Java developer must know. This session will discuss the secure usage of open source libraries and it will present basic security patterns to construct secure system architectures. By the end of this session you will have a higher security awareness and a set of simple tools for your daily work.
The talk was delivered at the JavaOne 2015 in San Francisco. #JavaOne
How java is better than other languages according to history and uses.MAAN Softwares INC.
This PPT on Java gives you a brief introduction to java discussing how java is better than other languages according to history and uses.
This PPT covers the following topics:
• What is Java?
• Why Java?
• Security Models in Java.
• Performance of Java.
• Java in Real World.
• TIOBE & PYPL Index.
• How Many Java Developers?
• IEEE Spectrum Ranking.
• Programming Language Trend – World Wide
• About MAAN.
MAAN Software Inc. is a leading software firm generating its services since a long time in the domain of digital solution. It has successfully managed to aid hundreds of entrepreneurs and small businessmen to launch their endeavors and turn them into successful digital units.
Networking and Security provided by java.
With the help of java.security and java.net Packages.
It also provide brief information about the Permission and Policy Classes of java.securty Packages.
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It PosesAlex Senkevitch
Talk given at ISSA Wisconsin Chapter meeting, Jan 10, 2017.
Abstract:
""Enterprise Java" is a term we hear daily. However, how many of us actually--empirically--know what that represents from a risk, threat, and exposure basis? From the asset(s) it's on and data it accesses to the enterprise at-large that it sits within. This talk will explore the size, scope, and omnipresence of "Enterprise Java" in all its forms; and seek to give it a quantifiable attack surface. This talk will encompass various exemplars of where Enterprise Java appears in the enterprise. From the overt and ubiquitous application servers to the not so overt (but still ubiquitous) use in network appliances and "devices" (IoT) emerging today; and what this means to the threat profiles and attack surfaces of your organization."
Voxxed Days Athens - Securing the JVM - Neither for fun nor for profit, but d...Nicolas Fränkel
The Java API allows a lot: sending packets over the network, compiling code, etc. If you put an application in an production environment, you need to make sure it doesn’t do more than it’s supposed to do.
Consider a Java application in a private banking system. A new network administrator is hired, and while going around, he notices that the app is making network calls to a unknown external endpoint. After some investigation, it’s found that this app has been sending for years confidential data to a competitor (or a state, or hackers, whatever). This is awkward. Especially since it could have been avoided.
Code reviews are good to improve the hardening of an application, but what if the malicious code was planted purposely? Some code buried in a commit could extract code from binary content, compile it on the fly, and then execute the code in the same JVM run… By default, the JVM is not secured! Securing the JVM for a non-trivial application is complex and time-consuming but the risks of not securing it could be disastrous. In this talk, I’ll show some of the things you could do in an unsecured JVM. I’ll also explain the basics of securing it, and finally demo a working process on how to do it.
Code Europe PL - Securing the JVM: Neither for fun nor for profit, but do you...Nicolas Fränkel
Consider a Java application in a private banking system. A new network administrator is hired, and while going around, he notices that the app is making network calls to a unknown external endpoint. After some investigation, it’s found that this app has been sending for years confidential data to a competitor (or a state, or hackers, whatever). This is awkward. Especially since it could have been avoided. Code reviews are good to improve the hardening of an application, but what if the malicious code was planted purposely? Some code buried in a commit could extract code from binary content, compile it on the fly, and then execute the code in the same JVM run… By default, the JVM is not secured! Securing the JVM for a non-trivial application is complex and time-consuming but the risks of not securing it could be disastrous.
Java provides strong security features that are built into its design and well-suited for distributed computing. Its security model uses sandboxes, class loaders, bytecode verification, and security managers to prevent untrusted applications from accessing system resources. Java also supports protected domains that extend security through flexible user-defined permissions for applications. Effective security requires ongoing diligence through techniques, training, and adapting to new threats.
This document discusses securing the Java Virtual Machine. It describes how the reflection API allows dynamic behavior but can enable dangerous actions if not secured properly. It also discusses using a security manager to run code in a sandbox with limited permissions defined in a policy file. The principle of least privilege and default permissions are explained.
A presentation about Java Card targeting Java developers who need to start working with Java Card. Focuses on the specific features of Java Card, and also on the security measures that are often required when developing with Java Card.
Building highly scalable data pipelines with Apache SparkMartin Toshev
This document provides a summary of Apache Spark, including:
- Spark is a framework for large-scale data processing across clusters that is faster than Hadoop by relying more on RAM and minimizing disk IO.
- Spark transformations operate on resilient distributed datasets (RDDs) to manipulate data, while actions return results to the driver program.
- Spark can receive data from various sources like files, databases, sockets through its datasource APIs and process both batch and streaming data.
- Spark streaming divides streaming data into micro-batches called DStreams and integrates with messaging systems like Kafka. Structured streaming is a newer API that works on DataFrames/Datasets.
JDK 10 is the first release with a 6-month cadence. It includes new features like local variable type inference with the var keyword and Application Class-Data Sharing to reduce memory usage. Performance improvements were made like parallel full GC for G1. JDK 10 also adds experimental support for Graal as a Java-based JIT compiler and improves container awareness. Future releases will continue adding new features from projects like Panama, Valhalla, and Loom.
Java 9 Security Enhancements in PracticeMartin Toshev
This document discusses security enhancements to Java 9 including TLS and DTLS support. TLS 1.0-1.2 and the upcoming TLS 1.3 are supported via the JSSE API. DTLS 1.0-1.2 is also now supported to provide security for unreliable transports like UDP. The TLS Application-Layer Protocol Negotiation extension allows identifying the application protocol during the TLS handshake. Other enhancements include OCSP stapling, PKCS12 as the default keystore, and SHA-3 hash algorithm support.
This document provides an overview of Spring RabbitMQ, which is a framework for integrating Java applications with the RabbitMQ message broker. It discusses messaging basics and RabbitMQ concepts like exchanges, queues, bindings and message routing. It then summarizes how Spring RabbitMQ can be used to configure RabbitMQ infrastructure like connections, templates, listeners and administrators either directly in Java code or using Spring configuration. It also briefly mentions how Spring Integration and Spring Boot can be used to build messaging applications on RabbitMQ.
This document discusses concurrency utilities introduced in Java 8 including parallel tasks, parallel streams, parallel array operations, CompletableFuture, ConcurrentHashMap, scalable updatable variables, and StampedLock. It provides examples and discusses when and how to properly use these utilities as well as potential performance issues. Resources for further reading on Java concurrency are also listed.
The document discusses attacking Java EE application servers by exploring various attack vectors and strategies. It outlines how attacks could originate externally, from within the application server itself, or from deployed applications. It then discusses tools that can be used to exploit vulnerabilities and recommends secure coding practices like applying patches, implementing proper security configurations, and performing testing to harden applications and servers against attacks.
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)Martin Toshev
Seminar "Modularity of the Java Platform" of the Bulgarian Java User Group.
Topics of the seminar:
Modularity 101
Modularity on top of the platform: OSGi
Modularity of the platform: Jigsaw
OSGi and Jigsaw interoperability: Penrose
Presentation on the new features introduced in JDK 8, presented on the 26.02.2013 in Sofia University in front of students and members of the Bulgarian java user group.
Video Games and Artificial-Realities.pptxHadiBadri1
🕹️ #GameDevs, #AIteams, #DesignStudios — I’d love for you to check it out.
This is where play meets precision. Let’s break the fourth wall of slides, together.
Filters for Electromagnetic Compatibility ApplicationsMathias Magdowski
In this lecture, I explain the fundamentals of electromagnetic compatibility (EMC), the basic coupling model and coupling paths via cables, electric fields, magnetic fields and wave fields. We also look at electric vehicles as an example of systems with many conducted EMC problems due to power electronic devices such as rectifiers and inverters with non-linear components such as diodes and fast switching components such as MOSFETs or IGBTs. After a brief review of circuit analysis fundamentals and an experimental investigation of the frequency-dependent impedance of resistors, capacitors and inductors, we look at a simple low-pass filter. The input impedance from both sides as well as the transfer function are measured.
UNIT-1-PPT-Introduction about Power System Operation and ControlSridhar191373
Power scenario in Indian grid – National and Regional load dispatching centers –requirements of good power system - necessity of voltage and frequency regulation – real power vs frequency and reactive power vs voltage control loops - system load variation, load curves and basic concepts of load dispatching - load forecasting - Basics of speed governing mechanisms and modeling - speed load characteristics - regulation of two generators in parallel.
Module4: Ventilation
Definition, necessity of ventilation, functional requirements, various system & selection criteria.
Air conditioning: Purpose, classification, principles, various systems
Thermal Insulation: General concept, Principles, Materials, Methods, Computation of Heat loss & heat gain in Buildings
Main Menu The metals-black-book-ferrous-metalsRicardo Akerman
Guia técnico e de referência amplamente utilizado nas indústrias metalúrgica, de manufatura, engenharia, petróleo e gás, construção naval, e diversas áreas de manutenção industrial.
Kevin Corke Spouse Revealed A Deep Dive Into His Private Life.pdfMedicoz Clinic
Kevin Corke, a respected American journalist known for his work with Fox News, has always kept his personal life away from the spotlight. Despite his public presence, details about his spouse remain mostly private. Fans have long speculated about his marital status, but Corke chooses to maintain a clear boundary between his professional and personal life. While he occasionally shares glimpses of his family on social media, he has not publicly disclosed his wife’s identity. This deep dive into his private life reveals a man who values discretion, keeping his loved ones shielded from media attention.
This presentation provides a detailed overview of air filter testing equipment, including its types, working principles, and industrial applications. Learn about key performance indicators such as filtration efficiency, pressure drop, and particulate holding capacity. The slides highlight standard testing methods (e.g., ISO 16890, EN 1822, ASHRAE 52.2), equipment configurations (such as aerosol generators, particle counters, and test ducts), and the role of automation and data logging in modern systems. Ideal for engineers, quality assurance professionals, and researchers involved in HVAC, automotive, cleanroom, or industrial filtration systems.
5. Evolution of the
Java security model
• Traditionally - companies protect they assets
using strict physical and network access policies
• Tools such as anti-virus software, firewalls,
IPS/IDS systems facilitate this approach
6. Evolution of the
Java security model
• With the introduction of various technologies for
loading and executing code on the client machine
from the browser (such as Applets) - a new range
of concerns emerge related to client security –
this is when the Java security sandbox starts to
evolve …
7. Evolution of the
Java security model
• The goal of the Java security sandbox is to allow
untrusted code from applets to be executed in a
trusted environment such as the user's browser
8. Evolution of the
Java security model
• JDK 1.0 (when it all started …) – the original
sandbox model was introduced
Applet
(untrusted)
System code
(trusted)
JVM
Browser
http://javaday.bg/demoapplet
9. Evolution of the
Java security model
• Code executed by the JVM is divided in two
domains – trusted and untrusted
• Strict restriction are applied by default on the
security model of applets such as denial to
read/write data from disk, connect to the
network and so on
10. Evolution of the
Java security model
• JDK 1.1 (gaining trust …) – applet signing
introduced
Applet
(untrusted)
System code
(trusted)
JVM
Browser
http://javaday.bg/demoapplet
Signed Applet
(trusted)
http://javaday.bg/trustedapplet
11. Evolution of the
Java security model
• Trusted local code and untrusted remote code
from applets restricted to a predefined set of
operations OR signed applet code that is trusted
12. Evolution of the
Java security model
• Steps needed to sign and run an applet:
– Compile the applet
– Create a JAR file for the applet
– Generate a pair of public/private keys
– Sign the applet JAR with the private key
– Export a certificate for the public key
– Import the Certificate as a Trusted Certificate
– Create the policy file
– Load and run the applet
13. Evolution of the
Java security model
• JDK 1.2 (gaining more trust …) – fine-grained
access control
Applet
System code
JVM
Browser
http://javaday.bg/demoapplet
grant codeBase http://javaday.bg/demoapplet {
permission java.io.FilePermissions “C:Windows” “delete”
}
security.policy
SecurityManager.checkPermission(…)
AccessController.checkPermission(…)
14. Evolution of the
Java security model
• Since the security model is code-centric -
additional access control decisions are specified
in a security policy
• No more notion of trusted and untrusted code
15. Evolution of the
Java security model
• The notion of protection domain introduced –
determined by the security policy
• Two types of protection domains – system and
application
16. Evolution of the
Java security model
• The protection domain is set during classloading
and contains the code source and the list of
permissions for the class
applet.getClass().getProtectionDomain();
17. Evolution of the
Java security model
• One permission can imply another permission
java.io.FilePermissions “C:Windows” “delete”
implies
java.io.FilePermissions “C:Windowssystem32” “delete”
18. Evolution of the
Java security model
• One code source can imply another code source
codeBase http://javaday.bg/
implies
codeBase http://javaday.bg/demoapplet
19. Evolution of the
Java security model
• Since an execution thread may pass through
classes loaded by different classloaders (and
hence – have different protection domains) the
following rule of thumb applies:
The permission set of an execution thread is considered
to be the intersection of the permissions of all protection
domains traversed by the execution thread
20. Evolution of the
Java security model
• JDK 1.3, 1,4 (what about entities running the
code … ?) – JAAS
Applet
System code
JVM
Browser
http://javaday.bg/demoapplet
grant principal javax.security.auth.x500.X500Principal "cn=Tom"
{ permission java.io.FilePermissions “C:Windows” “delete” }
security.policy
21. Evolution of the
Java security model
• JAAS (Java Authentication and Authorization
Service) extends the security model with role-
based permissions
• The protection domain of a class now may
contain not only the code source and the
permissions but a list of principals
22. Evolution of the
Java security model
• The authentication component of JAAS is
independent of the security sandbox in Java and
hence is typically used in more wider context
(such as j2ee app servers)
• The authorization component is the one that
extends the Java security policy
23. Evolution of the
Java security model
• Core classes of JAAS:
– javax.security.auth.Subject - an authenticated subject
– java.security.Principal - identifying characteristic of a subject
– javax.security.auth.spi.LoginModule - interface for
implementors of login (PAM) modules
– javax.security.auth.login.LoginContext - creates objects used
for authentication
24. Evolution of the
Java security model
• Up to JDK 1.4 the following is a typical flow for
permission checking:
1) upon system startup a security policy is set and a
security manager is installed
Policy.setPolicy(…)
System.setSecurityManager(…)
25. Evolution of the
Java security model
• Up to JDK 1.4 the following is a typical flow for
permission checking:
2) during classloading (e.g. of a remote applet) bytecode
verification is done and the protection domain is set
for the current classloader (along with the code
source, the set of permissions and the set of JAAS
principals)
26. Evolution of the
Java security model
• Up to JDK 1.4 the following is a typical flow for
permission checking:
3) when system code is invoked from the remote code
the SecurityManager is used to check against the
intersection of protection domains based on the chain
of threads and their call stacks
27. Evolution of the
Java security model
• Up to JDK 1.4 the following is a typical flow for
permission checking:
SocketPermission permission = new
SocketPermission("javaday.bg:8000-
9000","connect,accept");
SecurityManager sm = System.getSecurityManager();
if (sm != null) sm.checkPermission(permission);
28. Evolution of the
Java security model
• Up to JDK 1.4 the following is a typical flow for
permission checking:
4) application code can also do permission checking
against remote code using a SecurityManager or an
AccessController
29. Evolution of the
Java security model
• Up to JDK 1.4 the following is a typical flow for
permission checking:
SocketPermission permission = new
SocketPermission("javaday.bg:8000-9000",
"connect,accept");
AccessController.checkPermission(permission)
30. Evolution of the
Java security model
• Up to JDK 1.4 the following is a typical flow for
permission checking:
5) application code can also do permission checking with
all permissions of the calling domain or a particular
JAAS subject
AccessController.doPrivileged(…)
Subject.doAs(…)
Subject.doAsPrivileged(…)
31. Evolution of the
Java security model
• The security model defined by
java.lang.SecurityManager is customizable
• For example: Oracle JVM uses a custom
SecurityManager with additional permission
classes where the code source is a database
schema (containing e.g. Java stored procedures)
32. Evolution of the
Java security model
• JDK 1.5, 1.6 (enhancing the model …) – new
additions to the sandbox model (e.g. LDAP
support for JAAS)
33. Evolution of the
Java security model
• JDK 1.7, 1.8 (further enhancing the model …) –
enhancements to the sandbox model (e.g.
AccessController.doPrivileged() for checking
against a subset of permissions)
34. Evolution of the
Java security model
• JDK 1.9 and beyond … (applying the model to
modules …)
application module
system
module 1
JVM
Browser
http://javaday.bg/appmodule
security.policy
system
module 2
35. Evolution of the
Java security model
• By modules we understand modules in JDK as
defined by project Jigsaw
• Modules must conform to the same security
model as applets – moreover each module is
loaded by a different classloader – hence classes
in different modules must have different
protection domains
36. Evolution of the
Java security model
• Modularization of the JDK system classes
allows further to define fine-grained access
control permissions for classes in the system
domain
• This is not currently allowed due to the
monolithic nature of the JDK
38. Outside the sandbox - APIs for secure
coding
• The security sandbox defines a strict model for
execution of remote code in the JVM
• The other side of the coin are the security APIs
that provide utilities for implementing the
different aspects of application security …
39. Outside the sandbox - APIs for secure
coding
• The additional set of APIs includes:
– JCA (Java Cryptography Architecture)
– PKI (Public Key Infrastructure) utilities
– JSSE (Java Secure Socket Extension)
– Java GSS API (Java Generic Security Services)
– Java SASL API (Java Simple Authentication and Security
Layer)
40. Outside the sandbox - APIs for secure
coding
• JCA provides utilities for:
– creating digital signatures
– creating message digests
– using cryptographic ciphers (symetric/asymetric,
block/stream)
– using different other types of cryptographic services and
algorithms
41. Outside the sandbox - APIs for secure
coding
• JCA has a pluggable architecture
• JCA is independent from particular cryptographic
algorithms
• JCA continues to evolve (especially by providing
stronger cryptographic algorithms)
42. Outside the sandbox - APIs for secure
coding
• PKI utilities provide means for working with:
– certificates
– certificate revocation lists (CRL)
– OCSP (Online Certificate Status Protocol)
– key stores and trust stores (also based on the PKCS -
public-key cryptography standards)
43. Outside the sandbox - APIs for secure
coding
• PKI certificate revocation check (revision):
• PKI utilities continue to evolve (especially in
providing more support for managing certificates
and keys)
certificate
authorityrevocation
checking
OCSP
CRL
certificate
certificate
44. Outside the sandbox - APIs for secure
coding
• JSSE provides an implementation of the TSL/SSL
sockets for working with remote communication
• JSSE continues to evolve (especially in the
support for additional features such as Server
Name Identication)
45. Outside the sandbox - APIs for secure
coding
• Java GSS API provides an alternative of JSSE
for secure communication
• Java GSS API is a framework for providing
token-based security services that is
independent of the underlying protocols
46. Outside the sandbox - APIs for secure
coding
• Java GSS API can be used along with JAAS for
authentication purposes
• Java GSS API continues to evolve (especially in
the support for Kerberos authentication)
47. Outside the sandbox - APIs for secure
coding
• Java SASL defines a protocol for exchange of
authentication data
• Java SASL is a framework where external
providers give concrete semantics to the
authentication data being exchanged
48. Outside the sandbox - APIs for secure
coding
• Java SASL continues to evolve (especially with
support for additional and enhanced
properties for exchanging authentication data)
50. Designing and coding
with security in mind
• First of all - follow programing guidelines and
best practices - most are not bound to the Java
programming language (input validation, error
handling, type safety, access modifiers, resource
cleanup, prepared SQL queries and whatever you
can think of …)
51. Designing and coding
with security in mind
• Respect the SecurityManager - design libraries so
that they work in environments with installed
SecurityManager
• Example: GSON library does not respect the
SecurityManager and cannot be used without additional
reflective permissions in some scenarios
52. Designing and coding
with security in mind
• Grant minimal permissions to code that requires
them - the principle of "least privilege"
• Copy-pasting, of course, increases the risk of
security flows (if the copied code is flawed)
53. Designing and coding
with security in mind
• Sanitize exception messages from sensitive
information - often this results in an unintended
exposal of exploitable information
• Let alone exception stacktraces … in many cases
they convey a wealth of information about the
system
58. References
• Core Java Security: Class Loaders, Security
Managers and Encryption
http://www.informit.com/articles/article.aspx?p=118796
7
• Overview of Java Security Models
http://docs.oracle.com/cd/E12839_01/core.1111/e1004
3/introjps.htm#CHDCEJGH
Editor's Notes
#16: The code source on the other hand contains the URL location, the list of signers and the list of certificates
#17: The code source on the other hand contains the URL location, the list of signers and the list of certificates
#18: The code source on the other hand contains the URL location, the list of signers and the list of certificates
#19: The code source on the other hand contains the URL location, the list of signers and the list of certificates
#20: The code source on the other hand contains the URL location, the list of signers and the list of certificates
#21: A typical scenario – in a single multiuser operating system we may have multiple users accessing the same applet from the browser – we may want to define permissions based on the currently logged-in user by providing integration with e.g. Kerberos (in case of a Windows OS)
#27: An AccessControlContext keeps the list of protection domains for the current thread
#28: An AccessControlContext keeps the list of protection domains for the current thread
#29: There are two main differences in using a SecurityManager and an AccessController:
The SecurityManager needs to be installed while AccessController only provides static methods
The SecurityManager can be customized while AccessController provides additional algorithms that can be used over the default security model
#30: There are two main differences in using a SecurityManager and an AccessController:
The SecurityManager needs to be installed while AccessController only provides static methods
The SecurityManager can be customized while AccessController provides additional algorithms that can be used over the default security model
#31: Calling code with a different JAAS subject is similar to the Unix setuid utility