Author Archive carenki

Bycarenki

Permanezca Legal

Un hacker ético debe conocer las sanciones por un hackeo no autorizado en un sistema. Ninguna actividad de hacking ético relacionada al pen test de una red o auditoría de seguridad no debe comenzar hasta que en un documento legal firmado se otorgue permiso expreso al hacker ético para llevar a cabo las actividades de hacking en el sistema objetivo. Los hackers éticos necesitan ser juiciosos con sus habilidades de hacker y deben reconocer las consecuencias del mal uso de esas habilidades.

Read More

Bycarenki

Tipos De Pruebas de Penetración

Cuando se realiza una prueba de seguridad o de penetración, un hacker ético utiliza uno o más tipos de pruebas en el sistema.

Read More

Bycarenki

Tecnologías para Hacking y tipos de hackeo

Existen muchos métodos y herramientas para localizar vulnerabilidades, correr Exploits, y comprometer sistemas. Una vez que las vulnerabilidades se encuentran en un sistema, un hacker puede explotar esa vulnerabilidad e instalar software malicioso.

Read More

Bycarenki

Las fases de Hacking Ético

Las fases del Hacking Ético se pueden dividir en cinco fases distintas. Un hacker ético sigue procedimientos similares a los de un hacker malicioso.

Read More

Bycarenki

Terminología del Ethical Hacking

Comprender y poder definir la terminología es una parte importante de la responsabilidad de un CEH. Esta terminología es la forma los profesionales de seguridad como hackers éticos se comunican.

Este “lenguaje” del hacking es necesario como base de los conceptos de capítulos posteriores. A continuación presentaremos una serie de términos con los cuales requiere estar familiarizado para presentar el examen de certificación CEH:

Read More

Bycarenki

¿Qué es lo que hace un Hacker Ético?

Los hackers éticos son motivados por diferentes razones, pero su propósito generalmente es el mismo que el de los Crackers: Tratan de determinar lo que un intruso puede ver en una red o sistema específico,  y ​​lo que el hacker puede hacer con esa información. Este proceso de prueba de la seguridad de un sistema o red se conoce como una prueba de penetración, o pen test.

Read More

Bycarenki

Ethical Hacking, ética y legalidad

La mayoría de la gente piensa que los hackers tienen una extraordinaria habilidad y conocimiento que les permiten introducirse en los sistemas informáticos y encontrar Información valiosa.

El término hacker evoca imágenes de un joven genio de las computadoras que escribe algunos comandos en la pantalla de la computadora y ¡voilà! La computadora arroja contraseñas, números de cuenta, u otros datos confidenciales. En realidad, un buen hacker, o profesional de la seguridad que actúe como un hacker ético, entiende cómo funciona un sistema informático para saber qué herramientas emplear con el fin de encontrar puntos débiles en la seguridad.

En este documento se usarán las mismas técnicas y herramientas de software que muchos hackers utilizan para recopilar datos valiosos y atacar sistemas informáticos.

El objetivo de este primer capítulo es presentarle el mundo de los hackers y definir la terminología utilizada en el ámbito de la seguridad informática. Para ser capaz de defenderse contra los hackers maliciosos, los profesionales de la seguridad deben entender primero cómo emplear las técnicas de hacking ético. Se detallarán herramientas y técnicas utilizadas por los hackers para que las pueda utilizar para identificar riesgos potenciales en sus sistemas.

Un hacker ético actúa como un profesional de la seguridad al realizar pruebas de penetración y deben actuar siempre de manera profesional para diferenciarse de los hackers maliciosos.

Definiendo al Hacking Ético

Como se ha mencionado anteriormente, los hackers éticos siempre deben actuar de forma profesional de forma que se diferencien a sí mismos de los hackers maliciosos. Ganándose la confianza del cliente, solicitando autorización en el acceso de los datos y tomando todas las precauciones para no dañar los sistemas durante las pruebas de pen testing. Este es uno de los caminos en el que los hackers éticos pueden superar el estereotipo de los hackers y ganar la confianza de los clientes.

Comprendiendo el objetivo del Hacking Ético

¿El hacking puede ser ético? ¡Por supuesto que sí!

