Paweł Goleń, blog

Drodzy programiści! Zapamiętajcie sobie dwie proste rzeczy:

  • wszystkie dane pochodzące z niezaufanego źródła (np. od użytkownika) przed użyciem trzeba zakodować w sposób właściwy dla kontekstu użycia,
  • właściwy encoding jest trudny,

W związku z tym bardzo proszę, nie róbcie tego sami, bo zrobicie to najprawdopodobniej źle. Zamiast tego wykorzystajcie proszę dostępne w bibliotekach (np. ESAPI, Microsoft Web Protection Library) funkcje napisane przez ludzi, którzy w temacie siedzą nieco głębiej. Przecież w wielu innych przypadkach nie wynajdujecie koła na nowo, tylko korzystacie z tego, co ktoś już napisał i się sprawdziło. Dlaczego z bezpieczeństwem ma być inaczej?

Jeśli już musicie robić to sami, to proszę, popatrzcie jak zrobił to ktoś, kto zrobił to dobrze. Choćby tutaj. Nawet jeśli okaże się, że w takich implementacjach są błędy, to prawdopodobnie będzie ich mniej, niż w tych “własnej roboty”, a i szansa na szybkie usunięcie jest zdecydowanie większa.

Oczywiście jest jeszcze walidacja danych wejściowych, ale to jest nieco inny temat.

Oryginał tego wpisu dostępny jest pod adresem Właściwy encoding jest trudny, nie rób tego sam

Autor: Paweł Goleń

Dziś wpis na temat różnicy między zagrożeniem a ryzykiem. Może najpierw na przykładach, przez wyliczenie. Przykładowe zagrożenia, bez specjalnego tematu przewodniego:

  • spadnę ze schodów,
  • spadnie na mnie samolot,
  • będę w tym spadającym samolocie,
  • napadną mnie gwałcicielki z Zimbabwe,
  • napadną mnie wojownicze żółwie ninja i zabiorą pizzę,
  • powódź,
  • trzęsienie ziemi,
  • Darth Vader i Gwiazda Śmierci,
Czytaj dalej...

Na początek kontekst. Tym razem będzie to jeden z poprzednich wpis Jest “dziura”. I co z tego? (wraz z komentarzami, szczególnie tym, tym i tym) oraz historia pewnego przekrętu: Ukradł pierścionek wystawiony na Allegro.

W cytowanym wpisie postawiłem następujące pytanie:

(...) w jakim przypadku opisany sposób uzyskania potwierdzenia przelewu, który w rzeczywistości nie został wykonany, jednak ma (większy) sens?

Odpowiedź pojawiła się w komentarzach do wpisu. A w oderwaniu od szczegółów można ją sprowadzić do stwierdzenia, że pozyskanie potwierdzenia przelewu z banku przed wykonaniem tego przelewu ma sens wówczas, gdy atakujący nie może go (dokładnie) sfałszować. W komentarzach pojawił się wątek podpisu cyfrowego i jest to właśnie ten przykład, który miałem na myśli.

Czytaj dalej...

Dziś w ramach ciekawostki zapomniana sztuka pisania \*.bat. Ale najpierw kontekst. A kontekstem jest to pytanie:

(...) Pamiętam konkretne cyfry, liczby, symbole i wyrazy ale po kilku latach nie pamiętam kolejności a kombinacji przy haśle ok 15-25 znakowym jest za dużo by klepać na piechotę. Czy ktoś może mi poradzić jak stworzyć słownik do “jakiegoś programu” który w miarę szybko by pokombinował... (...)

Czytaj dalej...

Jakiś czas temu pojawiła się potrzeba połączenia dwóch lokalizacji poprzez VPN site-to-site. Ponieważ użytkownikiem tego połączenia miała być osoba, która jest użytkownikiem właśnie (aczkolwiek muszę przyznać, że raczej zaawansowanym), szukałem rozwiązania “pudełkowego”. Takiego, który zarówno w używaniu, jak i utrzymaniu będzie możliwie mało absorbujący. Bardzo ważnym parametrem była również cena. Nie mam sumienia polecać komuś rozwiązania klasy UTM, które może i potrafi więcej, ale to “więcej” jest kompletnie nieprzydatne w konkretnym przypadku.

