Tema 1

În urma feedback-ului, vă recomandăm următoarele:

Studiați secțiunea de Cunoștințe evaluate și suportul agregat necesar temei. Aceasta este valabilă la orice temă și se recomandă parcurgea sa.

Folosiți thread-urile de discuții existente în cadrul forumului, fără a crea altele, atât în forumul pentru Discuții Generale cât și în forumul temei. În consecință, thread-urile (subiectele de discuții) nou create vor fi șterse deoarece informația utilă va fi greu de urmărit.

Căutați pe forum informația pe care doriți să o obțineți, înainte să puneți o întrebare. De cele mai multe ori, cineva a mai întrebat același lucru. În fiecare thread al forumului aveți informații despre cum puteți căuta în forum.

În cazul în care doriți să publicați un screenshot, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum imgur sau alternativele sale, publicând pe forum doar link către screenshot. Dorim să păstrăm o parcurgere ușoară a forumului, din acest motiv, orice poză inserată în răspunsuri, va fi ștearsă.

Urmăriți atât forumul cât și modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.

Înainte și în timpul realizării temei, vă rugăm să parcurgeți indicațiile legate de realizarea temelor, încluzând ce înseamnă o temă copiată și cum penalizăm temele copiate. Folosiți cu încredere forumurile de pe curs.upb.ro pentru întrebări și neclarități legate de teme.

În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.

Informații generale

Deadline: 2 Decembrie 2020 ora 23:55
Timp de lucru: 14 zile
Punctaj: 0.8 puncte din nota finală

Actualizări enunț:

Actualizare deadline tema.

Actualizări checker:
Versiunea curentă: versiunea 1.0.0

  • Nu există actualizări

Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le răspundeți.

Singurul lucru de care trebuie să aveți grijă este să nu puneți pe forum rezolvările taskurilor. Puteți să sugerați diferite abordări sau să dați idei celorlalți. Mai multe informații găsiți in recomandările de comunicare electronică.

Cunoștințe evaluate

  • Navigarea in sistemul de fisiere
  • Utilizatori si Grupuri
  • Folosirea utilitarului git
  • Compilarea programelor
  • Crearea de Makefile

Testarea și finalizarea temei

Testarea temei se va face doar pe mașina virtuală autentificat ca utilizator student, folosind utilitarul uso. Acesta poate fi executat în orice moment pentru a verifica dacă au fost rezolvate corect task-urile. Nu lucrați autentificat ca utilizator root în sistem, la nicio temă. Din acest motiv există posibilitatea să nu vă treacă testele. Pe de altă parte, nu este o metoda de siguranță să lucrați autentificat ca utilizator root din motive de securitate și/sau permisiuni.

Utilitarul uso implementează testele doar pentru task-urile temei curente. La fiecare temă nouă, pentru a folosi utilitarul uso, primul pas este să porniți tema folosind comanda sudo uso start <numar_tema>. În caz contrar, nu veți avea actualizat checker-ul pentru tema curentă.

Verificați versiunea checker-ului, afișată la rularea comenzii sudo uso version. Asigurați-vă că aveți ultima versiune înainte de a continua lucrul pentru temă. Versiunea actuală este specificată în secțiunea Informații generale prezentă în enunțul temei. Pentru situațiile în care nu dispuneți de ultima versiune a checker-ului, rulați sudo uso update.

Finalizarea temei se realizează prin rularea comenzii sudo uso submit.

Task-uri

Este interzisă publicarea pe forum a comenzilor sau pozelor care fac parte din rezolvarea parțială sau integrală a temei ori a unui task. La prima abatere studentul primește un avertisment, iar punctajul obținut pe temă îi este redus cu valoarea punctajului pe task-ul respectiv. Începând cu a doua abatere, se va anula întregul punctaj pe tema curentă, temele anterioare sau cele viitoare nefiind afectate. Abaterile rămân valabile pe tot parcursul semestrului, acestea nefiind anulate în momentul în care se publică o temă nouă. Ori de câte ori se încalcă această regulă, se va ține cont de istoricul abaterilor. Abaterile vor fi actualizate în catalog.

Task 01 (35p)

[5p] Clonați în directorul /home/student repository-ul disponibil la adresa https://github.com/usoHomeworks/Tema1.git. Directorul creat după clonare trebuie să aibă numele uso.

[25p] Adaugați în directorul uso următoarea structură de directoare și fișiere:

