Programació de codi segur Codi:  M1.707    :  6
Consulta de les dades generals   Descripció   L'assignatura en el conjunt del pla d'estudis   Camps professionals en què es projecta   Coneixements previs   Informació prèvia a la matrícula   Objectius i competències   Continguts   Consulta dels recursos d'aprenentatge de què disposa l'assignatura   Recursos d'aprenentatge i eines de suport   Informacions sobre l'avaluació a la UOC   Consulta del model d'avaluació  
ATENCIÓ: Aquest és el pla docent de l'assignatura per al primer semestre del curs 2020-2021. Us servirà per planificar la matrícula (consulteu si l'assignatura s'ofereix aquest semestre a l'espai del Campus Més UOC / La Universitat / Plans d'estudis). Un cop comenci la docència, heu de consultar-lo a l'aula. (El pla docent pot estar subjecte a canvis.)

Es tracta d'una assignatura que no ensenya a programar, sinó que, d'una banda, mostra la necessitat d'emprar tècniques segures per tal de no crear vulnerabilitats fàcilment aprofitables pels hackers i, de l'altra, descriu les tècniques de programació existents per tal de realitzar un programari segur. Així doncs, l'assignatura és fonamentalment pràctica, a partir de la qual els estudiants hauran de recrear situacions de vulnerabilitat i  proposar solucions per tal d'evitar-les.

  • Es mostren els coneixements bàsics per entendre on es produeixen les vulnerabilitats dels programes informàtics
  • Es veu com modificar el comportament d'un executable a partir de la modificació del fitxer binari mitjançant les eines adequades
  • Es mostren les tècniques que s'han de tenir en compte a l'hora de dissenyar i implementar les aplicacions per no tenir vulnerabilitats.

Amunt

L'assignatura de Programació de codi segur es desenvolupa en el pla d'estudis del Màster Interuniversitari de seguretat de les TIC (UOC-UAB-URV) i dins d'aquest màster, més concretament en l'itinerari acadèmic de l'especialitat de Seguretat en serveis i aplicacions,  té una durada semestral i consta d'un total de 6 crèdits acadèmics ECTS.

ECTS és la sigla d'European credit transfer system ('sistema europeu de transferència de crèdits'). L'ECTS se centra en l'activitat de l'estudiant i es basa en la càrrega de treball necessària per a assolir els objectius d'un programa. Un crèdit ECTS equival a 25 hores.

Així doncs, la dedicació prevista a l'assignatura és de 150 hores.

Amunt

Programadors d'aplicacions informàtiques, dissenyadors i analistes d'aplicacions, caps de projectes, caps de departament d'informàtica, auditors de seguretat, tant interns com externs.

Alguns exemples del tipus de destinataris o de sortides professionals són:

  • Cap de projectes de seguretat TIC

Professional responsable del disseny, el desenvolupament i l'adequació de controls de seguretat informàtica.

  • Expert en el desenvolupament d'aplicacions i serveis web segurs

Responsable del disseny i la programació de controls de seguretat (control d'accés, funcions criptogràfiques, filtres, bitàcoles de seguretat d'aplicacions, etc.); anàlisi d'aplicacions robustes a vulnerabilitats de seguretat; preparació de llibreries amb funcions de seguretat per al seu ús per part de l'àrea de desenvolupament de sistemes; suport de seguretat per a l'àrea de desenvolupament de sistemes; consultoria de desenvolupaments segurs (integració de seguretat en aplicacions desenvolupades per sistemes).

  • Especialista en sistemes de registre web i control d'accés

Analista/programador de serveis de registre i federació d'identitats.

  • Consultor de projectes d'administració electrònica

Responsable de l'anàlisi, el disseny i la programació de projectes de l'administració electrònica.

  • Consultor de comerç i banca electrònica

Responsable de l'anàlisi, el disseny i la programació de projectes de banca i transaccions comercials electròniques.


Amunt

No són necessaris coneixements previs, tot i així cal tenir en compte que els continguts d'aquesta assignatura estan relacionats en el desenvolupament de programari, tant en entorn d'escriptori com en entorn web.

