Mam program, który przechowuje w pamięci informacje ważne dla bezpieczeństwa (takie jak klucze prywatne), ponieważ używa ich w całym okresie istnienia programu. Wersje produkcyjne tego programu ustawiają wartość RLIMIT_CORE na 0, aby upewnić się, że zrzut główny, który może zawierać te poufne informacje, nigdy nie zostanie utworzony.Jak mogę się upewnić, że mój program linuksowy nie generuje zrzutów głównych?
Jednakże, podczas gdy nie jest to wspomniane w core(8)
manpage, że apport documentation on the Ubuntu wiki roszczenia,
Należy pamiętać, że nawet jeśli ulimit jest ustawiony niepełnosprawnych plików bazowych (przez specyfing się rdzenia rozmiar pliku zera stosując ulimit -c 0), apport będzie nadal przechwytywał awarię .
Czy jest jakiś sposób w moim procesie (tj. Bez polegania na konfiguracji zewnętrznego systemu), że mogę zagwarantować, że podstawowy zrzut mojego procesu nigdy nie zostanie wygenerowany?
Uwaga: zdaję sobie sprawę, że istnieje wiele metod (takich jak te wymienione w komentarzach poniżej), w których użytkownik z uprawnieniami właściciela root lub procesu mógł nadal uzyskiwać dostęp do poufnych danych. Celem tego jest zapobieganie niezamierzonemu udostępnianiu wrażliwych danych poprzez zapisywanie ich na dysku, wysyłanie do systemu śledzenia błędów Ubuntu lub podobne rzeczy. (Podziękowania dla Basile Starynkevitch za wyraźne przedstawienie).
Zauważ, że określony użytkownik może załatać własne jądro z uruchomioną aplikacją, aby nadal otrzymywać podstawowe zrzuty. –
A pamięć procesu jest również dostępna przez '/ proc /' –