#SharePoint 2010 – Enumerate and Deactivate Anonymous access using PowerShell

Acest articol se aplică site-urilor de SharePoint 2010 publicate în Internet care au cerințe de securitate diferite în structură lor.

Una din problemele de securitate în contextul implementărilor complexe este legată de modul de acces la diferite site-uri. Se întâmplă adeseori ca în contextul relaxării securității pentru portalurile de SharePoint publicate în Internet, să ne confruntăm cu un abuz de acces anonim la nivelul anumitor site-uri sau subsite-uri, fapt care poate duce la repudierea în public a unor informații sensibile.

 

Picture1

În diagrama de mai sus site-ul Home are configurat acces anonim, site-urile cu albastru nu au acces anonim iar cele cu roșu au securitate individuală și configurat accesul anonim.

Dacă un anonim accesează adresa: http://home/Site3/ i se vor solicita datele de conectare. În cazul în care apelează http://home/site3/Site32/ nu i se mai cer datele de autentificare pentru a vizualiza pagina. Site-urile 321 și 322 pot avea acces anonim prin moștenire de la site-ul părinte Site32.

Propunerea principală a acestui articol este aceea de inventariere periodică a securității infrastructurii SharePoint în sensul depistării anumitor site-uri web cu conținut sensibil accesibil anonimilor.

În mod clasic pentru a enumera structura unei ferme de SharePoint putem folosi comanda:

stsadm -o enumallwebs > C:\ScriptsOutput\AllSubWebs.xml

care ne permite să exportăm în format XML toată structura din toate bazele de date. Această comandă nu extrage însă și starea de acces în mod anonim la site-ul Web. În aceste condiții trebuie să utilizăm comenzile Powershell specifice SharePoint pentru a putea extrage starea anonimilor.

