ich arbeite momentan an einem Tool zur Erkennung von Anomalien in einem Netzwerk auf Basis statistischer Tests. Dafür möchte ich die Möglichkeit anbieten, die Eingangsdatenquelle beliebig zu wählen (zB direkt vom Protokoll Stack, aus einer PCAP Datei oder sonst was). Das System nimmt unabhängig von der Datenquelle erstmal nur rohe Bytestrings entgegen (andere Module sind dann zum Erkennen und Umwandeln in Pakete zuständig).
Meine Idee war nun, eine Art Plugin System zu entwickeln.
Beispiel: Das Programm funktioniert mit PCAP Dateien, man kann also IP Pakete aus PCAP Dateien auslesen schön und gut. Jetzt hat irgendein schlauer Mensch ein anderen Datenformat zum Speichern von Traffic entwickelt (zB PCAPNG), mein Programm kann damit aber nicht arbeiten.
Jetzt soll es so funktionieren, dass man lediglich den Teil des Programm neu implementieren muss, der die neue Datenquelle verarbeiten und Bytestrings generieren kann.
Man könnte zB vorgeben, dass jedes dieser Module eine Klasse mit dem selben Namen enthalten muss, welche eine Methode read_byte_string() enthalten muss.
Bisher würde ich sagen, das lässt sich gut mit imp und exec machen. Wer sich jetzt laut über die unzähligen Sicherheitsprobleme bei exec beschweren will dem sei vorher gesagt, das Tool ist nicht dafür ausgelegt als root auf irgendeinem Server zu laufen. Außerdem kann jeder die Plugins, die er sich herunterlädt vorher selbst überprüfen oder von einer vertrauenswürdigen Webseite herunterladen (will sagen, der Sicherheitsaspekt sei hier mal hinten angestellt).
Bitte um Anregungen, Vorschläge und natürlich die lange Liste von Gründen, warum mein Konzept ganz schrecklich ist

LG, Alex