Kompilator z Backdoor'em

20 września 2007 o godzinie 02:06:58, Ciekawostki, OSy, Programowanie, lvl0 2 komentarze.

Przeglądając sieć natrafiłem dziś na bardzo ciekawy fragment. Przeczytajcie, wnioski nasuwają się same :)

W swoim wystąpieniu z okazji otrzymania nagrody Turinga w 1984 roku, Ken Thompson - jeden z twórców Unix-a - opisał sposób w jaki spowodował niewykrywalną, nawet z dostępnym kodem źródłowym, słabość w zabezpieczeniu w programie narzędziowym.

Thompson opisał, jak zdołał zmodyfikować kompilator języka C we wczesnych wersjach Unix-a tak, aby wykrywał fakt kompilowania programu login(1) i wstawiał kod, który akceptowałby zawsze pewne hasło. Umożliwiało to zarejestrowanie się jako dowolny użytkownik komuś, kto znał to hasło. Następnie zmodyfikował kod źródłowy kompilatora C, aby wykrywał kiedy ten kompilował samego siebie. (wówczas, tak jak i teraz kompilator języka C był sam napisany w C) i wstawiał ów kod (do wykrywania kompilacji programu login i wprowadzania konia trojańskiego) do kompilatora języka C. Potem usunął zmiany, których dokonał w źródle.

Od tego momentu kompilator C w Unix-ie zawsze dołączał jego konia trojańskiego, ilekroć kompilował program login(1). Żadna inspekcja kodu źródłoweg, dokonana dla login lub dla kompilatora C, nie pozoliłaby na wykrycie jekiegokolwiek problemu.

Przykłady takie jak ten pomagają zilustrować, jak dalece współczesny programista ufa dzisiejszemu środowisku komputerowemu. Pokłada się zaufanie w wielu składnikach systemu: kompilatorze, programie ładującym, dynamicznym konsolidatorze, a nawet w dekoderze mikrokodu w CPU - w nadziei, że robią dokładnie to, o co się je prosi.

Każdy z tych składników - zwłaszcza używanych w trakcie wykonywania, taki jak program ładujący, czy dynamiczny konsolidator - może być ze swej strony źródłem słabości w zabezpieczeniach.

źródło: Systemy Operacyjne - Wykład III roku Informatyki

C++ / int system()

28 sierpnia 2007 o godzinie 02:39:02, Programowanie, lvl0 21 komentarzy.

Wpisujemy w konsoli prośbę o zwrot MACa podanego IP:

~$ arp -na 192.168.2.1

... i otrzymujemy go, zgodnie z prośbą:

? (192.168.2.1) at 00:11:22:33:44:55 [ether] on eth0

Identyczny wynik otrzymamy zaprzęgając do tego zadania C++ i jego prostą funkcję system():

#include int main() { if (system("arp -na 192.168.2.1")) std::cout << "Działa !"; return 0; }

Tylko powiedzcie mi proszę Was bardzo co zrobić jesli chciałbym WYNIK tej komendy (arp -na 192.168.2.1) wrzucić do zmiennej ?

string gate_mac = system("arp -na 192.168.2.1");

Pewnie że nie, bo otrzymamy błąd zgodności typów, w koncu system() zwraca kod błędu jako integer.

No własnie, w jaki sposób "skopiować" wynik takiej czy innej komendy do zmiennej programowej w celu wyfiltrowania z niej macadresu czy innych potrzebnych informacji ?

Jeśli ktoś z Was moi drodzy ma jakiś pomysł co z tym fantem zrobić, PISZCIE PROSZĘ ! Już nie wiem jak pytać googli, bo chyba wszystkie mozliwe zapytania wykorzystałem i nie uzyskałem odpowiedzi, na IRCu ktoś radzil przepisać całą funkcję system(). Any ideas ?

kupiłem książke !

08 sierpnia 2007 o godzinie 23:18:43, Programowanie, Refleksje, lvl0 11 komentarzy.

Jak nigdy nie wierzyłem w moc jakichkolwiek reklam, a tym bardziej internetowych, tak dziś przekonałem się o ich mocy na samym sobie. Przeglądając joga marinesa zauważylem małą reklamę księgarni Heliosa i promocję książki "PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie trzecie".

Zawsze byłem przeciwnikiem zdobywania wiedzy z książek, uważałem że wiedza tam zawarta jest raczej niekompletna, a książki pisane są dla zarobków a nie dla przekazania wiedzy, dlatego zawsze wyznawałem (wyznaje) wyższość (dobrych) kursów internetowych (np. wikibooks ?) nad książkami.

Dziś jednak coś we mnie się zmeniło, powiedzialem sobie że raz w życiu moge kupić 900 stronnicowego kolosa, a poza tym, mam jakieś zaufanie do Heliosa. To dzięki temu wydawnictwu zainteresowałem sie programowaniem ;p ale to inna historia. Ostatecznie za własne "ciężko" zarobione pieniądze kupiłem za 69zł 900 stron wiedzy o PHP i MySQLu :) Zobaczymy co z tego wynikinie ;p

Powered by Jogger.pl

Design by jojek © 2007

Valid XHTML 1.0 i CSS