Los hacker éticos normalmente son profesionales de la seguridad o pentesters que utilizan sus habilidades como hackers para encontrar vulnerabilidades en sus redes y sistemas utilizando las mismas herramientas que un hacker malicioso utiliza para comprometer una red. Cualquier profesional del cómputo puede aprender las habilidades del hacker ético.

En contraparte al hacker ético tenemos a los hackers maliciosos, quienes utilizan herramientas de forma ofensiva para atacar sistemas, redes, así como robar información, realizar ataques DoS (Denegación de servicio), diseminar virus y software malicioso. Otra forma de llamar a los hacker maliciosos es con el término “Cracker”.

Los hackers pueden agruparse en 3 categorías:
Sombrero blanco (White hats): Los “chicos buenos”, los Ethical Hackers
Sombrero negro (Black hats): Los “chicos malos”, los Hackers Maliciosos = Crackers
Sombrero gris (Gray hats): Hackers buenos o malos; dependiendo de la situación.

Tipos de Hacker

Los Hackers Éticos normalmente caen en la categoría de Sombrero blanco, sin embargo es común que profesionales de la seguridad empiecen como de Sombrero Gris, y al adoptar la metodología del Hacker Ético terminen como de sombrero blanco.

Sombrero Blanco

Se les denomina así a los hackers éticos que utilizan sus habilidades para propósitos defensivos. Los hacker de sombrero blanco normalmente son profesionales con conocimientos de hacking y del uso de las herramientas de hacking y utilizan este conocimiento para encontrar vulnerabilidades y corregirlas.

Sombrero Negro

Los de sombrero negro son los “chicos malos”, los hackers maliciosos utilizan su habilidad para obtener acceso no autorizado, una vez obtenido esto, lo utilizan para robar, dañar, impedir el uso de los sistemas a sus propietarios, destruir información u obtener algún beneficio. Esta es la definición de hacker que la mayoría de la gente conoce y que piensa que es. Sin embargo el término que se debe utilizar para ellos es el de Cracker.

Sombrero Gris

Los hackers de sombrero Gris pueden trabajar de forma ofensiva o defensiva, dependiendo de la situación. Es la línea que delimita al Hacker Ético del Cracker.  Los Hackers de sombrero Gris se interesan en las herramientas y técnicas que utilizan los Crackers pero no los utilizan para hacer daño. De hecho muchos hackers de sombrero gris, se auto proclaman Hackers Éticos. Los Sombreros Gris suelen señalar vulnerabilidades o tienden a educar a las víctimas, de modo que las puedan corregir. Estos hackers hacen un favor a sus “víctimas”. Por ejemplo, si se encuentra un fallo de seguridad en un servicio ofrecido por un banco de inversiones, el hacker le está haciendo el favor al banco al darle oportunidad de corregir la vulnerabilidad.

 

** eof **

 

¿Deseas participar en nuestro grupo de estudio para aplicar la certificación CEH? 

Aplicación de medidas para la implantación de la L.O.P.D. en las empresas

Obtendrás información ampliada a la que has leído en este artículo, y material adicional, visita https://ehack.mx/portfolio-view/material-de-estudio-ceh-online/ para más información o ecríbenos a ceh@ehack.mx

 

Ethical Hack

Ethical Hack

 


Fuentes:

“Ethical Hacker”: Imagen cortesía by Stuart Miles en FreeDigitalPhotos.net

Licencia de Creative Commons
Ethical Hacking, ética y legalidad by carenki basado en una obra de CEH is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.

 

Bycarenki

Certified Ethical Hacker v9: El por qué de la teoría

Traemos para tí una versión simplificada de nuestro curso del material de estudio de la certificación CEH de EC-Council

El objetivo de este material es proporcionarte en español la información general que todo CEH debería conocer.

…Pero yo quiero hackear, ¿para qué pierdo el tiempo con teoría?

Si bien, la aspiración de más del 80% de los que se acercan al tema del hacking es “hacer”, “hackear”, “meterse a las computadoras” siempre resulta conveniente documentarse con información acreditada, y porqué no, estudiar un poco.

