Pracuję nad systemem podobnym do Ideone, w którym niezaufany kod użytkownika musi działać w trybie piaskownicy.Jak zapobiec wywołaniu wywołania systemowego za pomocą ptrace
Po to szukałem możliwości ptrace
dla pierwszej warstwy ochrony. Jednak po kilku eksperymentach wydaje się, że:
- Potrafię przechwycić wywołanie systemowe przed jego wywołaniem i zmodyfikować argumenty wejściowe.
- Potrafię przechwycić wywołanie systemowe po wywołaniu i zmienić wartość zwracaną.
- Jednak wydaje się, że nie ma sposobu, aby uniemożliwić wykonanie połączenia w ogóle (z wyjątkiem zabicia całej aplikacji).
Chcę przechwycić niektóre wywołania systemowe i zwrócić fałszywy kod wyniku bez faktycznego połączenia. Czy istnieje sposób na wdrożenie tego?
PTRACE_SYSEMU? Według strony podręcznika: "Wywołanie to jest używane przez podobny tryb użytkownika, który chce emulować wszystkie wywołania systemowe tego dziecka" – Krumelur