1
00:00:14,310 --> 00:00:19,900
Venían mentes inquietas en esta clase vamos a hablar sobre un tipo de ataque denominado Ataque a nivel

2
00:00:19,960 --> 00:00:29,130
de aplicación una aplicación o una pieza de software es un programa Okkhoy el Wireless la calculadora

3
00:00:29,650 --> 00:00:34,930
cualquier tipo de aplicación que corre sobre un sistema operativo es un programa de una pieza de software.

4
00:00:35,110 --> 00:00:40,000
El problema por el que se dan los ataques a nivel aplicación es que los desarrolladores del software

5
00:00:40,000 --> 00:00:45,280
de si los programadores trabajan con un calendario muy ajustado en donde hay unos tiempos que se le

6
00:00:45,280 --> 00:00:51,140
vencen y que tienen que cumplir para entregar sus productos sus piezas al tiempo sus productos.

7
00:00:51,150 --> 00:00:57,030
Otro de los problemas es que las piezas de software tienen cada vez más funcionalidades y características

8
00:00:57,620 --> 00:01:02,910
y cada característica o funcionalidad es un fragmento de varias líneas de código y entonces cuando claro

9
00:01:02,910 --> 00:01:09,140
cuando yo tengo muchas más líneas de código es como una cadena en la cadena de la seguridad.

10
00:01:09,270 --> 00:01:11,710
El nivel de incertidumbre acerca de la seguridad.

11
00:01:11,820 --> 00:01:17,730
Cuanto más eslabones tenga propende más a un error porque uno de esos eslabones puede estar con la seguridad

12
00:01:17,730 --> 00:01:25,710
debilitada o no pudo haber tenido todos los controles que tienen forjado si es una cadena y puede ser

13
00:01:25,800 --> 00:01:30,870
uno de esos eslabones y yo la someto a una tensión se abra o se corte.

14
00:01:30,870 --> 00:01:35,310
Lo mismo pasa con el software de todos los tiempos que tienen para trabajar.

15
00:01:35,310 --> 00:01:41,490
El último bastión de tiempo que se les vence es el tiempo estipulado para hacer la entrega pública de

16
00:01:41,490 --> 00:01:44,010
software es decir para liberar la versión del software.

17
00:01:44,520 --> 00:01:50,220
Si bien hay empresas muy grandes que una o dos veces en la historia se han tomado el privilegio de correr

18
00:01:50,220 --> 00:01:55,800
su fecha de lanzamiento pero generalmente nunca se corre una fecha de lanzamiento de un software entonces

19
00:01:56,370 --> 00:02:01,170
esto sumado a que la seguridad generalmente es una idea de último momento a menos que se esté programando

20
00:02:01,170 --> 00:02:06,430
un antivirus o un firewall o un sandbox y no alguna protección anti rootkit.

21
00:02:06,840 --> 00:02:09,690
Pero en el resto de las aplicaciones no se tiene en cuenta la seguridad.

22
00:02:10,050 --> 00:02:15,420
No se hacen ningún tipo de verificación por ejemplo de técnicas de buffer overflow es decir desbordamiento

23
00:02:15,420 --> 00:02:21,090
de wafer o de pila que es lo que vimos en las clases anteriores donde una aplicación puede agarrar salir

24
00:02:21,090 --> 00:02:26,090
de su segmento de memoria y ejecutar Pissarro datos de otro de otro segmento de memoria correspondiente

25
00:02:26,090 --> 00:02:32,550
a otra aplicación que puede tener privilegios más altos por ejemplo y ejecutar cierto tipo de exploit

26
00:02:32,550 --> 00:02:37,850
explotar el sistema como un dato curioso.

27
00:02:37,850 --> 00:02:45,790
Estas mujeres que están ahora arriba mío ahí fue una de las primeras hackers.

28
00:02:45,800 --> 00:02:52,130
Si una de las primeras hackers o uno de los primeros Jaqen fue una hembra se llamaba Ada y era una persona

29
00:02:52,190 --> 00:02:53,390
sumamente inteligente.

30
00:02:53,400 --> 00:03:00,820
Ahora estamos viendo como una de las primeras computadoras Ada se llamó y vamos a seguir con esto etnográfico

31
00:03:00,860 --> 00:03:06,770
que ya sé que está pixelado pero en realidad me interesa que se vea como diagrama de flujo es otro de

32
00:03:06,770 --> 00:03:13,070
los problemas por los que se pueden ejecutar ataques a nivel aplicación y tienen que ver con una metodología

33
00:03:13,610 --> 00:03:18,650
para hacer las cosas nuevas que se puso de nuevo se puso de moda en el año 2000 y pico que se llama