În articolul lui Brian Beach [1] observăm că există 3 stări ale accesului anonim la un subweb SharePoint: 

  • fără acces anonim: valoarea 0
  • Acces anonim cu configurație implicită de acces la liste și biblioteci: valoarea 1.
  • Acces anonim la întregul site web: valoarea 2.
    Dar pentru a enumera toate site-urile avem nevoie de ceva mai mult. Articolul [3] lui Craig Trulove mi-a salvat destul de multă muncă, pentru că mi-a oferit posibilitatea de a identifica rapid o structură asemănătoare celei extrase de comanda stsadm și care să conțină și starea de acces a anonimilor la site.
    În scriptul de mai jos la linia 89 extrag în structura XML a infrastructurii valoarea parametrului de acces anonim. Copiați codul și salvați-l într-un fișier PS1.
   1: # Autor: Craig Trulove

   2: # WebPage: http://www.craigtothepoint.com/Lists/Posts/Post.aspx?ID=11 

   3: # Modified: Valy Greavu, valygreavu.com

   4:  

   5: #Region Function Definition: EnumAllWebs

   6: function EnumAllWebs

   7: {

   8:     param

   9:     (

  10:         [string]$DatabaseName,

  11:         [string]$DatabaseServer

  12:     )

  13:     #Region Function Definition: FindSiteTemplateReference

  14:     # Checks to see if the specified template is installed in the farm

  15:     # Returns null if template is not found, returns the template if it is

  16:     function FindSiteTemplateReference

  17:     {

  18:         param

  19:         (

  20:             [int]$lcid,

  21:             [string]$TemplateName

  22:         )

  23:         foreach ($template in $templates)

  24:         {

  25:             if (($template.LCID -eq $lcid) -and ($template.Name -eq $TemplateName))

  26:             {

  27:                 return $template

  28:             }

  29:         }

  30:         return $null

  31:     }

  32:     #EndRegion Function Definition: FindSiteTemplateReference

  33:     #Region Function Definition: ProcessOneContentDatabase

  34:     # Runs for each database

  35:     function ProcessOneContentDatabase

  36:     {

  37:         param

  38:         (

  39:             [System.Xml.XmlTextWriter]$writer,

  40:             [Microsoft.SharePoint.Administration.SPContentDatabase]$db

  41:         )

  42:         #Region Function Definition: OutputSiteXml

  43:         # Generates the XML for each site

  44:         function OutputSiteXml

  45:         {

  46:             param

  47:             (

  48:                 [System.Xml.XmlTextWriter]$writer,

  49:                 [Microsoft.SharePoint.SPSite]$site

  50:             )

  51:             $writer.WriteStartElement("Site")

  52:             $writer.WriteAttributeString("Id", $site.ID)

  53:             $writer.WriteAttributeString("OwnerLogin", $site.Owner.LoginName)

  54:             # Check if it is a host header site collection

  55:             if ($site.HostHeaderIsSiteName)

  56:             {

  57:                 $writer.WriteAttributeString("HostHeader", $site.HostName)

  58:             }

  59:             if ($site.AllWebs.Count -gt 0)

  60:             {

  61:                 $writer.WriteStartElement("Webs")

  62:                 $writer.WriteAttributeString("Count", $site.AllWebs.Count)

  63:                 foreach ($web in $site.AllWebs)

  64:                 {

  65:                     try

  66:                     {

  67:                         $reference = FindSiteTemplateReference -lcid $web.Language -TemplateName "$($web.WebTemplate)#$($web.Configuration)"

  68:                         # Check if web template is properly installed

  69:                         if ($reference -eq $null)

  70:                         {

  71:                             $str = "Unknown"

  72:                         }

  73:                         elseif ($web.Configuration -eq -1)

  74:                         {

  75:                             $str = [string]::Empty

  76:                         }

  77:                         else

  78:                         {

  79:                             $str = "$($web.WebTemplate)#$($web.Configuration)"

  80:                         }

  81:                         $writer.WriteStartElement("Web")

  82:                         $writer.WriteAttributeString("Id", $web.ID)

  83:                         $writer.WriteAttributeString("Url", $web.Url)

  84:                         # Extract AnonymousState 

  85:                         # AnonymousState determines if anonymous users have access to the site collection as follows:

  86:                         # A "0" disables anonymous access. In other words, anonymous users have no access to a Web site.

  87:                         # A "1" allows default anonymous access. This specifies that anonymous users can access lists and libraries if the lists and libraries allow anonymous access.

  88:                         # A "2" specifies that anonymous users can access the entire Web site.

  89:                         $writer.WriteAttributeString("Anonymmous", $web.AnonymousState)

  90:                         # Handle cases where str var not set or set to empty string

  91:                         if (($str -ne $null) -and ($str -ne [string]::Empty))

  92:                         {

  93:                             $writer.WriteAttributeString("TemplateName", $str);

  94:                         }

  95:                         if ($web.Configuration -ne -1)

  96:                         {

  97:                             $writer.WriteAttributeString("TemplateId", $web.WebTemplate);

  98:                         }

  99:                       $writer.WriteEndElement()

 100:                     }

 101:                     catch [Exception]

 102:                     {

 103:                     }

 104:                     finally

 105:                     {

 106:                         $web.Dispose()

 107:                     }

 108:                 }

 109:                 # End element for webs

 110:                 $writer.WriteEndElement()

 111:             }

 112:             # End element for site

 113:             $writer.WriteEndElement()

 114:         }

 115:         #EndRegion Function Definition: OutputSiteXml

 116:         $writer.WriteStartElement("Database")

 117:         $writer.WriteAttributeString("SiteCount", $db.CurrentSiteCount)

 118:         $writer.WriteAttributeString("Name", $db.Name)

 119:         $writer.WriteAttributeString("DataSource", $db.ServiceInstance.NormalizedDataSource)

 120:         # Only process sites if any exist

 121:         if ($db.Sites.Count -gt 0)

 122:         {

 123:             $writer.WriteStartElement("Sites")

 124:             foreach ($site in $db.Sites)

 125:             {

 126:                 try

 127:                 {

 128:                     OutputSiteXml -writer $writer -site $site

 129:                 }

 130:                 catch [Exception]

 131:                 {

 132:                 }

 133:                 finally

 134:                 {

 135:                     $site.Dispose()

 136:                 }

 137:             }

 138:             # End element for sites

 139:             $writer.WriteEndElement()

 140:         }

 141:         #End element for database

 142:         $writer.WriteEndElement()

 143:     }

 144:     #EndRegion Function Definition: ProcessOneContentDatabase

 145:     

 146:     # Create bool vars for passing to sub functions

 147:     $local = Get-SPFarm

 148:     $services = New-Object Microsoft.SharePoint.Administration.SPWebServiceCollection $local

 149:     $cs = [Microsoft.SharePoint.Administration.SPWebService]::ContentService

 150:     $templates = Get-SPWebTemplate

 151:     $StringWriter = New-Object System.IO.StringWriter

 152:     $writer = New-Object System.XMl.XmlTextWriter $StringWriter

 153:     $writer.Formatting = "indented"

 154:     $writer.WriteStartElement("Databases")

 155:     # if database was specifed process only that database

 156:     if ($DatabaseName)

 157:     {

 158:         # if databaseserver was not specified use default

 159:         if ($DatabaseServer -eq $null) { $DatabaseServer = $cs.DefaultDatabaseInstance.DisplayName }

 160:         $db = Get-SPContentDatabase -DatabaseName $DatabaseName -DatabaseServer $DatabaseServer

 161:         # Process database

 162:         ProcessOneContentDatabase -writer $writer -db $db 

 163:     }

 164:     # otherwise process all databases

 165:     else

 166:     {

 167:         foreach ($service in $services)

 168:         {

 169:             foreach ($application in $service.WebApplications)

 170:             {

 171:                 foreach ($database2 in $application.ContentDatabases)

 172:                 {

 173:                     # Process database

 174:                     ProcessOneContentDatabase -writer $writer -db $database2

 175:                 }

 176:             }

 177:         }

 178:     }

 179:     # End element for databases

 180:     $writer.WriteEndElement()

 181:     # Return output as string

 182:     $StringWriter.ToString()

 183:     $StringWriter.Flush()

 184:     $writer.Flush()

 185: }

 186: #EndRegion Function Definition: EnumAllWebs

 187: # Call function

 188: enumallwebs

