1. Foren
  2. Kommentare
  3. Security
  4. Alle Kommentare zum Artikel
  5. › GnuTLS: Fehlerhafte Zertifikate…

Unittests anyone ?

Expertentalk zu DDR5-Arbeitsspeicher am 7.7.2020 Am 7. Juli 2020 von 15:30 bis 17:00 Uhr wird Hardware-Redakteur Marc Sauter eure Fragen zu DDR5 beantworten.
  1. Thema

Neues Thema Ansicht wechseln


  1. Unittests anyone ?

    Autor: jaykay2342 04.03.14 - 14:47

    Macht denn niemand auf diesem Planten mehr Unittests für sicherheitsrelevanten Code?

  2. Re: Unittests anyone ?

    Autor: bernd71 04.03.14 - 15:15

    Und mit Unittests kann man jeden Fehler finden? Ich frage mich ob Leute die immer auf vermeitlich fehlende Unittests verweisen jemals entwickelt haben.

  3. Re: Unittests anyone ?

    Autor: jaykay2342 04.03.14 - 15:26

    ja ich habe schon entwickelt. Nicht jeden Fehler ist damit zu finden aber der apple bug sollte auf jeden Fall mit einem unittests auffallen. Auch für diesen GNUTLS Bug hier sollte es einen testcase im unittests geben. Eine function die Zertifikate überprüft sollte mit kaputten, abgelaufene, vom falschen signierten , etc Zertifikaten geprüft werden. Und natürlich mit Kombinationen daraus. Ja ich weiß da kommen einige Tests zusammen und es ist viel Arbeit diese zu erstellen. Für einen so wichtigen Teil des Codes ist es aber eine lohnende Investition.

  4. Re: Unittests anyone ?

    Autor: bernd71 04.03.14 - 15:35

    Die müssen alle erstellt werden und Unittests sind ja nicht per Definition fehlerfrei. Wenn man für komplexere Sachen einen vollständigen! und fehlerfreien Unittest hinbekommt sollte man auch den Code vollständig und fehlerfrei hinbekommen und kann auf den Unittest verzichten. Ist aber in der Praxis nicht so.

  5. Re: Unittests anyone ?

    Autor: _4ubi_ 04.03.14 - 15:52

    jaykay2342 schrieb:
    --------------------------------------------------------------------------------
    > ja ich habe schon entwickelt. Nicht jeden Fehler ist damit zu finden aber
    > der apple bug sollte auf jeden Fall mit einem unittests auffallen. Auch
    > für diesen GNUTLS Bug hier sollte es einen testcase im unittests geben.
    > Eine function die Zertifikate überprüft sollte mit kaputten, abgelaufene,
    > vom falschen signierten , etc Zertifikaten geprüft werden. Und natürlich
    > mit Kombinationen daraus.

    Das ist dann per Definition aber kein Unit-Test.

  6. Re: Unittests anyone ?

    Autor: jaykay2342 04.03.14 - 15:55

    Unittests sind weniger komplex als der Code. Und man macht nicht einen Komplexen Unittest sondern ganz viele kleine. jeweils Input => erwarteter Output. In diesem Falle
    Input=>verschiedenste Zertifikate mit möglichen Kombinationen aus Fehlern. Die muss man alle erstellen und sich angucken(manuell testen) und damit die Unttests erstellen. Zu überprüfen ob die Tests klappen ist weniger komplex als der zu zu prüfende Code. Dann fallen Fehler bei zukünftigen Änderungen sofort auf.
    Es gibt kein 100% Sicherheit. Aber Unittests sind besser als gar nicht zu testen. Ich habe mir den GnuTLS Bug noch nicht angeguckt möglich dass dieser nur in einem ganz speziellen Fall getriggert wird welcher von keinem Test abgedeckt war. Das Apple Ding hätte aber bei dem trivialsten Test schon fehlschlagen müssen.

  7. In der Theorie...

    Autor: Anonymer Nutzer 04.03.14 - 15:56

    ...mag das alles stimmen.

    Aber ich war mal in der Situation Unit-Tests für den Parser einer recht umständlichen Binär-Datei schreiben zu müssen. Abgesehen davon das ich für die Unit-Tests mehr als drei Mal so lange gebraucht habe wie für den zu testenden Code hat sich im Endeffekt herausgestellt das gerade mal ein Bruchteil der möglichen Probleme erkannt wurden. Und das trotz aufwändigen Programmen die absichtlich kaputte Dateien erstellt haben usw... der Teufel steckt im Detail. Wenn du ein Problem schon bei der Entwicklung nicht gesehen hast - wie solltest du auf die Idee kommen einen Unit-Test zu schreiben der das erkennt? Noch Jahre nach Produktivstellung des Codes sind weitere Unit-Tests dazu gekommen... teilweise abgeleitet aus "bösen" kaputten Dateien die Anwender zugeschickt haben... teilweise weil mal ein anderer Entwickler (noch nicht so betriebsblind) drüber geguckt hat und tatsächlich auch weil ich selber neue destruktive Ideen hatte.

  8. Re: Unittests anyone ?

    Autor: Anonymer Nutzer 04.03.14 - 15:58

    > Unittests sind weniger komplex als der Code. Und man macht nicht einen
    > Komplexen Unittest sondern ganz viele kleine.

    Das geht nur so lange gut bis ein Fehler eben nur in einer einzigen Kombination von Problemen auftritt. Alles schon gehabt!

  9. Re: Unittests anyone ?

    Autor: jaykay2342 04.03.14 - 16:00

    Deswegen muss man sich hier viel Zertifikate zusammen bauen mit verschiedensten Kombinationen. Man wird nicht alles abdecken können, aber das ist doch kein Grund gar keine Tests zu fahren, oder?

  10. Re: Unittests anyone ?

    Autor: Anonymer Nutzer 04.03.14 - 16:02

    > (...) Man wird nicht alles abdecken können, aber
    > das ist doch kein Grund gar keine Tests zu fahren, oder?

    Klar sind Tests nötig. Nur ist es halt so das auch bestandene Tests nicht aussagen das der Code korrekt ist! Die Problematik verschiebt sich nur zur Frage ob man auch wirklich alle nötigen Fälle abgedeckt hat.

  11. Re: Unittests anyone ?

    Autor: jaykay2342 04.03.14 - 16:06

    Versuchsperson schrieb:
    --------------------------------------------------------------------------------
    > > (...) Man wird nicht alles abdecken können, aber
    > > das ist doch kein Grund gar keine Tests zu fahren, oder?
    >
    > Klar sind Tests nötig. Nur ist es halt so das auch bestandene Tests nicht
    > aussagen das der Code korrekt ist! Die Problematik verschiebt sich nur zur
    > Frage ob man auch wirklich alle nötigen Fälle abgedeckt hat.

    Ich hab nie gesagt dass ein bestandener Test sagt der Code ist korrekt. Aber Der Apple Bug wäre bei einfachsten Test durchgefallen. Da muss man ja annehmen dass sie gar keine Tests mit dem Code macht. Was bei sicherheitsrelevanten Code echt peinlich ist.

  12. Re: Unittests anyone ?

    Autor: Anonymer Nutzer 04.03.14 - 16:10

    > Aber Der Apple Bug wäre bei einfachsten Test durchgefallen. Da muss man ja
    > annehmen dass sie gar keine Tests mit dem Code macht. Was bei
    > sicherheitsrelevanten Code echt peinlich ist.

    Wer weiß? Wenn falsche Zertifikate Bestandteil der Unit-Tests waren... und dann auch noch "richtig falsche" (also welche die den betreffenden Fehler auslösen - und nicht einfach schon bei den Tests vorher abgewiesen werden).

    Normalerweise sind Unit-Tests ja nicht tiefer durchdacht als der zu testende Code... also werden die wirklich kritischen Fälle (an die der Entwickler ja nicht gedacht hat) auch nicht in den Tests abgefragt.

    Ich will damit auch weder Apple noch die OpenSource-Entwickler in Schutz nehmen... habe halt selber auch schon die Erfahrung gemacht das mir manche Problemfälle einfach nicht eingefallen sind.


    EDIT: Typo



    1 mal bearbeitet, zuletzt am 04.03.14 16:11 durch Versuchsperson.

  13. Re: In der Theorie...

    Autor: bernd71 04.03.14 - 16:59

    So funktionieren Unit tests auch. Für jedes erkanntes Problem ein Test. So vermeidet man das man schon erkannte Fehler wieder einführt.

  14. Re: In der Theorie...

    Autor: Anonymer Nutzer 04.03.14 - 17:23

    > So funktionieren Unit tests auch. Für jedes erkanntes Problem ein Test. So
    > vermeidet man das man schon erkannte Fehler wieder einführt.

    Klar. Aber das ist ja eben der Grund warum Fehler wie hier beschrieben NICHT von Unit-Tests gefunden werden.

  15. Re: Unittests anyone ?

    Autor: jaykay2342 04.03.14 - 18:09

    Versuchsperson schrieb:
    --------------------------------------------------------------------------------
    > > Aber Der Apple Bug wäre bei einfachsten Test durchgefallen. Da muss man
    > ja
    > > annehmen dass sie gar keine Tests mit dem Code macht. Was bei
    > > sicherheitsrelevanten Code echt peinlich ist.
    >
    > Wer weiß? Wenn falsche Zertifikate Bestandteil der Unit-Tests waren... und
    > dann auch noch "richtig falsche" (also welche die den betreffenden Fehler
    > auslösen - und nicht einfach schon bei den Tests vorher abgewiesen
    > werden).
    >
    Naja der Apple bug war mit einem simplen man in the middle Angriff ( wo man sich einfach selber ne ca macht ) triggerbar. Kein so besonderes Szenario, welches eigentlich zu den Tests gehören sollte, oder? Sprich so ein Zertifikat sollte man schon gegen die check Funktion werfen.


    > Normalerweise sind Unit-Tests ja nicht tiefer durchdacht als der zu
    > testende Code... also werden die wirklich kritischen Fälle (an die der
    > Entwickler ja nicht gedacht hat) auch nicht in den Tests abgefragt.
    >
    Ich hoffe doch dass sie an ein "gefaktes" Zertifikat gedacht haben.

    > Ich will damit auch weder Apple noch die OpenSource-Entwickler in Schutz
    > nehmen... habe halt selber auch schon die Erfahrung gemacht das mir manche
    > Problemfälle einfach nicht eingefallen sind.
    >
    Stimme ich auch voll zu, aber hier geht es um einen so elementaren Teil da sollten Apple wirklich mal ein paar Leute drauf los lassen und testen testen testen. Am besten bauen 2 unabhängige Teams ihre eigenen Tests. So was kostet natürlich aber meiner Meinung nach sollte man bei so sicherheitsrelevanten Stellen nicht sparen.

    >
    > EDIT: Typo

  16. Re: In der Theorie...

    Autor: chrulri 04.03.14 - 18:35

    Spricht aber nicht gegen Unit Test an sich. Unit Tests sollten trotzdem dabei sein.

    Und ehrlich: Den Apple Fehler hätte jedes statische Code Analysis Tool und jeder halbherzige Unit Test mit einem selbstsignierten Zertifikat gefunden.
    Den Fehler hier habe ich zu wenig angeschaut, um zu sagen wie einfach dieser triggerbar ist.

  17. Re: In der Theorie...

    Autor: jaykay2342 04.03.14 - 18:37

    chrulri schrieb:
    --------------------------------------------------------------------------------
    > Spricht aber nicht gegen Unit Test an sich. Unit Tests sollten trotzdem
    > dabei sein.
    >
    > Und ehrlich: Den Apple Fehler hätte jedes statische Code Analysis Tool und
    > jeder halbherzige Unit Test mit einem selbstsignierten Zertifikat
    > gefunden.
    > Den Fehler hier habe ich zu wenig angeschaut, um zu sagen wie einfach
    > dieser triggerbar ist.
    Genau das versuch ich die ganze Zeit zu sagen.

  18. Re: In der Theorie...

    Autor: chrulri 04.03.14 - 20:34

    Jup :-)

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Schwarz IT KG, Neckarsulm
  2. Melitta Business Service Center GmbH & Co. KG, Minden
  3. Swiss Post Solutions GmbH, Bamberg, London (Großbritannien) (Home-Office)
  4. itsc GmbH, Hannover

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. (-87%) 2,50€
  2. (-91%) 2,20€
  3. (u. a. Warhammer 40,00€0: Gladius - Relics of War für 23,79€, Aggressors: Ancient Rome für 17...
  4. 58,48€ (PC), 68,23€ (PS4) 69,99€ (Xbox One)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Telekom, Vodafone: Wenn LTE schneller als 5G ist
Telekom, Vodafone
Wenn LTE schneller als 5G ist

Dynamic Spectrum Sharing erlaubt 5G und LTE in alten Frequenzbereichen von 3G und DVB-T. Doch wenn man hier nur LTE einsetzen würde, wäre die Datenrate höher.
Ein Bericht von Achim Sawall

  1. Telekom Große Nachfrage nach Campusnetzen bei der Industrie
  2. Redbox Vodafone stellt komplettes 5G-Netz in einer Box vor
  3. 5G N1 Telekom erweitert massiv das 5G-Netz mit Telefónica-Spektrum

Unix: Ein Betriebssystem in 8 KByte
Unix
Ein Betriebssystem in 8 KByte

Zwei junge Programmierer entwarfen nahezu im Alleingang ein Betriebssystem und die Sprache C. Zum 50. Jubiläum von Unix werfen wir einen Blick zurück auf die Anfangstage.
Von Martin Wolf


    Threefold: Die Idee vom dezentralen Peer-to-Peer-Internet
    Threefold
    Die Idee vom dezentralen Peer-to-Peer-Internet

    Wie mit Blockchain, autonomem Ressourcenmanagement und verteilter Infrastruktur ein gerechteres Internet entstehen soll.
    Von Boris Mayer

    1. Hamsterkäufe App soll per Blockchain Klopapiermangel vorbeugen