Poprzedni wpis (Czy dłuższe jest lepsze?) spotkał się z nadspodziewanie dużym zainteresowaniem, przynajmniej sądząc po ilości komentarzy. Ja chciałbym wrócić do tematu potencjalnych zysków atakującego/strat banku. Czy jesteśmy w stanie w jakiś sposób je oszacować?
No to ile można ukraść?
Tak, jesteśmy. Może nie tak dokładnie jak sam bank, ale możemy spróbować. Na początek załóżmy, że długość kodu jednorazowego to 6 cyfr, a rocznie przejmowanych jest 15% kont klientów banku. W tym kontekście "przejmowanych" oznacza, że atakujący jest w stanie zalogować się na konto użytkownika w systemie bankowości lub jest w stanie przejąć sesję użytkownika. Te 15% jest wziętych z sufitu, akurat tutaj nie chce mi się szukać bardziej dokładnych danych. Do tego dodajmy jeszcze liczbę klientów. Ustalmy ją na 6 000 000 (a co: Raport PRNews.pl: Rynek bankowości internetowej - III kw. 2013)
Druga sprawa, ile pieniędzy może być na koncie? Znów, sam bank dysponuje zdecydowanie lepszą wiedzą na ten temat, my możemy tylko gdybać. By to gdybanie nie było całkiem pozbawione podstaw posłużmy się jakimś źródłem danych. W tym przypadku tym: 60 proc. Polaków nie ma oszczędności. Znajduje się tam ciekawe zestawienie mówiące o tym, ile oszczędności mamy na kontach.
Na podstawie tej informacji zbudować można taką tabelkę:
Oszczędności | Procent |
0x dochód | 59,2% |
1x dochód | 10,32% |
3x dochód | 13,05% |
6x dochód | 9,54% |
12x dochód | 5,22% |
24x dochód | 2,61% |
Oczywiście jest to pewne uproszczenie. Zakładam, że w każdym z przedziałów mamy do czynienia z wartością maksymalną, natomiast w ostatnim z nich narzucam sztuczne ograniczenie z góry.
Ile wynosi ten "dochód"? Aktualnie średnia płaca wynosi 4000 PLN (brutto). Trzymajmy się tej wartości, tylko potraktujmy ją jako netto, a co. Dodatkowo wszystkim do konta dorzućmy wartośc 1x dochód (niech to będzie "aktualna wypłata").
Przy takich założeniach nasza tabelka przyjmuje następującą postać:
Oszczędności | Procent |
4 000 PLN | 59,2% |
8 000 PLN | 10,32% |
16 000 PLN | 13,05% |
28 000 PLN | 9,54% |
52 000 PLN | 5,22% |
100 000 PLN | 2,61% |
Jak to można wykorzystać? Po pierwsze można policzyć wartość oczekiwaną dla pojedynczego eksperymentu "ile jest pieniędzy na losowo wybranym koncie". Daje nam to mniej więcej 13 283 PLN.
Co zrobić z tym dalej? Nasz hipotetyczny bank ma 6 000 000 klientów z czego 15% pada ofiarą pierwszego etapu naszego ataku (przejęcie konta). Czyli mamy 900 000 potencjalnych ofiar. Szansa powodzenia ataku to 1 / 200 000, co daje nam w efekcie jakieś 4.5 udanego ataku. A to oznacza straty/zysk (zależy dla kogo) na poziomie niecałych 60 000 PLN (59 773.50 PLN). Niecałe 7 groszy z jednego przejętego konta. Słabo.
Można zastosować też nieco bardziej zaawansowane podejście - przeprowadzić symulację.
Jak taka symulacja miałaby wyglądać? Dość prosto:
- wylosuj kwotę według ustalonego rozkładu;
- określ czy atak zakończył się sukcesem (według założonego prawdopodobieństwa);
- całość powtórz 900 000 razy.
Cały scenariusz należy powtórzyć wielokrotnie w celu uzyskania statystyk.
Wynik? Po zebraniu wyników z 5000 powtórzeń wartość oczekiwana to 60 531, czyli rezultat zgodny (w sensie - zbliżony) do wartości wyliczonej teoretycznie. Co więcej daje nam ten eksperyment? Na przykład po to, by uzyskać taki wykres (tak, osie są nieopisane):

Wykres ten przedstawia prawdopodobieństwo wyprowadzenia określonej kwoty. Jak widać trafiały się scenariusze, w których zysk wynosił ponad 300 000 (w sumie chyba 10 takich przypadków), ale również i takie, w których atakujący nie zarabiał nic (46 takich przypadków).
Ciekawszy może być natomiast ten wykres, który te prawdopodobieństwa sumuje:

Pokazuje on, że z prawdopodobieństwem 50% stracimy mniej niż 48 000. Z 80% prawdopodobieństwem nasze straty zamkną się poniżej 96 000. Mamy też ponad 90% szans na to, że nie stracimy więcej niż 136 000. Z drugiej strony, z perspektywy atakującego nie wygląda to za dobrze - ma on niecałe 20% szans, że zarobi ponad 100 000 i niecałe 2% szans, że zyska ponad 200 000. Przypominam - wszystko przy założeniu, że atak wykona 900 000 razy.
Niezbyt opłacalne/efektywne, prawda? Phishing z użyciem MitM lub malware na stacji jest jednak "trochę" lepszy. O, choćby taki: Stracił 16 000 PLN bo miał dziurawy router (...).
Są metody bardziej skuteczne, gdzie, po przejęciu konta (MitM, malware), sukces jest dużo bardziej prawdopodobny (w zależności od metody). Jestem sobie w stanie wyobrazić atak ze skutecznością 100% (podmiana rachunku docelowego na inny, ale prezentowany w ten sam sposób w SMS). Fakt, w tym scenariuszu jest ograniczenie na kwotę. Jeszcze ciekawiej jest przy podpisie cyfrowym - Hasperbot.
I to jest ten moment, kiedy okazuje się, że stosunkowo niskie limity + dywersyfikacja po kontach mają sens, bo to pierwsze znacznie obniży w praktyce wartość oczekiwaną wygranej przestępcy, a drugie zwyczajnie może zniechęcić do podejmowania prób.
BTW skąd szansa powodzenia ataku 1/200000? Jeśli sa 3 próby to chyba (1/1000000)+(999999/1000000)*(1/999998)+(999997/999998)*(1/999997)