Złośliwe oprogramowanie wykorzystuje ciekawe techniki ukrywania się przed oprogramowaniem antywirusowym i nie tylko. Mogą same „polimorfować”: praktycznie zmieniać kod, podczas gdy w dalszym ciągu oznacza on prawie to samo dla maszyny wykonawczej, co powoduje, że definicje antywirusowe są nieprawidłowe itp.
Zastanawiam się, czy jest coś (nie-złośliwego) programiści, którego można się nauczyć ze studiowania źródła takiego, lub odwracania go i studiowania wszystkiego, co otrzymujesz z tego procesu, jeśli źródło nie jest dostępne, to może być przydatne poza tym (ciemne?) królestwo.
Ja nie interesuje pisanie złośliwego oprogramowania. (przynajmniej nie do celów innych niż edukacyjne) To pytanie nie ma być pytaniem o to, jak napisać złośliwe oprogramowanie, ale czego można się nauczyć z już napisanego złośliwego oprogramowania.
Ponadto, być może trochę nieetyczne (mam nadzieję, że nie), czy przyniosłoby jakieś korzyści z pisania własnego szkodliwego oprogramowania, tylko dla lepszego zrozumienia podatności / exploitów / bezpieczeństwa lub bazowego systemu operacyjnego?
Odpowiedzi:
Absolutnie.
Oczywiście głupim efektem DMCA jest to, że ponieważ musiałbyś przekonstruować złośliwe oprogramowanie, nie możesz legalnie dzielić się tym, czego się nauczyłeś.
Najważniejsze rzeczy, których możesz się nauczyć:
I oczywiście wszystko zależy od tego, co już wiesz. Jeśli nigdy nie majstrowałeś bezpośrednio przy stosie, spodziewam się, że tak się stanie
źródło
Atak i obrona to dwie strony tego samego medalu - sądzę, że badanie złośliwego oprogramowania byłoby pomocne dla każdego, kto próbuje bronić się przed atakiem.
źródło
Napisanie komponentu licencyjnego nie jest zbyt odległe od takich badań. Wysiłek, jaki twórcy szkodliwego oprogramowania muszą zrobić, aby uniknąć analizy i dekompilacji, to taki sam wysiłek, jaki musi wykonać komponent licencjonujący, aby uniknąć piratów i pękających pierścieni. Podczas gdy zdecydowana większość użytkowników oprogramowania jest uczciwa (i zapłaci za swoje oprogramowanie), wielu innych nie myśli o korzystaniu z oprogramowania bez zapłaty. Są też ludzie, którzy postrzegają swoją wartość w oparciu o liczbę „pęknięć” - niezależnie od tego, czy używają oprogramowania, czy nie. Dostępność takich pęknięć i kluczowych generatorów może kusić ludzi, którzy normalnie byliby uczciwi.
źródło
Większość programistów IMO nie potrzebuje pomocy / zachęty, aby wymyślić „nowe i ciekawe techniki”. Tak, jest wiele rzeczy, których możesz się nauczyć, ale nie byłoby to tak cenne, jak na przykład znajomość domeny biznesowej, w której pracujesz ... chyba że pracujesz nad bezpieczeństwem, oczywiście.
źródło