Czy programiści mogliby się czegoś nauczyć ze studiowania złośliwego oprogramowania? [Zamknięte]

10

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?

Anto
źródło
11
Nie ma nic nieetycznego w pisaniu złośliwego oprogramowania, jeśli nie używasz go na innych, podobnie jak nie ma nic nieetycznego w nauce sztuk walki lub jak strzelać z pistoletu, jeśli nie używasz takich umiejętności na przypadkowych nieznajomych, których znajdziesz w alejkach.
FrustratedWithFormsDesigner
2
@FrustratedWithFormsDesigner Zgadzam się, że nie ma nic nieetycznego wiedząc jak pisać złośliwe oprogramowanie lub pisania siebie jako eksperymentu myślowego, ale gdy rzeczywiście zostały napisane go to może równie dobrze być nieetyczne , jeśli nie odpowiednio zabezpieczyć swoje eksperymenty. W końcu, jeśli ktoś mniej etyczny niż ty włamie się do twojego systemu, będzie miał dostęp do twojego zasobu brudnych sztuczek. Nie zamierzam wygłaszać moralnego oświadczenia o tym, czy to czyni cię winnym za coś złego, co oni z tym robią, ale niezależnie od tego należy to rozważyć.
scriptocalypse
5
@scriptocalypse: Rzeczywiście. Podobnie, ktoś może włamać się do twojego domu, ukraść broń / kuszę / miecz i popełnić z nim okropną zbrodnię. Jeśli masz w pobliżu niebezpieczne zabawki, upewnij się, że je zabezpieczyłeś!
FrustratedWithFormsDesigner
hmm, czy masz link do tej techniki, ponieważ jest to pierwszy raz o niej słyszałem. Większość analiz opiera się na podejściu heurystycznym, tzn. Bez względu na to, co robi program, ostateczne działania „End” są tym, czego byś szukał, np. Usuwanie plików, wysyłanie wiadomości SMTP itp. Słyszałem o Stubs, hakach RootKit OS, ale wszystkie te można wykryć.
Darknight
1
@Darknight: Wszystko może zostać zepsute. Antywirus lub złośliwe oprogramowanie. Zobacz en.wikipedia.org/wiki/Polymorphic_code#Malicious_code, aby dowiedzieć się więcej na temat polimorfów.
Anto

Odpowiedzi:

7

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ć:

  • Jakie błędy wykorzystuje złośliwe oprogramowanie, abyś wiedział, przed czym powinieneś chronić.
  • Ile zaufania powinieneś naprawdę pokładać w danym systemie operacyjnym / aplikacji / API
  • Nieudokumentowane interfejsy API

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

Phil Lello
źródło
Jeśli jestem w Finlandii, nie podlegam DMCA, prawda? Chociaż może tu obowiązywać równoważne prawo.
Anto
Używam DMCA jako ogólnego terminu, ponieważ większość sygnatariuszy WIPO ma niejasne równoważne przepisy. IANAL
Phil Lello
Czy zgodnie z DCMA działania są podejmowane przeciwko tobie przez rząd lub autora złośliwego oprogramowania?
Andrew Grimm
Znowu IANAL, ale ogólnie warianty DMCA sprawiają, że jest to przestępstwo, więc technicznie jest to policja. Oczywiście szansa, że ​​trafi do sądu, jest niewielka - podobnie jak w przypadku, gdy A kradnie z B to, co B ukradł z C, B raczej nie zgłosi kradzieży. Ale kąt DMCA jest nieco nie na temat.
Phil Lello,
7

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.

Loren Pechtel
źródło
4

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.

Tangurena
źródło
1

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.

JeffSahol
źródło