WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en...
Transcript of WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en...
![Page 1: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/1.jpg)
![Page 2: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/2.jpg)
WHOAMI?
Oscar Martínez Ruiz de CastillaChalacoIngeniero ElectrónicoMagister en Ciencias de la ComputaciónCISM, C)ISSOOSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, C)DFE, OSEH y Sophos Certified Engineer
Especialista en Seguridad InformáticaCon más de 10 años de experiencia en TI
Network / Web application penetration tester
[email protected]@oscar_mrdc
![Page 3: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/3.jpg)
Tu desarrollador/analista -> también defiendes!
1. Parafraseando a Bielsa2. Qué dicen los bancos?
3. Cazadores de mitos4. Qué dice PCI?
5. Mecanismos de Defensa6. OWASP / ASVS / ESAPI (intro)
![Page 4: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/4.jpg)
Cuántos trabajan atacando?
Cuántos trabajan defendiendo?
Cuántos son analistas / programadores?
Cuántos en QA?
Los demás?
![Page 5: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/5.jpg)
![Page 6: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/6.jpg)
![Page 7: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/7.jpg)
![Page 8: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/8.jpg)
![Page 9: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/9.jpg)
![Page 10: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/10.jpg)
![Page 11: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/11.jpg)
“El cumplimiento de PCI / NTP27001 es un proyecto para TI”
![Page 12: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/12.jpg)
“Soy seguro porque cumplo PCI / NTP 27001”
![Page 13: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/13.jpg)
PCI compliance is a business issue, not a technology issue. There is no single technology
solution that will make your organization PCI compliant. Because it is a business issue that affects the entire organization, PCI compliance
calls for a multidisciplinary team including at least Finance, IT, and likely Internal Audit.
![Page 14: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/14.jpg)
![Page 15: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/15.jpg)
![Page 16: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/16.jpg)
![Page 17: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/17.jpg)
![Page 18: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/18.jpg)
![Page 19: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/19.jpg)
![Page 20: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/20.jpg)
![Page 21: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/21.jpg)
6.5.1 Injection flaws, particularly SQLinjection. Also consider OS Command
Injection, LDAP and XPath injection flawsas well as other injection flaws.
6.5.2 Buffer overflows
6.5.3 Insecure cryptographic storage
![Page 22: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/22.jpg)
6.5.4 Insecure communications
6.5.5 Improper error handling
6.5.7 Cross-site scripting (XSS)
6.5.8 Improper access control (such asinsecure direct object references, failure torestrict URL access, directory traversal, andfailure to restrict user access to functions).
![Page 23: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/23.jpg)
6.5.9 Cross-site request forgery (CSRF)
6.5.10 Broken authentication and sessionmanagement
![Page 24: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/24.jpg)
6.5.10 Broken authentication and sessionManagement
Note: Requirement 6.5.10 is a best practiceuntil June 30, 2015, after which it becomes a
requirement.
![Page 25: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/25.jpg)
![Page 26: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/26.jpg)
La Realidad en Perú?
Muchos con SQLi, XSS, credenciales débiles, etc.
![Page 27: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/27.jpg)
Vulnerabilidades en el propio software, desarrollado por la propia empresa o un tercero (Lógica y código fuente)
No esta relacionada necesariamente con la plataforma (puertos 80 y 443)
![Page 28: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/28.jpg)
Mecanismos de Defensa
![Page 29: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/29.jpg)
Gestionar el acceso del usuario (a las funcionalidades y datos)
Gestionar los datos ingresados por el usuario
Gestionar los ataques (medidas defensivas y ofensivas)
![Page 30: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/30.jpg)
Gestionar el acceso del usuario (a las funcionalidades y datos)
Autenticación(formularios web, certificados, tokens, etc)Login, pero también: recuperación de cuenta, cambio de contraseña, auto registro, etc.
Manejo de sesionesHttp no es orientado a la conexiónTokens de sesión, campos de formulario ocultos, etc.Timeout.
Control de accesosDecidir si el usuario esta autorizado para usar un recurso
El mecanismo es tan fuerte como el más débil de sus componentes
![Page 31: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/31.jpg)
Gestionar los datos ingresados por el usuario
Variedad de datos: Nombres, edades, fechas, etc.TipoLongitudExpresiones regulares
Listas negras
Listas blancas
![Page 32: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/32.jpg)
Gestionar los ataques (medidas defensivas y ofensivas)Igual ocurrirán errores -> anticiparlos:
Manejar erroresTry-catch, errores genéricos
Mantener logs de auditoríaPara entender que pasó (requerimientos de seguridad / diseño)
Alertas a los administradoresPara tomar una acción inmediata y no esperar a revisar los logs
Reaccionar a los ataquesTerminar la sesión, bloquear al usuario, etc.
![Page 33: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/33.jpg)
Requerimientos de seguridad en Aplicaciones Web (OWASP ASVS)
Application Security Verification Standard
![Page 34: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/34.jpg)
ASVS puede ser utilizado para establecer un nivel de confianza en la seguridad de aplicaciones web
![Page 35: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/35.jpg)
![Page 36: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/36.jpg)
![Page 37: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/37.jpg)
![Page 38: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/38.jpg)
![Page 39: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/39.jpg)
Beneficios de implementar seguridad en aplicaciones?
✔ Reduce costos de desarrollo, recuperación ante incidentes y parches.
✔ Reduce costo de testeo de seguridad de terceros.
![Page 40: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/40.jpg)
Validar longitud, tipo, etc:
import java.util.regex.Pattern;import java.util.regex.Matcher;
String code= request.getParameter(“code”);
String codevalid="";Pattern pat = Pattern.compile("[0-9]{1,2}");
Matcher mat = pat.matcher(code); if (mat.matches()) {
codevalid=code; } else {
codevalid="";//response.sendRedirect("office2.jsp");
}
![Page 41: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/41.jpg)
SQLi
Usar sentencias SQL precompiladas:
PreparedStatement pstmt = con.prepareStatement("update empleado set sueldo = ? where id_empleado = ?");
pstmt.setDouble(1, 153833.00); pstmt.setInt(2, 110592);
![Page 42: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/42.jpg)
Codificar datos de salida:
XSSAntes: <script>alert(1)</script>
Después: <script>alert(1)</script>
![Page 43: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/43.jpg)
Java LoggingJava Logging
BouncyCastleBouncyCastle
SpringSpring
Log4jLog4j
JasyptJasypt
JCEJCE
JAASJAASCryptixCryptix
HDIVHDIVxml-dsigxml-dsig
xml-encxml-enc
Many MoreMany More
ACEGIACEGI
CommonsValidatorCommonsValidator
StrutsStruts
ReformReform Anti-XSSAnti-XSS
StingerStinger
Standard Control
Standard Control
Java Pattern
Java Pattern
Java URLEncoderJava URLEncoder
Write Custom Code
Write Custom Code
NO Intuitivo, Integrado o Amigable (para el desarrollador).
![Page 44: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/44.jpg)
Según las buenas prácticas en el desarrollo seguro de aplicaciones, se recomienda el uso de librerías ó APIs como
ESAPI (Enterprise Security API - OWASP) la cual implementa una biblioteca de controles que facilita a los programadores a escribir
aplicaciones web de menor riesgo.
Las bibliotecas ESAPI están diseñadas para facilitar a los programadores, adaptar la seguridad en las aplicaciones web
existentes.
![Page 45: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/45.jpg)
Actualmente la versión para Java EE se encuentra en la versión 2.1.0 de Setiembre de 2013.
Referencias: https://www.owasp.org/index.php/Esapi#tab=Java_EE
https://code.google.com/p/owasp-esapi-java/
![Page 46: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/46.jpg)
Implementación de Controles
![Page 47: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/47.jpg)
Implementación de Controles
![Page 48: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/48.jpg)
Validate:
getValidDate()
getValidCreditCard()
getValidInput()
getValidNumber()
…
BackendController Business Functions
User Data Layer
PresentationLayer
Validate:
getValidDate()
getValidCreditCard()
getValidSafeHTML()
getValidInput()
getValidNumber()
getValidFileName()
getValidRedirect()
safeReadLine()
…
Validation
Engine
Validation
Engine
![Page 49: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/49.jpg)
getValidInput
java.lang.String getValidInput(java.lang.String context, java.lang.String input, java.lang.String type,
int maxLength, boolean allowNull)
throws ValidationException, IntrusionException
Returns canonicalized and validated input as a String. Invalid input will generate a descriptive ValidationException, and input that is clearly an attack will generate a descriptive IntrusionException.
![Page 50: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/50.jpg)
Parameters:context - A descriptive name of the parameter that you are
validating (e.g., LoginPage_UsernameField). This value is used by any logging or error handling that is done with respect to the value
passed in.input - The actual user input data to validate.
type - The regular expression name that maps to the actual regular expression from "ESAPI.properties".
maxLength - The maximum post-canonicalized String length allowed.
allowNull - If allowNull is true then an input that is NULL or an empty string will be legal. If allowNull is false then NULL or an
empty String will throw a ValidationException.
Returns:The canonicalized user input.
![Page 51: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/51.jpg)
Validator:
Para validar los datos de entrada ingresados por el usuario:
String validatedFirstName = ESAPI.validator().getValidInput("FirstName",
myForm.getFirstName(), "FirstNameRegex", 255, false);
String cleanComment = ESAPI.validator().getValidInput("comment",
request.getParameter("comment"), "CommentRegex", 300, false);
validation rules in the .esapi\validation.properties file
![Page 52: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/52.jpg)
Encode:
encodeForSQL()
encodeForLDAP()
encodeForXML()
encodeForXPath()
encodeForOS()
Encoding
Engine
BackendController Business Functions
User Data Layer
PresentationLayer
Encode:
encodeForHTML()
encodeForHTMLAttribute()
encodeForJavaScript()
encodeForCSS()
encodeForURL()
Encoding
Engine
Codecs:
HTML Entity Codec
Percent Codec
JavaScript Codec
VBScript Codec
CSS Codec
…
Validation
Engine
Decoding
Engine
![Page 53: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/53.jpg)
encodeForHTML
java.lang.String encodeForHTML(java.lang.String input)
Encode data for use in HTML using HTML entity encodingNote that the following characters: 00-08, 0B-0C, 0E-1F, and 7F-9F
cannot be used in HTML.
Parameters:input - the text to encode for HTML
Returns:input encoded for HTML
![Page 54: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/54.jpg)
Encoder:
Para codificar los datos de salida:
String safeOutput = ESAPI.encoder().encodeForHTML( cleanComment );
![Page 55: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/55.jpg)
BackendController Business Functions
User Data Layer
PresentationLayer
ESAPI
Logging
Intrusion
Detection
Tailorable
Quotas
Tailorable
Quotas
Quota Exceeded
Quota Exceeded
Log IntrusionEvent
Log IntrusionEvent
Authentication
UsersUsers
Logout User, Lock AccountLogout User, Lock Account
![Page 56: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/56.jpg)
EnterpriseSecurityException is the base class for all security related exceptions.
All EnterpriseSecurityExceptions have two messages, one for the user and one for the log file.
Method Summary
getLogMessage() Returns a message that is safe to display in logs, but
probably not to users
getUserMessage() Returns message meant for display to users Note that if you are unsure of what set this message, it would probably be a good idea to encode this message before displaying it to the end user.
Codificar también los datos enviados a los logs!
![Page 57: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/57.jpg)
BackendController Business Functions
User Data Layer
PresentationLayer
Crypto:
encrypt() / decrypt()
hash()
seal() / unseal()
sign()
verifySeal()
verifySignature()
Encryptor
![Page 58: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/58.jpg)
encrypt
CipherText encrypt(PlainText plaintext)
throws EncryptionException
Encrypts the provided plaintext bytes using the cipher transformation specified by the property
Encryptor.CipherTransformation and the master encryption key as specified by the property Encryptor.MasterKey as defined in the
ESAPI.properties file.This method is preferred over encrypt(String) because it also allows encrypting of general byte streams rather than simply
strings and also because it returns a CipherText object and thus supports cipher modes that require an Initialization Vector (IV),
such as Cipher Block Chaining (CBC).
![Page 59: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/59.jpg)
Parameters:plaintext - The PlainText to be encrypted.
Returns:the CipherText object from which the raw ciphertext, the IV, the
cipher transformation, and many other aspects about the encryption detail may be extracted.
![Page 60: WHOAMI?...WHOAMI? Oscar Martínez Ruiz de Castilla Chalaco Ingeniero Electrónico Magister en Ciencias de la Computación CISM, C)ISSO OSCP, C|EH, C|HFI, C)PTE, C)PTC, C)SWAE, Tu desarrollador/analista](https://reader035.fdocuments.co/reader035/viewer/2022081403/60afc96c96691962034399cc/html5/thumbnails/60.jpg)