Execuția:

.\enumallsubwebs.ps1 > C:\ScriptsOutput\AllSubWebs.xml

crează fișierul AllSubWebs.xml pe care-l putem deschide și analiza cu Excel.

Coloanele care ne interesează sunt:

    Scriptul lui Craig conține o mică eroare care împiedică enumerarea corectă a site-urilor corespondente bazei de date MySite, dar de obicei această aplicație web nu se configurează pentru acces anonim.
    Fișierul XML deschis în Excel îl putem filtra pentru a identifica site-urile cu acces anonim, a le evalua în sensul dacă ele corespund politicilor instituției de acces. În cazul în care dorim să dezactivăm accesul anonim pentru anumite site-uri putem să compunem în Excel comenzile de dezactivare care trebuie să fie de felul următor:
       1: # Preluare într-o variabilă PowerShell a valorii curente a site-ului care are activat acces anonim

       2: $Web = Get-SPWeb http://home/site3/Site32/ 

       3: # Dezactivarea accesului anonim.

       4: $Web.AnonymousState = 0

       5:  

Operațiunea se repetă pentru toate site-urile ale căror acces anonim trebuie să fie dezactivat.

Succes!

Referințe:

#ImagineCup 2012 – News (2)

Noutăți de pe de pe terenul de joacă cu imaginația, tehnologiile și pasiunea.