Puedo darte algunas razones de peso (claro es mi criterio, tú puedes optar por bajarte Kali y empezar a “hackear”):

  1. Conocer la terminología es fundamental, al igual que cualquier área del conocimiento. Entre mejor conozcas y estés familiarizado con los conceptos, más fácil te resultará consultar trabajo de otras personas y, dar a conocer tu conocimiento.
  2. Conocer el significado real de un término (no el que crees que tiene tal o cual término) te diferenciará tarde o temprano cuando quieras formalizar tu labor en el área de la seguridad informática.
  3. Solo conociendo el porqué de lo que haces, podrás utilizar en todo su potencial, modificar o extender la funcionalidad de la(s) herramienta(s) que estés utilizando (es decir, la acción propia de “hackear”)
  4. Como consecuencia del punto anterior, llega un momento en que puedes encadenar herramientas y funciones en una solución extendida o algo totalmente nuevo.
  5. Podrías decir que “en la marcha se aprende” y es cierto, pero también es cierto que consultar la documentación te ofrece un costo / beneficio (en productividad, calidad de la información y tiempo) muy superior al empirismo puro.

Podría argumentar cantidad de razones, pero si las anteriores no te son mínimamente suficiente, el decirte 20 poco cambiará las cosas. En este caso, solo me queda decirte que le des una oportunidad a la lectura de documentación, verás que no será tiempo desperdiciado.

Certified Ethical Hacker

Certified Ethical Hacker

Finalmente cabe señalar que el material que forma esta serie es solo un extracto gratuito, de un curso más amplio y completo, al cual en un momento dado puedes acceder si así lo deseas.

Capítulo 1 – Introducción al Hacking Ético

 

 

¿Deseas participar en nuestro grupo de estudio para aplicar la certificación CEH? 

Aplicación de medidas para la implantación de la L.O.P.D. en las empresas

Obtendrás información ampliada  Y COMPLETA, a la que has leído en este artículo, y material adicional, visita https://ehack.mx/portfolio-view/material-de-estudio-ceh-online/ para más información o ecríbenos a ceh@ehack.mx

 

Ethical Hack

Ethical Hack

 


Fuentes:

“CEH”: Imagen cortesía by EC Council 

Licencia de Creative Commons Temas CEH by carenki basado en una obra de CEH is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.

 

Bycarenki

CISSP: Boletín Informativo para Candidatos

BOLETÍN INFORMATIVO PARA CANDIDATOS

Documento inicial para los interesados en la certificación CISSP

 

Certificación CISSP

Certificación CISSP

La Certificación de Profesional en Sistemas de Información y Seguridad (CISSP) es una acreditación ISO/IEC 17024 ANSI reconocida internacionalmente como un referente en las certificaciones de seguridad, diseñada para los profesionales de seguridad de la información con cinco o más años de experiencia en el área.

La evaluación CISSP mide la competencia del candidato en un tronco común internacionalmente aceptado que miden la competencia en el conocimiento en ocho dominios de seguridad que incluyen:

  1. Manejo de la Seguridad y el Riesgo
  2. Seguridad de Activos
  3. Ingeniería de la Seguridad
  4. Seguridad de las Comunicaciones y Redes
  5. Manejo de Identidades
  6. Pruebas y Evaluación de la Seguridad
  7. Seguridad en las Operaciones
  8. Seguridad en el Desarrollo de Software.

Los ocho dominios de la certificación CISSP CBK® de (ISC)2 proporcionan un marco común neutral de un proveedor aceptado internacionalmente en donde pueden ser discutidas y enseñadas prácticas de seguridad y de la información, y poder avanzar a través de fronteras geográficas y geopolíticas.

El amplio espectro de temas incluidos en CBK® CISSP asegura su relevancia en todas las disciplinas en el campo de la seguridad de la información y el alto nivel de detalle que se provee en cada dominio asegura que el portador de las credenciales poseen la profundidad de conocimiento y las habilidades que se esperan de un profesional de la seguridad con experiencia.

Los poseedores de las credenciales de CISSP de (ISC)2 pueden elevar aún más su posición a través de una de las concentraciones CISSP en gestión, arquitectura o ingeniería.

Así mismo pueden profundizar su conocimiento más allá de CISSP acoplando credenciales tales como Análisis Forense Digital (CCFP), Desarrollo de Software (CSSLP), Autorización de Sistemas (CAP) y Certificación Profesional de Seguridad en la Nube (CCSP).

Este Boletín de Información para el Candidato incluye:

  • Un modelo del examen que resume los principales temas y subtemas dentro de los ocho dominios.
  • Una lista sugerida de referencia
  • Una descripción del formato y de los temas del examen
  • Y una revisión general de las políticas de registro y administración

