Was sind die Vorteile dynamischen Linkens?
- Hauptspeicher wird eingespart, Datei ist kleiner
- möglicherweise bessere Performance, da Funktionen ggf. schon im Speicher sind
- vereinfacht Sicherheitspatches
Welchen Zahlwert haben Execute-Berechtigungen?
Was sind die Vorteile statischen Linkens?
- Standalone-Anwendungen
- möglicherweise bessere Performanz, durch weniger Library-Aufrufe
- Fehler in neuen Versionen von Bibliotheken werden vermieden
Was sind die Nachteile dynamischen Linkens?
Fehler sind komplex zu finden
Kompatibilität muss sichergestellt werden (dependency hell)
Was sind die Nachteile statischen Linkens?
Programme sind größer
Änderungen in Bibliothek erfordern erneute Kompilation
In welchem Block wird das setuid-Bit gesetzt?
In welchem Block wird das setgid-Bit gesetzt?
In welchem Block wird das Sticky-Bit gesetzt?
Welchen Akteur bezeichnet der erste Block der Berechtigungen?
Den Besitzer.
Welchen Akteur bezeichnet der zweite Block der Berechtigungen?
Die Gruppe.
Welchen Akteur bezeichnet der dritte Block der Berechtigungen?
Andere Benutzer.
Welchen Zahlwert haben Read-Berechtigungen?
Welchen Zahlwert haben Write-Berechtigungen?
Welchen Zahlwert hat das Sticky-Bit-Flag?
1
Welchen Zahlwert hat das Setgid-Flag?
2
Welchen Zahlwert hat das Setuid-Flag?
4
Was bedeutet der Berechtigungscode 764?
Owner: Read, Write, Execute
Group: Read, Write
Others: Read
Was bedeutet der Berechtigungscode 1464?
Owner: Read
Others: Read, Sticky-Bit
Wie wird ein erweitertes Dateirecht dargestellt, wenn kein Execute-Bit gesetzt ist?
Das S bzw. T wird großgeschrieben.
Wie wird ein erweitertes Dateirecht dargestellt, wenn das Execute-Bit gesetzt ist?
Das s bzw. t wird kleingeschrieben.
Was bedeutet rwxrwSrwt und wie lautet der entsprechende Code?
Code: 3767
Berechtigungen
Group: Read, Write, SetGid
Others: Read, Write, Execute, Sticky-Bit
Was bedeutet -wSrwSr-t und wie lautet der entsprechende Code?
Code: 7265
Owner: Write, setuid
Group: Read, Write, setgid
Others: Read, Execute, Sticky-Bit
Was bedeutet das setgid-Bit?
Verzeichnisse mit setgid-Bit vererben ihre Gruppen-ID nach unten weiter.
bei Dateien: Wie setuid
Was bedeutet das setuid-Bit?
Dateien werden zusätzlich mit den Rechten des Benutzers ausgeführt, dem die Datei gehört.
Was bedeutet das Sticky-Bit?
dient zum Anlegen gemeinsamer Verzeichnisse
wenn alle Benutzer alle Rechte haben, kann bei dem Sticky-Bit nurnoch der Eigentümer der Datei bzw des Verzeichnisses Dateien löschen bzw. umbenennen
/tmp benutzt dieses Bit bspw.
Was ist die RUID?
Real User ID
Was ist die EUID?
Effective User ID
In welchem Verhältnis stehen RUID und EUID zueinander?
RUID: ID des Benutzers, der einen Prozess startet
EUID: Entscheidet über Zugriffsrechte
Was ist ein Inode?
Element des Dateisystems
enthält Metainformationen und Berechtigungen für Dateien und Verzeichnisse
enthält Zeiger auf den entsprechenden Sektor auf dem Speichermedium
Was für Dateitypen gibt es unter UNIX-Systemen und wie lauten ihre Kürzel?
regular file, kein Kürzel
directory, d
link, l
socket, s
pipe, p
block device, b
character device, c
Mit welchem Befehl können die Metadaten aus einem Inode gelesen werden?
stat
Was bedeutet es, wenn die rwx auf ein Verzeichnis angewendet wurde?
lesen der Dateinamen
erstellen/löschen von Dateien erlaubt
Suchpfad ist erlaubt
Was ist ein Softlink?
Im Windows-Terminus eine Verknüpfung
hat eigenen Inode
Inode weiß nicht, wieviele Softlinks auf ihn zeigen
Was ist ein Hardlink?
Referenzzähler
gibt es keine Referenzen mehr, wird der Inode entfernt
unterschiedliche Namen für selbe Datei
Was ist ein Signal?
Eine Methode, um außergewöhnliche Ereignisse zu melden.
Wie kann ein Signal auch beschrieben werden?
Als eine asynchrone EIngabe an einen Prozess.
Wie kann ein Signal ausgelöst werden?
durch einen Fehler (durch OS)
durch ein externes Ereignis (durch OS)
durch eine explizite Anfrage (durch einen Prozess)
Wie lange dauert es, bis ein Signal ankommt?
Unvorhersehbar.
Was ist ein Signalhandler?
Eine C-Funktion, um ein Signal abzufangen und damit umzugehen.
Wie sieht die Signatur eines Signalhandlers in C aus?
void handler(int sig);
Was passiert, wenn ein Signal von einem Prozess angenommen wird?
weitere Vorkommen DIESES Signals werden geblockt
wenn der handler returnt hat, wird das Signal wieder zugelassen
Prozess fährt da fort, wo er unterbrochen wurde
Wie wird ein Benutzer identifiziert?
Durch eine numerische ID (UID).
Wer hat die UID 0?
Üblicherweise der super user (root).
Mit welchem Befehl kann man herausfinden, welche ID ein Benutzer hat und in welchen Gruppen er ist?
id [benutzername]
Warum sollte es möglich sein, die UID innerhalb eines Prozesses zu ändern?
Berechtigungsprobleme, die nicht vom Dateisystem gelöst werden können
Prinzip des wenigsten Privileges
Wie kann ein Prozess mit einer anderen UID ausgeführt werden?
Konsole: su
C: setuid() und seteuid()
In welchem Verhältnis stehen setreuid(), setuid() und seteuid() zueinander?
Was für C-Funktionen gibt es, um die (effektive) UID zu beeinflussen oder herauszufinden?
getuid() - reale UID
geteuid() - effektive UID
setuid() - effektive UID setzen (root: EUID + RUID)
seteuid() - effektive UID setzen
setreuid() - effektive und reale UID setzen
Wie kann man alle Berechtigungen entfernen?
setuid()
Welche C-Funktion für Berechtigungen sollte man vorzugweise benutzen?
seteuid()
Wo werden Benutzer gespeichert (Linux/Solaris)?
in /etc/passwd
Wo werden Passwörter (verschlüsselt) gespeichert (Linux/Solaris)?
in /etc/shadow
Wo werden Benutzer gespeichert (BSD)?
in /etc/master.passwd
Was steht in /etc/passwd (BSD)?
Eine Kopie der /etc/master.passwd, aber ohne Passwörter.
Was für Angriffsmöglichkeiten gibt es beim Hashing?
Invertierung des Algorithmus
Wörterbuchattacke
Brute-Force-Attacke
Wie kann man sich gegen inverses Hashing verteidigen?
crypto hashes MD5/SHA
Argon2
bcrypt
Wie kann man sich gegen Wörterbuchattacken oder Brute-Force-Attacken wehren?
salt
lange Passwörter, Sonderzeichen
Password Shadowing
Wie funktioniert eine verschlüsselte Public-Key-Kommunikation im Grundsatz?
jeder Benutzer U hat einen öffentlichen Schlüssel P und einen privaten Schlüssel S
eine Nachricht m von Bob an Alice wird verschlüsselt mit
m’ = E(P[Alice], m)
Alice kann die Nachricht entschlüsseln mit
m = D(S[Alice], m’)
E = Encryption, D = Decryption
E und D sind öffentlich
S[U] darf nicht anhand von P[U] reproduzierbar sein
Welche drei Algorithmen werden verbreitet in der Public Key Cryptograhpy benutzt?
RSA, DSA, ECDSA
Wofür kann Public Key Cryptography genutzt werden?
Verschlüsselung
Signierung
auf den beiden vorherigen basierende Anwendungen
Authentifizierung
Zufallszahlengenerator
etc.
Was unterscheidet Verschlüsselung von Signierung?
Verschlüsselung: Alle können verschlüsseln, nur einer kann entschlüsseln
Signierung: Nur einer kann signieren, alle können verifizieren
Wie kann sichergestellt werden, dass ein Benutzer wirklich den privaten Schlüssel besitzt, der für eine Entschlüsselung bzw. Signierung nötig ist?
Zertifikate
Was ist ein Zertifikat?
“Dokument”, signiert von einer certificate authority (CA)
verbindet einen Namen mit einem öffentlichen Schlüssel
verifiziert den öffentlichen Schlüssel
Was unterscheidet Encryption und Encoding?
Encryption: Benutzt private Schlüssel, Entschlüsselung nur mit passendem Schlüssel möglich
Encoding: Transformation von einem bekanntem Zeichensatz in einen anderen
Wie kann vergangene Zeit eines Prozesses gemessen werden?
time befehl [optionen]
Was gibt der time-Befehl aus und was bedeuten die Ausgaben?
real: vergangene Echtzeit
user: Prozessorzeit im Code (keine Systemaufrufe)
sys: Prozessorzeit in Systemaufrufen
Was sind Semaphoren?
Ein IPC-Mechanismus (inter process communication).
Wann werden Semaphoren benötigt?
Wenn zwei oder mehr Prozesse auf die selbe Ressource zur selben Zeit zugreifen wollen.
Was ist eine P-Operation?
Eine P-Operation fordert die Freigabe für eine Resource an.
Was ist eine V-Operation?
Eine V-Operation gibt eine Resource frei.
Wie werden Semaphoren realisiert?
Semaphore wird mit 1 initialisiert (Ressource ist frei)
P-Operation
nur möglich, wenn Semaphore > 0 ist
zieht 1 vom Wert der Semaphore ab
ist der Wert 0
Ressource ist belegt
Prozess blockiert
V-Operation
addiert 1 zum Wert der Semaphore (Ressource ist wieder frei)
Was für einen Zweck hat es, eine Semaphore mit einem anderen Wert als 1 zu initialisieren?
Ressource kann von mehr als einem Prozess benutzt werden.
Wie wird ein neuer Softlink angelegt?
ln -s datei linkname
Wie wird ein neuer Hardlink angelegt?
ln datei linkname
Welche Aussagen sind korrekt?
An welchem Zeitwert kann man erkennen, dass ein Prozess IO-Intensiv ist?
sys
An welchem Zeitwert kann man erkennen, dass ein Prozess CPU-Intensiv ist?
user
Was macht der head-Befehl?
Gibt die ersten n Zeilen einer Textdatei aus (standardmäßig 10).
Wieso können keine Hardlinks für Verzeichnisse erstellt werden?
das hierarchische Prinzip des Dateibaumes würde aufgebrochen werden, da durch Hardlinks auf Verzeichnisse aus dem Baum ein gerichteter Graph werden würde
Ausnahmen: . und ..
Was ist die allgemeine Funktion einer Hashfunktion?
Die Reduzierung eines langen Datenstromes auf einen einen kurzen.
Was sind die beiden wichtigsten Anforderungen an einen Hashing-Algorithmus?
man darf nicht vom Hash auf den Ursprungswert schließen können
Hashwert muss für unterschiedliche Eingaben unterschiedlich sein
Wie lauten mögliche Befehle zum Hinzufügen von Benutzern?
adduser
useradd
pw
Wie lauten mögliche Befehle zum Löschen von Benutzern?
rmuser
deluser
userdel
Wie heißen die drei Standard-Filedeskriptoren und wie lauten ihre IDs?
stdin, 0
stdout, 1
stderr, 2
Welche Zeichenfolgen werden zur Umleitung der Filedeskriptoren genutzt?
< = stdin
> = stdout
>> = stdout, mit Anhängen
2> = stderr
Wie hängen Prozesse und die Filedeskriptoren zusammen?
Prozesse lesen von stdin
Prozesse schreiben nach stdout und/oder stderr
Wozu dienen Pipes?
Zum Weiterreichen des Ergebnisses eines Prozesses an einen weiteren über stdout/stdin.
Was leistet xargs?
Transformiert stdin zu Kommandozeilenargumenten
Beispiel: find . -type l | rm
Welche Ressourcen sind vorallem von Limits betroffen?
Speicherplatz und Rechenzeit.
Welche beiden Arten von Limitierungen gibt es?
systemweite Limitierung
prozessbezogene Limitierung
Welche prozessbezogenen Limitierungen kann es beispielsweise geben?
maximale Menge an Rechenzeit
maximale Dateigröße für erzeugte Dateien
maximale Anzahl an Sohnprozessen
Welche systemweiten Limitierungen kann es geben?
absolute Obergrenze für den Betriebssystemkern
harte Limits, die von Software gesetzt und von da an niemals mehr überschritten werden kann (nur verringert)
weiche Limits, die ein Benutzer innerhalb eines harten Limits (z.B. zum Testen von Grenzfällen)
Wie kann ein Benutzer herausfinden, auf welchem Unix-Betriebssystem er sich gerade befindet?
uname -a
Nenne fünf verschiedene Systemcalls?
read, write, stat, kill, fork
Wie kann man die aktuelle Systemzeit herausfinden?
date
Mit welchen beiden C-Funktionen kann man die aktuelle Zeit herausfinden?
time und ctime
Wozu dient der Befehl df?
Zeigt den verfügbaren Speicherplatz an (disk free).
Was sind zwei beispielhafte Ausgaben von df?
verfügbarer Platz in Bytes
verbrauchter Platz in Prozent
Warum ist die Reihenfolge in /etc/fstab wichtig?
Manche Dateisysteme müssen beim Booten in bestimmter Reihenfolge eingehangen werden.
Nennen Sie vier Prioritäten im Syslog Daemon.
EMERG
CRIT
ERR
WARNING
NOTICE
INFO
DEBUG
Nennen Sie acht Informationen, die in einem Inode gespeichert werden.
Dateigröße
Zugriffszeit
Erstellungszeit
Änderungszeit
UID
GID
Gerät
Blocks
Blockgröße
nlink
(Zeiger auf Startsektor)
Was bedeutet ein gesetztes SETUID-Bit bei der Ausführung eines Prozesses?
Der Prozess wird mit den Rechten des Eigentümers ausgeführt.
Warum kann ein gesetztes SETUID-Bit die Sicherheit des Systems gefährden?
Ein gesetztes SETUID-Bit kann die Sicherheit gefährden, wenn das entsprechende Programm nicht ausreichend abgesichert ist. Wenn ein Angreifer Schwachstellen im Programm findet, könnte er es ausnutzen, um mit den erhöhten Rechten des Eigentümers der Datei schädliche Aktionen auszuführen, die er normalerweise nicht durchführen dürfte, was zu unbefugtem Zugriff oder Systemkompromittierung führen kann.
Wie setzt man ein SETUID-Bit für eine Datei?
chmod u+s <datei>
Was ist der Unterschied zwischen einem Programm und einem Prozess?
Ein Programm ist eine passive Aneinanderreihung von Anweisungen in einer bestimmten Programmiersprache
Ein Prozess ist die aktive Ausführung eines Programmes, die Ressourcen des PCs verbraucht
Was ist ein Zombieprozess und wie kann man sie vermeiden?
Ein Prozess, dessen Ausführung beendet ist, aber noch in der Systemverwaltung aufgeführt ist und dort auch gehalten wird
Vermeidung, indem Elternprozess Funktionen wie wait() und waitpid() verwendet um sicherzustellen, dass der Hauptprozess auf die Beendigung aller Kinder wartet
Wie sendet man ein Signal an einen Prozess?
kill -ID <prozessid>
kill -SIGNAL <prozessid>
Welche Signale sind nicht abfangbar?
SIGKILL
SIGSTOP
SIGCONT
SIGDANGER
SIGSYS
Welche drei Rückgabewerte von fork() gibt es?
-1: Fehler beim Erstellen des Kindprozesses
0: Rückgabewert von fork() in Kindprozessen
>0: Prozess-ID des Kindprozesses
Nennen Sie drei Kriterien, nach denen sich die sechs verschiedenen Formen der exec...()-Aufrufe unterscheiden:
execl(), execle(), execlp(), execv(), execve(), execvp()
Und welches ist die Urversion, von der die übrigen fünf abgeleitet sind?
Parameterliste:
l: Die Argumente werden als einzelne Parameter aufgelistet.
v: Die Argumente werden als Array von Zeichenzeigern übergeben.
p: Das Betriebssystem sucht nach der auszuführenden Datei im Pfad des Benutzers.
Umgebungsvariablen:
e: Eine Liste von Umgebungsvariablen kann angegeben werden.
Ursprüngliche Arbeitsverzeichnis beibehalten:
x: Das ursprüngliche Arbeitsverzeichnis des aufrufenden Prozesses wird beibehalten.
Die Urversion, von der die übrigen fünf abgeleitet sind, ist execv(). Es handelt sich um die grundlegende exec()-Funktion, bei der die Argumente als Array von Zeichenzeigern übergeben werden. Die anderen Formen, wie execl(), execle(), execlp(), execve() und execvp(), sind Variationen, die spezifische Bedürfnisse und Anforderungen abdecken.
execv()
exec()
execl()
execle()
execlp()
execve()
execvp()
Was ist der Unterschied zwischen
echo ‘$HOME’
und
echo “$HOME”
?
echo ‘$HOME’ gibt einfach die Zeichen aus, ohne die Variable aufzulösen.
echo “$HOME” gibt das Home-Verzeichnis aus.
grep bin ‘ls’
ls | grep bin
grep bin ‘ls’ ist ein fehlerhafter Befehl.
ls | grep bin führt ‘ls’ aus und wendet dann grep bin auf das Ergebnis an.
echo date
echo ‘date’
Es gibt keinen Unterschied.
Wie ist die Reihenfolge der Prioritäten für den Syslog?
Aufsteigend sortiert:
debug
info
notice
warning
err
crit
alert
emerg
6e7f7e03500747c6c3bfece2c9c8394f linuxmint-17.3-cinnamon-32bit.iso
Was bedeutet der Hexcode?
Bei dem Hexcode handelt es sich um einen Hash-Wert, oder hier um eine Checksumme.
Dabei handelt es sich um eine kryptographische Darstellung des Inhalts einer Datei oder eines Textes, die verwendet wird, um die Integrität und Echtheit von Daten zu prüfen.
Womit wurde dieser Hexcode vermutlich erzeugt?
MD5 oder SHA-1
Wodurch entsteht die Sicherheit, die dieser Hexcode bereitstellen soll?
Die Sicherheit entsteht, indem der Hash-Wert berechnet und dann zusammen mit dem Softwarepaket veröffentlicht wird. Wenn der Benutzer das Paket herunterlädt, kann er den Hash-Wert der heruntergeladenen Datei berechnen und mit dem veröffentlichten Hash-Wert vergleichen. Wenn sie übereinstimmen, deutet dies darauf hin, dass die Datei unverändert und korrekt ist. Es schützt vor zufälligen Beschädigungen oder böswilligen Änderungen.
Welche Sicherheitseigenschaft (im CIA–Modell) soll hierdurch bereitgestellt
werden?
Integrität
Warum ist gerade dieser linuxmint-Hexcode nicht besonders vertrauenswürdig?
Dieser spezielle linuxmint-Hexcode ist nicht besonders vertrauenswürdig, weil er auf den älteren kryptografischen Hash-Funktionen MD5 und SHA-1 basiert. Beide sind mittlerweile als unsicher für kritische Sicherheitsanwendungen wie Integritätsprüfung oder Authentifizierung eingestuft, da sie anfällig für Kollisionen und Brute-Force-Angriffe sind. Moderne Hash-Funktionen wie SHA-256 werden heute empfohlen.
OpenSSL bietet Ihnen zum Verschlüsseln von Nachrichten die Möglichkeiten
-aes-128-cbc -aes-128-ctr -aes-128-ecb
-aes-128-xts -aes-192-ctr -aes-192-ecb
-aes-256-cbc -aes-256-ctr -aes-256-ecb
-des-cbc -des-ecb
Von welchen Modi sollte man abraten und warum?
Von des-cbc und des-ecb. Diese sind veraltet und sind anfällig für Brute-Force-Attacken.
Welche Sicherheitseigenschaft (im CIA–Modell) soll durch Verschlüsseln bereitgestellt
Vertraulichkeit (Confidentiality)
Mit welcher Zeile werden Shellskripte eingeleitet?
#!/bin/bash
Was bedeutet diese Zeile?
*11759 ln CALL stat(0xbfbfe7ef,0xbfbfe570)
Der Prozess ln ruft die Funktion stat mit den Argumenten in der Klammer auf.
In welcher Variable steht die Anzahl der übergebenen Argumente für ein Shellskript?
$#
Welche Variable enthält bei einem Shellskript alle übergebenen Argumente?
"$@"
Wie kann in einem Shellskript geprüft werden, ob ein Benutzer nicht existiert?
if ! id "$user_name" &> /dev/null; then
Was ist /dev/random?
Ein Zufallszahlengenerator.
Last changeda year ago