# Pluggpapper: Dator- och nätverksteknik (OS, Terminal, Security)
## Samlingsdokument
###### tags: `Dator- och nätverksteknik` `daodac` `terminal` `operativesystem`
+ The most important to know is OS, terminal and then security.
## Operative system
* Ett operativ system (OS) måste finnas för att vi ska kunna använda en dator
* Länk mellan användare och hårdvara
* Ett OS sköter bl.a.
* Inmatning och utmatning av data
* Minneshantering för program
* Processprioritering
* Gränssnitt som tillåter programmen att "prata" med hårdvaran
## **Operativsystem - Huvudsakliga syfte**
* Fortsättning:
* Windows, Dos, Linux, MacOS, iOS, Unix, Android, Ubuntu, Kali, Solaris, Arch, Solaris, Fedora, Chrome OS
* Headless => Inget GUI (Graphical User Interface)
* Ssh:a => Använd terminalen för att gå in på en annan dator.
* Är den del i datorn som kopplar ihop hårdvaran (och fast programvara) med mjukvaran.
* Funktioner:
* **Security**
* **User management**
* Handles the users, passwords and privileges of the OS.
* **Job accounting**
* Handles the users processes which also entail multiple users logged in at the same time
* **Coordination between other software and users**
* "Operating systems also coordinate and assign interpreters and compilers"
* Compiler: Runs code via a compiled file, e.g. a .exe file.
* Interpreter: Runs code via direct input into the terminal
* **Memory management**
* It keeps track of memory, i.e which bytes of memory are occupied by each program and which bytes are free.
* The OS decides the order in which processes are granted access to memory, and for how long.
* It allocates the memory to a process when the process requests it and deallocates the memory when it is no longer needed.
* **Processor management**
* This function of the OS is called process scheduling.
* Keeps track of the status of processes.
* **Device management**
* Måste finnas om vi ska kunna använda en dator.
* Länk mellan användar och hårdvara.
* Sköter bland annat:
* Inmatning och utmatning av data
* Minneshantering för program
* Processprioritering
* Gränssnitt som tillåter programmen att "prata" med hårdvaran
* Består av:
* Systemfiler
* Programfiler
* Drivrutiner
* (Bootladdare/Bootloader)

