Luki w oprogramowaniu

'Errare humanum est' ('Myli膰 si臋 jest rzecz膮 ludzk膮')
Marcus Tullius Cicero, rzymski m膮偶 stanu, filozof i autor

'Myli膰 si臋 jest rzecz膮 ludzk膮, ale 偶eby naprawd臋 co艣 spapra膰 - do tego potrzeba komputera''
Paul Ehrlich, wybitny naukowiec

Termin 'luka' (ang. vulnerability) cz臋sto pojawia si臋 w zwi膮zku z tematem bezpiecze艅stwa komputerowego i wyst臋puje w wielu r贸偶nych kontekstach.

Termin 'luka', w swym najszerszym znaczeniu, odnosi si臋 do naruszenia polityki bezpiecze艅stwa. Przyczyn膮 mog膮 by膰 s艂abe uregulowania dotycz膮ce bezpiecze艅stwa lub te偶 samo oprogramowanie. Teoretycznie wszystkie systemy komputerowe obarczone s膮 lukami. Czy s膮 to powa偶ne luki, zale偶y od ewentualnego wykorzystania ich do uszkodzenia systemu.

Podejmowano wiele pr贸b jednoznacznego zdefiniowania terminu 'luka' oraz rozr贸偶nienia jego dw贸ch znacze艅. MITRE, ameryka艅ska grupa naukowo-rozwojowa finansowana przez rz膮d federalny, skoncentrowa艂a si臋 na analizie i rozwi膮zaniu krytycznych zagadnie艅 bezpiecze艅stwa. Grupa ta stworzy艂a nast臋puj膮ce definicje:

Wed艂ug terminologii CVE grupy MITRE

[...] luka jest stanem systemu komputerowego (lub grupy system贸w), kt贸ry:

  • umo偶liwia agresorowi wykonanie polece艅 komputerowego imieniu innego u偶ytkownika
  • umo偶liwia agresorowi zdobycie dost臋pu do danych z naruszeniem okre艣lonych ogranicze艅 dost臋pu do tych danych
  • umo偶liwia agresorowi podszywanie si臋 pod inn膮 jednostk臋
  • umo偶liwia agresorowi przeprowadzenie ataku DoS (Denial of Service)

Wed艂ug MITRE, je艣li atak umo偶liwia s艂aba lub nieodpowiednia polityka bezpiecze艅stwa, nale偶y raczej stosowa膰 okre艣lenie 'podatno艣膰 na atak' (ang. exposure):

Podatno艣膰 na atak jest stanem systemu komputerowego (lub grupy system贸w), kt贸ry nie jest luk膮, a jedynie:

  • umo偶liwia agresorowi gromadzenie informacji
  • umo偶liwia agresorowi ukrywanie czynno艣ci
  • uwzgl臋dnia funkcj臋, kt贸ra zachowuje si臋 zgodnie z oczekiwaniami, jednak mo偶e zosta膰 艂atwo wykorzystana do zaatakowania systemu
  • jest g艂贸wnym punktem wej艣cia, kt贸re agresor mo偶e wykorzysta膰 do zdobycia dost臋pu do systemu lub danych, lub stanowi problem z punktu widzenia polityki bezpiecze艅stwa

Podczas pr贸b zdobycia nieautoryzowanego dost臋pu do systemu, intruz przeprowadza najpierw rutynowe skanowanie (lub badanie) celu, zbiera wszystkie 'niezabezpieczone dane', a nast臋pnie wykorzystuje s艂abe punkty lub luki w polityce bezpiecze艅stwa. Podczas zabezpieczania systemu przed nieautoryzowanym dost臋pem nale偶y dokona膰 sprawdzenia pod k膮tem zar贸wno luk, jak i podatno艣ci na atak.