unknown
2 years ago
4 changed files with 299 additions and 0 deletions
@ -1,2 +1,5 @@ |
|||||
/target/ |
/target/ |
||||
/bin/ |
/bin/ |
||||
|
/bin/ |
||||
|
/bin/ |
||||
|
/bin/ |
@ -0,0 +1,291 @@ |
|||||
|
package ITsecAufgaben; |
||||
|
|
||||
|
import java.util.Scanner; |
||||
|
import java.lang.Math; |
||||
|
|
||||
|
public class ITsecAufgaben { |
||||
|
|
||||
|
public static void sechsteAufgabe() { |
||||
|
System.out.println("Die folgende Aufgabe können Sie nicht überspringen & nur mit 'Strg + Z' das Programm abbrechen. :)\n"); |
||||
|
|
||||
|
Scanner in = new Scanner(System.in); |
||||
|
|
||||
|
System.out.println("Was sind Betriebssystem, Kernel, Scheduler, Hypervisor, BIOS?\nLösungen mit '0' anzeigen:"); |
||||
|
|
||||
|
int loesung = in.nextInt(); |
||||
|
|
||||
|
if(loesung == 0) { |
||||
|
System.out.println("Betriebssystem (OS):\n Verwaltet Hardware und stellt diese Anwendungen zur Verfügung\n\n" |
||||
|
+ "Admin/Root Nutzer:\n" |
||||
|
+ "Nutzer mit erweiterten Rechten am Betriebssystem\n\n" |
||||
|
+ "Kernel:\n" |
||||
|
+ "Teil des Betriebssystems, in dem Hardware nahe Software ausgeführt wird\n\n" |
||||
|
+ "Scheduler:\n" |
||||
|
+ "Weist Anwendungen Rechen Ressourcen zu (z.B. CPU, GPU)\n\n" |
||||
|
+ "Hypervisor:\n" |
||||
|
+ "Software, die das Betriebssystem von der unterliegenden Hardware abstrahiert\n\n" |
||||
|
+ "BIOS (Basic Input/Output System):\n" |
||||
|
+ "Initialisiert die Hardware und lädt das Betriebssystem\n\n"); |
||||
|
|
||||
|
} |
||||
|
System.out.println("Aufgabe fertig."); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public static int ggTLösung(int a, int b) { |
||||
|
|
||||
|
while (a != b) { |
||||
|
if(a > b) |
||||
|
a = a - b; |
||||
|
else |
||||
|
b = b - a; |
||||
|
} |
||||
|
if (a > b) { |
||||
|
return b; |
||||
|
} |
||||
|
return a; |
||||
|
} |
||||
|
public static int[] randomNumberArray(int[] ausgabe) { |
||||
|
int max = 99, min = 0, range, random; |
||||
|
range = max - min + 1; |
||||
|
|
||||
|
for(int i = 0; i <= (ausgabe.length - 1); i++) { |
||||
|
random = (int) (Math.random() * range) + min; |
||||
|
ausgabe[i] = random; |
||||
|
} |
||||
|
|
||||
|
return ausgabe; |
||||
|
} |
||||
|
|
||||
|
public static void fünfteAufgabe() { |
||||
|
|
||||
|
System.out.println( |
||||
|
"Drücken Sie '0' für die Aufgabe, '1' zum überspringen oder 'Strg + Z' zum abbrechen des Programmes: "); |
||||
|
|
||||
|
Scanner in = new Scanner(System.in); |
||||
|
|
||||
|
int[] ZahlenArray = new int[2]; |
||||
|
randomNumberArray(ZahlenArray); |
||||
|
// |
||||
|
int aufgabeStarten = in.nextInt(); |
||||
|
if (aufgabeStarten == 0) { |
||||
|
int lösung; |
||||
|
System.out.println("Berechnen Sie den 'größten gemeinsamen Teiler' der folgenden Zahlen: "); |
||||
|
System.out.printf("%d & %d", ZahlenArray[0], ZahlenArray[1]); |
||||
|
|
||||
|
System.out.printf("\n\n Lösung anzeigen mit '2':"); |
||||
|
|
||||
|
lösung = in.nextInt(); |
||||
|
|
||||
|
if(lösung == 2) { |
||||
|
lösung = ggTLösung(ZahlenArray[0], ZahlenArray[1]); |
||||
|
System.out.printf("Lösung lautet: %d", lösung); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
System.out.println("\nFünfte Aufgabe beendet"); |
||||
|
} else { |
||||
|
System.out.println("\nFünfte Aufgabe beendet"); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public static void hielfsMethodeVierteAufgabe(String[][] eingabe, int spalte, int zeile) { |
||||
|
Scanner hIn = new Scanner(System.in); |
||||
|
|
||||
|
if (zeile == 0) { |
||||
|
System.out.println("Angreifer eingeben: "); |
||||
|
} else if (zeile == 1) { |
||||
|
System.out.println("Motivation eingeben: "); |
||||
|
} else { |
||||
|
System.out.println("Beispiel-Werkzeug eingeben: "); |
||||
|
} |
||||
|
|
||||
|
eingabe[spalte][zeile] = hIn.nextLine(); |
||||
|
|
||||
|
// hIn.close(); |
||||
|
} |
||||
|
|
||||
|
public static void vierteAufgabe() { |
||||
|
System.out.println( |
||||
|
"Erstellen Sie die Tabelle zu den sieben Angreifertypen, nennen Sie NACHEINANDER ihre Bezeichnung, ihre Motivation & mögliche Werkzeuge!\n Drücken Sie Zahl ungleich '0' für die nächste Frage."); |
||||
|
String[][] lösung = { |
||||
|
{ "Nutzende", "Persönliche Vorteile (Features freischalten,...)", |
||||
|
"Anwendung von Tools oder Anleitungen; Anheuerung organisierter Krimineller;..." }, |
||||
|
{ "Mitarbeitende", "Rache; Geld; Whistleblower;...", |
||||
|
"Zugriff auf und Kompromittierung interner Systeme" }, |
||||
|
{ "White Hats, Pentester", "Prestige; Herausforderung; Geld;...", |
||||
|
"Identifikation von Schwachstellen; Ausnutzung unter ethischen Richtlinien;..." }, |
||||
|
{ "Grey Hats", "Prestige; Herausforderung; ideologische Ziele; Vandalismus; Geld", |
||||
|
"Identifikation und Ausnutzung von Schwachstellen; Offenlegung des Eindringens" }, |
||||
|
{ "Black Hats", "Geld oder Habgier", |
||||
|
"Identifikation und Ausnutzung von Schwachstellen; Kompromittierung des Systems; Monetarisierung" }, |
||||
|
{ "Konkurrenz", "Störung; Wirtschaftsspionage; Diskreditierung", |
||||
|
"Reverse-Engineering von Produkten; Anheuerung organisierter Krimineller" }, |
||||
|
{ "Staaten oder Geheimdienste", "Wirtschaftliche Vorteile, Destabilisierung", |
||||
|
"Kompromittierung der Infrastruktur, Komponenten oder Standards; Tarnung vor Entdeckung" } }; |
||||
|
String[][] aufgabe = new String[7][3]; |
||||
|
// String[][] lösung = new String[7][3]; |
||||
|
int result = 1, frage = 1; |
||||
|
|
||||
|
Scanner in = new Scanner(System.in); |
||||
|
|
||||
|
frage = in.nextInt(); |
||||
|
|
||||
|
if (frage == 0) { |
||||
|
// aufgabe.length |
||||
|
for (int i = 0; i <= 6; i++) { |
||||
|
for (int j = 0; j <= 2; j++) { |
||||
|
if (j == 3 || i == 8) { |
||||
|
break; |
||||
|
} |
||||
|
|
||||
|
hielfsMethodeVierteAufgabe(aufgabe, i, j); |
||||
|
} |
||||
|
if (i == 8) { |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
System.out.println("Zeigen Sie nun di2e Lösung mit '0' an & vergleichen Sie Ihre Eingabe:\n"); |
||||
|
result = in.nextInt(); |
||||
|
|
||||
|
if (result == 0) { |
||||
|
String res = ""; |
||||
|
|
||||
|
for (int i = 0; i < 7; i++) { |
||||
|
res = "" + lösung[i][0] + " | " + lösung[i][1] + " | " + lösung[i][2] + "\n"; |
||||
|
System.out.println(res); |
||||
|
} |
||||
|
|
||||
|
// System.out.println("\n\n"); |
||||
|
|
||||
|
res = ""; |
||||
|
|
||||
|
for (int i = 0; i < 7; i++) { |
||||
|
res = "" + aufgabe[i][0] + " | " + aufgabe[i][1] + " | " + aufgabe[i][2] + "\n"; |
||||
|
System.out.println(res); |
||||
|
} |
||||
|
|
||||
|
} else { |
||||
|
System.out.println("Bitte nochmal '0' eingeben, ansonsten 'STRG + Z'"); |
||||
|
result = in.nextInt(); |
||||
|
} |
||||
|
|
||||
|
in.close(); |
||||
|
} |
||||
|
|
||||
|
// String[][] für Angreifer |
||||
|
|
||||
|
public static void dritteAufgabe() { |
||||
|
System.out.println( |
||||
|
"Schreiben Sie die sechs IT-Sicherheitsziele mit kurzer Erläuterung auf!\n Drücken Sie '0' für die Lösung, andere Zahl für nächste Frage."); |
||||
|
Scanner in = new Scanner(System.in); |
||||
|
int result = 1; |
||||
|
result = in.nextInt(); |
||||
|
if (result == 0) { |
||||
|
System.out.println( |
||||
|
"1. Vertraulichkeit (Vert.) := allg. Schutz vor unbefugter Preisgabe von Informationen\r\n" + "\r\n" |
||||
|
+ "2. Integrität (I.) := Sicherstellung der Korrektheit von Daten & der korrekten Funktionsweise von Systemen\r\n" |
||||
|
+ "\r\n" |
||||
|
+ "3. Authentizität (Auth.) := Kommunikationspartner/angegebene Quelle ist tatsächlich diejenige Person/Entität, die sie vorgibt zu sein, bzw. ist authentisch\r\n" |
||||
|
+ "\r\n" |
||||
|
+ "4. Verfügbarkeit (Verf.) := Sicherstellung der vorgesehenen Nutzbarkeit eines IT-Systems\r\n" |
||||
|
+ "\r\n" |
||||
|
+ "5. Autorisierung (Autor.) := Freischaltung der eingeräumten Rechte für eine erfolgreich authentifizierte Person\r\n" |
||||
|
+ "\r\n" |
||||
|
+ "6. Verbindlichkeit (Verb.) := Empfangen/Senden einer Nachricht oder Durchführen einer Handlung kann nicht abgestritten werden (e.g. wegen falscher Beschuldigung oder Fährten)"); |
||||
|
} |
||||
|
System.out.println("\n\nAufgabe 3 fertig"); |
||||
|
} |
||||
|
|
||||
|
public static void zweiteAufgabe() { |
||||
|
System.out.println("\nBerechnen Sie RSA per Hand. Taschenrechner & Website erlaubt.\n"); |
||||
|
System.out.println("Gegeben sind: p = 13, q = 17, e = 11, P1 = 23"); |
||||
|
System.out.println("Geben Sie das Ergebnis für N, phiOfN, encKey, decKey & C1:\n"); // <-- hier ggf. refactoring |
||||
|
|
||||
|
boolean an = true; |
||||
|
int N = 0, phiOfN = 0, decKey = 0, C1 = 0, encKey = 0, abbrechen = 0; |
||||
|
// String encKey = "(221, 11)"; |
||||
|
|
||||
|
Scanner in = new Scanner(System.in); |
||||
|
|
||||
|
while (an) { |
||||
|
|
||||
|
System.out.println("Abbrechen & Lösungen anzeigen mit '1', ansonsten weiter "); |
||||
|
abbrechen = in.nextInt(); |
||||
|
if (abbrechen == 1) { |
||||
|
an = false; |
||||
|
break; |
||||
|
} |
||||
|
|
||||
|
System.out.println( |
||||
|
"Ergebnisse für N, phiOfN, decKey, Cipher1 & encKey eingeben:\n Vorsicht: encKey besteht aus N & '?' angehangen ; alle Werte sind integer"); |
||||
|
System.out.println("N:"); |
||||
|
N = in.nextInt(); |
||||
|
System.out.println("phiOfN:"); |
||||
|
phiOfN = in.nextInt(); |
||||
|
System.out.println("decKey:"); |
||||
|
decKey = in.nextInt(); |
||||
|
System.out.println("C1:"); |
||||
|
C1 = in.nextInt(); |
||||
|
System.out.println("encKey:"); |
||||
|
encKey = in.nextInt(); |
||||
|
|
||||
|
if (N == 221 && phiOfN == 192 && encKey == 22111 && decKey == 35 && C1 == 56) { |
||||
|
System.out.println("\nRichtiges Ergebnis\n"); |
||||
|
an = false; |
||||
|
} else { |
||||
|
System.out.println("\nFalsches Ergebnis\n"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
in.close(); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
// kein äöüÄÖÜ |
||||
|
public static void erstesQuiz() { |
||||
|
System.out.println("debug: erstesQuiz() fängt an\n"); |
||||
|
System.out.println("Was ist die Definition von 'Schwachstelle'?\n"); |
||||
|
System.out.println( |
||||
|
"\n1. Ein sicherheitsrelevanter technischer oder Prozess-Fehler.\n2. Ein Softwarefehler, der ausgenutzt werden kann\n3. Die Verse eines Menschen.\n\n 0 -> Lösung ; 42 -> naechste Aufgabe"); |
||||
|
|
||||
|
Scanner in = new Scanner(System.in); |
||||
|
int age = 1; |
||||
|
|
||||
|
while (age != 0) { |
||||
|
|
||||
|
age = in.nextInt(); |
||||
|
// if(age == 0) { break; } |
||||
|
|
||||
|
if (age == 1) { |
||||
|
System.out.println("Richtig!\n"); |
||||
|
} else if (age == 0) { |
||||
|
System.out.println("Auf Wiedersehen."); |
||||
|
} else { |
||||
|
System.out.println("Falsch.\n"); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
in.close(); |
||||
|
System.out.println("\ndebug: erstesQuiz() fertig"); |
||||
|
} |
||||
|
|
||||
|
// für debugging & dev-test |
||||
|
public static void main(String[] args) { |
||||
|
// TODO Auto-generated method stub |
||||
|
System.out.println("ITsec-main betreten\n\n"); |
||||
|
|
||||
|
//erstesQuiz(); |
||||
|
//zweiteAufgabe(); |
||||
|
//dritteAufgabe(); |
||||
|
//vierteAufgabe(); |
||||
|
|
||||
|
fünfteAufgabe(); |
||||
|
|
||||
|
System.out.println("\n\nmain endet"); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,4 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
#maven build |
||||
|
#mvn build |
Write
Preview
Loading…
Cancel
Save
Reference in new issue