bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


model_seguretat_android

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
model_seguretat_android [2022/07/16 01:23]
joan_iglesias [Model de seguretat d'Android]
model_seguretat_android [2022/08/18 09:16] (actual)
enrique_mieza_sanchez [Model de seguretat d'Android]
Línia 1: Línia 1:
 ====== Model de seguretat d'Android ====== ====== Model de seguretat d'Android ======
  
-El model de seguretat d'Android és complex i contempla moltes vessants. En aquest article es resumeixen les prncipals mesures de seguretat que proporciona a nivell de sistema operatiu i a nivell d'aplicació. +El model de seguretat d'Android és complex i contempla moltes vessants. En aquest article es resumeixen les principals mesures de seguretat que proporciona a nivell de sistema operatiu i a nivell d'aplicació.
- +
-{{tag> ciberseguretat #Ciber #CiberMp03 #Ceti #CetiMp03 }}+
  
 +{{tag> android ciberseguretat #Ciber #CiberMp03 #Ceti #CetiMp03 #Dam #DamMp08 #DamMp08Uf01 #DamMp08Uf01 }}
  
 \\ \\
Línia 26: Línia 25:
 La protecció basada en l'usuari de Linux garanteix una comunicació segura entre aplicacions. Android utilitza el concepte d'ID d'usuari (UID) per gestionar el control d'accés de les aplicacions, no dels usuaris del sistema. Està prohibit que les aplicacions accedeixin a dades d'altres aplicacions o funcions del sistema sense els permisos necessaris. La protecció basada en l'usuari de Linux garanteix una comunicació segura entre aplicacions. Android utilitza el concepte d'ID d'usuari (UID) per gestionar el control d'accés de les aplicacions, no dels usuaris del sistema. Està prohibit que les aplicacions accedeixin a dades d'altres aplicacions o funcions del sistema sense els permisos necessaris.
  
-L'aplicació està aïllada a nivell del nucli, per la qual cosa es garanteix que l'aplicació està aïllada de la resta del sistema,+L'aplicació està aïllada a nivell del nucli, per la qual cosa es garanteix que l'aplicació està aïllada de la resta del sistema.
  
 \\ \\
Línia 34: Línia 33:
 En un sistema Linux, //root// és el nom del compte que té accés a tots els fitxers i ordres. Com que està basat en Linux, Android també té aquest concepte. En un sistema Linux, //root// és el nom del compte que té accés a tots els fitxers i ordres. Com que està basat en Linux, Android també té aquest concepte.
  
-El propietari del dispositiu NO és root. Aquesta decisió de disseny es va prendre per motius de seguretat. Si el propietari pot fer qualsevol cosa al sistema, les aplicacions malicioses poden obtenir més fàcilment el control de tot el sistema enganyant els usuaris perquè els concedeixin els mateixos permisos.+Per motius de seguretat, el propietari del dispositiu NO és root, doncs si ho fos les aplicacions malicioses podrien obtenir més fàcilment el control de tot el sistema enganyant els usuaris perquè els concedissin els mateixos permisos.
  
-er superar les limitacions del model sandbox, l'usuari pot fer root al dispositiu. Ara bé, el rooteig no és recomanable, doncs sesprés de rootejarja no podem confiar en les mesures de seguretat aplicades pel sistema operatiu. Això vol dir que prenem tot el sistema a les nostres manstenim el control de tot i ens desfem dels sistemes de seguretat a favor d'una experiència personalitzada. +Per superar les limitacions del model sandbox, l'usuari pot fer root al dispositiu. Ara bé, el rooteig no és recomanable, doncs després de rootejar ja no podem confiar en les mesures de seguretat aplicades pel sistema operatiu. A més, el rooteig pot fer que la garantia del dispositiu quedi anul·lada.
- +
-El rooteig pot fer que la garantia del dispositiu quedi anul·lada.+
  
 \\ \\
Línia 46: Línia 43:
 L’arrencada verificada és un procés que garanteix que el dispositiu arrenqui el sistema operatiu original i el codi del sistema relacionat, en lloc d'una còpia maliciosa. L’arrencada verificada és un procés que garanteix que el dispositiu arrenqui el sistema operatiu original i el codi del sistema relacionat, en lloc d'una còpia maliciosa.
  
-De manera similar a la tecnologia Blockchain, el Verified Boot estableix una cadena de confiança entre els múltiples components que poden ser alterats, començant pel maquinari fins a les particions verificades. Si s'altera algun dels components de la cadena, tota la cadena s'invalida i s'avisa l'usuari. +De manera similar a la tecnologia Blockchain, el Verified Boot estableix una cadena de confiança entre els múltiples components que poden ser alterats, començant pel maquinari fins a les particions verificades. Si s'altera algun dels components de la cadena, tota la cadena s'invalida i s'avisa l'usuari. L'arrel de confiança és una clau criptogràfica utilitzada per signar la còpia d'Android que s'executa al dispositiu. Aquesta clau forma part de la verificació d'arrencada.
- +
-L'arrel de confiança és una clau criptogràfica utilitzada per signar la còpia d'Android que s'executa al dispositiu. Aquesta clau forma part de la verificació d'arrencada.+
  
 Android ofereix contínuament actualitzacions de seguretat menors juntament amb les principals que venen amb cada nova versió d'Android. Les actualitzacions menors solen "parxejar" les vulnerabilitats descobertes. Un atacant podria intentar rebaixar la versió d'Android que s'executa al dispositiu per explotar les vulnerabilitats aplicades. Aquest tipus d'atacs es mitiga amb la protecció contra retrocessos. Aquesta protecció forma part del procés d'arrencada verificada. Android ofereix contínuament actualitzacions de seguretat menors juntament amb les principals que venen amb cada nova versió d'Android. Les actualitzacions menors solen "parxejar" les vulnerabilitats descobertes. Un atacant podria intentar rebaixar la versió d'Android que s'executa al dispositiu per explotar les vulnerabilitats aplicades. Aquest tipus d'atacs es mitiga amb la protecció contra retrocessos. Aquesta protecció forma part del procés d'arrencada verificada.
Línia 60: Línia 55:
 \\ \\
  
-Els aspectes més rellevants a nivell de seguretat d'aplicació són els següents:+Els aspectes més rellevants de seguretat a nivell d'aplicació són els següents:
  
 \\ \\
Línia 68: Línia 63:
 En Android, la privacitat de l’usuari està protegida mitjançant els permisos. Les aplicacions en Android requereixen el consentiment de l’usuari per a realitzar accions que puguin tenir impacte en altres, en el sistema operatiu o en el propi usuari. En Android, la privacitat de l’usuari està protegida mitjançant els permisos. Les aplicacions en Android requereixen el consentiment de l’usuari per a realitzar accions que puguin tenir impacte en altres, en el sistema operatiu o en el propi usuari.
  
-Els permisos necessaris de cada aplicació estan declarats en el fitxer //AndroidManifest.xml//. Cada permís s’especifica en la seva pròpia etiqueta //uses-permission//.+Els permisos necessaris de cada aplicació estan declarats en el fitxer //AndroidManifest.xml//. Cada permís s’especifica amb la seva pròpia etiqueta //uses-permission//.
  
-Alguns permisos es concedeixen a l’aplicació per defecte quan s’especifiquen. Tot i aixòl'altra categoria de permisos, anomenada permisos perillosos, requereix un consentiment especial de l'usuari.+Alguns permisos es concedeixen a l’aplicació per defecte quan s’especifiquen. Tanmateixhi ha una categoria de permisos que requereix un consentiment especial de l'usuari, com per exemple l'accés a la càmera o a la geolocalització.
  
 Quan una aplicació demana un permís, l'usuari rep un diàleg. Aquests permisos solen sol·licitar-se quan cal la funcionalitat corresponent. Per exemple, s'ha de sol·licitar un permís de càmera abans que l'usuari intenti fer una captura. Quan una aplicació demana un permís, l'usuari rep un diàleg. Aquests permisos solen sol·licitar-se quan cal la funcionalitat corresponent. Per exemple, s'ha de sol·licitar un permís de càmera abans que l'usuari intenti fer una captura.
Línia 87: Línia 82:
 L’emmagatzematge de dades és, a priori, el camp més sensitiu de la seguretat d’Android, doncs les dades són l’objectiu més important d’un atacant. Android s’ha d’assegurar per tant que cada opció d’emmagatzematge de dades estigui degudament assegurada en funció de la sensibilitat de les dades guardades. L’emmagatzematge de dades és, a priori, el camp més sensitiu de la seguretat d’Android, doncs les dades són l’objectiu més important d’un atacant. Android s’ha d’assegurar per tant que cada opció d’emmagatzematge de dades estigui degudament assegurada en funció de la sensibilitat de les dades guardades.
  
-Android ofereix tres maneres de desar les dades al dispositiu:+Segons la [[https://developer.android.com/training/data-storage?hl=es-419|documentació oficial d'Android sobre emmagatzematge]], hi ha tres maneres de desar les dades al dispositiu:
  
   * **Emmagatzematge intern**: Les dades emmagatzemades aquí només són visibles per a l'aplicació corresponent. Altres aplicacions no tenen accés als fitxers emmagatzemats al directori de l'aplicació. Quan l'aplicació es desinstal·la, totes les dades emmagatzemades aquí s'esborren.   * **Emmagatzematge intern**: Les dades emmagatzemades aquí només són visibles per a l'aplicació corresponent. Altres aplicacions no tenen accés als fitxers emmagatzemats al directori de l'aplicació. Quan l'aplicació es desinstal·la, totes les dades emmagatzemades aquí s'esborren.
Línia 98: Línia 93:
  
  
-A més, si volem emmagatzemar persistentment parells clau-valor, podem utilitzar l'API SharedPreferences proporcionada per Android. Un hàbit comú dels desenvolupadors és emmagatzemar les credencials de l'usuari al SharedPreferences.+A més, si volem emmagatzemar persistentment parells clau-valor, podem utilitzar l'API ''SharedPreferences'' proporcionada per Android. Un hàbit comú dels desenvolupadors és emmagatzemar les credencials de l'usuari al ''SharedPreferences''.
  
-Per afegir una capa extra de seguretat podem xifrar les dades emmagatzemades. Per xifrar les dades, Android proporciona la llibreria Security que inclou, entre d'altres, dues classes per al xifratge de dades (//EncryptedFile// //EncryptedSharedPreferences//+Per afegir una capa extra de seguretat podem xifrar les dades emmagatzemades. Per xifrar les dades, Android proporciona la llibreria Security que inclou, entre d'altres, dues classes per al xifratge de dades (''EncryptedFile'' ''EncryptedSharedPreferences''
  
  
Línia 111: Línia 106:
 Android proporciona les classes següents que faciliten la comunicació entre processos: Android proporciona les classes següents que faciliten la comunicació entre processos:
  
-  * Intent +  * ''Intent'' 
-  * Binder +  * ''Binder'' 
-  * Messenger+  * ''Messenger''
  
-Els intents són el mecanisme de pas de dades quan es treballa amb activitats o receptors de difusió. Els intents poden ser explícits o implícits. Els explícits estan dissenyats per ser rebuts per un component explícit, per això el seu nom. D'aquesta manera, podem estar segurs que les dades enviades des de l'aplicació A són rebudes únicament per l'aplicació B. A més, els intents explícits poden ser utilitzats per enviar dades entre activitats dins les nostres aplicacions. En canvi, els implícits especifiquen una acció que cal fer. Depenent de l'acció, pot incloure algunes dades necessàries per a l'acció respectiva. Els intents implícits solen usar-se quan la nostra aplicació no pot fer una acció i volem delegar la tasca a una aplicació de tercers.+Els intents són el mecanisme de pas de dades. Els intents poden ser explícits o implícits. Els explícits estan dissenyats per ser rebuts per un component explícit, per això el seu nom. D'aquesta manera, podem estar segurs que les dades enviades des de l'aplicació A són rebudes únicament per l'aplicació B. A més, els intents explícits poden ser utilitzats per enviar dades entre activitats dins les nostres aplicacions.
  
-Les classes Binder i Messenger s’usen per a implementar la trucada procediment remot en Android (//Remote Procedure Call - RPC - //). Proporcionen una interfície que facilita la comunicació segura entre una aplicació i un servei.+En canvi, els intents implícits especifiquen una acció que cal fer sense concretar quina altra aplicació ha de fer-la. Solen usar-se quan la nostra aplicació no pot fer una acció i volem delegar-la a una aplicació de tercers. Seria el cas per exemple d'una aplicació que vol obrir un arxiu PDF i envia un intent implícit al sistema operatiu per a que alguna aplicació doni aquest servei. 
 + 
 +Les classes Binder i Messenger s’usen per a implementar les trucades procediments remots en Android (//Remote Procedure Call - RPC - //). Proporcionen una interfície que facilita la comunicació segura entre una aplicació i un servei.
  
 \\ \\
Línia 129: Línia 126:
 Les aplicacions tenen la capacitat de crear permisos de seguretat protegits per la signatura. Així, les aplicacions signades amb el mateix certificat, sota diferents UIDs i sandboxs d'aplicació, poden accedir a funcionalitats restringides exposades per un o altre. Les aplicacions tenen la capacitat de crear permisos de seguretat protegits per la signatura. Així, les aplicacions signades amb el mateix certificat, sota diferents UIDs i sandboxs d'aplicació, poden accedir a funcionalitats restringides exposades per un o altre.
  
 +[[https://github.com/dogriffiths/HeadFirstAndroid/wiki/How-Android-Apps-are-Built-and-Run|Aquest article mostra el procés d'empaquetament i signatura de codi de les aplicacions Android]], a més de la posada en marxa per part del sistema operatiu.
  
 \\ \\
 +
model_seguretat_android.1657934625.txt.gz · Darrera modificació: 2022/07/16 01:23 per joan_iglesias