Un framework (o marco de trabajo) es un conjunto de librerías, conceptos y prácticas que facilitan el desarrollo en un ámbito en concreto.
Por simplificarlo, sería como comprar una casa por módulos. Hace que la construcción sea más rápida y tiene cierta flexibilidad, cosa que mejora frente a tener que hacerlo todo a medida.
Algunos módulos serán obligatorios pero muchos otros son opcionales e intercambiables.
Moodle es el LMS (Learning Management System) por excelencia.
Dispone de un gran número de módulos que permiten configurar cada campus de la manera que se requiera.
Su tendencia de uso es creciente, ya que cada día hay la formación online está en auge. Se utiliza tanto en instituciones universitarias como en empresas.
Los diferentes módulos de un framework tienen una cosa en común: Todos están programados en el mismo lenguaje.
Podríamos decir que el lenguaje es la piedra angular del framework, por lo tanto es la base sobre la que se construye, aunque en algunas ocasiones, podemos elegir el lenguaje sobre el que queremos utilizar el framework.
TypeScript es una evolución de JavaScript, que tiene el objetivo de minimizar errores.
Es un lenguaje de programación libre y de código abierto que, principalmente, suma objetos basados en clases y tipos estáticos.
Es uno de los lenguajes de programación más populares en la actualidad gracias al crecimiento de los frameworks de desarrollo web.
**Magento es la herramienta más potente para diseñar tiendas online. **
Es una plataforma de código abierto para comercio electrónico escrita en PHP.
Es una tecnología sumamente compleja, por lo que no es apta para cualquier tipo de tienda.
Prestashop es la alternativa sencilla a Magento.
Permite crear una tienda online con menos control, pero con mucho más tiempo.
Existen nuevas plataformas para crear tiendas mucho más sencillas como por ejemplo, Shopify.
Kotlin es un lenguaje de programación creado en 2011 que funciona con JVM (Máquina Virtual de Java) y se utiliza como lenguaje alternativo a Java en Android.
Google anunció en 2017 durante la conferencia de #IO17 que Kotlin sería uno de los lenguajes principales para el desarrollo de apps.
Orientando a la funcionalidad se centra en la claridad, seguridad y la interoperabilidad. Utiliza frameworks y librerías existentes de Java sin necesidad de crear capas de adaptación.
Se recomienda el uso de la keyword VAL para asegurar la inmutabilidad del código.
COMPROBACIONES DE NULIDADKotlin cuenta con numerosos mecanismos para evitar que podamos acceder a punteros que valgan null y, así, provocar numerosas NullPointerExceptions, uno de los mayores problemas de Java.
Ejemplo:
var cadena:String = "uno"
cadena = null // Error de compilación
Permitir que cadena valga null:
var cadena:String? = "uno"
cadena = null // Ahora SÍ
print(cadena)
Safe Calls
Kotlin cuenta con el ? (Safe Call Operator) para tener la seguridad de que la variable no vale null.
Ejemplo:
var cadena:String? = null
println(cadena?.length)
Elvis Operator
Utilizaremos el operador Elvis para usar un valor por defecto en el caso de que la variable sea null.
Ejemplo:
val l = b?.length ?: -1
filterNotNull
Kotlin cuenta con muchas utilidades que nos simplifican el trabajo en relación a los punteros a null.Si no utilizamos Int? no permitiría introducir ningún valor de null dentro de la lista.
Ejemplo:
val listaConNulos: List<Int?> = listOf(3, 5, null, null, 8)
val listaEnteros: List = listaConNulos.filterNotNull()
Arrays de tipo primitivoKotlin permite utilizar Array y sus métodos de factoría, o bien, permite usar IntArray, DoubleArray y ShortArray.
Ejemplos:
val x: IntArray = intArrayOf(1, 2, 3)
val x: IntArray = IntArray(3) { it + 1 }
En definitiva, el lenguaje de programación Kotlin se compila con Java ya que a nivel de funcionalidad ambos lenguajes son equivalentes.
Sin embargo aporta numerosas ventajas que hacen frente a muchos de los problemas que presenta Java, convirtiéndolo así, en el lenguaje principal de Android.
Drupal es un Sistema de Gestión de Contenidos (CMS) libre y multipropósito.
Todos los módulos están orientados a la gestión de contenidos, pero son bastante personalizables.
Cuando no es posible desarrollar una web con WordPress porque falta potencia, se puede utilizar Drupal.
WordPress es el CMS de PHP más utilizado a nivel internacional para el desarrollo de páginas web corporativas, blogs y cualquier página de información.
Tiene muchas herramientas para posicionar en Google de manera eficiente (SEO).
PHP es uno de los lenguajes que originaron las aplicaciones web.
Se utilizó originalmente para poder llevar las páginas web a otro nivel de funcionalidad, en el que JavaScript estaba justo.
Se suele asociar el uso de PHP a la base de datos MySQL. Son dos tecnologías muy ligadas.
CMS, es decir, Content Management System son plataformas orientadas a la gestión de contenidos.
Tienen una base estricta pero permiten bastante personalización, dependiendo del proyecto que se quiera desarrollar y el CMS elegido.
SQL no es un lenguaje de programación, simplemente es un lenguaje estructurado que se utiliza para hacer consultas a las bases de datos más extendido.
Se usa tanto en bases de datos gratuitas como en bases de datos comerciales.
JavaScript es un lenguaje con una sintaxis similar a Java, pero como lenguajes son muy diferentes.
Es un lenguaje de programación interpretado, orientado a objetos. Dota a las páginas web de funcionalidad.
Es un lenguaje que va actualizando sus versiones constantemente. Las versiones de JavaScript vienen marcadas por el estándar ECMA, por lo que dispone de muchas opciones.
El lenguaje de programación Java, se desarrolla a partir de C.
Es un lenguaje que se ha usado ampliamente en la industria. Destacó a la hora de desarrollar aplicaciones que funcionaran en todos los Sistemas Operativos.
Durante muchos años, ha sido el lenguaje más demandado y utilizado.
C es el predecesor de los lenguajes C++, C# y Java.
Es un lenguaje de nivel muy bajo por lo que se utiliza en dispositivos con muy pocas capacidades.
Actualmente solo se usa en entornos industriales.
C++ es una evolución de C convirtiéndolo en un lenguaje más “amistoso”.
Tiene muchas similitudes con Java.
Actualmente se utiliza en el procesamiento gráfico o de la misma manera que C, en entornos industriales.
C# fue creado por Microsoft a partir de C. Ha estado en constante evolución y mejora.
Es el lenguaje principal tanto para .NET como para .NET Core.
Se pude utilizar tanto para desarrollar aplicaciones de escritorio (.NET), como aplicaciones web (.NET y .NET Core) y aplicaciones móviles (Xamarin).
OSINT (Open Source Intelligence) es la Inteligencia de Fuentes Abiertas.
Se trata de información obtenida de fuentes abiertas y que está disponible para cualquier usuario sin restricciones de ningún tipo.
La información se puede obtener de diferentes fuentes como: blogs, foros, RR.SS, Open Data
Una aplicación es una herramienta que permite a los usuarios realizar una tarea concreta o varias tareas.
Podemos pensar en la aplicación de Calendario de nuestro móvil, que se utiliza para organizar nuestro día a día. Otro ejemplo sería un navegador web, que nos permite acceder a páginas web de todo el mundo.
Programar es dar instrucciones a una máquina (un ordenador, un móvil, un dispositivo conectado a Internet, etc…) a través de un lenguaje que tanto el programador como la máquina entienden.
Existen muchos tipos de lenguajes que se pueden usar en diferentes ámbitos. Se acaban manifestando generando una aplicación, en la mayoría de casos.
Laravel es un framework de código abierto de PHP muy flexible para el desarrollo web, pero no tan complejo como Symfony.
A pesar de que podría considerarse la "versión pequeña" de Symfony, Laravel es el framework de PHP más popular.
Joomla es un Sistema de Gestión de Contenidos (CMS) muy similar a Drupal.
Aporta cierta flexibilidad a la hora de desarrollar un portal web.
Pero, de igual manera que le sucede a Drupal, cada vez se utiliza menos y esto puede deberse a varios factores:
Un Sistema Operativo es un sistema informático que gestiona el hardware del dispositivo.
Nos permite interactuar con elementos físicos clave, como pueden ser:
Un lenguaje es un conjunto de palabras que permiten a los desarrolladores dar órdenes al dispositivo.
Existen numerosos lenguajes de programación y dependiendo de la aplicación que se quiera crear, se deberán utilizar unos u otros.
Muchos lenguajes tienen varios propósitos, es decir, permiten crear varios tipos de aplicaciones. Además, para crear un tipo de aplicación son válidos varios lenguajes.
Una librería o biblioteca es un conjunto de código que ofrece una funcionalidad en concreto.
Por ejemplo, si en un lenguaje como Python, queremos hacer gráficas, podemos usar una librería llamada matplotlib.
Matplotlib nos proporciona una serie de funciones para generar gráficas de barras, de tarta, de líneas, histogramas, etc…
No. La elección de un lenguaje suele depender de:
El Área de Consultoría y Seguridad de una empresa está formado por 3 perfiles principales:
Abogado de Seguridad de la Información
Este perfil se encarga principalmente de establecer políticas internas, cláusulas contractuales y procedimientos que ayuden a preservar la seguridad de la empresa. En caso de que la empresa sufra un ataque es el encargado de la gestión jurídica del mismo.
Técnico de Seguridad de la Información
Las principales funciones del técnico son:
Consultores en Seguridad de la Información
Por último, los consultores se encargan de:
La ISO 27001 es una norma internacional de Seguridad de la Información que pretende asegurar la confidencialidad, integridad y disponibilidad de la información de una organización.
Define cómo planificar, implantar, verificar y controlar un Sistema de Gestión de Seguridad de la Información.
La ISO 27002 es una norma que define una serie de buenas prácticas para la gestión de la Seguridad de la Información.
La diferencia con la ISO 27001 es que habla de la gestión de la información a nivel individual dentro de la organización.
Son las siglas de Sistema de Gestión de la Seguridad de la Información.
Es un conjunto de procedimientos para administrar la información de una empresa garantizando su confidencialidad, integridad y disponibilidad.
Un Técnico NOC (Network Operations Center) se encarga de proteger a nivel de infraestructura la red y garantizan que no haya interrupciones en el servicio.
Monitorean a tiempo real la actividad que se lleva a cabo en la red.
La responsabilidad de un Técnico SOC es proteger la red, webs, aplicaciones, BBDD, servidores y data centers.
Centralizan, monitorizan y priorizan los datos de seguridad de la red de una empresa.
Existen 3 niveles:
Un hacker se caracteriza por contar con un nivel muy alto de conocimientos de informática.
Accede de manera ilegal a sistemas informáticos ajenos y los manipula.
El término de pentester viene de Penetration Tester.
Se dedica a atacar diversos entornos con la intención de descubrir fallos de seguridad o vulnerabilidades, para así, poder prevenir futuros ataques.
Es un equipo humano que se encarga de realizar ataques, controlados y sin causar daño real, para encontrar fallos en la estructura tecnológica de una empresa.
Normalmente se enfocan en un objetivo concreto definido por la empresa.
Un Malware o "Malicious Software" es un programa diseñado para infiltrarse en un sistema con el fin de dañar o robar datos e información.
Suele suplantar a aplicaciones reales o puede ser un complemento que pide instalarse.
Un Técnico de Seguridad SIEM se encarga, principalmente, de prevenir amenazas.
Utiliza un sistema en tiempo real de análisis de alertas de seguridad generadas por las aplicaciones y el hardware de red.
KALI LINUX es un Sistema Operativo Linux orientado al hacking ético y al pentesting.
Está diseñada principalmente para la auditoría y seguridad informática en general.
Cuenta con un gran número de herramientas de código abierto para realizar pruebas de seguridad informática.
Un Técnico de Seguridad en Redes se encarga del mantenimiento general de los equipos informáticos protegiéndolos de ataques o minimizando su repercusión.
Un Arquitecto de Seguridad se encarga de crear estructuras de seguridad complejas para una empresa y garantizar su funcionamiento.
También se dedica a anticipar las actividades de los hackers.
Un Analista de Ciberinteligencia cuenta con conocimientos técnicos que le permite conocer la estructura y los modus operandi de los hackers.
Domina procedimientos, tanto operativos como estratégicos, de la inteligencia tradicional que aplica a la inteligencia informática.
La tecnología SIEM, (Información de Seguridad y Gestión de Eventos), tiene como objetivo principal proporcionar una visión global de la seguridad de la tecnología de la información
Es capaz de detectar rápidamente, responder y neutralizar las amenazas informáticas antes de que lleguen a causar ningún daño.
Un Firewall es uno de los primeros sistemas de protección informática.
Actúa como un filtro que discrimina los datos que deja pasar, o no, entre los dispositivos e internet.
Protege el tráfico entre los servidores.
La tecnología IPS, (Sistema de Prevención de Intrusos), es un software que lleva a cabo el control de acceso en un sistema informática para protegerlo de posibles ataques.
Monitoriza el tráfico de red de un sistema en busca de actividad maliciosa y se encarga de detenerla.
Metasploit es una herramienta muy completa que cuenta con numerosos exploits, es decir, vulnerabilidades conocidas, las cuales, a su vez, cuentan con unos módulos llamados payloads que son los códigos que explotan estas vulnerabilidades.
También dispone de encoders, es decir, códigos de cifrado para evasión de antivirus o sistemas de seguridad.
Un WAF es un Firewall de Aplicaciones Web.
Es un tipo de firewall que supervisa, filtra y bloquea el tráfico HTTP hacia y desde una aplicación web.
Puede filtrar el contenido de aplicaciones web específicas.