În numărul trecut vă anunțam cu tristețe despre dispariția sau transformarea unor competiții consacrate și istorie bogată atât la nivel internațional cât și pentru valoarea premiilor pe care le-a adus României: Embedded Development și Digital Media.

 

În acest număr anunțăm apariția unor noi competiții: Azure Challenge și Windows Phone Challenge.

 

Azure Challenge

Regulile competiției par destul de clare și sunt specificate aici. Este o competiție pe echipe și vestea faină este că mentorii vor însoți echipa în finala de la Sydney. Echipele pot fi formate din maxim 4 studenți + 1 Mentor. Mentorul nu trebuie obligatoriu să fie un cadru didactic ci poate fi în același timp un reprezentant al unui ONG sau chiar un angajat din mediul Privat.

    Date importante: Runda 1 constă în realizarea unui prototip și începe de astăzi 18 Nov până pe data de 13 martie 2012. Runda a doua are doar o lună pentru implementarea soluției și trimiterea acesteia spre jurizare.

    Din cunoștințele mele, Zoli e mare fan al cloudificării așa că nu ezitați să-l contactați pentru suport și îndrumare către resurse de learning și nu numai.

    Alte resurse pentru începători puteți găsi pe Școala de Cloud și în detaliu niște înregistrări video despre Azure: http://www.scoaladeeficienta.ro/articole/380/am-publicat-inregistrarea-cursului-scolii-de-cloud. Enjoy! Aveți de toate… determinarea depinde numai de fiecare. Poate premiile de 8, 4 și 3 mii de dolari vă pot motiva mai mult?

    Având în vedere că este o competiție la început, cine află primul și se apucă de învățat are cele mai multe șanse de a accede în finala!

    Succez și nu ezitați nici o clipă. Este un motiv în plus să învățați ceva, pentru că vă poate fi util și în profesia viitoare.

    Pagina oficială:

Windows Phone ChallengeWindows Phone

    Sponsorul principal al secțiunii este Nokia! Pe site-ul lor nu există nici o informație așa că doar în Imagine Cup putem vedea aceste noutăți.
    Detalii despre secțiune pe pagina sa (lincată mai sus :) ) sau aici.
    Pe scurt, este o competiție pe echipe (maxim 4 studenți) + 1 mentor. Mentorul are asigurată deplasarea și cazarea în Finala din Sydney.
    Atenție: Windows Phone Challenge nu este o competiție pentru jocuri! Pentru jocuri trebuie să vă înscrieți în secțiunea Game Design: Phone Competition.
    Încă ceva important: Trebuie să aveți mare grijă la copyright-ul a tot ceea ce folosiți în dezvoltarea aplicațiilor.

Date importante: Runda 1 constă în realizarea unui prototip și începe de astăzi 18 Nov până pe data de 13 martie 2012. Runda a doua are doar o lună pentru implementarea soluției și trimiterea acesteia spre jurizare.

Ce ar trebui să știți: Orice aplicație dezvoltată de voi și care este apreciată de juriu poate să vă aducă sume de bani majore pe viitor. Sunteți proprietarul codului și al aplicație. Modul în care o veți fructifica pe viitor depinde numai de voi. Modelul de business pentru aplicațiile pe mobile este să vinzi aplicația la prețuri mici dar la cât mai mulți oameni. Am ceva cunoscuți care lucrează în domeniu dar trebuie să-i caut. Dacă se autosesizează îi rog să-și dea cu comentariul pe aici și poate formăm o echipă competitivă și în această secțiune. Menționez că mentori pot fi cadre didactice, reprezentanți ai ONG-urilor sau angajați sau proprietari ai firmelor private. Găsiți studenții, scoateți-i din letargie și puneți-i să facă bani!

Un fel de resurse despre Windows Phone în România puteți găsi și pe aici.

 

Alte secțiuni