34
00:03:18,650 --> 00:03:22,160
programación XP equipe programación extrema.

35
00:03:22,160 --> 00:03:28,370
De hecho los primeros en aplicarlo fueron los del gigante Microsoft con su idea y sacaron la versión

36
00:03:28,370 --> 00:03:33,020
de XP de Windows XP porque estuvo programada con este sistema que fue.

37
00:03:33,110 --> 00:03:37,160
Si bien Windows XP fue uno de los que mejor le salió pero fue por la cantidad de tiempo que estuvo en

38
00:03:37,160 --> 00:03:41,590
el mercado y la cantidad de Service Pack o parches de seguridad que le iban poniendo porque también

39
00:03:41,600 --> 00:03:47,060
fue uno de los que más errores tuvo de programación y los que más vulnerabilidades y exploit tuvo y

40
00:03:47,060 --> 00:03:52,520
fue atacado más que ningún otro en la historia del software Okkhoy porque fue hecho con este tipo de

41
00:03:52,520 --> 00:03:53,620
programación.

42
00:03:53,700 --> 00:03:58,370
Fíjense vamos a ver no esta herramienta de dibujo preferida y fíjense una cosa.

43
00:03:59,270 --> 00:04:11,320
Fíjense por ejemplo que acá donde dice la parte de diseño y diseño se tiende a las personas a los programadores

44
00:04:11,380 --> 00:04:13,040
a que hagan diseños simples.

45
00:04:13,120 --> 00:04:18,430
Yo recuerdo cuando me recibí de programador en Microsoft hace mucho muchas décadas que un instructor

46
00:04:18,430 --> 00:04:23,350
nuestro nos decía Ustedes tienen que colocar en todas las líneas de código además de las líneas que

47
00:04:23,350 --> 00:04:27,580
hacen que siga la lógica de lo que están haciendo tienen que hacer una línea que diga

48
00:04:32,220 --> 00:04:32,760
error

49
00:04:36,450 --> 00:04:38,230
no es así.

50
00:04:39,840 --> 00:04:43,760
Resume un error NEX.

51
00:04:44,140 --> 00:04:44,770
Qué significa.

52
00:04:44,770 --> 00:04:46,700
Le pregunto al instructor Moisés Miranda.

53
00:04:46,750 --> 00:04:52,830
Esto lo recomienda Microsoft lo que significa es que si hay algún error en el software en lugar de detenerse

54
00:04:52,840 --> 00:04:56,920
la aplicación y marcar un error en la pantalla y no seguir funcionando que siga ejecutando el programa

55
00:04:57,070 --> 00:05:02,530
que siga la línea del programa claro esto de cara al usuario hace pensar que los programadores son mejores

56
00:05:02,530 --> 00:05:05,450
porque hace pensar que las aplicaciones no fallan.

57
00:05:05,830 --> 00:05:11,410
Seguramente han visto le ha pasado alguna vez les ha pasado que cierta aplicación la están usando la

58
00:05:11,410 --> 00:05:17,080
baja la minimiza le ponen otra delante y hacen la operación rara y la pantalla así como unos puntitos

59
00:05:17,080 --> 00:05:18,760
así fuera de lugar.

60
00:05:19,150 --> 00:05:21,670
Esos puntitos se denominan artifacts o algunas líneas.

61
00:05:21,670 --> 00:05:26,180
Por ejemplo si estuviese dibujado esto aparece una línea que arriba pero el programa sigue funcionando.

62
00:05:26,180 --> 00:05:30,250
Bueno eso es gracias a la instrucción un error NEX.

63
00:05:30,370 --> 00:05:39,330
Como dije si hay algún error tú sigue para adelante y eso hace que se pueda explotar de formas gigantes.

64
00:05:39,520 --> 00:05:41,280
Una aplicación es hacer un ataque.

65
00:05:41,320 --> 00:05:49,060
Otra de las cosas a las que se que se tiende es que en la parte de pruebas acá abajo se hace unos test

66
00:05:49,150 --> 00:05:50,690
de aceptación.

67
00:05:50,740 --> 00:05:57,070
En realidad lo que se hace es que si estoy programado una calculadora y tengo un lugar para ponerle

68
00:05:57,310 --> 00:06:02,440
lo que quiero hacer escribir y verificar que pongan todos los números y los signos matemáticos y funcione.

69
00:06:02,500 --> 00:06:07,120
Anda listo la sacamos al mercado pero no le hacen pruebas de decir nada a ver y si en lugar de poner

70
00:06:07,120 --> 00:06:16,750
un número le pongo una letra o le pongo dos comillas o le pongo numeral y algún código en hexadecimal

