Home Balcerzan Edward Poezja polska w latach 1918 1939 wymiana handlowa miedzy polska a ue 08 Zbigniew Nienacki Pan Samochodzik i Kapitan Nemo Angelique Anjou Chameleon (pdf) Lois McMaster Bujold 13 A Civil Campaign Dla Ciebie wszystko Januszewska Krystyna Przytulać‡ kamienie Dyscyplina Marina Anderson Banks Iain M. UwikśÂ‚anie Crowe Evelyn Tak trudno zapomnieć‡ |
[ Pobierz caÅ‚ość w formacie PDF ] o wykryciu luki zwiÄ…zanej z niewÅ‚aÅ›ciwym zastosowaniem funkcji w wersjach serwera bazy danych o nazwie ToolTalk wchodzÄ…cego w skÅ‚ad kilku systemów ope- racyjnych wyposażonych w CDE. Luka ta umożliwiaÅ‚a zdalnym, nieuwierzytelnionym hakerom wykonanie dowolnego kodu na zaatakowanym komputerze (patrz www. securityfocus.com/bid/3382). Kod zródÅ‚owy tej funkcji zdefiniowany jest w pliku zródÅ‚owym common/client_msgs.c (podana Å›cieżka to Å›cieżka wzgl¹dna wobec katalogu głównego kodu, czyli katalogu, do którego rozpakowano kod zródÅ‚owy wersji 1.5.7.1 programu). 304 Hack Proofing Your Network. Edycja polska WytÅ‚uszczony wiersz sygnalizuje ten fragment kodu, w którym parametry przekazane do funkcji przekazywane sÄ… do funkcji . Luka tkwi nie w tej konkretnej funkcji, ale w jej nieprawidÅ‚owym wykorzystaniu w innych fragmentach kodu zródÅ‚owego. Programista tej funkcji zakÅ‚ada, że funkcja jÄ… wywoÅ‚ujÄ…ca przekaże poprawny ciÄ…g formatujÄ…cy i wszystkie potrzebne do konstrukcji ciÄ…gu parametry. PeÅ‚ny kod tej funkcji zamieszczono w tym miejscu, ponieważ jest ona Å›wietnym przy- kÅ‚adem prowokowania sytuacji, które mogÄ… zaowocować atakiem wykorzystujÄ…cym ciÄ…g formatujÄ…cy. Wiele programów wyposażanych jest w bardzo podobne funkcje. SÅ‚użą one jako otoczki (ang. wrapper) wyÅ›wietlajÄ…ce komunikaty o bÅ‚¹dach i wzorowa- ne sÄ… na funkcji ; przyjmujÄ… jako parametry numer bÅ‚¹du i parametry sÅ‚użące do konstrukcji komunikatu. Problem (zgodnie z tym, co napisano na poczÄ…tku roz- dziaÅ‚u) polega na tym, że programiÅ›ci cz¹sto zapominajÄ… o przekazaniu do takiej funkcji ciÄ…gu formatujÄ…cego. NależaÅ‚oby teraz przeanalizować zdarzenia towarzyszÄ…ce nawiÄ…zaniu poÅ‚Ä…czenia z usÅ‚u- gÄ… przez klienta i próbie przekazania za poÅ›rednictwem funkcji ciÄ…gu formatujÄ…cego do funkcji . Dla Czytelników dysponujÄ…cych kodem programu odpowiedni fragment kodu znaj- duje si¹ w pliku zródÅ‚owym server/soa.c. Funkcja, w której zdefiniowano interesujÄ…cy nas kod nosi nazw¹ . Reszta kodu zostaÅ‚a z wydruku usuni¹ta dla wygody i zwi¹zÅ‚oÅ›ci przykÅ‚adu. Podatne na ataki wywoÅ‚anie znajduje si¹ w 53. wierszu pliku zródÅ‚owego (na wydruku jest on wytÅ‚uszczony): L RozdziaÅ‚ 9. f& CiÄ…gi formatujÄ…ce 305 W powyższym wywoÅ‚aniu funkcji jako ciÄ…g formatujÄ…cy przekazywa- ny jest parametr . Ostatecznie ciÄ…g reprezentowany przez ten parametr zostaje przekazany do funkcji (na poprzednim wydruku). Dla kontrolera kodu zró- dÅ‚owego taka konstrukcja powinna kojarzyć si¹ z potencjalnÄ… lukÄ…. PrawidÅ‚owe wy- woÅ‚anie funkcji powinno mieć nast¹pujÄ…cÄ… postać: Tutaj zmienna przekazywana jest do funkcji jako parametr kore- spondujÄ…cy ze specyfikatorem ciÄ…gu formatujÄ…cego. Taka postać wywoÅ‚ania eliminuje możliwość zÅ‚oÅ›liwego podstawienia w parametrze ciÄ…gu interpretowanego w funkcji jako ciÄ…g formatujÄ…cy. Parametr jest jednym z parametrów dyrektywy przekazanym do serwera przez klienta. PodsumowujÄ…c, kiedy klient nawiÄ…zuje poÅ‚Ä…czenie z serwerem rwhoisd i wykonuje po- lecenie , w przypadku niepoprawnych wartoÅ›ci parametrów polecenia wywoÅ‚ywana jest funkcja , wypisujÄ…ca na standardowym wyjÅ›ciu programu komuni- kat o bÅ‚¹dzie. Procedura ta przebiega nast¹pujÄ…co: 1. Serwer rozpoznaje parametr i wywoÅ‚uje funkcj¹ do obsÅ‚ugi polecenia. 2. Funkcja przekazuje polecenie klienta do funkcji , interpretujÄ…cej i kontrolujÄ…cej poprawność parametrów polecenia. 3. Funkcja wykrywa bÅ‚Ä…d i przekazuje komunikat o bÅ‚¹dzie oraz ciÄ…g polecenia do funkcji . CiÄ…g polecenia przekazywany jest jako ciÄ…g formatujÄ…cy. 4. Funkcja przekazuje otrzymany od klienta ciÄ…g formatujÄ…cy do funkcji (patrz wydruk). Widać wyraznie, że zdalny klient może zÅ‚oÅ›liwie spreparować dane, które zostanÄ… prze- kazane jako ciÄ…g formatujÄ…cy do funkcji . CiÄ…g zawierajÄ…cy te dane przeka- zywany jest do serwera jako parametr dyrektywy . NawiÄ…zujÄ…c poÅ‚Ä…czenie z usÅ‚ugÄ… i przesyÅ‚ajÄ…c szkodliwy ciÄ…g formatujÄ…cy, atakujÄ…cy może przeforsować zapis wÅ‚asnych danych do pami¹ci procesu. Testowanie wykorzystujÄ…ce przypadkowe ciÄ…gi formatujÄ…ce Po zlokalizowaniu w kodzie zródÅ‚owym potencjalnych luk zwiÄ…zanych z ciÄ…gami for- matujÄ…cymi należaÅ‚oby podjąć prób¹ ich wykorzystania i pokazać, że jest ono możli- we w wyniku podawania spreparowanych ciÄ…gów formatujÄ…cych i obserwacj¹ reakcji serwera. [ Pobierz caÅ‚ość w formacie PDF ] |
||||
Wszelkie Prawa Zastrzeżone! Jeśli jest noc, musi być dzień, jeśli łza- uśmiech Design by SZABLONY.maniak.pl. | |||||