Con el fin de ser considerado para la credencial CISSP, los candidatos requieren tener por lo menos cinco años de experiencia acumulada pagada a tiempo completo de trabajo profesional en seguridad en dos o más de los ocho dominios del CISSP CBK® de (ISC)2. Los candidatos que actualmente cuentan con certificación activa aparecen en la lista de aprobados de (ISC)2 (Visite la lista completa en www.isc2.org/credential) pueden recibir una exención de un año.

Alternativamente, un título de licenciatura de cuatro años, o equivalente regional, pueden ser sustituidos por un año de experiencia. No más de 1 año de experiencia total puede ser exento.

Los candidatos deberán responder las siguientes preguntas acerca de historia criminal y antecedentes relacionados y proporcionar una explicación a cualquier pregunta respondida de forma afirmativa (cualquiera de tales explicaciones serán evaluados durante el proceso de aprobación).

  1. ¿Alguna vez has sido condenado por un delito grave; un delito menor que implica un delito informático, deshonestidad o repetición de ofensas; o por una Corte Marcial en el servicio militar, o hay un cargo por delito grave, acusación, o información actual pendiente en su contra? (Omita violaciones de tráfico menores y delitos procesados en una corte juvenil)
  2. ¿Alguna vez alguna licencia profesional, certificación, membresía o registro han sido revocados, o alguna vez ha sido censurado o disciplinado por cualquier organización profesional o agencia gubernamental?
  3. ¿Alguna vez has estado involucrado, o identificado públicamente con Hackers criminales o con el Hacking?
  4. ¿Alguna vez se le ha conocido con cualquier otro nombre, alias o pseudónimo? (No requieres incluir identidades de usuario o nombres de pantalla con los que eres públicamente identificado).
  5. Los candidatos CISSP deben dar fe de la veracidad de sus afirmaciones respecto a la experiencia profesional, y legalmente se comprometan a cumplir con el código de ética de (ISC)2.

 

© 2017, eHack.mx Derechos reservados sobre la traducción.


Fuente Imágenes:

“Logotipos y Banner Cissp”: Imagen cortesía by (ISC)2 en cissp.com 

Licencia de Creative Commons

BOLETÍN INFORMATIVO PARA CANDIDATOS por carenki se distribuye bajo una licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License. Basada en una obra en https://www.isc2.org/cissp/default.aspx.

 

Bycarenki

Lenguajes de programación -y II

Breve Semblanza de Lenguajes de Programación

Existen cientos de lenguajes de programación, por lo que resulta ocioso para este tipo de escrito hacer una relación detallada de dichos lenguajes, además muchos de ellos son dialectos o implementaciones específicas de los mismos para máquinas específicas.

Dicho esto, solo se hará una descripción general de algunos de los programas más representativos e importantes que existen o han existido.

Lenguaje Ensamblador

Ya mencioné el lenguaje ensamblador, que puede considerarse el primer lenguaje de programación que existió después del lenguaje máquina. A principios de los 50 se creó una notación simbólica, denominada código de ensamblaje (ASSEMBLY), al principio, la traducción del código de ensamblaje al código máquina se realizaba manualmente, pero enseguida se vio que el ordenador también podía encargarse de esa traducción; se desarrolló así un programa traductor, llamado ensamblador (ASSEMBLER). Cabe señalar que existe uno o varios ensambladores para cada microprocesador.

 Conforme se difundió el uso de las computadoras en las empresas y universidades el uso del lenguaje ensamblador fue reemplazado por otros más sencillos de aprender y más cómodos de emplear. Estos lenguajes, llamados de alto nivel, tienen una estructura que se adapta más al pensamiento humano que a la forma de trabajar del ordenador.

Programa Hola Mundo en Lenguaje Ensamblador

Programa Hola Mundo en Lenguaje Ensamblador

 

PLANKALKÜL

Podríamos decir que es el antepasado de los modernos lenguajes de programación. Fue creado por Konrad Zuse, a mediados de los 40, para su serie de máquinas Z. Su nombre es una combinación de las palabras Plan y Kalkül, así que podría traducirse por “plan de cálculo”.

Programa Hola Mundo en Lenguaje Plankalkül