Els coneixements relacionats per a la realització d'aquest curs són els propis dels estudis d'Enginyeria Tècnica en Informàtica, Enginyeria Informàtica, Grau d'informàtica, Grau de Multimèdia, Grau de les tecnologies de Telecomunicació i Enginyeria en Telecomunicacions.

Als estudiants que tinguin un títol universitari en altres branques d'Enginyeria i Arquitectura o en la branca de Ciències en les àrees de Matemàtiques, Física o Estadística, els coneixements en desenvolupament de programari els ajudaran a l'assoliment de l'assignatura.

Amunt

La informació prèvia a la matrícula d'aquesta assignatura que cal tenir en compte és la pròpia a la d'accés al màster Màster interuniversitari de Seguretat de les tecnologies de la informació i les comunicacions. Aquest màster va adreçat a enginyers, enginyers tècnics, llicenciats o graduats en l'Àrea de les Tecnologies de la Informació i de les Comunicacions. 

Poden accedir al màster interuniversitari de Seguretat de les tecnologies de la informació i de les comunicacions: 

  • Els estudiants que tinguin un títol universitari oficial espanyol o bé un títol expedit per una institució d'ensenyament superior de l'EEES que faculti el país expedidor del títol per a accedir a ensenyaments oficials de màster en alguna de les àrees següents:
    • Titulacions de la branca d'Enginyeria i Arquitectura
    • Titulacions de la branca de Ciències en les àrees de Matemàtiques, Física o Estadística
       
  • L'admissió d'estudiants d'altres àrees quedarà supeditada a una avaluació de la Comissió de Coordinació del màster que determinarà l'admissió del sol·licitant segons la seva formació prèvia i experiència professional.


Amunt

Objectius

L'assignatura està estructurada al voltant de continguts i activitats que permetran als estudiants assolir els objectius següents al llarg de la durada del període formatiu:

  1. Comprendre on i perquè existeixen vulnerabilitats en el programari.
  2. Saber modificar el comportament d'un fitxer executable
  3. Utilitzar les eines d'anàlisi de codi executable.
  4. Saber com protegir-se d'aquestes vulnerabilitats.
  5. Dissenyar aplicacions segures.

 

Competències

L'assignatura està estructurada al voltant de continguts i activitats que permetran als estudiants adquirir les següents competències específiques de l'assignatura i les transversals de la universitat.

Competències específiques

  • Conèixer els tipus i consequències de les vulnerabilitats i dels exploits
  • Ús de les bases de dades d'exploits
  • Utilitzar les eines de sistemes d'explotació
  • Conèixer les metodologies en el disseny d'aplicacions segures
  • Aplicació dels tests de seguretat
  • Aplicació de les bones pràctiques en el desenvolupament de programari segur
  • Diferenciar les parts de codi segur i el de no segur
  • Conèixer per què, com, quan un codi pot ser o no segur
  • Conèixer les conseqüències del codi no segur
  • Conèixer les tècniques i tàctiques dels hackers

Competències transversals

Les competències transversals s'inclouen en totes les titulacions de la Universitat Oberta de Catalunya, les quals constitueixen un element distintiu de tot graduat UOC.

  • Comunicar, intercanviar i construir coneixement en un entorn virtual en el marc d'una comunitat d'aprenentatge
  • Col·laborar, compartir i publicar informació relativa a la seguretat dels sistemes informàtics
  • Debatre i compartir les experiències pròpies en l'àmbit de la seguretat
  • Capacitat de comunicar informació tècnica i especialitzada de forma clara.
  • Ús de l'anglès en l'àmbit de les TIC.
  • Capacitat per a actualitzar les competències professionals, aconseguint una adaptació contínua en l'àmbit de la seguretat en de les tecnologies de la informació tant en el present com en el futur.
  • Capacitat per a detectar i resoldre problemes de seguretat en la programació
  • Capacitat d'anàlisi en l'àmbit de la seguretat
  • Iniciativa emprenedora

 

