Logo Blogo

SEAndroid, SELinux per Android creato dalla National Security Agency

Pubblicato: 17 gen 2012 da Federico Moretti

SELinuxSecurity Enhanced Android o SEAndroid è il porting di SELinux – creato dalla National Security Agency (NSA) – sul sistema operativo di Google. Annunciato da Stephen Smalley al Linux Security Summit 2011, è disponibile al pubblico. L’intenzione è quella d’incrementare la sicurezza di Android — sulla falsariga del progetto per Linux.

SEAndroid supporta sia YAFFS2, il file system utilizzato fino a Gingerbread, sia Ext4. La soluzione prevede alcune delle principali funzioni di SELinux: integra una politica di Type Enforcement (TE) per autorizzare l’accesso dei processi agli oggetti e un sistema di Multi-Level Security (MLS) per isolare i domini delle applicazioni.

La NSA ha realizzato il porting d’una parte dello userspace di SELinux. Curiosamente, SEAndroid non è stato creato con Android: i sorgenti del progetto sono mantenuti da Fedora, la distribuzione di Red Hat che utilizza SELinux a livello predefinito. Canonical e Ubuntu gli preferiscono AppArmor. L’ultima parola spetta ai produttori.

Come si sottolineava per il porting di PulseAudio, SEAndroid è una soluzione open source di facile installazione su quei sistemi integrati che supportano ufficiosamente Android. Senza l’appoggio dei partner di Google, il progetto è destinato a un uso limitato. Il discorso nella circostanza fa sorridere: sarebbe considerato un hack.

Un ambiente ideale per l’integrazione di SEAndroid sarebbe Linaro con la build di Android che utilizza la toolchain di Ubuntu. Stiamo parlando d’una distribuzione non ufficiale ignorata da Google e perciò esclusa dall’Android Market. Stando a queste condizioni è lecito domandarsi se non sia preferibile optare direttamente per Linux.

Eppure, è innegabile che l’interesse attorno al sistema operativo di Google sia in costante ascesa: la recente disponibilità di PulseAudio e SEAndroid giustificano – almeno, in parte – la tesi di Chris Di Bona, per il quale Android è «il sogno del desktop di Linux diventato realtà». Il problema è nell’evidente dipendenza da Google.

Via | The H Security

1 stelle2 stelle3 stelle4 stelle5 stelle (nessun voto)
condividi condividi
18 commenti

Commenti dei lettori