71
00:06:16,990 --> 00:06:21,400
algún código único que pueda significar algún salto de línea en una instrucción qué pasa.

72
00:06:21,520 --> 00:06:22,990
Eso generalmente no lo hacen.

73
00:06:23,300 --> 00:06:33,180
Y otra de las cosas que pasa también con esto vamos a ser así vamos a bajar la presentación es que la

74
00:06:33,180 --> 00:06:40,510
parte de planificación se tienen muy en cuenta lo que es los límites de tiempo la velocidad de proyecto.

75
00:06:40,520 --> 00:06:45,410
Otra de las cosas que les juega en contra es la programación en pareja en pareja o de a dos o tres o

76
00:06:45,490 --> 00:06:52,010
diez personas y como dice el refrán Cuanto más manos hay en un plato es terrible garabato lo que significa

77
00:06:52,020 --> 00:06:57,140
que muchas personas están utilizando lo mismo haciendo lo mismo cuando tienen que ver con piezas de

78
00:06:57,140 --> 00:06:57,540
software.

79
00:06:57,980 --> 00:06:59,930
Generalmente hay muchos errores.

80
00:06:59,930 --> 00:07:04,970
Hay una excepción a la regla en esto que es la Comunidad de Software Libre en donde hay software como

81
00:07:04,970 --> 00:07:09,460
Newco Linux que son realmente maravillas y las hacen muchas personas.

82
00:07:09,680 --> 00:07:20,810
Pero eso es software Bolivia ha tenido un historial de errores y correcciones gigantes.

83
00:07:21,110 --> 00:07:24,080
Por último antes de pasar a la próxima clase

84
00:07:27,150 --> 00:07:31,860
si usted es una persona que está queriendo hacer un sobre un programa por qué va a reinventar la rueda.

85
00:07:31,970 --> 00:07:38,690
Si usted puede ir por internet y en lugares como micro Walkers o o en otro lugar de internet usted puede

86
00:07:38,870 --> 00:07:43,870
comprarle a los programadores ciertas piezas de software que ya están hechas y que tengan la estructura

87
00:07:43,870 --> 00:07:48,170
de lo que usted quiere hacer y usted simplemente se dedica a cambiar el color o ponerle su marca como

88
00:07:48,170 --> 00:07:50,440
una marca blanca del software.

89
00:07:50,450 --> 00:07:55,550
El problema con esto es que los sistemas operativos incorporan siempre están incorporando partes programas

90
00:07:55,570 --> 00:07:56,720
u otras personas.

91
00:07:56,720 --> 00:08:01,120
Generalmente cuando una empresa hace algo muy útil para un sistema operativo la empresa que sistema

92
00:08:01,120 --> 00:08:04,200
operativo termina comprando esa aplicación y la pone como si fuese de ellas.

93
00:08:04,220 --> 00:08:10,160
Sí y esto obviamente sería un problema porque claro no todos hacen los mismos controles de calidad y

94
00:08:10,160 --> 00:08:15,080
además podemos considerar que si le ponen un huevo de pascua a lo que vimos en la clase anterior con

95
00:08:15,080 --> 00:08:19,520
el jueguito que no tienen que estar pero está por ahí no lo hacen con malicia pero ponen una pieza de

96
00:08:19,520 --> 00:08:26,280
código que puede tener ese eslabón débil en la cadena de la seguridad y romperse un sistema operativo

97
00:08:26,280 --> 00:08:32,340
vienen llenos de aplicaciones de terceros llamadas equip App aplicaciones que por ahí como vamos a ver

98
00:08:33,230 --> 00:08:40,770
en las clases posteriores no tienen por qué estar y si no se utilizan y esto da lugar a una cosa muy

99
00:08:40,770 --> 00:08:44,750
grave que se llama ataque por reducción de código o reutilización de código.

100
00:08:44,760 --> 00:08:50,250
Es decir yo tenía un programa que tenía una vulnerabilidad en un sistema me lo cambiaron omision un

101
00:08:50,250 --> 00:08:55,890
fork porque hay un fork es una bifurcación en donde le corrigieron un par de cosas pero el código original

102
00:08:55,890 --> 00:09:01,020
sigue siendo el mismo el ADN sigue siendo el mismo y si fue concebido de forma defectuosa seguramente

103
00:09:01,020 --> 00:09:08,040
se puede llevar o propender al error haciendo alguna técnica de fusión como vimos de lógica difusa muy

104
00:09:08,040 --> 00:09:15,150
fácil así que esos son todos los problemas bien vamos a la próxima clase donde vamos a ver los ataques

105
00:09:15,180 --> 00:09:18,480
justamente por reducción de código para que vean de qué se trata.