. Metodologia 

El curs es realitza de forma on-line, per la qual cosa, tant la comunicació amb l'alumnat com el desenvolupament íntegre de l'assignatura es fa des de l'aula virtual.

L'alumnat disposa d'un entorn estructurat en diversos blocs des dels quals pot accedir a la documentació de referència, els enunciats de les activitats a realitzar i als materials i recursos disponibles, així com a les àrees de debat, als fòrums i a tot allò necessari per al desenvolupament del curs.

Cal tenir en compte que algunes de les activitats es basen en treballs que s'han de realitzar fent ús d'eines web 2.0 assequibles i gratuïtes per tal d'afavorir el treball col·laboratiu i la construcció de coneixement.

L'entorn d'aprenentatge de la UOC és l'eLearning i en el model educatiu constructivista que s'aplica, les activitats d'aprenentatge són l'element clau del model educatiu de la UOC, el nucli al voltant del qual s'organitza la docència i es dóna sentit a l'aprenentatge dels estudiants: els recursos d'aprenentatge, la col·laboració i l'acompanyament.

En aquest model constructivista de forma resumida es poden anomenar els següents rols de l'estudiant i del docent:

  • Estudiant
    • Aprenentatge centrat en l'alumne, aprendre fent i construint, resolució de problemes, simulació de supòsits pràctics.
    • Compromís actiu, responsable del seu propi aprenentatge
    • Col·laboratiu, participació en grups
    • Constructor del coneixement
    • Interacció entre els companys, cooperació
    • Intercanvi de idees, opinions
  • Docent
    • Acompanya l'estudiant
    • Comparteix experiències
    • Facilita coneixement
    • Dinamitza, impulsa i incentiva

 

.Sistema d'Avaluació

L'avaluació contínua (també anomenada avaluació formativa) és l'eix fonamental del model educatiu de la UOC i és la que s'aplica en l'assignatura de Programació de codi segur.

L'avaluació contínua (AC) consisteix en la realització i superació d'un seguit de proves d'avaluació contínua (PAC) establertes en el pla d'aprenentatge de l'assignatura. 

El procés d'avaluació es realitza al llarg del desenvolupament de l'assignatura i d'aquí la importància d'anar acompanyant el desenvolupament de les activitats de manera sostinguda i amb un alt grau d'implicació personal i amb el grup.

La finalitat de l'avaluació serà formativa i contínua, i amb això es pretén valorar el progrés de l'estudiant des del punt de vista del seu procés d'aprenentatge.

L'avaluació s'encarregarà de donar informació, a les dues parts, sobre el procés d'aprenentatge de l'alumnat. Per determinar les activitats d'avaluació cal tenir en compte tres factors. Per un costat l'autenticitat, és a dir, que les activitats d'avaluació siguin reals; que creïn una interactivitat entre el professorat i l'alumnat; que siguin multidimensionals on s'integrin coneixements, destreses i diferents habilitats; i, per tant, que es tracti d'una experiència no només avaluadora, sinó també d'una experiència útil i significativa.

Hem de tenir en compte que el procés avaluatiu de l'assignatura té una intenció formativa, és a dir, ensenyar, aprendre i avaluar formen part del mateix procés.

El docent durà a terme un seguiment constant de totes les activitats que l'alumnat vagi confeccionant dins el marc de l'aprenentatge, tenint en compte, en tot moment, el seguiment d'un model constructivista centrat en l'alumne.

Cada prova d'avaluació consta de diversos tipus d'activitats: resolució de qüestions teòriques i supòsits pràctics, així com activitats col·laboratives ja sigui en format de debat, blogs, wiki, etc. A més a més, en cada una de les proves d'avaluació s'especifica per a cada activitat el pes que suposa en la qualificació global de la prova.

En general s'aplicaran dos tipus de criteris d'avaluació en funció del tipus d'activitat: col·laboratives o proves escrites.

Proves escrites

En aquest tipus de proves l'estudiant ha de mostrar les competències adquirides mitjançant el treball personal.