(Inserisci un commento - Nascondi commenti anonimi)
  • Tyrael

    17 gen 2012 - 13:45 - #1
    0 punti
    Up Down

    “Curiosamente, SEAndroid non è stato creato con Android: i sorgenti del progetto sono mantenuti da Fedora, la distribuzione di Red Hat che utilizza SELinux a livello predefinito. Canonical e Ubuntu gli preferiscono AppArmor. L’ultima parola spetta ai produttori.”

    Cosa significa???
    - Che gli sviluppatori utilizzano eclipse o altro su fedora per sviluppare SEAndroid (dov’è la curiosità?)
    - Che SEAndroid invece di girare us Android gira su Fedora con il suo kernel (ah ma allora hanno semplicemente cambiato il nome di SELinux in SEAndroid)
    - Non importa cosa cavolo sta facendo la NSA, intanto Ubuntu usa apparmor (che non è stato portato ad android) quindi i produttori possono sempre decidere di utilizzare apparmor sui loro prodotti android.
    - … ?

  • Profilo di Zuk

    Zuk

    17 gen 2012 - 14:27 - #2
    0 punti
    Up Down

    Mai vista cosa più invasiva e invadente di SELinux per l’utente

  • Profilo di g_g

    g_g

    17 gen 2012 - 15:45 - #3
    0 punti
    Up Down

    #1 Forse sei nuovo di questo blog, gli articoli di FM non vanno letti nei dettagli, bisogna prenderli un po’ così, giusto per farsi un idea, sennò si va per finire in inutili flame con l’autore.

  • Kim Allamandola

    17 gen 2012 - 23:03 - #4
    0 punti
    Up Down

    Solo una piccola nota: Android è GNU/Linux con un userspace minimale che fa
    girare un framework, Android appunto, il quale si occupa dell’interazione con
    l’utente, dei servizi del sistema ecc ma sotto il cofano a parte un po’ di
    patch non nel tree ufficiale Android è GNU/Linux (GNU per la parte di Busybox
    e Linux per il kernel) il resto è il framework col suo controllo degli accessi.

    SELinux per Android è SELinux per una qualsiasi distro GNU/Linux con un po’ di
    ritocchi del caso e quoto Zuk sulla sua invasività e fastidiosità, non a caso
    è un progetto USA di nascita governativa… Vi vengono in mente le famose
    richieste delle Trusted Extensions?

  • bpm___

    18 gen 2012 - 10:55 - #5
    0 punti
    Up Down

    @Kim Allamandola SeLinux è un progetto che è nato per permettere un controllo totale delle policy per ogni utente. Questo serve in svariati ambiti nei quali infatti SeLinux è molto apprezzato e non è per nulla invasivo. Diciamo che l’utilizzo su normali desktop non è lo scopo per cui è nato ed è stato sviluppato e sicuramente richiede una configurazione minimale che può anche non essere del tutto banale.

  • CyberPippo

    18 gen 2012 - 18:47 - #6
    0 punti
    Up Down

    eh si, perché invece apparmor è immune alle leggi sulla sicurezza americane, vero?

  • Kim Allamandola

    18 gen 2012 - 19:11 - #7
    0 punti
    Up Down

    @bpm___ #5
    SeLinux ha come scopo primario il controllo delle syscall, questo include
    anche il desktop ed è assolutamente invasivo, ti basta provare Fedora che
    ha scelto SeLinux tempo fa per constatarlo; anche le mailing list dove si
    leggeva “boota con selinux=0 e risolverai tutti i tuoi problemi” sono un
    buon indizio :-)

    Sono sempre un po’ troppo acido ma vedo che ha troppi piace avere le porte
    blindate sui muri di carta…

    @CyberPippo #6
    Scusa, che c’entra? AppArmour è assai più gestibile di SeLinux ed opera in
    maniera assai meno invasiva. Io ho semplicemente catalogato SeLinux come le
    Trusted Extensions, software scritto da o su commisione di enti governativi
    USA, come software ridicolo per l’equazione costi-benefici e per la complessità
    che ha. Del resto è in USA che sequestrano un portatile ad uno studente perché
    un suo collega “dice” alla polizia che “è un tipo strano che entra nel cuore
    del sistema e da li lancia comandi” (Alt+F1 per inciso), è in USA dove una
    scuola s’è permessa di mettere un braccialetto elettronico agli studenti
    obesi per “monitorare le loro attività e redarguirli per i loro comportamenti”,
    è negli USA dove in alcune scuole ed altre istituzioni si forniscono computer
    con software spia nelle WebCAM dei portatili ecc.

    La mia nota è solo che Android è GNU/Linux non è un OS a se e che SeLinux è
    più che altro un’americanata che una figata, tutto qui.

  • CyberPippo

    18 gen 2012 - 20:48 - #8
    0 punti
    Up Down

    definisci “invasivo” sennò stiamo qui a parlare di aria fritta come al solito
    poi il confine tra americanata e figata qui è molto labile dal momento che sia apparmor che selinux sono dei giocattoli se paragonati ad altri sistemi MAC

  • bpm___

    19 gen 2012 - 11:05 - #9
    0 punti
    Up Down

    @Kim Allamandola selinux può essere usato per il desktop ma è nato per sistemi in cui è richiesto un controllo fine delle policy degli utenti. Che poi venga usato anche in ambito desktop quello è un altra cosa.
    Apparmor è sicuramente meno invasivo ma non ha il controllo di SeLinux. Infatti Apparmor è nato per essere un sistema più semplice da utilizzare quando non è richiesto la complessità di SeLinux.
    Non è un caso che in molti sistemi critici basati su Linux si usa spesso SeLinux per limitare i danni in caso di accessi non autorizzati.
    Poi cosa centrano gli esempi Americani con questo prodotto? SeLinux è nato per gestire quasi completamente cosa un utente può e non può fare, in sistemi in cui questo è richiesto.

  • Kim Allamandola

    19 gen 2012 - 12:04 - #10
    0 punti
    Up Down

    @CyberPippo #8
    Un software che sostanzialmente vuole “conoscere” ogni applicazione che gira
    per giudicare se una da chiamata a funzione è legittima o meno lo ritengo
    assai invasivo, mi ricorda tanto il classico tema aziendale dove certi manager
    vorrebbero un report istante per istante senza considerare il tempo che ci
    vuole per preparare e scrivere il report anziché lavorare… In altri termini
    vedo SeLinux come qualcosa di troppo complesso rispetto alla complessità di
    un sistema moderno per essere considerato accettabile, se si ritiene SeLinux
    sia necessario allora è necessario riprogettare il funzionamento del sistema
    perché una simile soluzione è eccessivamente scomoda da gestire…
    Le Trusted Extensions di Solaris che ho citato sono un altro esempio a mio
    avviso “da burocrati” piuttosto che da tecnici, qualcosa che è un regolare
    bagno di sangue; ritieni serva? Bene allora vuol dire che il sistema attuale
    non è in grado di soddisfare i tuoi requisiti e va riscritto da zero altrimenti
    fanne a meno…

    Spero di aver risposto…

    @bpm___ #9
    Se non ricordo male l’obbiettivo dell’NSA (da cui la mia bollatura di
    Americanata) era di avere SeLinux ovunque ovvero anche sui desktop, poi mi
    sono disinteressato al tema ritenendolo assurdo e non più di mio interesse
    operando all’epoca su FreeBSD prima e Solaris poi, non so se abbiano aggiustato
    il tiro…

    Quel che non mi va è lo scopo di SeLinux, se vuoi un simile controllo devi
    fare un framework su cui tutte le applicazioni si basano che nativamente
    prevede nella sua architettura un controllo simile (Android è diverso ma
    soddisfa un concetto simile) altrimenti inserirlo nei sistemi attuali le cui
    architetture sono state pensate tra gli anni ‘80 e ‘90 e da allora sempre
    più o meno ferme son rimaste è troppo oneroso… Lo schema classico dei
    permessi, le ACL POSIX e poco altro sono il massimo che puoi pretendere IMO
    dai sistemi attuali. Non ti basta? Ok, è tempo allora di riprogettare l’OS!
    Eliminiamo il concetto di filesystem, il filesystem diventi solo un modo di
    visualizzare i dati, implementiamo un sistema che gestisca lo storage con
    degli hook opportuni per le varie applicazioni e che nativamente disciplini
    ogni cosa, una mossa simile mi può piacere, queste soluzioni no…

  • bpm___

    19 gen 2012 - 15:12 - #11
    0 punti
    Up Down

    @Kim Allamandola
    Lo scopo di SeLinux era fornire, per chi ne avesse bisogno, delle policy più fini per cercare di mitigare i danni derivanti principalmente da accessi non autorizzati. SeLinux è da sempre stato indirizzato a sistemi critici (magari anche desktop ma il target rimaneva sempre quello dei sistemi critici). Solo “recentemente” è stato introdotto di default in varie distribuzioni. Ma non per pressioni dell’NSA. Il problema per gli utenti comuni è che selinux rimane complesso da configurare e quindi, seppur molto potente, il target dovrebbe rimanere quello originale, ovvero sistemi in cui è indispensabile il massimo livello di sicurezza.
    E’ vero che l’os dovrebbe essere ripensato. Però, al giorno d’oggi, se si vuole utilizzare un sistema linux in ambienti critici questo (o soluzioni analoghe) sono necessarie (e in molti casi anche obbligatorie).

  • tosky

    20 gen 2012 - 15:55 - #12
    0 punti
    Up Down

    Caro Kim, i tuoi pregiudizi (e quelli di molti che dicono di disattivarlo) risalgono all’epoca delle decisione (sciagurata) di Fedora di uscire con la politica piu’ restrittiva per tutto. Dove ovviamente non funzionava una cippalippa.
    Adesso la politica e’ “targeted”: limitazione di specifichi servizi dove serve. E funziona, tanto che ci sono attacchi che funzionano se esplicitamente SELinux e’ disattivato
    E gli sviluppatori sono pronti a integrare nuove regole *se* i bug vengono segnalati…

  • Kim Allamandola

    20 gen 2012 - 21:42 - #13
    0 punti
    Up Down

    @bpm___ #11
    Questo è vero ma preferirei aspettare di avere un OS ridisegnato (con un buon
    stimolo per farlo, non coi giochini di symlink in giro!), SeLinux su quel che
    amministro non lo gradisco.

    @tosky #12
    Vero anche questo, tuttavia la politica di “andarci più morbidi” mi pare del
    tutto assurda: se il sistema funzioni che vada, se rompe che non vada. Se c’è
    un baco di sicurezza che questo sia risolto, non aggirato con una pezza tanto
    per andare avanti… So che nel Mondo Reale® talvolta può far comodo una
    soluzione simile ma poiché tutte le soluzioni “temporanee” o “parziali” via
    via che passa il tempo restano li preferisco avere un problema conclamato oggi
    che non un mezzo-problema domani!

  • CyberPippo

    21 gen 2012 - 01:04 - #14
    0 punti
    Up Down

    Ma non si tratta di “bachi di sicurezza” ma di punti deboli legati all’architettura del sistema. Ci sono degli attacchi che si possono portare con successo su qualunque sistema unix “standard”. Allora tu suggerisci di ridisegnare il sistema, ma io non vedo il perché dal momento che selinux JustWorks(TM)
    Io la penso così, almeno finché non mi si portano degli esempi di problemi che selinux indirizza ma che non riesce a risolvere.

  • Kim Allamandola

    21 gen 2012 - 12:09 - #15
    0 punti
    Up Down

    @CyberPippo #14
    È presto detto: dal mio modo di vedere un punto debole di un’architettura è un
    baco. Non importa che sia qualcosa by-design ovvero sfruttabile tramite il
    normale funzionamento dell’algoritmo o che sia un problema di codice che può
    permettere di alterare entro certi limiti il funzionamento di un software a
    runtime: è qualcosa di sgradito, è qualcosa che ha implicazioni di sicurezza,
    è un baco. Da ciò ne segue che il baco si risolve non lo si tappa con altro
    software.

    Per queste ragioni il design di SeLinux non mi va: AppArmour è assai meno
    invasivo e mi basta il resto delle energie andrebbe dirottato sul redesign
    della vecchia architettura, sul ripensamento dei filesystem, di come le singole
    applicazioni accedono alle risorse del sistema ecc. Far altro è perdere tempo
    in sofisticate pezze di cui oggi non c’è tutto stò bisogno ed un domani è
    opportuno non ci sia proprio grazie ad un sistema ammodernato.

    Ma dico, possibile che a parte ingegnerizzazione di cose fatte negli anni ‘80
    od ancor prima, scemate o obbrobri non si riesca più a fare? Il cervello
    umano tra le riforme scolastiche e la TV s’è così tanto bruciato negli ultimi
    30-40 anni!? O forse s’è estesa la moda edilizia italica dove non si può mai
    rifare qualcosa da zero, solo andare avanti con costose e complesse pezze e
    tacconi sino a quando il terremoto o altro disastro di turno non butta giù
    tutto o magari non si può cambiare perché modificare i propri schemi mentali
    costa fatica e nessuno vuol accettare questo?

  • Profilo di 0xdeadbeef

    0xdeadbeef

    21 gen 2012 - 19:05 - #16
    0 punti
    Up Down

    E’ incredibile come si possa scrivere 5 commenti senza dire niente.

  • Kim Allamandola

    22 gen 2012 - 21:59 - #17
    0 punti
    Up Down

    @0xdeadbeef #16
    Facciamo 6, tu invece cosa dici? Hai qualche valida argomentazione contro il
    fatto che Android sia GNU/Linux o contro il fatto che se SeLinux è necessaria
    allora sia opportuno riprogettare l’OS riformulando l’ottimo ma forse un pelo
    obsoleto paradigma POSIX (mai del tutto rispettato) e successive aggiunte?

  • Profilo di 0xdeadbeef

    0xdeadbeef

    24 gen 2012 - 01:34 - #18
    0 punti
    Up Down

    Anzitutto l’obiettivo di SELinux non è il “controllo delle syscall” o altri dettagli implementativi, ma la riservatezza dei dati, secondo un modello simile al Bell-LaPadula (con MAC-MLS/MCS a livello kernel) cosa che AppArmor - sistema che SuSE usò al posto di SELinux perché altrimenti avrebbe dovuto buttare il proprio ReiserFS - non può garantire per design. Inoltre SELinux può simularne il comportamento con la policy targeted.
    Poi neanch’io trovo senso a questa storia dell’invasività, l’overhead è quasi nullo e comunque non so come si faccia a dire che il tempo impiegato a garantire la sicurezza sia tempo perso. E lascerei stare anche questa storia di SELinux sui desktop che non si può sentire. Il motivo per cui RH in parte lo fa su Fedora è sia perché ha bisogno di feedback sulle policy, sia perché chi fa i pacchetti deve garantire che questi effettivamente funzionino.
    Sulla facilità di configurazione, dico solo che nessun sano di mente metterebbe la sicurezza di un servizio che gestisce dati personali (codici bancari, carte di credito ecc…) nelle mani di un principiante senza know how.
    Ma al di là delle preferenze personali, la realtà - come credo bpm e cyberpippo cercavano invano di farti capire - è che sia SELinux che AppArmor sono due soluzioni che indirizzano due classi di problemi diverse, dipendenti dai tipi di clientela che RedHat e l’allora SuSE avevano. La prima punta ad avere un sistema di sicurezza delle informazioni completo in ogni suo aspetto, con tutti i pro e i contro, la seconda cerca solo di proteggere la macchina locale, con relativi pro e contro.
    SELinux è un palleativo? Non si capisce né il motivo né dall’alto di quale esperienza di utilizzo di SELinux parli, e comunque io mi rifaccio al vecchio detto “non aggiustarlo se non è rotto”. E a me SELinux funziona egregiamente.
    E siamo arrivati a 18 commenti per dire delle ovvietà. Al tuo prossimo commento ti dico subito che hai ragione tu, così tagliamo corto.

L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per riservare il tuo nickname preferito su tutti i blog di Blogo e per caricare il tuo avatar. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No
I commenti sono sottoposti alle linee guida per la moderazione.

Anteprima del commento