Hej,
w linku, który rzuciłem w wątku o Google End-to-End, jest ciekawy fragment na nieco inny temat:
https://blog.spideroak.com/20140220090004-responsibly-bringing-new-cryptogra...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - In short several very skilled security auditors examined a small Python program — about 100 lines of code — into which three bugs had been inserted by the authors. There was an “easy,” “medium,” and “hard” backdoor. There were three or four teams of auditors.
1. One auditor found the “easy” and the “medium” ones in about 70 minutes, and then spent the rest of the day failing to find any other bugs.
2. One team of two auditors found the “easy” bug in about five hours, and spent the rest of the day failing to find any other bugs.
3. One auditor found the “easy” bug in about four hours, and then stopped.
4. One auditor either found no bugs or else was on a team with the third auditor — the report is unclear.
See Chapter 7 of Yee’s report for these details.
I should emphasize that that I personally consider these people to be extremely skilled. One possible conclusion that could be drawn from this experience is that a skilled backdoor-writer can defeat skilled auditors. This hypothesis holds that only accidental bugs can be reliably detected by auditors, not deliberately hidden bugs.
Anyway, as far as I understand the bugs you folks left in were accidental bugs that you then deliberately didn’t-fix, rather than bugs that you intentionally made hard-to-spot. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Discuss.
On Wed 04 Jun 2014 00:32:40 CEST, rysiek wrote:
I should emphasize that that I personally consider these people to be extremely skilled. One possible conclusion that could be drawn from this experience is that a skilled backdoor-writer can defeat skilled auditors. This hypothesis holds that only accidental bugs can be reliably detected by auditors, not deliberately hidden bugs.
Discuss.
audyt audytem a testy testami imho. trzeba miec obydwa. duzo testow jednostkowych + integracyjnych do softu, tez w pelni otwartych i audytowalnych imho by zapobieglo wiekszosci poprzednich katastrof, najbardziej widoczne w przypadku goto fail. tam ewidentnie nie mieli testu na sciezke blednego certa.
jasne ze testy do "bezpieczenstwa" pise sie trudno, ale to nie znaczy ze sie nie da.
On Wed 04 Jun 2014 08:01:24 CEST, cyryl wrote:
On Wed 04 Jun 2014 00:32:40 CEST, rysiek wrote:
I should emphasize that that I personally consider these people to be extremely skilled. One possible conclusion that could be drawn from this experience is that a skilled backdoor-writer can defeat skilled auditors. This hypothesis holds that only accidental bugs can be reliably detected by auditors, not deliberately hidden bugs.
Discuss.
audyt audytem a testy testami imho. trzeba miec obydwa. duzo testow jednostkowych + integracyjnych do softu, tez w pelni otwartych i audytowalnych imho by zapobieglo wiekszosci poprzednich katastrof, najbardziej widoczne w przypadku goto fail. tam ewidentnie nie mieli testu na sciezke blednego certa.
jasne ze testy do "bezpieczenstwa" pise sie trudno, ale to nie znaczy ze sie nie da.
w sensie, bo pisalem z wanny i moze niewyraznie :P jasne, ze audytor cos moze przeoczyc, dlatego powinno byc kilka audytow i powinny zaczyc sie od sprawdzenia czy testy istnieja i jak sa napisane. audyt golego kodu, bez testow, jest delikanite mowiac niewystarczajacy
2014-06-04 8:01 GMT+02:00 cyryl cyplo@cyplo.net:
On Wed 04 Jun 2014 00:32:40 CEST, rysiek wrote:
I should emphasize that that I personally consider these people to be extremely skilled. One possible conclusion that could be drawn from this experience is that a skilled backdoor-writer can defeat skilled auditors. This hypothesis holds that only accidental bugs can be reliably detected by auditors, not deliberately hidden bugs.
Discuss.
audyt audytem a testy testami imho. trzeba miec obydwa. duzo testow jednostkowych + integracyjnych do softu, tez w pelni otwartych i audytowalnych imho by zapobieglo wiekszosci poprzednich katastrof, najbardziej widoczne w przypadku goto fail.
Ale to był bug przypadkowy. Autor backdoora z pewnością skorzysta z testów jednostkowych.
tam ewidentnie nie mieli testu na sciezke blednego certa.
To akurat prawda.
jasne ze testy do "bezpieczenstwa" pise sie trudno, ale to nie znaczy ze sie nie da.
Nie na dobrego backdoora. Najwyżej utrudnisz jego napisanie.
R.
Radoslaw Szkodzinski:
2014-06-04 8:01 GMT+02:00 cyryl cyplo@cyplo.net:
jasne ze testy do "bezpieczenstwa" pise sie trudno, ale to nie znaczy ze sie nie da.
Nie na dobrego backdoora. Najwyżej utrudnisz jego napisanie.
Można próbować utrudnić trochę bardziej, np. za pomocą testów mutacyjnych (w Rubym fajnie je robi Mutant: https://github.com/mbj/mutant – z szybkiego wyszukiwania dla C i C++ też coś się powinno znaleźć) – narzędzie sprawdza, czy testy przechodzą, po czym mutuje minimalnie kod i jeśli testy nadal przechodzą, to znaczy, że jakiś fragment kodu nie jest otestowany w 100% (czyli, przykładowo, robi coś więcej niż testy zakładają).
Ale to nadal nie wyłapie dobrego backdoora, a jest względnie kosztowne (pokrycie 100% mutacji jest mocno czasochłonne).
— Piotr Szotkowski
Także komercyjne Coverity, w paru projektach jest stosowane z takim sobie skutkiem.
Co do testów, sprytny autor backdoora sprytnie popsuje też testy tak, że będzie to trudno zauważyć. Ba, nawet dorobi "test" swojego backdoora, aby kod był testowany, jeśli jest to konieczne.
On 2014-06-04 21:46, Radoslaw Szkodzinski wrote:
Także komercyjne Coverity, w paru projektach jest stosowane z takim sobie skutkiem.
Co do testów, sprytny autor backdoora sprytnie popsuje też testy tak, że będzie to trudno zauważyć. Ba, nawet dorobi "test" swojego backdoora, aby kod był testowany, jeśli jest to konieczne.
Sprytem to by było zmanipulowanie prezydenta stanów zjednoczonych oraz senatu tak, by z państwowej kiesy było finansowane zlecanie grupie programistów hurtowe pisanie backdoorów, oraz wprowadzenie legislacji która pozwala backdoorować rzeczy na legalu tak że nikt nie może o tym mówić.
To co opisujesz jest jedynie 'profesjonalne'.