Es valora que l'estudiant processi correctament la informació manejada, que sistematitzi els coneixements adquirits, que apliqui els coneixements a la solució de situacions de caràcter professional, que mostri competències de reflexió i de síntesi i que sigui capaç de comunicar idees i d'elaborar conclusions. També es valora la presentació, la capacitat resolució, d'anàlisi i de recerca.

Activitats col·laboratives

Per a aquest tipus d'activitats (participació en wikispace, debats, blogs, etc) es tindran en compte la rellevància del contingut de les aportacions i el grau de participació.

Amunt

  • Mòdul 1 Exploits
    • Bugs
    • Vulnerabilitats
    • Bases de dades de vulnerabilitats
    • Exploits
    • Tipus d'exploits
    • Sistemes d'explotació
    • El mercat dels exploits
  • Mòdul 2 Eines
    • Depuradors
    • Compiladors
  • Mòdul 3 Disseny d'aplicacions segures
    • Cicle de vida del desenvolupament de programari segur
    • Avaluació de riscos
    • Modelatge d'amenaces
    • Tècniques de seguretat
  • Mòdul 4 Testing i bones pràctiques
    • Test de seguretat
    • Revisió de codi segur
    • Bones pràctiques
  • Mòdul 5 Codi segur
    • Integer overflow
    • Desbordament de pila (stack overflow)
    • Desbordament de heap
    • Funcions vulnerables
  • Mòdul 6 Shellcodes
    • Escriptura de shellcodes
    • Shellcodes per entrada estàndard
    • Shellcodes alfanumèrics
    • Un exemple de shellcode
    • Adreça de la funció per cridar
    • El shellcode en assemblador
    • El shellcode en binari
    • L'exploit amb el shellcode

Amunt

Amunt

Lectures Inici Final
Exploits 16/09/2015 22/09/2015
Eines 23/09/2015 29/09/2015
Disseny d'aplicacions segures 19/10/2015 25/10/2015
Testing i bones pràctiques 26/10/2015 01/11/2015
Codi segur 16/11/2015 22/11/2015
Shellcodes 23/11/2015 29/11/2015

 

Amunt

La Normativa acadèmica de la UOC disposa que el procés d'avaluació es fonamenta en el treball personal de l'estudiant i pressuposa l'autenticitat de l'autoria i l'originalitat dels exercicis fets.

La manca d'originalitat en l'autoria o el mal ús de les condicions en què es fa l'avaluació de l'assignatura és una infracció que pot tenir conseqüències acadèmiques greus.

Es qualificarà l'estudiant amb un suspens (D/0) si es detecta manca d'originalitat en l'autoria d'alguna activitat avaluable (pràctica, prova d'avaluació contínua (PAC) o final (PAF), o la que es defineixi al pla docent), sigui perquè ha utilitzat material o dispositius no autoritzats, sigui perquè ha copiat textualment d'internet, o ha copiat d'apunts, de materials, de manuals o d'articles (sense la citació corresponent), d'altres estudiants, o per qualsevol altra conducta irregular.

La qualificació de suspens (D/0) en les qualificacions finals d'avaluació contínua pot comportar l'obligació de fer l'examen presencial per a superar l'assignatura (si hi ha examen i si superar-lo és suficient per a superar l'assignatura segons indiqui el pla docent).

Quan aquesta mala conducta es produeixi durant la realització de les proves d'avaluació finals presencials, l'estudiant pot ser expulsat de l'aula, i l'examinador farà constar tots els elements i la informació relatius al cas.

D'altra banda, aquesta conducta pot donar lloc a la incoació d'un procediment disciplinari i l'aplicació, si escau, de la sanció que correspongui.

La UOC habilitarà els mecanismes que consideri oportuns per a vetllar per la qualitat de les seves titulacions i garantir l'excel·lència i la qualitat del seu model educatiu.

Amunt

La fórmula d'acreditació de l'assignatura és la següent: (AC + Pr) o EX Vir.

 
 

Amunt