Ein Tag im Leben eines Programmierers

Ein Tag im Leben eines Programmierers: Tätigkeiten und Ablauf

Image

Ein Tag im Leben eines Programmierers. Gibt es mehrere Bereiche eines Programmierers, und wie viel hat jeder Bereich zu tun? Ein Programmierer hat viele Aufgaben zu erledigen, und die Komplexität der Aufgaben hängt davon ab, ob der Programmierer im Front-End oder Back-End arbeitet. Das Front-End ist die Nutzeroberfläche einer Software und wird meistens mit C# für Desktopanwendungen programmiert oder JavaScript und HTML für Web-Apps. Mit dem Front-End können die Nutzer mit der Software interagieren, und daher ist das Back-End zwingend erforderlich. Das Back-End ist alles, was der Nutzer nicht sieht, z.B. die Nutzerdatenbank oder die Bilderdatenbank usw. Das Back-End belebt sozusagen das Front-End, damit das Front-End auch Funktionen hat und nicht nur eine 'leere Hülle' ist. Wie bereits gesagt, haben Front-End-Entwickler und Back-End-Entwickler unterschiedliche Aufgaben, und jetzt kann man die Frage aus dem ersten Satz beantworten, nämlich der Back-End-Entwickler hat am meisten zu tun, weil man immer auf die Server achten muss und die Server pflegen muss. Das Front-End muss ja nur einmal gemacht werden, und dann funktioniert es. Jedes Gerät, das Sie benutzen, wurde programmiert, wie Ihr Handy, Kühlschrank, Drucker, usw. Und das muss ein Programmierer von Hand machen. Zum Beispiel, wenn ein Team ein Android-Betriebssystem programmieren möchte, würde sich einer um das Front-End kümmern, der andere um das Back-End, und das Wichtigste ist das Debuggen. Debuggen ist Fehler zu finden und sie zu beheben, das machen Programmierer eigentlich am meisten, nicht nur das Coden, sondern auch das Debuggen und Reparieren. Dann gibt es oft eine geschlossene Betaphase, in der ausgewählte Nutzer die Software nutzen können, und durch den täglichen Gebrauch werden häufig Fehler von den Nutzern gefunden, die die Nutzer dem Team melden können. Häufig haben Fehler eine bestimmte Priorität, wenn es also einen Fehler mit der Priorität 1 gibt, bedeutet das, dass er schnell behoben werden muss, mit der Priorität 5 kann er noch warten. 'While they are busy with reconnaissance, focus on exploitation. PS: reconnaissance is an ESSENTIAL phase.' Ein Zitat von Amine Essiraj, das Zitat finde ich besonders toll, weil es einfach ein Fakt ist und das der Alltag jedes Programmierers ist. Die gefährlichsten Fehler sind immer Sicherheitslücken, und diese werden häufig so angegeben: CVE-2023-12345. CVE bedeutet Common Vulnerabilities and Exposures und auf Deutsch Bekannte Schwachstellen und Anfälligkeiten. Dies ist ein Referenzierungssystem und ist dem US-amerikanischen National Cybersecurity FFRDC unterstellt und wird durch die Mitre Corporation gepflegt. Das zweite Feld steht für das Jahr, in dem die Sicherheitslücke entdeckt wurde, und das dritte Feld ist frei wählbar, muss aber mindestens 4 Ziffern lang sein. 'Never still believe that your browser has the best security quality. Even the earth’s best browser is lately affected with CVE 2019-5786.' Das ist ein Zitat von Arulselvar Thomas, der bei BriskInfosec arbeitet. Dieses CVE ist ein FileReader UaF Exploit. Was das bedeutet, ist nicht wichtig, aber das ist z.B. ein CVE. Als zweites Beispiel nehmen wir jetzt mal Apple. Apple hat in folgenden iOS-Versionen 16.0 – 16.6 Beta 1 einen Zero-Day Exploit, der in den Versionen nicht behoben werden kann, nur wenn man updatet. Die Sicherheitslücke wird CVE-2023-23536 genannt oder auch KFD, weil mit dieser Sicherheitslücke hat man Zugriff auf den Kernel und kann den Kernel-Speicher auslesen und beschreiben. Ein Kernel ist die Schnittstelle zwischen Software und Hardware. KFD heißt ausgeschrieben Kernel File Descriptor, und viele coole Programmierer haben damit eine App programmiert, mit der man das iPhone vielfältig anpassen kann. Wie zum Beispiel Cluckabunga (GitHub - leminlimez/Cluckabunga: KFD Customization Tool for iOS 16.0-16.6b1). Mit dieser App kann man sein Handy selber gestalten und es selber anpassen. Ein Zitat von Also daraus schließen wir, Sicherheitslücken sind nicht gut für die Unternehmen und Nutzer, doch manchmal auch gut für die Nutzer, wie Jailbreaks, die basieren immer nur auf Sicherheitslücken. Ein sehr interessantes und wichtiges Thema. Aber was ist, wenn kein Nutzer eine Sicherheitslücke entdeckt? Dann kann sich ein Unternehmen einen Penetrationstester einstellen, der mit der Erlaubnis des Unternehmens das Back-End und Front-End versucht zu hacken und es dem Unternehmen mitteilt, damit sie diese Sicherheitslücke schließen können. Das bekannteste Tool für Penetrationstests ist Kali Linux, das ist eine Linux-Distribution mit vorinstallierten Tools, womit man erheblichen Schaden anrichten kann, wenn man diese Tools für nichts Gutes verwendet. Auf diese Distribution hat jeder Zugriff, jedoch muss man erst einmal lernen, damit richtig umzugehen, da diese Tools sehr großes Vorwissen erfordern. Daraus schließen wir folgendes: Jeder kann Hacken lernen, und manche Unternehmen stellen extra Hacker an, damit die Unternehmen Sicherheitslücken finden. Und das Programmierer hauptsächlich Fehler suchen und reparieren.


Autor: Jon
Ressort: Technik