La Software Design nimic nou sub soarele românesc. Doar un interviu cu super-căpitanul de la SD, Rob Miles. O altă noutate este aceea că în SD utilizarea dispozitivelor mobile are caracter opțional. Sunt două secțiuni deja dedicate pentru telefoane.

La Game Design avem doar niște informații legate de programul orar al căpitanului Andrew Parsons, care se ”pune la dispoziția” studenților pentru întrebări și discuții, clarificări după un anumit orar bine stabilit. De asemenea puteți vizualiza un scurt interviu cu Andrew Parsons.

La IT Challenge am avut Quiz 2 cu o participare destul de bună din partea României. Nu mai fac statistici pentru că nu prea stârnesc interes. Următorul Quiz la IT Challenge este pe data de 1 Decembrie 2011. Dacă tot stați acasă nu ratați această sesiune.

Resurse pentru IT Challenge avem colecția de link-uri utile oferite de Cosmin Ilie dar și http://www.microsoftvirtualacademy.com/Home.aspx . Avem și un interviu cu Rand Morimoto căpitanul de la IT Challenge. Momentan eu sunt out-off competition, dar mă găsiți pe forumuri și pe pagina de Facebook a IT Challenge.

 

Poate vă mai interesează și: http://paper.li/f-1319192195 un jurnal on-line în care se adună zilnic referințe despre Imagine Cup, și de asemenea, dacă doriți să revedeți transcriptul de la sesiunea de deschidere a Finalei Imagine Cup 2011.

Drum bun către Australia!

Profesorii IT pun în mişcare cursorul în educaţie

Un articol de Andreea ARCHIP preluat integral din Opinia Veche fostă studențească. Mulțumim Andreea, știam eu că există și jurnaliști în Romania.

Nu ţipă la televizor că vor salarii mai mari, deşi ar fi cei mai îndreptăţiţi s-o facă. Nu vin în faţa studenţilor să dicteze de pe cursuri îngălbenite. Nici n-ar avea cum pentru că acele hârtii sunt de aceeaşi vârstă cu ei. Nu ţin studenţii în pauze, ci studenţii îi ţin pe ei la taclale după ce se termină cele două ore de studiu. Nu dau doi bani pe apelativul de „domnule” în faţa titlului de „profesor”, deşi sunt primii care îşi merită respectul. Universitatea lor nu are ziduri, iar timpul nu se limitează la cele câteva ore în care stau în faţa tinerilor în amfiteatre. Monica Dobrea, Dan Dobrea si Valy Greavu au ales să fie profesori cu toate ca ar fi putut să-şi găsească un loc de muncă oriunde în lume. Ei sunt profesorii bloggeri, cu pagină de Facebook, deloc străini de Messenger, obişnuiţii concursurilor de IT, cărora studenţii nu se mai satură să le dea Like.

Există profesori tineri din u­ni­ver­sităţile ieşene care îi adună pe studenţi la proiecte şi pun Ro­mâ­ni­a pe hartă la competiţiile inter­na­­ţionale. Dan Dobrea, conferen­ţi­ar la Facultatea de Electronică, Te­lecomunicaţii şi Tehnologia In­formaţiei a coordonat în acest an e­chipa formată din Iuliana Vâl­cea şi Monica Dobrea, care a câștigat lo­­cul al treilea la categoria Em­be­dded Design din cadrul compe­ti­ţi­ei organizate de Microsoft – I­ma­gine Cup. Şi Monica Dobrea, soţia sa, predă la aceeaşi facultate. Valy Greavu este lector la Fa­cul­tatea de Economie şi Ad­mi­nis­tra­rea Afacerilor (FEAA) şi de ani buni este mentorul mai multor ti­neri care au participat la aceeaşi com­petiţie faimoasă de IT. El în­suşi a câștigat această competiţie în ur­mă cu câțiva ani. La New York a făcut parte din juriu la categoria IT Challenge.