Programa Hola Mundo en Lenguaje Plankalkül

 

SHORT CODE

Basándose en las ideas de John W. Mauchly, William F. Schmitt creó este lenguaje interpretado en 1950 y fue utilizado en la primera serie de UNIVAC. Es considerado el precursor de los lenguajes de alto nivel.

Programa Hola Mundo en SHORT CODE

Función en SHORT CODE

 

FORTRAN

En 1956 John Backus terminó el compilador FORTRAN (FORmula TRANslator) y se incluyó en el IBM 704, junto con un manual de 51 páginas. Este lenguaje estaba basado en el programa SPEEDCODING desarrollado por él para uso personal.

Como su nombre indica, FORTRAN estaba (y está) destinado a la resolución de problemas científico-técnicos, resultando relativamente sencillo de aprender si se domina la notación matemática.

Este lenguaje se ha visto superado por los lenguajes modernos, sin embargo, se sigue utilizando, sobre todo en el ámbito universitario. ¿Por qué? La respuesta radica en la gran biblioteca de subrutinas y funciones que se ha ido creando en sus más de cincuenta años de existencia.

Programa Hola Mundo en Fortran

Programa Hola Mundo en Fortran

 

ALGOL

El objetivo de ALGOL fue obtener un lenguaje universal, que no dependiera de la máquina donde se implementara, se formó un comité internacional, formado por la ACM (Association for Computing Machinery) y la GAMM (siglas alemanas de la Sociedad para las Matemáticas aplicadas), que, en 1958, publicó en Zurich un informe dando carta de nacimiento al IAL (International Algebraic Language), posteriormente denominado ALGOL 58 (ALGOritmic Language). Su versión operativa se presentó en Paris en 1960 y, más adelante, fue perfeccionada (ALGOL 68). Aunque ha caído en desuso, su influencia ha sido decisiva en el desarrollo de los lenguajes de programación posteriores, ya que muchos de los más importantes (PASCAL, C, ADA, JAVA, etc.) descienden, directa o indirectamente, de ALGOL.

Programa Hola Mundo en Algol

Programa Hola Mundo en Algol

 

COBOL

COBOL se desarrolló a partir de una iniciativa del Departamento de Defensa de Estados Unidos, patrocinó una conferencia sobre lenguajes (CODASYL, COnference on DAta SYstems Languages), en 1959 y en la que participaron las grandes empresas del sector (IBM, Sperry Rand, Honey Well, etc.). Fruto de aquella conferencia fueron las especificaciones para desarrollar COBOL (COmmon Business Oriented Language), un lenguaje orientado hacia funciones administrativas, de gran portabilidad y legibilidad. Su primera versión apareció al año siguiente. COBOL tiene una sintaxis muy similar al inglés común.

En la actualidad, COBOL se utiliza casi exclusivamente en algunos grandes sistemas informáticos (entidades bancarias, sobre todo), si bien más para mantener el código existente que para desarrollar nuevas aplicaciones.

Programa Hola Mundo en Cobol

Programa Hola Mundo en Cobol

 

PL/I

Este lenguaje fue desarrollado por IBM, a partir de 1963, que deseaba un lenguaje polivalente, en el sentido de que podía aplicarse tanto a gestión como al ámbito científico. Buscando aunar las ventajas de COBOL, FORTRAN y ALGOL, PL/I resultó un lenguaje muy flexible y potente, por lo que todavía sigue en uso.

Programa Hola Mundo en PL/I

Programa Hola Mundo en PL/I

 

BASIC

John G. Kemeny y Thomas E. Kurtz en 1964, diseñaron un nuevo lenguaje que permitiera introducirse a sus estudiantes en los sistemas de tiempo compartido. Ese lenguaje, al que llamaron BASIC por su sencillez5, es, sin duda, el más difundido, aplicándose tanto en tareas de gestión como en aplicaciones científicas.

No era el mejor lenguaje ni el más potente, pero tenía dos ventajas a su favor: se trataba de un lenguaje sencillo de aprender y, además, su intérprete ocupaba poca memoria. Por estos motivos, cuando se creó la primera computadora personal (Altair de MITS), no es extraño que se desarrollase un BASIC para él. BASIC ha evolucionado hasta nuestros tiempos siendo el dialecto más popular Visual Basic que ha incorporado todos los paradigmas modernos de programación logrando que continúe vigente.

