25 najpoważniejszych błędów programistów

Subskrybuj RSS A A A
13 kwietnia 2010
Marcin Marciniak

Przedstawiamy listę 25 najważniejszych błędów programistycznych, które według organizacji MITRE przyczyniają się do powszechnej podatności oprogramowania na ataki.



W tegorocznej liście, opublikowanej przez CWE/SANS, królują błędy, które można łatwo znaleźć i jeszcze łatwiej wykorzystać. Są niebezpieczne, gdyż często umożliwiają napastnikom przejęcie kontroli nad oprogramowaniem, kradzież lub modyfikację danych lub ataki odmowy obsługi, czy też wyłączają daną aplikację z pracy. Lista powstała we współpracy między instytutem SANS, organizacją MITRE oraz wieloma amerykańskimi i europejskimi ekspertami do spraw bezpieczeństwa oprogramowania. Prezentujemy ją w kolejności od najmniej do najbardziej groźnych. Podajemy też sposoby ustrzeżenia się przed tymi błędami.

25. Wyścig (race condition)

Ten błąd jest spowodowany współzależnością między fragmentami kodu, gdy wiele procesów wykonuje operacje na tych samych danych, a wynik zależy od kolejności wykonania obliczeń. Błąd ten można wykorzystać do przejęcia kontroli nad innym wątkiem, do naruszenia spójności danych i ataku odmowy obsługi. Należy wykorzystywać architekturę i implementację, która jest bezpieczna przy programowaniu wielowątkowym (thread safe), minimalizując użycie zasobów współdzielonych.

24. Używanie złych algorytmów kryptograficznych

Przy szyfrowaniu wrażliwych danych, twórcy oprogramowania często próbują tworzyć własne algorytmy - jest to bardzo poważny problem, gdyż algorytm taki prawie na pewno będzie słabszy od standardów w tej dziedzinie. Niejednokrotnie używa się zbyt słabych lub złamanych algorytmów, do których od dawna są narzędzia przeznaczone do szybkiego łamania. Zamiast nich należy wykorzystać uznane standardy (algorytm, zarządzanie kluczami, gotowe biblioteki). Należy też okresowo sprawdzać, czy nie są one już przestarzałe.

23. Otwarte przekierowania

Hiperłącza są częścią Internetu i wprowadzane są do wielu aplikacji. Brak kontroli łączy można wykorzystać na przykład do ataków polegających na przekierowaniu do fałszywej strony (phishing, eksploitowanie błędu przeglądarki do instalacji trojana). Przy przekierowaniach na adres dostarczany z zewnątrz (na przykład w URL strony jako parametr) należy sprawdzać każdy parametr i korzystać z ustalonej białej listy adresów lub parametryzować adresy wewnątrz aplikacji.

22. Nielimitowana alokacja zasobów

Brak kontroli nad ilością zasobów, które może wykorzystać dany program, może prowadzić do ataku odmowy obsługi, gdy jedna aplikacja zużywa niemal wszystkie dostępne zasoby (pamięć, CPU, przestrzeń dyskowa). Taki atak może też umożliwić przeprowadzenie innych ataków, dlatego należy wprowadzić twarde limity alokacji zasobów (na przykład per user) oraz mechanizm elastycznego i bezpiecznego ich przydzielania.

21. Złe uprawnienia do krytycznych zasobów

Błąd polegający na udostępnieniu obiektów bez żadnego sensownego uwierzytelnienia sprawia, że dane są dostępne dla każdego, kto tylko ich zażąda. Należy unikać przyznawania jakichkolwiek uprawnień dla "całego świata", wprowadzając model przyznawania dostępu dla uwierzytelnionych użytkowników.

20. Pobieranie niesprawdzonego kodu

Przy pobieraniu i wykonaniu kodu, przeważnie ufa się stronie udostępniającej oprogramowanie. Z tej własności można skorzystać, włamując się na stronę, podstawiając przekierowanie do jej imitacji, stosując podszywanie DNS lub zatrucie jego cache, a nawet modyfikując w locie już pobierany kod. Scenariusz ten może być wykorzystany także przy aktualizacji oprogramowania.