* Ett OS sköter bl.a.
* Inmatning och utmatning av data
* Minneshantering för program
* Processprioritering
* Gränssnitt som tillåter programmen att “prata” med hårdvaran
* Loopen
* Processer
* De program och tjänster som körs på datorn. Kostar mer att starta men har
* Tjänst (Service)
* Ett program som körs i bakgrunden
* Trådar (Threads)
* En process eller program kan bestå av flera trådar och gör då flera saker parallellt.
* `"A process, in the simplest terms, is an executing program. One or more threads run in the context of the process. A thread is the basic unit to which the operating system allocates processor time. A thread can execute any part of the process code, including parts currently being executed by another thread."`
* Virtuellt minne
* Används när arbetsminnet inte räcker till. Datorn lagrar då data på hårddisken i en s.k. växlingsfil eller pagefile. Filen heter pagefile.sys i Windows och ligger dold i roten på systempartitionen.
* Är väldigt laggigt, men är en nödlösning.
* GUI
* Graphical User Interface är benämningen för det grafiska gränssnittet
* Eller "det man ser"
* CLI
* Command Line Interface är benämningen för teckenbaserat användargränsnitt
* T.ex. Terminal, CMD, Bash
## Allmänt
* Alla OS är bara kod!
* Parallella körningar
* Exempel på schemaläggning:
* FIFO (First In, First Out)
* LILO (Last In, Last Out)
* Process om körs i bakgrunden
* `herman$ sh minecraft.sh &`
* '& gör att det körs i bakgrunden
## Terminal
* Terminal har två definitioner (ordet har två olika meningar)
* En där terminal refererar
* Anänds som en brygga (interface) mellan terminalen och operativsystemet
En sak som man ofta vill göra med terminal skript och program är att man vill installera saker och göra det på ett strukturerat sätt så att man kan återskapa samma struktur på andra datorer. Detta görs med hjälp av ett så kallat installationsskript, mer om det nedan.
För att skapa ett installationsskript för bash i terminalen:
Skapa en ny fil med ett lämpligt namn, till exempel "install.sh"
Öppna filen i en nano/vim/textredigerare och lägg till följande rader:
```bash
#!/bin/bash
```
Lägg till de kommandon som krävs för att installera programmet. För att använda Homebrew, använd kommandot "brew install" följt av namnet på programmet.
```bash
#!/bin/bash
brew install wget # cli-program
brew install --cask discord # desktop-program
```
Spara filen och gör den körbar med kommandot:
```bash
chmod +x install.sh
```
Kör skriptet med kommandot:
```bash
./install.sh
```
## Security
* **Virus**
* Ett datorvirus är ett körbart program som har förmågan att infektera andra filer och på så sätt sprida sig
* Ett virus kan göra skada i form av:
* Ansluta datorn till ett botnet
* Förstöra eller ta bort data
* Rensa hela diskar
* E-posta sig själv till andra i din kontaktlista
* Virus kommer i många former
* Vanligast är fortfarande e-postbilagor
* Skript via e-post
* Infekterade USB-drives
* Infekterade filer som laddas hem
* Vanligt bland crackade programvaror
* **Trojansk Häst**
* Mjukvara som verkar vara något annat än det egentligen är
* Har dolda funktioner som ofta gör skada i bakgrunden
* Kan hittas via aktivitetshanteraren
* Kan ta över din dator på fjärr och utpressa dig
* **Malware**
* Huvudsyftet med malware är att tjäna pengar, stjäla information, trolla, eller vad som helst, egentligen.
* **Olika sorters malware:**
* Kräver interkation av användare
* Skydd: Uppdaterat AV-program, utbildad persona
* Worm
* Kräver inte interaktion av användare
* Skydd: Uppdaterat AV-program, brandvägga
* Trojan Horse
* Utger sig för att vara något men har en dold funktio
* Skydd: Uppdaterat AV-program, utbildad persona
* Buffer Overflow
* Blottlägger minne genom att skicka input till systeme
* Skydd: Uppdaterat OS och progra
* Spyware
* Samlar information om användaren utan dess vetska
* Skydd: Uppdaterat AV-program, eller antispyware-progra
* Adware
* Fyller användarens dator med (ibland skadliga) annonse
* Skydd: Uppdaterat AV-program, utbildad personal
----
## Security scenarios
* ## Scenario 1: ||Malware Infection||
* Your company has recently suffered a ||malware infection|| that appears to have originated from an employee user's computer
* The user in question is a Windows user who frequently browses ||shady websites||
* Your task is to investigate the source of the ||infection|| and implement measures to prevent similar incidents in the future
* There has been an abnormal amount of suspicious connections to random servers
* The computer is now extremely slow and slow when signing on Windows
---
* Questions
* How would you go about investigating the source of the malware infection?
* What steps would you take to remove the malware from the infected machine?
* What measures would you implement to prevent similar incidents from occurring in the future?
* How would you educate users on safe practices when using the terminal and accessing the system?
---
* ## Scenario 2: ||Password Cracking||
* Your organization's IT team has noticed multiple failed login attempts on a user's account in the system
* Upon investigation, it is discovered that an attacker has been attempting to ||crack the user's password using a brute force method||
* One could analyze the system logs and implement measures to prevent similar attacks
---
* Questions:
* What steps would you take to analyze the system logs and identify the attacker?
* What measures would you implement to prevent further ||password cracking attempts||?
* How would you educate users on creating ||strong passwords|| and ||secure login practices||?
* How would you monitor the system to detect and respond to similar attacks in the future?