Malware/
├── Computer Worms/
│   ├── Hall of fame/
│   │   ├── Morris
│   │   ├── Blaster Worm/
│   │   ├── Mydoom
│   ├── SQL $lammer
│   ├── Father Christmas/
│   └── Good Worms/
│       ├── XSS Worms/
│       ├── Welchia
│       └── Cheeze
├── Spyware/
│   ├── CoolWebSearch/
│   │   ├── Gator.c
│   │   ├── 180search Assistant.c
│   │   └── |STbar.c
│   ├── AUpdate/
│   │   └── Transponder
│   └── Internet Optimizer/
│       └── Hot as Hell
└── Ransomware/
    ├── WannaCry/
    │   ├── Mailto: `Netwalker'
    │   ├── Cerber/
    │   └── Bad > Rabbit
    └── Maze Ransomware/
        ├── Cryptomix.c
        └── Thanos

Directoarele au după nume caracterul / (slash).

Punctajul se ofera de la folderele rădăcină către frunze. Asta înseamnă că s-ar putea să faceți anumite foldere sau fișiere care să fie în structură și checkerul să nu le puncteze decât dacă faceți într-o anumită ordine structura. Nu este nici o problemă. Atâta timp cât întreaga structură va fi creata, puteți să faceți fișierele sau folderele în orice ordine doriți și veți primi punctaj maxim.

[5p] Adăugați directorul “Malware” și toate fișierele conținute într-o arhivă cu numele “archive.tar.bz2”, de tip bzip compressed care să se afle în directorul uso. (Hint: man tar)

După rezolvarea cerințelor acestui task, nu ștergeți sau modificați conținutul directorului ~/uso/Malware/. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checker-ului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea taskului. Puteți totuși modifica ownerii (Task 3).

Task 02 (12p)

[12p] Aflându-vă în directorul uso, folosiți câte o singură comandă pentru fiecare dintre următoarele cerințe:

  1. Faceți o copie a folderului Malware din folderul uso care să se numească Clone și să se afle tot în folderul uso (în folderul uso vor exista acum ambele foldere: Malware și Clone).
  2. În folderul Clone:
    1. Mutați fisierul Mailto: `Netwalker' din WannaCry în Father Christmas.
    2. Redenumiți Bad > Rabbit în Bad & Rabbit.
    3. Redenumiți SQL $lammer în $QL Slammer.
    4. Adaugați fisierul |STbar.c în directorul Internet Optimizer.

Cerințele de mai sus trebuie rezolvate în ordine.

După rezolvarea cerințelor acestui task, nu ștergeți sau modificați conținutul directorului ~/uso/Clone/. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checkerului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea task-ului.

Task 03 (25p)

Pentru acest task, nu există niciun utilizator sau grup deja existent în sistem. Acestea trebuie create acolo unde este cazul.

Următoarele subpuncte trebuie realizate în ordine pentru a primi punctajul pentru acest task.

Faceți următoarele modificări în sistem astfel încât să respectați cerințele de mai jos:

[5p] Să se adauge în sistem următorii utilizatori:

  • lorris
  • trojan
  • meltdown
  • anonymous
  • shell_shock

[5p] Pentru fiecare utilizator trebuie setată câte o parolă.

  • Pentru utilizatorul lorris, parola va fi lorem_ipsum.
  • Pentru utilizatorul trojan, aceasta va fi this_is_sparta.
  • Utilizatorul meltdown se va autentifica folosind parola dont_hack_me.
  • Parola pentru utilizatorul anonymous este keylogger
  • Pentru utilizatorul shell_shock, parola va fi dont_forget_passwd.

[5p] Creați:

  • un grup virus din care vor face parte utilizatorii lorris și trojan
  • un grup unbeatable de care vor aparține utilizatorii meltdown, anonymous și shell_shock
  • un grup attack pentru meltdown și shell_shock

De asemenea, setați pentru utilizatorul anonymous ca home directorul /home/hackerville

[10p] Realizați următoarele modificări in folderul Ransomware din uso/Malware:

  • toate fișierele (nu și folderele) din folderul Ransomware vor aparține utilizatorului anonymous și grupului unbeatable.
  • folderul WannaCry trebuie deținut de utilizatorul meltdown și să aparțină grupului attack.
  • folderul Maze Ransomware va fi deținut de utilizatorul trojan și adăugat în grupul virus.
  • folderul Internet Optimizer trebuie să aparțină utilizatorului anonymous și grupului unbeatable.

(Hint: man chown)

Task 04 (28p)

În cadrul acestui task, veți clona un repository. NU ștergeți niciun fișier din acesta.

[3p] Clonați conținutul repository-ului de la adresa https://github.com/usoHomeworks/task04.git, astfel încât numele directorului clonat să fie task04. Acest director se va afla în directorul home al utilizatorului student.

[5p] Mutați-vă pe branch-ul hack_me al repository-ului clonat.

[20p] Creați un fișier Makefile în folderul task04 prin care să se genereze un executabil exec în același folder, având ca dependințe fișierele sursă .c și header-ul .h din folderul task04/app_maker. Fișierul va avea 3 reguli obligatorii:

  • build - prin care se va genera executabilul din cele două fișiere sursă .c
  • run - prin care va rula executabilul (regula run va genera executabilul în cazul în care acesta nu este deja creat)
  • clean - va șterge executabilul creat

Pe lângă explicațiile din laboratorul de Dezvoltarea Aplicațiilor, găsiți și aici un exemplu simplu de Makefile.

După cum ați observat, regula de clean nu funcționează cum ar trebui. Rezolvați această problemă fără a șterge fișierul clean din directorul curent.

Pentru a primi punctaj trebuie sa urmati task-urile in ordine!

Task obligatoriu pentru toate temele (0p)

Finalizați tema si asigurați-vă că ați submis tema cu sudo uso submit.

Avertisment

Este interzis studenților să modifice parametrii de rulare ai mașinii virtuale. Orice tentativă malițioasă de modificare a fișierelor și executabilelor care fac mașina virtuală sa ruleze in parametrii optimi (fișierele si folderele ce nu țin de enunțul temei curente), ne conferă dreptul de a oferi 0 puncte pe temele respectivului student.

uso/teme/tema-1.txt · Last modified: 2020/11/23 09:26 by alexandru.vochescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0