Cu toate că au primit oferte să plece din ţară, să câștige de trei ori mai mult şi să poată face cercetare la cel mai înalt nivel, au refuzat. Dacă la cursuri nu pot să pună pauză la gândire, când a trebuit să-şi aleagă locul de muncă, au făcut-o cu inima. „Când mă trezesc di­mi­nea­ţa îmi zic: Iei, iar merg la fa­cul­­tate! Îmi place aşa de mult, mă simt ca un copil care merge la joa­că”, povesteşte Dan Dobrea des­pre pa­siunea lui. La fel de în­flă­că­rat vor­beşte şi despre hotărârea de a rămâne în ţară. Nu vrea să lase Ro­mâ­nia în restanţe aşa uşor.

Jocurile olimpice în informatică

Pe masă sunt câteva fructe pentru micul dejun şi pe noptieră pa­ha­re cu cafea. Iuliana, şi ea ab­sol­ventă a Universității Tehnice din Iaşi, şi Monica n-au dormit decât două ore, timp în care Dan a mai testat roboţelul. E nevoie să te uiţi pe geam şi să vezi mirajul Times Square-ului. N-au văzut din New York decât câteva cadre, de pe gea­mul autobuzului, în drumul dinspre aeroport. Cele două tinere sunt ca spor­tivii în cantonament. Nu au avut timp să hoinărească prin oraşul ca­re nu doarme niciodată, dar s-au con­format şi nici nu s-au gândit la somn.

Au o misiune importantă: să le a­rate celor din juriu că „roboţelul lor”, aşa cum îl umanizează Mo­ni­ca, este numai bun de folosit în in­dus­­trie. Siguranţa la volan ar pu­tea că­păta o altă definiţie după ce aplicaţia echipei Endeavour Design va fi implementată.

Auto-Robotul lor pur şi simplu învaţă izbindu-se de obiecte ca­re este itinerariul sigur de urmat şi apoi reuşeşte, cu ajutorul senzorilor, să evite orice obstacol. „În mo­mentul în care cineva a adormit la volan, de exemplu, şi după ce a fost atenţionat prin comandă vo­ca­lă, dar nu a reacţionat, robotul pre­ia comanda şi găseşte soluţia cea mai bună pentru a evita colizi­u­nea”, explică Dan Dobrea.

La probele prin care trebuie să-şi prezinte proiectul, să facă demonstraţii cum funcţionează robotul şi apoi să răspundă unei sesiuni de în­trebări, cele două tinere au fo­lo­sit eleganţa şi măiestria cu care gim­nas­tele cuceresc podiumul. „Lu­crez împreună cu Dan cam de doi ani la acest concept – iar partea hard, ro­bo­ţelul în sine, l-a realizat Iuliana. Robotul poate fi aplicat în mai mul­te domenii. De exemplu, când a fost cutremurul din Japonia şi exista pericolul unei explozii la Fuku­shi­ma, s-a pus problema să fie tri­mis în interior un robot, dar se pu­tea lovi de lucruri şi dezastrul ar fi fost mai mare. Aici ar fi putut func­ţiona robotul nostru”, explică Monica.

Pasiunea pentru cercetare le-a adus pe fete în finală. Invenţia lor se poate ramifica pe lângă industria auto, şi la scaunele inteligente, sistemele robotice din misiunile spa­ţi­ale sau din misiunile de salvare. Pentru perfecţionarea acestuia, mai au de lucrat, dar nici lumea nu a fost creată într-o zi.

Cinci runde până la knock out

9 iulie, ora 9.30. Într-o sală mi­că, cu juriul deja pregătit şi cu cro­no­metrul gata să pornească, şase con­curenţi s-au aşezat deja fiecare în colţul lui, în faţa unui calculator. Stă să înceapă una dintre cele mai dure secţiuni din concurs: IT Challenge. Ionuţ Sinescu re­pre­zin­tă Universitatea „Alexan­dru Ioan Cuza” din Iaşi, unde este mas­terand la Sisteme In­for­ma­ţio­nale pentru Afaceri.

