Lecciones de la enseñanza de la ciberseguridad: semana 8
Como había mencionado anteriormente, este año voy a volver a la escuela. No para tomar clases, sino para dictar un curso en mi alma mater, Fanshawe College. Hice esto hace una década y pensé que era interesante, así que estaba emocionado de intentarlo de nuevo. Además, después de que un amigo mencionó que su hijo quería aprender Python, desarrollé una Introducción a Python dirigida a estudiantes de secundaria a los que enseño semanalmente. Pensé que esto sería un buen forraje para el Estado de Seguridad. Entonces, siempre que tenga algo interesante para discutir, espere encontrarlo aquí.
Tenemos muchos modismos en inglés que implican saltar: «salto de fe», «salto en el extremo profundo», «salto en la oportunidad», «salto con ambos pies». Parece que no tenemos nada similar que involucre ganancias pequeñas e incrementales. Supongo que hay una razón por la que decimos «¡Ve a lo grande o vete a casa!» La pregunta es… ¿por qué hay tanto salto? ¿Quién tiene un taburete cuando lo necesitas?
Sobrecarga de información
El mundo está lleno de información. Según estadísticas de Agencia Omnicore, constantemente se crean nuevos contenidos, independientemente de su vigencia. Sus datos de octubre de 2020 incluyen las siguientes estadísticas:
- Cada segundo se suben 4.000 fotos a Facebook.
- Casi 35,000 instantáneas se envían en Snapchat cada segundo.
- Hay 20 millones de ofertas de trabajo abiertas en LinkedIn, que ven 55 nuevas aplicaciones cada segundo.
- Hay más de 5.000 tweets cada segundo en Twitter.
- Más de 8 horas de secuencias de video se suben a YouTube cada segundo.
- Cada segundo se suben 995 fotos a Instagram.
Eso es mucha información, mucho ruido y muchos datos para procesar. Tal vez no todo lo que se publica sea informativo para usted, pero puede serlo para otros. Mi principal interacción con las redes sociales en estos días es publicar reseñas de películas en Twitter y fotos de comida en Facebook. Me gustaría esperar que alguien se beneficie de mis reseñas de películas o encuentre una nueva receta gracias a mí, pero no estoy seguro de a cuántas personas les importa que cocine champiñones asados y los ponga en tacos.
Mi punto, sin embargo, no es que sea un cocinero increíble, sino que hay tanto que aprender y absorber, que es imposible aprender todo. Por mucho que me entretenga en la cocina, no soy ni seré nunca chef. No puedo recitar una receta de galletas. Sin embargo, puedo hablarte sobre la regla 1, 2, 3: cada buena galleta comienza con la base de 1 parte de azúcar, 2 partes de grasa y 3 partes de harina. Nunca memorizaré los millones de recetas de galletas que puedes encontrar en línea y no puedo decirte qué tan buena será una galleta mirando los ingredientes, pero tengo los cimientos del conocimiento para hacer galletas en esa regla 1, 2, 3 .
Construyendo una base sólida
Vi un hilo de Twitter el otro día sobre la memorización de números de puerto y la validez de la misma.
La mayoría de la gente dijo que era inútil porque tienes acceso a Google. Creo que hay excelentes ejemplos de dónde se puede requerir esa información cuando no tiene acceso a Google (por ejemplo, redes con espacios de aire), pero incluso si tiene Google, no estoy de acuerdo con la mayoría de las personas en ese hilo. Para muchas personas, memorizar números de puerto puede ser inútil, pero definitivamente hay áreas, y la ciberseguridad es una de ellas, en las que debe conocer los conceptos básicos.
No será eficaz en su trabajo si tiene que dejar de mirar constantemente su instancia de Wireshark para averiguar para qué se usa un puerto o para mirar una especificación de protocolo. Si no puede decirme los puertos utilizados para HTTP, SSH, RDP y algunos otros en una entrevista, probablemente no me impresione mucho. Si no puede decirme por qué FTP usa dos puertos y cómo se usan, es probable que tampoco me impresione… Creo que estos son conceptos básicos que debe comprender si trabaja en redes o ciberseguridad. Son piezas de conocimiento fundamental sobre las que puedes construir. ¿Espero que conozcas todos los puertos? Definitivamente no… pero definitivamente espero lo básico.
Mientras diseñaba los dos cursos que estoy enseñando, uno dirigido a estudiantes de secundaria que buscan aprender programación básica y otro para estudiantes universitarios en su último semestre, los abordé desde el punto de vista de sentar las bases. El objetivo de cada semana era construir sobre la semana anterior. No hay saltos y límites en el curso. No hay necesidad de saltar en el extremo profundo. Es un simple taburete para pasar de un concepto a otro. Los temas no se enseñan a un nivel increíblemente complejo, pero sí lo suficiente para que en el futuro los estudiantes tengan el conocimiento para construir su base. Les di la regla de masa para galletas 1, 2, 3 y cómo la usan depende de ellos.
Sin embargo, cometí un error. En el curso de Python, tuve que pasar de la programación a la programación de redes. Comencé con una secuencia de comandos simple para abrir una página web a través de HTTP y luego, como quería entrar en un poco más de complejidad con socket.py e introducir un protocolo binario, los presenté a NTP. Pensé que este era un paso lógico cuando estaba diseñando el campo, pero resultó que les estaba pidiendo que de repente saltaran al fondo. Estos son estudiantes de secundaria, no están en un programa informático dedicado. No obtuvieron protocolos binarios, banderas representadas por bits, estructuras de datos estáticas en formato de paquete y tantos otros aspectos. Olvidé esa regla clave, construir sobre una base sólida.
Construcción de cimientos de apoyo
Para los empleadores, es fundamental que apoyemos la creación de cimientos. Uno de los sistemas con los que trabaja mi equipo implica mucha entrada manual, pero también tiene una API. Siempre recibo quejas de nuevos empleados cuando descubren que no tienen acceso inmediato a la API. Siento que la API es una barrera para construir una base sólida. No se familiariza con el proceso y el sistema si no lo ha seguido paso a paso. Sé que el miembro del equipo tendrá un rendimiento inferior al de sus compañeros inicialmente y lo acepto. Cuando empiecen a usar la API, tendrán una base más sólida que la que habrían tenido y estoy dispuesto a aceptar esa producción inicial reducida porque espero que pague dividendos en el futuro.
Cuando los nuevos empleados están comenzando, es importante que obtengan el apoyo que necesitan, particularmente durante una pandemia cuando es más probable que trabajen en forma remota. Si está contratando para un puesto de nivel de entrada o contratando a un pasante, asegúrese de que obtenga esas habilidades fundamentales. En mi juventud, e incluso en los primeros cursos que diseñé hace más de una década, creía firmemente en arrojar a las personas al fondo y dejar que se las arreglaran. Yo era un gran fanático de hundirme o nadar y el desarrollo personal. Tal vez me haya suavizado en mi mediana edad, pero creo que me he vuelto más sabio. No creo que la educación y la formación deban ser estresantes. Creo que debería tratarse de alentar esa base y ayudar a construirla.
Por lo tanto, deje que los empleados sénior salten al fondo, personas que ya han desarrollado esas habilidades fundamentales y están preparadas para luchar porque tienen esa base sobre la cual construir. En su lugar, debe dar el paso… dar un salto de fe en que sus nuevos empleados llegarán a donde necesitan si les proporciona un taburete en lugar de un empujón.