Programa Hola Mundo en Basic

Programa Hola Mundo en Basic

 

SIMULA

Basado en ALGOL, se trata del primer lenguaje orientado a objetos. Fue desarrollado por los noruegos Ole-Johan Dahl y Kristen Nygaard que buscaban un lenguaje adecuado para la simulación de eventos discretos (su nombre es una contracción de Simulation Languaje). Su primer compilador estuvo disponible en 1964, para la serie 1100 de UNIVAC, si bien hasta 1967 no adquirió una amplia funcionalidad. En la actualidad hay disponibles diversas versiones freeware de su compilador.

Programa Hola Mundo en Simula

Programa Hola Mundo en Simula

 

FORTH

Este lenguaje fue creado a finales a los 60 por Charles H. Moore, para controlar los radiotelescopios de Kitt Peak y procesar sus datos. Se trata de un lenguaje22 funcional e interactivo que ha ido evolucionando con el paso del tiempo. Debido a la poca memoria que ocupa y a su rapidez, fue uno de los primeros en difundirse entre los microcomputadoras.

Programa en Forth

Programa en Forth

 

LOGO

Logo es fruto de la influencia que recibió Seymour Papert colaborando con el pedagogo Jean Piaget. En 1980, Papert lo divulgó en todo el mundo con su libro íMindstorms: Children Computers and Powerful Ideasî (figura 9), fue muy bien acogido en los ámbitos educativos, especialmente en enseñanza primaria y secundaria.

El objetivo de LOGO fue introducir en el mundo de la programación al alumnado de menor edad: “Que los niños programen a los computadoras y no las computadoras a los niños”

Programa Hola Mundo en Logo

Programa Hola Mundo en Logo

 

C

En 1970, Thompson desarrolló un lenguaje experimental, al que llamó B. Dos años después, Ritchie se basó en B para crear un nuevo lenguaje de propósito general, que denominó C. Como no depende de la arquitectura del hardware, C es uno de los lenguajes más portables del mercado y, como además ofrece amplias prestaciones, su difusión es amplísima. A principios de los 80, Bjarne Stroustrup diseñó una ampliación de C y, en 1984, la convirtió en un compilador que llamó C++, especialmente enfocado a la programación orientada a objetos.

Programa Hola Mundo en C

Programa Hola Mundo en C

 

PASCAL

A principios de los 70, el profesor suizo Niklaus Wirth, del Instituto Politécnico Federal de Zurich, emprendió la creación de un nuevo lenguaje (PASCAL) que permitiera introducirse en la programación de una forma fácil pero a la vez potente y, sobre todo, siguiendo unas pautas estructuradas. De hecho, PASCAL es el lenguaje más sencillo que posibilita el acceso a la informática teórica: descomposición modular, recursividad, punteros, etc.

PASCAL, surgió como una derivación de ALGOL y evolucionó en DELPHI, que amplía PASCAL a la programación visual en un intento por hacerle la competencia a Visual BASIC.

Programa Hola Mundo en Pascal

Programa Hola Mundo en Pascal

 

SMALLTALK

Creado por Alan Kay en el Centro de Investigaciones Xerox de Palo Alto, en los primeros 70, es un lenguaje muy influenciado por SIMULA, estando también orientado a objetos. Tuvo sucesivas versiones (72, 76 y 80) y ofrece un entorno completo para el desarrollo de programas.

Programa Hola Mundo en Smalltalk

Programa Hola Mundo en Smalltalk

 

PROLOG

En 1972, Robert Kowalski (universidad de Edimburgo) y Alain Colmerauer y Phillippe Roussell (universidad de Aix-Marseille) expusieron la revolucionaria idea de que la lógica podía emplearse como lenguaje de programación. Siguiendo esta línea, al año siguiente, el grupo de inteligencia artificial de la universidad de Aix-Marseille comenzó a diseñar ese lenguaje, al que se llamó PROLOG (PROgramation LOGique).

PROLOG es el prototipo de lenguaje declarativo por excelencia. ¿Y qué es eso de declarativo? Todos los lenguajes que hemos ido viendo hasta ahora son algorítmicos; es decir, los computadoras se consideran máquinas de Turing a las que debemos indicar todos y cada uno de los pasos a seguir para realizar una cierta tarea.

