YouTube2Text

Que tu App Funcione NO Significa que Sea Segura (Apps con IA + Supabase) — Transcript

by VademecumIA · 2,574 words · 406 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Hoy en la era de los agentes de la
  2. 0:02inteligencia artificial, cualquiera hace
  3. 0:04una aplicación. Sí, cualquiera hace una
  4. 0:06aplicación, la sube a una web, trabaja
  5. 0:09con su pabase. El tema es la seguridad.
  6. 0:13Ese es el tema, porque sí, cualquiera
  7. 0:16puede hacer una aplicación, pero lo que
  8. 0:19tenemos que también saber hacer es que
  9. 0:21esa aplicación sea segura. En este video
  10. 0:24vamos a hablar de la seguridad en
  11. 0:26nuestras aplicaciones, porque cuando ya
  12. 0:29nuestra aplicación está en producción,
  13. 0:30es decir, estamos recibiendo mensajes de
  14. 0:33clientes, datos de clientes, correos de
  15. 0:35clientes, número de teléfono de
  16. 0:37clientes, de personas reales, datos
  17. 0:40reales de personas reales, necesitamos
  18. 0:43garantizar la seguridad de esos datos.
  19. 0:45Esto no es menor. Hay una normativa de
  20. 0:48que los datos se deben garantizar y que
  21. 0:50la responsabilidad de garantizar esos
  22. 0:52datos es del dueño de la aplicación.
  23. 0:54Entonces, esto es un punto no menor.
  24. 0:57Cuando creamos una aplicación, tenemos
  25. 0:59que garantizar que esa aplicación sea
  26. 1:01segura. Ahora, ¿cómo garantizamos?
  27. 1:04No hay una aplicación cero riesgo, eso
  28. 1:07no existe, pero sí podemos minimizar los
  29. 1:10riesgos de ataque, sí podemos tratar de
  30. 1:14cerrar todas las ventanas y de poner
  31. 1:16candado a todas las puertas que se
  32. 1:18pueden abrir, no significa que alguien
  33. 1:20no lo pueda romper a ese candado, pero
  34. 1:22por lo menos nosotros garantizamos en
  35. 1:24poner los candados a todas las ventanas
  36. 1:27y por otro lado hacer backup de nuestra
  37. 1:29información, ¿sí? poder tener una un
  38. 1:33backup de todos los datos que nosotros
  39. 1:34vamos cargando. Y yo entiendo que vos me
  40. 1:37digas, Lore, yo no sé nada de
  41. 1:39ciberseguridad, yo no sé nada de
  42. 1:41programación. Primero te invito a que
  43. 1:43mires el video, que entiendas los puntos
  44. 1:45claves que necesitas para poder hacer tu
  45. 1:48aplicación segura y luego yo te voy a
  46. 1:51dejar el prometo para que vos puedas
  47. 1:54utilizar ese prom y pedirle a la
  48. 1:56inteligencia artificial que te haga
  49. 1:57todas las pruebas necesarias a tu
  50. 1:59aplicación que te la construyo. Además,
  51. 2:02te voy a dejar una skill para que
  52. 2:05también puedas activar esa skill en
  53. 2:07Cloud Code, en CHGPT, en la inteligencia
  54. 2:10artificial que trabajes. Te voy a dejar
  55. 2:11esa skill para que la llames a esa skill
  56. 2:14y le digas que someta tu aplicación a
  57. 2:17las pruebas necesarias para que sea una
  58. 2:19aplicación segura. Vamos al video.
  59. 2:22Entonces, en el video primero entendemos
  60. 2:23de qué se trata e todo esto, de la
  61. 2:26seguridad de tu aplicación y luego te
  62. 2:28doy las herramientas necesarias para que
  63. 2:30vos puedas realmente tener una
  64. 2:32aplicación segura. Primero tenemos que
  65. 2:34definir qué es lo que vamos a proteger,
  66. 2:38que ver se los tenemos que proteger. Por
  67. 2:40ejemplo, tenemos que proteger
  68. 2:42documentos, tenemos que proteger los
  69. 2:44datos, los chat de las conversaciones,
  70. 2:46tenemos que proteger las claves, las
  71. 2:49credenciales, los clientes. Entonces,
  72. 2:52hay acá un punto que es fundamental.
  73. 2:54Primero, si no es necesario, no se
  74. 2:58recolecta. Esa es la primer ley. Si yo
  75. 3:00no necesito DNI o no necesito datos
  76. 3:04sensibles de los clientes, no lo
  77. 3:06recolectamos. Primer punto. Entonces, lo
  78. 3:09que tengo que definir en un primer paso
  79. 3:12es mi aplicación. ¿Qué va a tener? Va a
  80. 3:14tener estos datos sensibles. Para cada
  81. 3:17dato tenemos que responder la siguiente
  82. 3:19pregunta. ¿Qué información guardamos?
  83. 3:22¿Para qué necesitamos esa información?
  84. 3:24¿Quién puede ver esa información? ¿Qué
  85. 3:26daño podría ocurrir si se filtra?
  86. 3:29Entonces, la regla más sencilla que
  87. 3:31tenemos en este caso es guardar
  88. 3:33solamente lo necesario, pedirle al
  89. 3:35cliente solamente lo necesario. Si la
  90. 3:38aplicación puede funcionar sin sin un
  91. 3:41quid, sí lo pedimos. Sí, eso porque el
  92. 3:44DNI es uno de los datos más sensibles.
  93. 3:46Entonces, cuanto menos datos sensibles
  94. 3:48nosotros pedimos de nuestro cliente,
  95. 3:50menor va a ser el riesgo. En el caso de
  96. 3:53pedirlo, bueno, definirlo primero para
  97. 3:56qué necesitamos. Y acá nosotros es
  98. 3:58fundamental que podamos tener dentro de
  99. 4:01nuestra aplicación las políticas de
  100. 4:03privacidad y las condiciones de
  101. 4:05servicio. Entonces, cuando nosotros
  102. 4:07creamos una aplicación, tenemos que
  103. 4:09definir cuáles son las políticas de
  104. 4:11privacidad y cuáles son las condiciones
  105. 4:13de servicio que nosotros vamos a tener
  106. 4:15dentro de nuestra aplicación. Y el
  107. 4:17cliente cuando ingresa debe aceptar esas
  108. 4:21políticas de privacidad y esas
  109. 4:22condiciones de servicio. El segundo
  110. 4:25punto que tenemos que tener también
  111. 4:28nosotros claro es esta estas diferencias
  112. 4:33entre lo que es autentificación y
  113. 4:36autorización. ¿Cuál es la diferencia?
  114. 4:38Porque entre los dos conceptos e suelen
  115. 4:41confundirse, pero realmente cumplen
  116. 4:43funciones diferentes. Si la
  117. 4:46autentificación puede responder eh quién
  118. 4:49es la persona. Cuando el usuario inicia
  119. 4:51sesión con un correo, con una
  120. 4:52contraseña, a través de de un enlace que
  121. 4:56nosotros le mandamos, la aplicación está
  122. 4:58verificando su identidad. La
  123. 5:00autorización responde a otra cosa,
  124. 5:03responde a qué es lo que esa persona
  125. 5:05puede hacer dentro de nuestra
  126. 5:07aplicación. Por ejemplo, puede tener el
  127. 5:10rol administrativo, puede tener un rol
  128. 5:13de comprador, un rol de vendedor, un rol
  129. 5:15de cliente. Entonces, acá yo tengo que
  130. 5:18diferenciar entre la autentificación y
  131. 5:22la autorización que nosotros le damos a
  132. 5:24esa persona dentro de nuestra
  133. 5:27aplicación. Supa base puede ayudarnos
  134. 5:30con la autentificación, pero para
  135. 5:33proteger la información de la base de
  136. 5:35datos necesitamos reglas, ¿sí?, de
  137. 5:39autorización. Entonces, esas reglas de
  138. 5:41autorización eh son fundamentales que
  139. 5:44cuando nosotros creamos nuestra
  140. 5:46aplicación podamos entender acá. Acá lo
  141. 5:50primero que tenemos, porque esto es un
  142. 5:51hueco que generalmente suele fallar si
  143. 5:55cuando creamos una aplicación. ¿Y qué
  144. 5:57qué es lo que suele pasar? Por ejemplo,
  145. 5:59el rol del cobrador puede ver lo que
  146. 6:02hace el rol del vendedor. Quedan
  147. 6:04ventanas abiertas y que cualquier
  148. 6:07persona puede entrar y ver lo que pasa
  149. 6:09en otro rol que no tiene permitido.
  150. 6:12Entonces, acá no solamente el detalle
  151. 6:15está en que tengamos roles definidos,
  152. 6:19sino que cada rolar
  153. 6:22al otro. ¿Sí? Entonces, no solamente es
  154. 6:25que la persona que yo le estoy asignando
  155. 6:27un rol pueda entrar y ver sus cosas,
  156. 6:30sino que también tenga prohibido ver
  157. 6:33otros datos. Entonces, ahí es donde
  158. 6:36generalmente la mayoría de las
  159. 6:37aplicaciones hechas con inteligencia
  160. 6:39artificial fallan y queda una ventana y
  161. 6:42un hueco muy importante en el cual no
  162. 6:45cerramos la seguridad de los roles.
  163. 6:48Entonces, primero dentro de su pace
  164. 6:51tenemos que tener activado, ¿sí?, el
  165. 6:53RLS, que ahora vamos a ver. Tenemos que
  166. 6:56definir las filas, qué filas puede leer,
  167. 6:59qué filas puede crear, qué filas pueda
  168. 7:01modificar, qué filas pueda eliminar.
  169. 7:03Esto es fundamental, que cada tabla en
  170. 7:07su pace tenga sí eh designado el RLS
  171. 7:13para que nadie que no tenga permiso
  172. 7:15pueda entrar a la base de datos y pueda
  173. 7:18modificar esas datas. Entonces, acá
  174. 7:20tenemos dos cuestiones muy importantes
  175. 7:23que tenemos que entender. Por un lado,
  176. 7:24la autentificación, que es los datos que
  177. 7:27la persona tiene que poner para poder
  178. 7:29ingresar a la aplicación y por otro
  179. 7:31lado, el rol que tiene dentro de nuestra
  180. 7:33aplicación. Y ese rol también tiene que
  181. 7:36tener ciertas prohibiciones, por
  182. 7:38ejemplo, que no pueda entrar en el rol
  183. 7:40de administrador o en el rol de
  184. 7:43cobrador o en el rol de contable. ¿Sí?
  185. 7:46Entonces, tenemos autorización, tenemos
  186. 7:49autentificación. Otro punto clave muy
  187. 7:52importante dentro de nuestras
  188. 7:54aplicaciones son las credenciales, ¿sí?
  189. 7:58las claves y las credenciales. Este
  190. 8:01punto es fundamental porque acá nosotros
  191. 8:03lo que tenemos que garantizar es que
  192. 8:06ninguna clave y que ninguna credencial
  193. 8:09esté público, que es decir que cualquier
  194. 8:12persona puede verlo. Tienen que estar
  195. 8:15alojadas dentro de un servidor seguro.
  196. 8:20Esto es clave, es fundamental y esto es
  197. 8:22también un error que suele suceder
  198. 8:25cuando la inteligencia artificial nos
  199. 8:27crea las aplicaciones. Entonces, ningún
  200. 8:29dato, ninguna credencial, nada debe
  201. 8:32estar como público. Y acá hay un detalle
  202. 8:34muy importante también. Cuando nosotros
  203. 8:37creamos una aplicación, nunca, pero
  204. 8:40nunca, nunca nosotros debemos poner
  205. 8:43APIs, credenciales, inicio de sesión,
  206. 8:45datos de usuario, contraseñas dentro del
  207. 8:48chat. Eso no lo tenemos que hacer.
  208. 8:50Nosotros trabajamos a través de datos
  209. 8:54externos donde nosotros cargamos las
  210. 8:56credenciales, las API, todo lo demás,
  211. 8:58pero no se lo ponemos en el chat. Esto
  212. 9:00es fundamental. El chat nunca tiene que
  213. 9:02traer la información de credenciales, de
  214. 9:05API y de datos. Entonces, nosotros ahí
  215. 9:07también estamos garantizando la
  216. 9:09seguridad de nuestras API, de nuestro
  217. 9:11usuario, de nuestra contraseña, ¿sí?
  218. 9:13para que esto no quede expuesto en un
  219. 9:15chat con la inteligencia artificial,
  220. 9:17sobre todo si nosotros estamos
  221. 9:19trabajando con modelos gratuitos.
  222. 9:21Entonces, las claves y credenciales
  223. 9:23nunca deben estar puestas de público.
  224. 9:27Sí, por ejemplo, una API de Open
  225. 9:30Chemini, Open Router, servicios de
  226. 9:32correo y otras plataformas nunca deben
  227. 9:34quedar público, siempre deben estar
  228. 9:37protegidas. Entonces la public de
  229. 9:40suabase sí está pensada para utilizarse
  230. 9:44en una aplicación pública. Puede
  231. 9:46aparecer en el navegador, pero su acceso
  232. 9:49debe ser limitado a través de el RLS
  233. 9:53para permisos mínimos. Las claves y las
  234. 9:57var las claves y los secretos deben
  235. 10:00guardarse dentro de las variables del
  236. 10:03entorno.
  237. 10:05Entonces, las variables las cargamos a
  238. 10:07través de variables del entorno. En
  239. 10:09Netlifly tenemos esa posibilidad de
  240. 10:11cargar todas las APIs y credenciales a
  241. 10:13través de las variables del entorno.
  242. 10:14Bien, no estás entendiendo esto porque
  243. 10:17Lore, yo no soy programadora, yo no
  244. 10:19entiendo lo que me estás hablando. Bien,
  245. 10:21¿qué es lo que vamos a hacer? Yo lo que
  246. 10:22quiero que a vos te quede claro es estos
  247. 10:25puntos que tenemos que tener, que
  248. 10:27estuvimos viendo hasta ahora, ¿sí? que
  249. 10:30vos puedas entender los puntos a tener
  250. 10:33en cuenta. Entonces, hasta ahora lo que
  251. 10:35nosotros vimos son los datos que debemos
  252. 10:38proteger, lo que vimos es la diferencia
  253. 10:41entre autentificación y autorización y
  254. 10:43que todas las claves y las credenciales
  255. 10:46se cargan a través de variables del
  256. 10:48entorno. Eso es lo que vos tenés que
  257. 10:50definir como tu estructura de seguridad.
  258. 10:52¿Para qué? Para crear un prom, para
  259. 10:54darle los datos, que es lo que nosotros
  260. 10:56ahora vamos a hacer. Pero yo quiero que
  261. 10:57vos entiendas, ¿sí? antes de darle un
  262. 10:59prom o antes de crear una skill para que
  263. 11:02proteja o para que realice la protección
  264. 11:04a tu aplicación, es que vos puedas
  265. 11:06entender qué es lo que tenemos que
  266. 11:08proteger. Entonces, si nosotros
  267. 11:10entendemos a nuestra API, la entendemos
  268. 11:13como que tenemos, ¿sí?, los usuarios de
  269. 11:15entrada. Tenemos el código de la
  270. 11:17aplicación, el HTML, que la inteligencia
  271. 11:19artificial me realiza, el Frontier, ese
  272. 11:22Frontier tiene que estar limpio, ese
  273. 11:24código HTML tiene que estar limpio. A su
  274. 11:27vez entendemos que dentro de una
  275. 11:29aplicación tenemos diferentes APIs o
  276. 11:32diferentes llaves de accesos y
  277. 11:33credenciales y que trabajamos también
  278. 11:36con Supase donde se van a alojar los
  279. 11:39datos que vamos a cargar dentro de
  280. 11:41nuestra aplicación. Sí, tenemos que
  281. 11:42entender que todo este conjunto es un
  282. 11:45conjunto que hay que proteger, la
  283. 11:48seguridad del fronter y de las APIs. Eh,
  284. 11:51esto es lo que nosotros tenemos que eh
  285. 11:54poder proteger. Cuando nosotros
  286. 11:56iniciamos sesión en una cuenta, tenemos
  287. 11:59el inicio sesión, es decir, el login y
  288. 12:02eso necesitamos tener un doble factor,
  289. 12:05un segundo factor. Es decir, si yo tengo
  290. 12:08un inicio de sesión como admin, lo ideal
  291. 12:11sería que podamos tener un segundo
  292. 12:13factor en el admin, un segundo factor en
  293. 12:15el inicio de la base de datos, un
  294. 12:17segundo factor en el inicio del hosting.
  295. 12:20Eso es fundamental. ¿Para qué? para que
  296. 12:23me avisen mi teléfono si alguien está
  297. 12:24entrando dentro de admin, si alguien
  298. 12:26está entrando a mi base de datos, los
  299. 12:29permisos dentro de los roles también, si
  300. 12:32es un rol importante dentro de la
  301. 12:33aplicación también que pueda tener el
  302. 12:36segundo factor. Otra cosa es que cuando
  303. 12:39salgamos de la aplicación se cierre
  304. 12:41inmediatamente el inicio de sesión, que
  305. 12:43no quede abierto. Eso también es un
  306. 12:46punto importante. Entonces, cuando
  307. 12:48creamos una aplicación y al salir de esa
  308. 12:50aplicación que inmediatamente si me pida
  309. 12:53revocar el acceso. Son puntos para tener
  310. 12:56en cuenta, sobre todo en la cuenta de
  311. 12:58los administradores. La cuenta de los
  312. 13:00administradores donde está cargada toda
  313. 13:02la información de la app, que tengamos
  314. 13:04en cuenta tener el segundo factor, los
  315. 13:06roles con permisos mínimos y que cuando
  316. 13:09se salga de la aplicación se cierre la
  317. 13:11sesión. El punto seis sí es la cadena
  318. 13:15que nosotros tenemos que dar. Entonces,
  319. 13:17tenemos que crear el código, si tenemos
  320. 13:19que ver la versión, tenemos que hacer un
  321. 13:22escaneo de vulnerabilidades,
  322. 13:25tenemos que escanear todas las posibles
  323. 13:28ventanas y fallas que pueda tener
  324. 13:30nuestra aplicación. Tenemos que hacer
  325. 13:33pruebas y este entorno tiene que ser
  326. 13:35pruebas por separado y tenemos que tener
  327. 13:37si un artefacto verificado. Eso es
  328. 13:40fundamental. Entonces, menos paquete,
  329. 13:43menos superficie de ataque. El séptimo
  330. 13:45punto de configuración es el hosting.
  331. 13:48¿Sí? Entonces, nosotros tenemos que ver
  332. 13:50dentro de nuestro hosting también todas
  333. 13:53las pruebas de seguridad, porque si
  334. 13:54nosotros tenemos usuarios reales,
  335. 13:56estamos trabajando dentro de producción
  336. 13:58con usuarios reales, debemos hacer la
  337. 14:00validación ya una vez que está subido al
  338. 14:03hosting. Y el último punto de seguridad
  339. 14:05es el backup. Toda aplicación tiene que
  340. 14:08tener un backup. Sí, nosotros tenemos
  341. 14:11que poderar sí, la base de datos en el
  342. 14:14caso que nosotros tengamos nuestra base
  343. 14:16de datos en supa base y supa base un
  344. 14:19ataque, no voy a poder restaurar con
  345. 14:20eso. Entonces, lo ideal es tener una
  346. 14:24base de datos alojada, por ejemplo, en
  347. 14:27un alojamiento interno como hiph hop,
  348. 14:30donde se pueda subir, sí, los datos en
  349. 14:33esa base de datos y eh nosotros podamos
  350. 14:36hacer una copia de seguridad diaria,
  351. 14:39porque si solo estoy trabajando en forma
  352. 14:40de producción todos los días, necesito
  353. 14:42hacer una copia de seguridad diaria y
  354. 14:44que se aloje, ¿sí?, en una cuenta de
  355. 14:47Hitop para eh poder subir toda la base
  356. 14:50de datos y tener ahí una copia de
  357. 14:52seguridad antes que suceda algo, antes
  358. 14:54que tengamos algún problema, bueno,
  359. 14:56podemos tener sí una restauración de
  360. 14:58nuestra base de datos.
  361. 15:02Para terminar, tenemos que entender,
  362. 15:05recordar que la seguridad no es una
  363. 15:07tarea que se realiza una sola vez antes
  364. 15:11de publicar. Cada función nueva, cada
  365. 15:14tabla nueva que nosotros le agregamos,
  366. 15:16cada modificación que hacemos a nuestra
  367. 15:18aplicación, tenemos que volver a
  368. 15:21revisar. Antes de publicar debemos
  369. 15:24comprobar el RLS este activo, que un
  370. 15:28usuario no pueda consultar datos de otro
  371. 15:31usuario ajeno, e que las claves secretas
  372. 15:34estén protegidas, que las entradas se
  373. 15:36validen, que el servidor e no tenga este
  374. 15:40no tenga las claves expuestas, sí, que
  375. 15:43las cuentas administrativas utilicen el
  376. 15:46MFA, es decir, el doble factor. También
  377. 15:50debemos revisar las dependencias,
  378. 15:52separar los ambientes, activar los log,
  379. 15:56las alertas y probar siempre probar las
  380. 16:00copias de seguridad que se estén
  381. 16:02descargando correctamente. una
  382. 16:05aplicación segura no es eh simplemente
  383. 16:09ocultar la base de datos, ¿sí? es que
  384. 16:13podamos identificar correctamente a cada
  385. 16:16persona que ingresa, limitar los
  386. 16:19permisos, guardar solo la información
  387. 16:21necesaria, detectar comportamientos
  388. 16:24extraños si la seguridad no se le agrega
  389. 16:27al final, sino que la seguridad se
  390. 16:29diseña desde el principio. Para hacer
  391. 16:32todo esto, te voy a dejar dos opciones.
  392. 16:34Te voy a dejar un prom para que vos
  393. 16:35puedas con ese promes
  394. 16:38necesarias a tu inteligencia artificial
  395. 16:40con lo que hagas, con Open Code, con
  396. 16:42Cloud Code, con CHGT, que puedas pegarle
  397. 16:44el prom y someter tu aplicación a
  398. 16:46pruebas. Y también te voy a dejar una
  399. 16:48skill que es la skill de seguridad para
  400. 16:52que la llames en el momento necesario.
  401. 16:54Te voy a dejar las dos cosas para que
  402. 16:56realmente puedas hacer todas las pruebas
  403. 16:59de seguridad dentro de tu aplicación. Y
  404. 17:01si este video te sirvió, por favor,
  405. 17:03déjanos un like y suscribite a este
  406. 17:05canal.

About this transcript

This page contains the full transcript of Que tu App Funcione NO Significa que Sea Segura (Apps con IA + Supabase) by VademecumIA, generated from the public captions YouTube serves with the video. The transcript has 2,574 words across 406 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.