25 najniebezpieczniejszych błędów programistycznych
Ponad 30 działających na skalę miedzynarodową firm i organizacji z branży zabezpieczeń informatycznych ustaliło wspólnie listę 25 najniebezpieczniejszych błędów programistycznych, które prowadzą do poważnych dziur w zabezpieczeniach i umożliwiają szpiegowanie użytkowników oraz inne cyberprzestępstwa.
14.01.2009 15:36
Wiele z 2. wyliczonych błędów nie jest właściwie rozumianych przez programistów, a ich unikanie nie jest włączone do programów nauczania – czytamy w oświadczeniu organizatorów inicjatywy. Dwa błędy w minionym roku doprowadziły do 1,5 miliona włamań na strony internetowe. Czołowe pozycje zajmuje niewystarczające kontrolowanie wprowadzanych danych, przepełnienia bufora, a także dziurawa kontrola dostępu.
Wśród instytucji, które opracowywały listę 2. błędów, znajdują się między innymi: Symantec, Microsoft, dział National Cyber Security Division w Department of Homeland Security, a także dział NSA o nazwie Information Assurance Division. Inicjatorem przedsięwzięcia była National Security Agency, a pomoc finansową zapewnił wydział National Cyber Security Division departamentu DHS. Realizację tego zadania powierzono instytutom MITRE i SANS (SysAdmin, Audit, Network, Security).
Cele
Uczestnicy przedsięwzięcia stosunkowo szybko porozumieli się co do 2. najpoważniejszych błędów. W drugim etapie inicjatywa stawia sobie za cel przekazanie programistom wiedzy o tym, jak należy tworzyć kod, który jest wolny od błędów znajdujących się na liście Top 25.
Długofalowymi celami są:
zaoferowanie użytkownikom bardziej bezpiecznego oprogramowania zawierającego mechanizmy certyfikacji;
stworzenie narzędzi dla programistów, które uwzględniają aspekty bezpieczeństwa tworzonego przez nich oprogramowania – przy tej okazji równolegle do oświadczenia różni producenci oprogramowania testowego zadeklarowali, że ich oprogramowanie testuje kod software'owy pod kątem tych 25 najpoważniejszych błędów;
nakłonienie firm szkoleniowych i specjalistów, którzy przyuczają programistów, do stworzenia podstawy szkoleniowej, która pomoże programistom w unikaniu wspomnianych 25 błędów;
spowodowanie, aby lista 2. najpoważniejszych błędów programistycznych stała się dodatkowym punktem odniesienia dla pracodawców i zleceniodawców, na bazie którego mogliby oni oceniać umiejętności zleceniobiorców i pracowników.
Kategoryzacja
Grupa robocza ds. utworzenia listy Top 2. podzieliła błędy programistyczne na trzy kategorie; pierwsza z nich to niebezpieczne interakcje między komponentami, jak np. SQL Injection i Cross-Site Scripting, druga to ryzykowne zarządzanie zasobami, a trzecia to słaba ochrona uprawnień. W przypadku ostatniej grupy chodzi o błędnie przyznawane uprawnienia, słabe algorytmy kryptograficzne i hasła zakodowane w odwracalny sposób (np. stałym kluczem). Dla każdego z opublikowanych błędów inicjatywa przygotowała opis i ocenę, a także scenariusze pozwalające na obejście tych luk. Ogólny przegląd i ocenę błędów z Top 25 zainteresowani znajdą na stronie MIRTE.
wydanie internetowe www.heise-online.pl