LA PROGRAMACION Y EL HACKER }
Programación es la acción y efecto de programar. Este verbo tiene varios usos: se refiere a idear y ordenar las acciones que se realizarán en el marco de un proyecto; al anuncio de las partes que componen un acto o espectáculo; a la preparación de máquinas para que cumplan con una cierta tarea en un momento determinado; a la elaboración de programas para la resolución de problemas mediante ordenadores; y a la preparación de los datos necesarios para obtener una solución de un problema a través de una calculadora electrónica
El término hacker, hispanizado como jáquer, tiene diferentes significados. Según el diccionario de los hackers, «es todo individuo que se dedica a programar de forma entusiasta, o sea un experto entusiasta de cualquier tipo»,8 que considera que poner la información al alcance de todos constituye un extraordinario bien
LA PROGRAMACION P
rogramación es el proceso de tomar un algoritmo y codificarlo en una notación, un
lenguaje de programación, de modo que pueda ser ejecutado por una computadora. Aunque existen muchos lenguajes de programación y muchos tipos diferentes de computadoras, el primer paso es la necesidad de tener una solución. Sin un algoritmo no puede haber un programa.
Las ciencias de la programación no son el estudio de la programación. La programación, sin embargo, es una parte importante de lo que hace un científico de la computación. La programación es a menudo la manera en la que creamos una representación para nuestras soluciones. Por tanto, esta representación en un lenguaje y el proceso de crearla se convierte en una parte fundamental de la disciplina.
Los algoritmos describen la solución a un problema en términos de los datos requeridos para representar el caso del problema y el conjunto de pasos necesarios para producir el resultado pretendido. Los lenguajes de programación deben suministrar un modo notacional para representar tanto el proceso como los datos. Para este fin, los lenguajes suministran estructuras de control y tipos de datos.
Las estructuras de control permiten que los pasos algorítmicos sean representados de una manera conveniente pero sin ambigüedades. Como mínimo, los algoritmos requieren estructuras que lleven a cabo procesamiento secuencial, selección para toma de decisiones e iteraciones para control repetitivo. Siempre y cuando el lenguaje proporcione estas instrucciones básicas, éste puede ser usado para la representación del algoritmo.
L
a dificultad que a menudo nos
surge es el hecho que los problemas y sus soluciones son muy complejos. Estas estructuras y tipos de datos simples, suministrados por el lenguaje, si bien son ciertamente suficientes para representar soluciones complejas, están típicamente en desventaja a medida que trabajamos en el proceso de solución de problemas. Requerimos maneras de controlar esta complejidad y contribuir con la creación de soluciones.
ELEMENTOS Y ERRORES AL PROGRAMAR Sintaxix: La
sintaxis
es
la
parte
de
la gramática que estudia las reglas y principios que gobiernan la combinatoria de constituyentes sintácticos y la formación de unidades superiores a estos, como los sintagmas y las oraciones gramaticales. La sintaxis, por tanto, estudia las formas en que se combinan las palabras, así como las relaciones sintagmáticas y paradigmáticas exist entes entre ellas.
Código Objeto
E
n programación, se llama código objeto al
código que resulta de la compilación del código fuente.1 Puede ser en lenguaje máquina o bytecode, y puede distribuirse en varios archivos que corresponden a cada código fuente compilado. Luego un enlazador (linker) se encarga de juntar todos los archivos de código objeto para obtener el programa ejecutable. Código objeto: Conjunto de instrucciones y datos escritos en un lenguaje que entiende el ordenador directamente: binario o código máquina. Provienen de la traducción de cierto código fuente, es un fragmento del programa final y es específico de la plataforma de ejecución.
Depuración de Programas La depuración de programas es el proceso de identificar y corregir errores de programación. En inglés se conoce como debugging, porque se asemeja a la eliminación de bichos (bugs), manera en que se conoce informalmente a los errores de programación. Si bien existen técnicas para la revisión sistemática del código fuente y se cuenta con medios computacionales para la detección de errores (depuradores) y facilidades integradas en los sistemas lower CASE y en los ambientes de desarrollo integrado, sigue siendo en buena medida una actividad manual, que desafía la paciencia, la imaginación y la intuición de programadores. Muchas veces se requiere incluir en el código fuente instrucciones auxiliares que permitan el seguimiento de la ejecución del programa, presentando los valores de variables y direcciones de memoria y ralentizando la salida de datos ("modo de depuración"). Dentro de un proceso formal de aseguramiento de la calidad, puede ser asimilado al concepto de "prueba unitaria".
Error de Sintaxis Un error de sintaxis en informática y programación es una violación a las reglas de sintaxis en los lenguajes de programación. Se producen cuando la estructura de una de las instrucciones infringen una o varias reglas sintácticas definidas en ese lenguaje de programación. Un error de sintaxis se produce al escribir, incorrectamente, alguna parte del código fuente de un programa. De forma que, dicho error impedirá, tanto al compilador como al intérprete, traducir dicha instrucción, ya que, ninguno de los dos entenderá qué le está diciendo el programador.
Errores Lógicos Los errores de lógica son los más difíciles de detectar. Cuando un programa no tiene errores de sintaxis ni errores de ejecución, pero, aún así, no funciona bien, esto es debido a la existencia de algún error lógico. De manera que, un error de lógica se produce cuando los resultados obtenidos no son los esperados.
Errores De Regresión S
on aquellos que se crean por si solos, bueno no. Se les conoce como de regresión
por que al corregir un error y al probar de nuevo tu código la computadora te indica que existen muchos mas errores del que tenias. En pocas palabras son aquellos que se crean accidentalmente cuando se intenta corregir un error y digo generalmente por que me he topado con cosas que, bueno para que les cuento.
E
xisten muchos lenguajes de
programación en el mundo. Los hay de distintos tipos, cada uno adaptado a resolver distintos tipos de problemas. Tenemos los lenguajes funcionales como LISP o CML, los lenguajes imperativos como C, PASCAL o BASIC, los lenguajes lógicos como PROLOG y los lenguajes orientados a objetos como Java, C# y SMALLTALK.
ELEMENTOS LEXICOS DE LOS PROGRAMAS Identificador Es una secuencia de caracteres, letras dígitos y subrayados (_). El primer carácter debe de ser una letra, no un subrayado. Las letras mayúsculas y minúsculas son diferentes para cada identificador Ejemplo: Nombre Nombre_clase Cantidad_Total
Signos de Puntuación y Separadores
C
onocidos también como
puntuadores, son los que se citan a continuación. La mayoría de ellos tienen un doble uso y en ocasiones funcionan también como operadores [ ] ( ) { } , ; : ... * = # ! % ^ & – + | ~ \ '"<>?./
Palabras Reservadas Es una palabra que tiene un significado gramatical especial para ese lenguaje y no puede ser utilizada como un identificador de objetos en códigos del mismo, como pueden ser las variables. Son identificadores reservados predefinidos que tienen un significado especial y no se pueden utilizar como identificadores en sus programas, excepto si llevan delante el carácter @ como prefijo. Así, por ejemplo @for es un identificador válido, pero no for ya que es una palabra reservada.
EL HACKER E
l término hacker,[4] hispanizado como jáquer,[5]
tiene diferentes significados.[6] Según el diccionario de los hackers,[7] «es todo individuo que se dedica a programar de forma entusiasta, o sea un experto entusiasta de cualquier tipo»,[8] que considera que poner la información al alcance de todos constituye un extraordinario bien[9]. El Diccionario de la lengua española de la RAE, en su segunda acepción, establece que es una «persona experta en el manejo de computadoras, que se ocupa de la seguridad de los sistemas y de desarrollar técnicas de mejora». [4] De acuerdo a Eric S. Raymond el motivo principal que tienen estas personas para crear software en su tiempo libre, y después distribuirlos de manera gratuita, es el de ser reconocidos por sus iguales. [10] El término hacker nace en la segunda mitad del siglo XX y su origen está ligado con los clubs y laboratorios del MIT.[11] Sin embargo a mediados de década de 1990, debido la exposición mediática de Kevin Mitnick, el término desvirtuó su significado.[12][13]
E
E
n idioma inglés la palabra hacker
originalmente se utilizaba para definir a una persona que creaba muebles con un hacha, lo que ya de por sí denota una habilidad e ingenio extra sobre un carpintero común.16 En informática, un hacker es una persona que pertenece a una de las comunidades o subculturas.
N
n
seguridad
informática
este
término concierne principalmente a entradas remotas no autorizadas por medio de redes de comunicación como internet conocidos como sombreros negros (black hats). Pero también incluye a aquellos que depuran y arreglan errores en los sistemas como sombreros blancos (white hats) y a los de moral ambigua como son los sombreros grises (grey hats).
o obstante, más allá de las definiciones
del término hacker vinculadas al mundo informático o tecnológico, cabe destacar el uso de esta palabra por extensión (y de hecho así fue en sus inicios el origen de la misma) a toda persona que implementa soluciones para cualquier sistema, sea informático o no, de manera que este pueda emplearse de formas no pensadas por quienes crearon dichos sistemas.
HISTORIA DEL HACKER E
n 1961 el MIT, el Massachusetts
Institute of Technology, adquirió la microcomputadora PDP-1, lo que atrajo la curiosidad de un grupo de estudiantes que formaban parte del Tech Model Railroad Club, TMRC, ya que podrían interactuar directamente con ella mediante códigos de programación. Debido a que la microcomputadora tardaba mucho en encender,6 se quedaba prendida toda la noche haciendo que los miembros del TMRC tuvieran acceso a ella y pudieran empezar a experimentar, uno de los logros más famosos de estos experimentos fue la creación del videojuego Spacewar. Tiempo después algunos miembros del TMRC se volvieron miembros del Laboratorio de Inteligencia Artificial del MIT y se llevaron con ellos la tradición de jugarse bromas inocentes entre ellos, a las cuales llamaban hacks. Fueron los miembros de este laboratorio los primeros en autonombrarse hackers.10 Esta comunidad se caracteriza por el lanzamiento del movimiento de software libre.11 La World Wide Web e Internet en sí misma son creaciones de hackers.20 En 1962, J.C.R. Licklider creó un nuevo concepto que cambiaría las telecomunicaciones de ese entonces. Este concepto se llamó ARPANET. Una idea que empezó como un proyecto del Departamento de Defensa para la comunicación terminó siendo una extensa red de ordenadores transcontinental de alta velocidad, la cual comunicaba universidades, laboratorios de investigación y contratistas de defensa entre otros. Un efecto que tuvo esta red fue la de unir a todos los hackers de EUA, haciendo que empezaran a descubrirse a ellos mismos. ARPANET ayudó a que los amantes de la programación pudieran tener un espacio para generar ideas y al mismo tiempo para tener una identidad.
D
e ahí salió la idea de crear un
archivo que hiciera un compilado tanto del argot como de las discusiones que se tenían referente a la cultura hacker. A este primer compilado se le llamó Jargon File que era más como un diccionario. Se publicó en 1983 como The Hacker's Dictionary y poco a poco se ha ido actualizando. Actualmente la versión impresa se conoce como The New Hacker's Dictionary. Con la llegada del nuevo PDP-10, ahora había una nueva oportunidad para probar a los estudiantes más brillantes. Fue entonces cuando estudiantes del MIT atacaron el Sistema Operativo del nuevo procesador y crearon uno nuevo llamado ITS (Sistema de Tiempo Compartido Incompatible). El Sistema Operativo se podía describir como excéntrico y raro. Contenía algunos errores, sin embargo el avance que lograron en cuanto a innovación técnica los llevó a tener el récord del sistema operativo más antiguo en uso continuo. La creación del nuevo sistema operativo orilló a que aprendieran a programar en distintos lenguajes, muchos de ellos siguen siendo utilizados en la actualidad. Un ejemplo es el lenguaje IA LISP que por su estructura y complejidad hizo que los programadores pensaran de forma más creativa y hasta a veces inusual. Pero fue gracias a esto que empezaron a desarrollar sus habilidades para atacar y usar la tecnología a su favor.
HERRAMIENTAS QUE UTILIZAN LOS HACKERS Metasploit Herramienta
clásica de piratería
para evaluar la vulnerabilidad de un sistema. Permite lanzar ataques usando comandos cortos y es muy utilizado incluso para la formación en ambos bandos, tanto en el de los propios hackers como sobre todo en el lado de los estudios especializados en seguridad digital, las compañías y las instituciones.
Nmap Red
Mapper es una herramienta potente que se utiliza para la detección de redes y auditoría de seguridad. Los administradores crean informes a través de ella que describen todos los dispositivos conectados a una misma red. Pueden detectar sistemas operativos de huellas dactilares o identificar paquetes en bruto entre otras muchas utilidades, y destaca también por identificar tanto los sistemas que ejecutan como las aplicaciones de servidor. Sus características son muy amplias y muy interesantes porque pueden evadir importantes sistemas de seguridad y cortafuegos, e incluso pueden imitar ciertos protocolos de aplicación.
Wireshark Como casi todas las herramientas digitales, Wireshark es utilizada ampliamente por miembros de los dos bandos, tanto los que trabajan en seguridad digital como los hackers. Se trata de un analizador de protocolos de red multiplataforma. Lo que permite es recolectar datos de diferentes fuentes y conexiones. Está altamente demandada porque es muy eficaz al permitir todos los formatos de archivo de captura existentes en el mercado, a la vez que es compatible con gran parte de los sistemas operativos. Además, permite exportar todos los resultados a otros formatos.
OWASP Zed Está especializada en detectar grietas en las aplicaciones web. Está escrita en Java por lo que es multiplataforma y no solo sirve para proyectar ataques sino que es muy útil como herramienta de defensa porque sus escáneres automáticos comprueban periódicamente y avisan de posibles vulnerabilidades.
Jhon The Ripper
Kismet
Una de las galletas de
Nikto E
Kismet detecta redes inalámbricas que tiene la gran ventaja de poder realizar el examen de forma pasiva, lo que permite detectar también redes ocultas o inutilizadas. La utilizan mucho los hackers para hacer funciones de reconocimiento y consultar las redes disponibles en un lugar determinado.
contraseña más famosa de las que manejan los hackers es John the Ripper porque es compatible con la mayoría de sistemas operativos, lo que le da un versatilidad muy importante. Puedes descifrar tanto contraseñas sencillas y débiles como cifrados más complejos como los utilizados por los servidores de bases datos por ejemplo.
s un potente servidor web que realiza pruebas en
los equipos de destino. Puede incluso crear una auditoría de seguridad en los objetivos pretendidos por el lanzamiento de una serie de pruebas de evaluación. Básicamente está diseñado para encontrar debilidades y vulnerabilidades en los sistemas de destino y es muy sencillo de utilizar.
La Suite Aircrack E
ste conjunto de herramientas para hackear redes
inalámbricas trabaja de manera conjunta y ordenada. Su uso es variable; pueden manipular flujos de datos, elaborar paquetes y analizar el tráfico de red capturado. Requiere más conocimientos técnicos que otras herramientas porque no tiene tanto nivel de automatización, pero en caso de caer en manos de un experto, bien un hacker o un responsable de seguridad, puede convertirse en un arma muy potente, capaz de lanzar todo tipo de ataques. En concreto, Aircrack-ng es mítica; no es desconocida para ninguna persona que sepa algo de seguridad, ya que es muy utilizada para lanzar ataques contra redes Wi-Fi para saber si están expuestas a posibles grietas.
Cain and Abel S e trata de una alternativa para descifrar
contraseñas, especialmente en el caso de Windows. También puede ejercer funciones más complejas como la grabación de llamadas Vo-IP.
TCH-Hydra E
n este caso es una herramienta menos compleja que la anterior; de hecho es utilizada por usuarios
menos expertos porque es sencillo lanzar ataques sin tener demasiados conocimientos. Como elemento de intrusión es muy eficaz porque penetra en todo tipo de servicios web, correo electrónico, etc. Se trata de un cracker de red optimizado. Es muy usada para cortar los dispositivos de red porque tiene muchas compatibilidades ya que trabaja con muchos protocolos diferentes, incluidos los más utilizados como HTTP o POP3, al igual que servicios y aplicaciones protegidas
Social Enginne S u kit de herramientas es bastante popular al
tratarse de un código abierto diseñado para lanzar exploits y ataques de ingeniería social. Sencillo de utilizar y personalizable a la hora de diseñar los ataques. Incluso permite crear códigos personalizados adaptados a las situaciones requeridas. Permite una gran variedad de ataques diferentes con muchas opciones de compatibilidad incluso con otras herramientas como Nmap.
Proyecto Tor E
s la red anónima internacional más utilizada por
todos aquellos que desean navegar desde la privacidad. Tor traza una telaraña de seguridad muy potente a través de una serie de cruces que complican sobremanera el seguimiento por parte de los servicios de internet, administradores de sistema y propietarios de servicios. Es muy eficaz contra la censura pero también en numerosas operaciones de las realizadas por un hacker porque pueden ocultar su identidad y su origen.
CLASIFICACION DE LOS HACKERS Sombreros E
l origen del término parece provenir de las antiguas películas de vaqueros donde el personaje bueno
utilizaba un sombrero blanco y el malvado un sombrero negro, lo cual era muy efectivo para recalcar la trama, incluso si el filme era en blanco y negro o a color.39 De allí primordialmente deriva la costumbre de clasificar a los hackers según sus intenciones o forma de actuar asignándoles un "color de sombrero".
Hacker de sombrero Blanco U n hacker de sombrero
blanco (del inglés, white hat), penetran la seguridad del sistema, suelen trabajar para compañías en el área de seguridad informática para proteger el sistema ante cualquier alerta.
Hacker de sombrero Gris L os hackers de sombrero
gris (del inglés, grey hat) son aquellos que poseen un conocimiento similar al hacker de sombrero negro y con este conocimiento penetran sistemas y buscan problemas, cobrando luego por su servicio para reparar daños.
Hacker de sombrero Negro P or el contrario, los hackers de sombrero
negro (del inglés, black hat), también conocidos como crackers muestran sus habilidades en informática rompiendo sistemas de seguridad de computadoras, colapsando servidores, entrando a zonas restringidas, infectando redes o apoderándose de ellas o creando virus, entre otras muchas cosas utilizando sus destrezas en métodos hacking. Rompen la seguridad informática, buscando la forma de entrar a programas y obtener información o generar virus en el equipo o cuenta ingresada.
Hacker de sombrero Azul E l hacker de sombrero azul (del inglés, blue hat) se caracteriza por
enfocar sus esfuerzos maliciosos hacía una persona o empresa en concreto. Lo único que les mueve es la venganza contra una persona o una compañía en concreto. Tienen escasas habilidades sobre técnicas de hacking y únicamente buscan aprender lo justo para causar molestias o daños.
Hacker de sombrero Dorado E
l hacker de sombrero dorado es
Hacktivista R
aquel que usa la tecnología para violar un sistema informático con el propósito de notificar la vulnerabilidad del sistema al administrador. También rompe la seguridad informática no por razones maliciosas si no por poner a prueba su propio sistema o de la compañía donde trabaja, o simplemente para difundir un mensaje por la red.
eferido a un hacker que se dedica a
ejercer o ejerce hacktivismo o activismo informático.
Phreaker P
rocedente de phone freak (entusiasta de
los teléfonos).41 Son personas con conocimientos amplios tanto en teléfonos modulares como en teléfonos móviles. La meta de los phreakers es generalmente superar retos intelectuales de complejida
Lammer o Script-Kiddie E
s un término coloquial inglés aplicado a una persona falta de habilidades técnicas, generalmente no
competente en la materia, que pretende obtener beneficio del hacking sin tener los conocimientos necesarios. Su alcance se basa en buscar y descargar programas y herramientas de intrusión informática, cibervandalismo, propagación de software malicioso para luego ejecutarlo como simple usuario, sin preocuparse del funcionamiento interno de estos ni de los sistemas sobre los que funcionan. En muchos casos presume de conocimientos o habilidades que no posee.
Novato L
a palabra es un anglicismo, que se traduciría como hacker novato. Es una palabra usada en
argot informático para referirse a alguien que acaba de iniciarse en el hacking y tiene poca experiencia. Algunas hipótesis sitúan la extensión de su uso a raíz de su popularidad dentro de las Fuerzas Armadas de los Estados Unidos de América, a finales del siglo XX. Otras variantes del término son newby y newbee. El término novato a secas (noob, comúnmente escrito) se utiliza más a menudo en los juegos en línea y redes sociales.