CSP Builder
Convierte los hosts que cside observa en tu sitio en una cabecera Content-Security-Policy que puedes desplegar, en Protection > CSP Builder.
CSP Builder convierte los hosts que cside observa en tu sitio en una cabecera Content-Security-Policy que puedes desplegar. Se encuentra en Protection > CSP Builder en la barra lateral, junto a CSP Violations.
Escribir una Content Security Policy a mano exige conocer cada host desde el que cargan tus paginas, incluidos los que tus proveedores cargan en tu nombre. cside ya observa esas cargas, asi que el builder parte de lo que realmente ocurrio en tu sitio en lugar de un archivo en blanco.
CSP Builder se esta habilitando de forma gradual. Si aun no lo ves en tu barra lateral, contacta a support@cside.dev para habilitarlo en tu equipo.
El builder genera la cabecera. Nunca la envia por ti y nunca bloquea nada en tu sitio. Tu copias la cabecera en la configuracion de tu propio servidor, CDN o framework, y es tu servidor el que la aplica.
Elegir un dominio
Al abrir CSP Builder desde el nivel de equipo veras tus dominios con una columna Script data. Los dominios marcados como Needs setup aun no tienen datos de scripts, y siguen siendo seleccionables: esa pagina te muestra como instalar el script de monitorizacion. Selecciona cualquier fila para abrir el builder de ese dominio.
Dentro del builder, el desplegable de dominios en la parte superior cambia de dominio sin salir de la pagina.
La politica sugerida
El bloque en la parte superior de la pagina es la respuesta que buscabas: la cabecera completa, reconstruida en vivo a medida que haces cambios. Contiene dos lineas, y necesitas ambas:
Content-Security-Policy(oContent-Security-Policy-Report-Only), tu politicaReporting-Endpoints, que es lo que hace que las violaciones lleguen a tu panel
Copialas con el boton junto al bloque. Copiar solo la primera linea te da una politica que funciona pero que no informa nada a cside.
La direccion de reporte se construye para el dominio concreto en el que estas, y cambia segun si cside hace de proxy de ese dominio. Copiala siempre desde la pagina en vez de montarla tu, o los reportes se descartaran en lugar de archivarse mal.
Las politicas largas se recortan a las primeras lineas bajo un degradado. Selecciona Show para leerla entera. Copiar y cambiar de modo funcionan aunque este recortada.
Primero report-only, despues enforce
El selector Report-only / Enforce encima del bloque elige que nombre de cabecera copias. El cuerpo de la politica es identico en ambos.
Despliega primero la cabecera report-only. Los navegadores informaran de lo que la politica habria bloqueado sin bloquear nada, y esos reportes llegan a CSP Violations para que veas lo que se te paso. Cuando esa vista este limpia, vuelve, cambia a Enforce y despliega la cabecera que si aplica.
Revisar directivas
cside rellena siete directivas a partir de lo que observa: script-src, connect-src, img-src, style-src, frame-src, font-src y media-src. Cada una tiene su pestana y las revisas de una en una. El recuento bajo la politica siempre cuenta la cabecera completa, no solo la pestana en la que estas.
Cada pestana lleva una marca:
| Marca | Que significa |
|---|---|
| Un punto | Sin revisar. Cada host que cside observe mas adelante en este dominio se permite automaticamente en esta directiva |
| Un check | Revisada y guardada. La directiva queda fijada a los hosts que aprobaste |
| Atenuada, “no data” | cside no ha visto trafico de este tipo en este dominio, asi que no hay nada que revisar |
Revisar una directiva es lo que impide que siga permitiendo hosts nuevos automaticamente. Ese es el objetivo de recorrer las pestanas: una directiva sin revisar se reconstruye con el trafico actual, asi que un host que aparezca en tu sitio el mes que viene entra en la cabecera sin que nadie lo apruebe. Basta con abrir la pestana y guardar. No hace falta cambiar nada.
Selecciona Save cuando termines con una pestana. Guardar no te mueve de sitio y mantiene tu filtro.
Grupos de hosts
Dentro de una directiva, los hosts se agrupan segun como los clasifica cside, y cada grupo tiene un interruptor masivo en su cabecera salvo donde se indica.
| Grupo | Que significa | Activo por defecto |
|---|---|---|
| First party | Tu propio dominio | Si |
| Known vendors | Un proveedor que cside reconoce como una marca grande y reputada | Si |
| Approved by you | Un hostname que tu equipo aprobo en Resources Inventory | Si |
| Unvetted | Todo lo que cside no pudo atribuir. Este es el grupo para el que existe la revision | Si |
| Blocked by you | Tu equipo bloqueo este host | No |
| Flagged malicious | cside bloqueo este host para todos los clientes | No |
Unvetted, Blocked by you y Flagged malicious no tienen interruptor masivo. La mayoria de los hosts de la mayoria de dominios caen en Unvetted, asi que un solo interruptor reescribiria casi toda tu politica sin que nadie la mirara, y volver a activar un host bloqueado o malicioso deberia ser una decision que tomas host por host con la advertencia delante.
Contraer un grupo solo oculta sus filas. Los hosts conservan el estado en el que los dejaste, siguen contando en el recuento y siguen entrando en la politica guardada. Buscar expande todos los grupos, asi que un host que busques nunca queda oculto tras una cabecera contraida.
Los recuentos de alertas junto a un host son informativos. Una alerta nunca cambia si un host esta activado.
*.csidetm.com y *.csidefd.com estan siempre en la politica y no se pueden desactivar. Una politica que bloqueara el propio script de cside detendria la monitorizacion a partir de la cual se construyo.
Policy options
Encima de la lista de hosts, Policy options activa las palabras clave de origen que puede llevar una directiva. Cuales aparecen depende de la directiva que estes editando:
| Palabra clave | Que hace |
|---|---|
'self' | Permite recursos servidos desde tu propio origen. Activa por defecto y disponible en todas las directivas |
'unsafe-inline' | Permite bloques inline. Se ofrece solo en style-src, donde los estilos inline son habituales. No se ofrece en script-src, porque permitir script inline es precisamente lo que una CSP existe para impedir |
'report-sample' | Incluye un fragmento del codigo bloqueado en cada reporte de violacion. Se ofrece en script-src y style-src, donde ayuda a identificar que se bloqueo |
Anadir un host que cside no ha visto
Selecciona Add a host en la barra de herramientas sobre la lista para anadir un hostname a mano. Usalo para un host que sabes que tu sitio necesita pero que aun no ha aparecido en el trafico, como un proveedor que estas a punto de lanzar o algo que solo carga en una pagina que cside no monitoriza.
Las entradas se validan contra la directiva que estas editando. Los hostnames se aceptan en cualquier directiva, con un comodin *. inicial si lo necesitas. data: y blob: solo se aceptan en img-src, font-src y media-src. Los puertos, rutas, esquemas y palabras clave entrecomilladas se rechazan.
Si ya envias una CSP
Cuando cside ha observado una cabecera Content-Security-Policy en el dominio, aparece un aviso sobre la politica que muestra la que se vio con mas frecuencia en los ultimos 30 dias.
Fusiona nuestra politica con la tuya en vez de sustituir tu cabecera. El builder solo rellena directivas que puede respaldar con trafico observado, asi que una politica generada aqui no dice nada sobre frame-ancestors, form-action, base-uri u object-src. Cambiar toda tu cabecera por esta elimina cada directiva que ya aplicabas y para la que no hacemos ninguna sugerencia.
La politica del aviso es lo que cside observo, no tu configuracion de servidor. Los nonces y las cadenas de consulta se normalizan a comodines, y puede diferir de la cabecera real de cualquier pagina concreta, asi que comparala con tu configuracion en vez de copiarla.
Antes de desplegar
- Despliega primero la cabecera report-only y observa CSP Violations antes de aplicarla
- Recorre todas las pestanas de directivas. El aviso bajo la lista de hosts te dice cuantas siguen sin revisar y cuantos hosts viajan en la cabecera por ello
- Copia las dos lineas, la politica y
Reporting-Endpoints - Fusionala con tu cabecera existente en vez de sustituirla
Paginas relacionadas
- Ajustar tu CSP: reportes de violaciones CSP, limites de retencion y exportacion de reportes
- Anadir cside a tu CSP: que cambiar en una politica que ya mantienes para que el script de cside siga funcionando
- Inventario de recursos: revisa y aprueba hostnames. Los hostnames aprobados llegan aqui en el grupo Approved by you
Thanks for your feedback!