Frente a estos lenguajes imperativos, los declarativos no están basados en órdenes sino en descripciones. En otras palabras, en los programas PROLOG se proporcionan al ordenador una serie de conocimientos sobre un tema, junto con una serie de reglas, y el programa nos contestará todas aquellas preguntas que deseemos hacerle sobre el tema siempre que las respuestas puedan deducirse lógicamente de los conocimientos dados al inicio.

Como es fácil suponer, PROLOG no está destinado al cálculo científico. Su aplicación en el campo de la inteligencia artificial, definiendo objetos y estableciendo relaciones, permite resolver problemas lógicos, desarrollar sistemas expertos, investigar en la comprensión del lenguaje humano, etc.

Programa Hola Mundo en Prolog

Programa Hola Mundo en Prolog

 

ADA

ADA fue un segundo intento del Departamento de Defensa de Estados unidos por uniformar lenguajes de programación. Quince años después de intentarlo con COBOL, percibió que su objetivo no se había cumplido. Por ese motivo, en 1975 formó un grupo de trabajo para evaluar los lenguajes existentes en aquel entonces, como resultado se concluyó que ninguno de los lenguajes existentes cumplica con los criterios deseados por lo que se propuso la creación de un nuevo lenguaje de programación. La propuesta de Honeywell-Bull (Francia) fue la elegida, fue diseñado por un equipo encabezado por Jean Ichbiah. En un primer momento, se le dio el nombre de DoD-1 pero acabó cambiándose por ADA, en honor de Ada Lovelace.

Los requisitos que debía cumplir el nuevo lenguaje eran:

  • Debía permitir el diseño de programas modulares y estructurados, de modo que fuesen fáciles de leer y de depurar.
  • Era necesario que gestionara sin problemas cualquier periférico dado que debía controlar instrumentos militares de todo tipo.
  • Tenía que aceptar el trabajo en paralelo, de modo que varios procesos se ejecutaran de forma simultánea o cuasisimultánea.

A pesar de los años transcurridos desde entonces y a las mejoras que han ido introduciéndose en él, lo cierto es que ADA no es un lenguaje popular, salvo por su nombre. Se le reprocha ser un tanto complejo, bastante estricto y sólo apropiado para el desarrollo de grandes programas.

Programa Hola Mundo en Ada

Programa Hola Mundo en Ada

 

JAVA

Este lenguaje, hoy en día ampliamente utilizado en Internet, fue desarrollado en 1990 por James Gosling, de Sun Microsystems, basándose en C y C++. ¿Un lenguaje para Internet cuando, en aquella época, la Red estaba casi circunscrita al ámbito universitario? En realidad, el objetivo de Sun no tenía nada que ver con Internet; era crear un interfaz atractivo e intuitivo para electrónica de consumo (calculadoras, televisión interactiva, etc.).

Sin embargo, la electrónica de consumo no evolucionó como se esperaba y, durante unos años, el lenguaje de Gosling permaneció aparcado, hasta que Bill Joy (cofundador de Sun) consideró que podía ser interesante para Internet y propuso modificarlo para el nuevo medio. En agosto de 1995, ya con el nombre de JAVA, se presentó en sociedad. A pesar de que JAVA resulta un tanto lento en su ejecución, es muy popular. Por un lado, es relativamente sencillo y bastante potente; además, es válido para cualquier plataforma y, sobre todo, muy fiable y seguro, manteniendo alejado a los virus.

Programa Hola Mundo en Java

Programa Hola Mundo en Java

 

PYTHON

Python es un lenguaje de programación interpretado creado por Guido van Rossum en el año 1991. A van Rossum le fue asignado un proyecto en el que tenía que desarrollar un sistema operativo distribuido llamado Amoeba, las condiciones en que se encontraba el CWI, es que tenía implementado un lenguaje de programación llamado ABC. Guido decidió crear un nuevo lenguaje para el proyecto Amoeba, para superar las limitaciones y problemas con los que se encontró.

Se compara habitualmente con Tcl, Perl, Scheme, Java y Ruby. En la actualidad Python se desarrolla como un proyecto de código abierto, administrado por la Python Software Foundation.

La relevancia, soporte y difusión que ha alcanzado Python en el ámbito de la seguridad informática y la programación Web lo hace estar en esta lista de lenguajes emblemáticos.

