Esta sección incluye todo lo que está fuera del código fuente pero aun así es importante para la seguridad del producto que se está creando. Dado que todas las cuestiones incluidas en esta sección no están directamente relacionadas con el código fuente, las hemos separado de las demás secciones.
HTTP
. Esto expone los datos a acceso no autorizado, manipulaciones y posible robo.protocol
de un HTTP Listener Connector (listener-connection
) a HTTP
. Como resultado, las conexiones con HTTP Listener no son seguras.
<http:listener-config name="http_listener_config">
<http:listener-connection host="example.com" port="8080" protocol="HTTP">
...
</http:listener-connection>
</http:listener-config>
tls:context
define un conjunto de configuraciones de conexión TLS. Entre las configuraciones, el elemento tls:trust-store
especifica un archivo que contiene certificados de autoridades de certificación de confianza que un cliente usa para verificar un certificado presentado por un servidor. De forma predeterminada, el motor de tiempo de ejecución de Mule verifica el certificado del servidor para cada conexión TLS.insecure
del elemento tls:trust-store
es true
, los certificados de servidor se aceptan sin verificación.insecure
en true
. Como resultado, el motor de tiempo de ejecución de Mule no verifica el certificado del servidor de ninguna conexión con el contexto TLS denominado demoTlsContext
. Esta conexión es vulnerable a un ataque "man-in-the-middle".
...
<tls:context name="demoTlsContext">
...
<tls:trust-store ... insecure="true" ... />
...
<tls:context/>
...
security
y las definiciones de servers
de destino para una operación API siempre anularán la configuración global respectiva. security
y las definiciones de servers
de destino para una operación API siempre anularán la configuración global respectiva. security
global vacía.security
vacía podría permitir a los atacantes interactuar con puntos finales de API confidenciales y permitirles realizar operaciones que deberían estar restringidas a cuentas de usuario específicas con privilegios específicos.security
global vacía. Las API que implementan esta especificación pueden ser vulnerables al acceso no autorizado o no autenticado a operaciones confidenciales.
{
"openapi" : "3.0.3",
"info" : {
"title" : "My API",
"version" : "1.0.0"
},
"servers" : [ {
"url" : "/"
} ],
"security" : [],
...
}
security
global vacía.security
vacía podría permitir a los atacantes interactuar con puntos finales de API confidenciales y permitirles realizar operaciones que deberían estar restringidas a cuentas de usuario específicas con privilegios específicos.security
global vacía. Las API que implementan esta especificación pueden ser vulnerables al acceso no autorizado o no autenticado a operaciones confidenciales.
openapi: 3.0.3
info:
title: My API
version: 1.0.0
security:
security
vacía para una operación API.security
vacía pueden permitir a los atacantes interactuar con puntos finales de API sensibles y realizar acciones que deberían estar restringidas a cuentas de usuario específicas con privilegios explícitos.security
vacía para una operación confidencial. Esto anula los requisitos de seguridad definidos globalmente y hace que la operación createUsers
sea vulnerable al acceso no autorizado y no autenticado.
{
"openapi": "3.0.0",
"info": {
...
},
"paths": {
"/users": {
"post": {
"security": [],
"summary": "Create a user",
"operationId": "createUsers",
...
}
...
}
}
security
vacía para una operación API.security
vacía pueden permitir a los atacantes interactuar con puntos finales de API sensibles y realizar acciones que deberían estar restringidas a cuentas de usuario específicas con privilegios explícitos.security
vacía para una operación confidencial. Esto anula los requisitos de seguridad definidos globalmente y hace que la operación createUsers
sea vulnerable al acceso no autorizado y no autenticado.
openapi: 3.0.0
info:
...
paths:
/users:
post:
operationId: createUsers
security: []
responses:
'201':
...
security
global.security
inexistente podría permitir a los atacantes interactuar con puntos finales de API confidenciales y permitirles realizar operaciones que deberían estar restringidas a cuentas de usuario específicas con privilegios específicos.security
. Las API que implementan esta especificación pueden ser vulnerables al acceso no autorizado o no autenticado a operaciones confidenciales.
{
"openapi" : "3.0.3",
"info" : {
"title" : "My API",
"version" : "1.0.0"
},
"servers" : [ {
"url" : "https://example.org"
} ],
...
}
security
global.security
inexistente podría permitir a los atacantes interactuar con puntos finales de API confidenciales y permitirles realizar operaciones que deberían estar restringidas a cuentas de usuario específicas con privilegios específicos.security
. Las API que implementan esta especificación pueden ser vulnerables al acceso no autorizado o no autenticado a operaciones confidenciales.
openapi: 3.0.3
info:
title: My API
version: 1.0.0
...
security
para una operación de API.security
pueden permitir a los atacantes interactuar con puntos finales de API sensibles y realizar acciones que deberían estar restringidas a cuentas de usuario específicas con privilegios explícitos.security
para una operación confidencial. Además, sin una definición global de security
, la operación createUsers
es vulnerable al acceso no autorizado y no autenticado.
{
"openapi": "3.0.0",
"info": {
...
},
"paths": {
"/users": {
"post": {
"summary": "Create a user",
"operationId": "createUsers",
...
}
...
}
}
security
para una operación de API.security
pueden permitir a los atacantes interactuar con puntos finales de API sensibles y realizar acciones que deberían estar restringidas a cuentas de usuario específicas con privilegios explícitos.security
para una operación confidencial. Además, sin una definición global de security
, la operación createUsers
es vulnerable al acceso no autorizado y no autenticado.
openapi: 3.0.0
info:
...
paths:
/users:
post:
operationId: createUsers
responses:
'201':
...
securitySchemes
.securitySchemes
especifica los mecanismos de seguridad que pueden usarse globalmente o que pueden usar operaciones API específicas.securitySchemes
generalmente se especifica en el objeto components
reutilizable y se hace referencia a ella de forma global o mediante operaciones específicas para dictar los requisitos de seguridad para la interacción.securitySchemes
.
{
"openapi" : "3.0.3",
"info" : {
"title" : "My API",
"version" : "1.0.0"
},
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
...
}
}
}
securitySchemes
.securitySchemes
especifica los mecanismos de seguridad que pueden usarse globalmente o que pueden usar operaciones API específicas.securitySchemes
generalmente se especifica en el objeto components
reutilizable y se hace referencia a ella de forma global o mediante operaciones específicas para dictar los requisitos de seguridad para la interacción.securitySchemes
.
openapi: 3.0.3
info:
title: My API
version: 1.0.0
components:
schemas:
GeneralError:
type: object
properties:
...
security
podrían permitir a los atacantes interactuar con puntos finales de API confidenciales y permitirles realizar operaciones que deberían estar restringidas a cuentas de usuario específicas con privilegios específicos.security
con seguridad opcional mediante el elemento {}
. Las API que implementan esta especificación pueden ser vulnerables al acceso no autorizado o no autenticado a operaciones confidenciales.
{
"openapi" : "3.0.3",
"info" : {
"title" : "My API",
"version" : "1.0.0"
},
"servers" : [ {
"url" : "/"
} ],
"security" : [ {}, { "oauth_auth" : ["write","read" ]} ],
...
}
security
podrían permitir a los atacantes interactuar con puntos finales de API confidenciales y permitirles realizar operaciones que deberían estar restringidas a cuentas de usuario específicas con privilegios específicos.security
con seguridad opcional mediante el elemento {}
. Las API que implementan esta especificación pueden ser vulnerables al acceso no autorizado o no autenticado a operaciones confidenciales.
openapi: 3.0.3
info:
title: My API
version: 1.0.0
security:
- {}
- oauth_auth:
- write:users
- read:users