Korzystając z otrzymanych sugestii zdecydowałem się na urządzenia RB750GL. Co do możliwości samego RouterOS nie miałem wątpliwości, pewną niewiadomą była nato miast wydajność tych urządzeń w IPSec. Umówmy się, że sprzętowo nie są to jakieś potworne bestie. Z drugiej strony parametry łącza, na którym VPN ma zostać zestawiony, powodowały, że już 2 Mbit/s byłoby akceptowalną przepustowością. Okazuje się, że urządzenia te w AES-256 osiągają do 13 Mbit/s. Po skonfigurowaniu reguł firewalla ta przepustowość spada mniej więcej do 11 Mbit/s, ale i tak jest to bardzo przyzwoite osiągnięcie.

Ogólnie moje wrażenia są bardzo pozytywne. Tak bardzo, że zastanawiam się poważnie nad zakupem RB751U-2HnD. Dla siebie.

Czytaj dalej...

Pod wpisem 0b10 | 0b01 exploit Kravietz umieścił kilka ciekawych myśli. Na przykład w tym komentarzu poruszony został temat, który chciałbym rozwinąć. Zacznijmy od myśli przewodniej:

Ale mechanizm bezpieczeństwa, żeby działał, musi być relewantny. (...)

Czytaj dalej...

Po długiej przerwie udostępniam dwa nowe videocasty w ramach cyklu Bootcamp: Bezpieczeństwo aplikacji internetowych. Oba odcinki dotyczą możliwości wykorzystania skryptów w narzędziu Fiddler. Oczywiście wszystko po to, by ułatwić sobie życie.

Czytaj dalej...

Krótkie nawiązanie do poprzedniego wpisu. Trochę dlatego, że pojawiło się kilka komentarzy, a i nowy egzemplarz spamu również w filtrach się zatrzymał.

Czytaj dalej...

Od pewnego czasu obserwuję między innymi taki spam komentarzowy:

Obraz wideo i dzwiek odczytywane z plyty DVD narzedzi intelektualnych, niezbednych do. Byli i sa wsrod mozgu maja znacznie wiecej na elektryczne sygnaly, przesylane mozna bylo. Pierwsze komputery Pierwszym komputerem w podobny sposob jak kart perforowanych, przeprowadzajacym obliczenia. Naleza do niego z obliczeniami wartosci wypelniajacymi do 800 MHz, a kilkanascie razy wiecej. W mozgu natomiast nas wlasciciele srodkow pozycjonowanie chemiczne, nie w pozycjonowanie twardego. (...)

Zastanawiam się jak taki tekst powstaje, czy jest to bezładna “kompilacja” kilku tekstów, czy może skutek wykorzystania łańcuchów markowa? Domyślam się, że celem jest obejście filtrów bayesowskich. Jak na razie podejście to jest niezbyt skuteczne.

W tym kontekście zastanawia mnie jedna sprawa – ciekawe jak w filtrowaniu spamu sprawdzałoby się sprawdzanie ortografii i gramatyki tekstu. Raczej jako jeden z czynników decydujących o klasyfikacji wiadomości niż jako jedyny wyznacznik spamu. Zastosowanie takiego filtra mogłoby się również przyczynić do drastycznego podniesienia jakości “komentarzy na onecie”... Z drugiej strony przypuszczam, że akurat jakość komentarzy im niższa (znaczy – im komentarze głupsze), tym lepsze. Budzą chęć do reakcji, kliknięcia lecą, leci też kasa od reklamodawców.

Oryginał tego wpisu dostępny jest pod adresem Ciekawy(?) spam

Autor: Paweł Goleń

Tak, zgodnie z tradycją mamy już OpenBSD 5.0. Sobie życzę, by errata do tej wersji była równie pusta, jak ta do wersji 4.9.

Oryginał tego wpisu dostępny jest pod adresem OpenBSD 5.0

Autor: Paweł Goleń