Java Malware - czy da się cokolwiek napisać?

0

Witajcie!

Temat może banalny, może głupi, nie mnie oceniać, jednakże zwracam się do profesjonalistów.
Ostatnio ze znajomym, który swoją drogą pisze w cpp, zaczęliśmy rozprawiać o niechcianych toolbarach dodawanych do niektórych programów i tak jakoś zeszło na szeroko pojęte malware. Wiadomo, że w c++ jest dosyć popularnym narzędziem do tworzenia tego typu oprogramowania. A jak to jest z Javą?
Z jednej strony działa ona na VM i nie ma opcji bezpośredniej ingerencji w system i jego zasoby. Natomiast z drugiej strony właśnie niezależność systemowa i sprzętowa może kusić. Zrobiłem mały research i jedyne co znalazłem to wzmiankę o exploitach. Nawet keylogger jest dosyć kłopotliwym zadaniem bez dodatkowego frameworka.
Jak to jest? Można się z czymś spotkać w javie? Czy mogę czuć się bezpieczny ściągając jary na prawo i lewo?

0

Czy mogę czuć się bezpieczny ściągając jary na prawo i lewo?

Pewnie, ino pamiętaj, że jak będziesz ściągać z torrentów to służby wiedzą o tym. Pamiętaj o tor i vpn.

0

@panryz Ściągam głównie czyjeś aplikacje open sourcowe albo po prostu przykłady do przejrzenia. Często są na prywatnych i biednych jak pustynny krajobraz, wręcz ascetycznych stronach internetowych.

Z torrentów bym się nie odważył, stąd między innymi pytanie.
A same torrenty to inna sprawa xD

0

Nie bardzo rozumiem pytanie. W javie można napisać równie szkodliwy soft co w innych językach.

0

@Shalom Czy JVM nie ogranicza takiej możliwości? W końcu jest określany jako bezpieczny?

2

"Szeroko pojęte malware" to naprawdę szerokie pojęcie.

Generalnie Javy do pisania samego malware raczej się nie używa bo po pierwsze coraz mniej ludzi ma zainstalowane JRE, a po drugie w innych językach jest o wiele prościej robić typowe dla malware'u rzeczy, czyli wstrzykiwanie do procesów, hookowanie funkcji w przeglądarkach itd.
Natomiast było swojego czasu trochę exploitów na applety w Javie i faktycznie ten kod wtedy musiał być w Javie napisany. Ale to tylko ta pierwsza faza ataku (poczytaj o exploitkitach).

Trochę bardziej popularny jest tutaj C#, bo .NET jest od dawna instalowany na każdym Windowsie i p/invoke jest sto razy wygodniejsze od JNI.

Ale był i malware w JavaScript czy Pythonie (z zaembedowanymi node.js/cpythonem) ważący i po 10mb więc bym się nie zdziwił jakbym zobaczył np. RATa w Javie ;).

1

JVM zabezpiecza przed problemami typu przepełnienie bufora (sprawdza zakresy i wskaźniki, a w razie wykrycia problemu rzuca wyjątkiem), ale z zasady nie ogranicza programisty. Tak samo jak w innych językach możesz sobie np otwierać, usuwać czy nadpisywać pliki. Masz dostępny java.awt.Robot. Możesz odpalać kod z bibliotek natywnych za pomocą JNA czy JNI - tak działają biblioteki do obsługi OpenGL, OpenCL i podobnych.

1

@Burdzi0 java ogarnicza możliwości bycia exploitowaną, tzn trudniej wykorzystać dziurę w javowej aplikacji niż analogiczną dziurę w aplikacji natywnej, ale to nie ma nic wspólneog z napisaniem złośliwego oprogramowania w javie. Szczególnie jeśli to nie ma robić jakichś cudów na poziomie systemu operacyjnego tylko kasować ci pliki albo wpiąć cię do botnetu.

1

Da się. Tym bardziej, że są nawet takie rzeczy jak: http://kra.lc/blog/2016/02/java-global-system-hook/

1 użytkowników online, w tym zalogowanych: 0, gości: 1