Programa Hola Mundo en Python

Programa Hola Mundo en Python

 

¿Cuál es el mejor lenguaje de programación?

Respuesta corta: No hay “un mejor lenguaje”, por ello existen cientos de lenguajes y siguen creando nuevos…

Daré mi punto de vista personal para responder esta pregunta. Para responder esta pregunta cabría preguntarte ¿Qué deseas programar? ¿En donde? ¿De qué recursos informáticos cuentas? ¿Cuánto tiempo tienes para el desarrollo? ¿Qué tan importante es la velocidad y tamaño del programa?, así podría seguir con las preguntas.

Todo esto para decirte: No hay “mejor lenguaje” en términos universales, el mejor lenguaje siempre será el que más conozcas, el que mejor se adapte para una tarea, el que aproveche mejor los recursos disponibles… En resumen, el mejor lenguaje de programación siempre será el que mejor se adapte para resolver un problema específico en un entorno específico.

Generaciones de lenguajes de programación

Finalizaré esta sección haciendo mención de lo que se denomina Generaciones de lenguajes de programación

La evolución de los lenguajes de programación se puede dividir en 5 etapas o generaciones. Cabe señalar que siempre el tema de las “Generaciones” se presta a controversias y discusiones (particularmente la cuarta y quita), en este caso me limito a mencionar las que en lo particular me parece la clasificación más clara:

  • Primera generación: lenguaje maquina (basado en sistema binario).
  • Segunda generación: se crearon los primeros lenguajes ensambladores los cuales reemplazaban en código máquina con lenguaje simbólico y al igual que el lenguaje máquina estaba ligado con la máquina sobre la cual se ejecutaba.
  • Tercera generación: se crean los primeros lenguajes de alto nivel, los cuales reemplazaron los símbolos por instrucciones parecidas al lenguaje humano o al de las Matemáticas y que son independientes de la máquina. Ej. Fortran, C, Pascal, Cobol.
  • Cuarta generación: Son los lenguajes capaces de generar código por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aquí también se encuentran los lenguajes orientados a objetos, haciendo posible la reutilización de partes del código para otros programas. Actualmente se discute si estas herramientas son, propiamente hablando, lenguajes. Ej. Todas las herramientas Visual, muchos incluyen en esta categoría a los lenguajes orientados a objetos
  • Quinta generación: Lenguajes orientados a la inteligencia artificial. aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso. Ej. LISP
Evolución de los lenguajes de programación

Evolución de los lenguajes de programación

 

Con este apartado concluye la sección “histórica”, introductoria y descriptiva, solo nos resta justificar en el siguiente capítulo el lenguaje que hemos elegido desarrollar.

¿Te has quedado con ganas de conocer más lenguajes? Si la respuesta es afirmativa, puedes darte un paseo por la Web Dictionary of Programming Languages, donde encontrará referencias y comentarios sobre un centenar y medio de lenguajes

Recuerda, hay mucha información útil interesante que no se ha incluido, te invito a realizar una búsqueda en Internet de lo que te quede duda o que te inquiete, hay mucho por aprender.

Redacción, composición y desarrollo Por Roberto C. González
Para Ethical Hack

 

 

¿Deseas aprender BIEN Seguridad Informática “desde el principio”? 

Deseas participar en nuestro grupo de estudio para aplicar la certificación CEH

Obtendrás información ampliada a la que has leído en este artículo, y material adicional, visita www.ehack.mx/cursos para más información o ecríbenos a ceh@ehack.mx

 


Fuente Imágenes:

“Evolución de los lenguajes de programación: by McLibre en McLibre
“Codigo máquina”: Imagen cortesía by Wikipedia
“Todas las imágenes del programa Hola mundo”: Imagen cortesía bWikipedia
“Hola Mundo en Plankalkül”: Imagen cortesía by Alberto García en adslzone
“Lenguaje intermedio: El CLR de .Net”: Imagen cortesía by MSDN

En la elaboración de este artículo en la sección de lenguajes de programación me apoyé de forma significativa en la obra:  Historia y evolución de los lenguajes de programación de Vicente Trigo Aranda

Así como algunas referencias de:

 

Licencia de Creative CommonsLenguajes de programación I y II by Roberto C. González para Ethical Hack is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.