Sarcina cu care trebuie să-i facă knock-out pe ceilalţi cinci candidaţi este crearea întregii infrastruc­turi informaţionale a unei fundaţii. Totul în doar 24 de ore, non stop, muncă ce în mod normal s-ar fi întins pe mai mult de o lună. Ca înaintea unui meci de box, acesta primeşte ultimele sfaturi şi încurajări. De când porneşte cro­no­me­trul, are voie să se întreţină doar cu ener­gizant. Unii adorm pe tasta­tu­ră, alţii merg la masă şi fac totul în ultimele ore, iar cei mai mulţi în­lem­nesc pe scaune.

Ionuţ e obişnuit însă cu nopţile nedormite. Pe lângă masterat, mai are şi două joburi. E trecut de prânz, deja a scăpat cu bine de prima run­dă şi a luat toate cele zece puncte. Greul abia începe. Din când în când, o sirenă cu lumină roşie îi trezeşte. Au primit mâncare la pachet, tot ce trebuie să facă este să creeze.

Valy Greavu a făcut la New York un record de aproape trei zi­le nedormite. Cât îi supraveghează pe concurenţi, mai aruncă două-trei vorbe pe blogul său, să-i ţină la curent pe cei de-acasă.

A doua zi dimineaţă se simte de­ja povara oboselii şi a concentrării. Ochii i s-au înroşit de parcă participanţii abia ar fi ieşit din are­nă. Mai sunt zece minute şi Ionuţ s-a oprit din lucru. „Nu mai am timp să mai fac ceva acum”, spune tânărul, beat de somn.

„Vara trecută nu ştiam nimic despre Imagine Cup, dar mi-am dorit să particip că să demonstrez că pot. Colegii mei de la master nu credeau că un băiat care a terminat FEAA poate să fie priceput la programare, baze de date şi reţele”, spune Ionuţ cu hotărâre. Siguranţa de sine are şi o explicaţie: este prin­tre primii şase cei mai tari concu­renţi de la Imagine Cup.

Şi Valy Greavu l-a ajutat să des­copere că poate mai mult şi când a trebuit, a ştiut şi să-l înveţe să se relaxeze. De altfel, râsul lui e mai mult decât molipsitor. Poate şi asta îl face atât de iubit de studenţii săi. În acest an, a primit din partea lor titlul de „Profesor Bologna”.

***

Imagine Cup, competiţia care-i trece pe studenţi în divizia A

Microsoft organizează în fie­care an competiţia Imagine Cup. Înscrierile au început deja pentru con­cursul din acest an, iar cei ca­re sunt siguri că au dezvol­tat a­plica­ţia potrivită care să schim­be lumea, pot deja să se înscrie în com­petiţie pe site-ul imagine­cup.com.

Vara viitoare, finala se va ţi­ne la Sydney, aşa că măcar o ex­cursie până în capitala austra­li­a­nă poate fi o motivaţie sufici­en­tă. Pro­bele pentru care se pot în­scrie sunt Software Design, Game De­sign: Xbox/Windows, Game De­sign: Windows Phone sau IT Cha­llenge.

România a venit acasă cu pre­­mii pe măsură. Echipa MNA, for­­­mată din Ciprian Maxim şi Răz­­­van Diaconu, a concurat la sec­­ţiu­nea Digital Media şi a ob­ţi­nut locul întâi. Ionuţ Sinescu s-a cla­sat printre primii şase din lu­me la Digital Media, la fel şi e­chipa Simplex, de la Univer­si­ta­tea „Ba­beş-Bolyai” din Cluj-Na­­­po­ca. La competiţie au parti­ci­pat echi­pe din 183 de ţări.

Andreea ARCHIP

Sursa: Opinia Veche

Blog la WordPress.com.

SUS ↑