Należy odpytać DNS w obie strony, stosować mechanizmy kryptograficzne zapewniające autentyczność i integralność pobieranego pliku.

Oceń artykuł

średnio: 2.6 liczba ocen: 5
1  2  3  4  5  dalej »

Komentarze (5)

~Gosć

02-08-2010 08:33

Ja (trochę) widać, środowisko programistyczne może oszczędzać (lub marnować) bardzo wiele czasu i zdrowia bardzo wielu programistom - a ich szefom pieniędzy i klientów. Dlatego taką przewagę ma VS ze swoim otoczeniem mimo, że licencje kosztują ale znacznie mniej niż zyski względem konkurentków.

~redigo

30-07-2010 12:53

własne algorytmy szyfrujące tym się głównie różnią od tzw. "standardów", ze utrudniają prace rozmaitym szpiclom całego świata, wszystkie AES, DES-y, itp. są znane z tego, że posiadają luki opisane w tajnych specyfikacjach służbowych, to co napisał tu autor myli się ZDECYDOWANIE

~phi

14-04-2010 22:22

Prawdopodobnie literówka. Chodzi o to by wreszcie się wymigrowali z PHP 4. Dla mnie detal bo i tak każdy rozsądny deweloper wie z której się trzeba migrować i dlaczego.

~Jery

14-04-2010 19:18

No wlasnie. Jak pozostale rady sa na tym poziomie to ja dziekuje za taki artykul.

~iwankgb

14-04-2010 10:17

PHP6? a ja myślałem, że to jakaś beta jest w tej chwili ;) może spuścicie z tonu do poziomu 5.3?

Najnowsze

Państwo do konsolidacji

Obywatele uważają administrację publiczną za jeden organizm. W rzeczywistości jest to kilka tysięcy oddzielnych struktur, obrosłych biurokratycznymi naroślami. Czy można zracjonalizować działanie państwa? Jak w tym może pomóc informatyka?

Zarządzanie po japońsku

W praktyce przemysłowej wypracowano szereg skutecznych metod zarządzania. Wiele powstało w Japonii. Dlaczego, mimo ich efektywności, nie zawsze są stosowane w biznesie?

e-Sąd z odsieczą sprawiedliwości

Polski wymiar sprawiedliwości postrzegany jest jako skostniały i opieszały. Tymczasem kolejne e-usługi udostępniane przez Ministerstwo Sprawiedliwości ułatwiają życie przedsiębiorcom i usprawniają pracę sądów.

e-Zdrowie w Polsce i na świecie

Projekty informatyzacji służby zdrowia realizowane są na świecie z różnym powodzeniem. Skąd Polska mogłaby czerpać wzorce? A może jesteśmy skazani na własne rozwiązania?

Raport Państwo 2.0, czyli nowa wizja informatyzacji państwa

Michał Boni, minister administracji i cyfryzacji, zaprezentował raport "Polska 2.0. Nowy start dla e-administracji". Przedstawia on informacje na temat stanu realizacji projektów będących w gestii nowo utworzonego ministerstwa oraz prezentuje kierunki dalszych działań związanych z informatyzacją i cyfryzacją administracji publicznej w naszym kraju.

Cyberprzestępcy podążają za użytkownikami

Już dwie na trzy polskie firmy odnotowały ataki lub awarie, które spowodowały spadek produkcji. Co trzecia firma utraciła dane. Liczba takich przypadków będzie rosła, bo hakerzy biorą na cel najbardziej masowe technologie. Szybko reagują też na zmiany w firmowej architekturze.

Jak zaplanować karierę w branży IT

Doświadczenia łączone na różnych stanowiskach w firmach o odmiennych profilach są szczególnie cenione przez pracodawców. Dlatego warto głęboko przeanalizować możliwości rozwoju kariery, które obecnie stwarza rynek IT.

Rekomendacje



Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści - Prenumerata: Computerworld, Networld, PC World
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88