Przerażający programista, czyli: The Underhanded C Contest

01 lipca 2015, 17:22 | Aktualności | 0 komentarzy
: oglądaj sekurakowe live-streamy o bezpieczeństwie IT.

Wyobraź sobie, że jesteś programistą, który pracuje nad projektem serwisu do publikowania oraz przesyłania krótkich wiadomości tekstowych (powiedzmy, że to taka konkurencja dla Twittera). W pewnym momencie firma, dla której pracujesz, dostaje od Rządu zlecenie na wprowadzenie funkcji szpiegujących użytkowników serwisu (sytuacja nie aż tak fantastyczna w obecnych czasach).

Otóż wiadomości, które zawierają pewne kluczowe słowa, powinny zostać zarchiwizowane – wraz z informacjami o autorze – w specjalnym logu. Zaimplementowanie niewdzięcznej funkcjonalności zostaje zlecone Tobie.

Nie zgadzasz się na Globalną Inwigilację…ale z drugiej strony czujesz, że to niepowtarzalna okazja. Skoro funkcja i tak ma powstać (bo Rządowi się przecież nie odmawia), to niech będzie wyposażona w ukrytą funkcję, tak żeby w niejawny sposób informować użytkowników serwisu o fakcie przechwycenia ich wiadomości.

Tak brzmi treść ubiegłorocznego zadania w konkursie niejawnego programowania w C (The Underhanded C Contest), którego wyniki ogłoszono w czerwcu tego roku.

Treści publikowanych co roku wyróżnionych rozwiązań (zadania każdego roku są inne), to kopalnia wiedzy o kruczkach, niuansach i pułapkach programowania w języku C.

Od przekazania funkcji systemowej argumentów w zamienionej kolejności, przez niewinnie wyglądające literówki w kodzie, które skutkują precyzyjnym nadpisaniem wybranych zmiennych (jak rozwiązanie autora niniejszego wpisu podmieniające lokalne wskaźniki dzięki „omyłkowemu” przekopiowaniu części stosu pomiędzy dwoma funkcjami) do wykorzystania mało znanych cech niektórych funkcji systemowych i nietypowych bądź przestarzałych, ale wciąż poprawnych konstrukcji języka.

Zwycięskie w tym roku rozwiązanie wykorzystuje kilka z wymienionych metod jednocześnie i idealnie realizuje cel ukrycia niejawnej funkcjonalności przed audytorem kodu. Jego autor (a konkretnie autorka) został określona mianem „przerażającego” programisty. Czy słusznie ? Przekonajcie się sami.

— Bartol

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz