Materiały online – czy można z nich coś wyciągnąć?

aaaa2

Internet jest pełen materiałów do nauki technologii informatycznych. Ich bogactwo wręcz przygniata. Co wyróżnia te dobre od tych gorszych? Czy materiały online są lepsze od tych papierowych? Tak naprawdę wszystko zależy. Ja spotkałem się z kilkoma platformami. Jedną z nich jest wydawnictwo PACKT. Jest to strona oferująca kursy oraz e-booki z zakresu programowania, big data, systemów operacyjnych oraz administracji. Mają ciekawą akcję, po zarejestrowaniu się w ich serwisie można raz na 24 godziny ściągnąć jedną z ich książek udostępnionych pod tym adresem . W większości są to książki, które zostały opracowane na podstawie ogólnie dostępnych informacji lub dokumentacji. Osobiście mam już ściągniętych około 30 książek i większość porusza temat na poziomie podstawowym. Wygodne jest to, że ma się prywatną biblioteczkę dostępną online. Materiał jest opisany przystępnie i każdy jest w stanie nauczyć się z nich tego co prezentują. …

Innymi platformami do zgłębiania wiedzy są MOOC (massive online open course). Do najpopularniejszych z nich należą, edx , coursera, Khan academy oraz udemy. Każda z tych platform oferuje różnorodne kursy, choć większość jest technicznych z zakresu programowania lub nauk informatycznych. Duża zaletą tego typu kursów jest wygoda oraz zadania jakie weryfikują zdobywaną wiedzę. Kursy są nie dłuższe niż 5-7 tygodni. Po przejściu niektórych z nich można zdobyć certyfikat.Jakość kursów MOOC jest na poziomie akademickim i część z nich jest wysokiej jakości. Tylko od kursanta zależy ile z niego wyciągnie dla siebie. Ułatwieniem jest swoboda. Możemy uczestniczyć w kursie kiedy i gdzie chcemy , wystarczy tylko dostęp do internetu. Mi pasuje taka konwencja i chętnie korzystam z tego typu rozwiązań.

Uczestniczyłem w różnych kursach MOOC i bardzo je sobie cenie. Jeszcze dużo przede mną, gdy jakiś mnie zachwyci podzielę się tym na blogu.

 

 

Reklamy

Blue Team Field Manual – recenzja

BT_LOG

Poprzedni wpis był recenzją „podręcznika” dla atakujących, tak zwanego „Red Team Field Manual” Bena Clarka. Jak można się domyślić, jeżeli są atakujący to również są osoby odpowiedzialne za obronę. Dlatego ten sam autor wydał „Blue Team Field Manual”. Jest to pozycja bardzo świeża, bo wydana 13 stycznia 2017 roku.

Pierwsze wrażenie jest o wiele lepsze w porównaniu do poprzedniego tytułu. Jakość książki, jest lepsza, nieznacznie ale jednak. Czcionka czytelniejsza oraz większa (standardowa 12), a strony o wiele lepiej zagospodarowane. Widać, że autor wyciągnął wnioski i poprawił wszystko co wyglądało na niedociągnięcia. Dzięki temu, o wiele przyjemniej obcuje się z tą książką.

Co do treści, konwencja jest bardzo podobna do „RTFM”, komendy z Linuxa/Windowsa z przykładowymi parametrami. Różnica polega na tym, że rozdziały są poukładane według działań jakie powinien wykonać zespół broniący się przed incydentami (Przegląd dokumentacji, identyfikacja problemu, obrona, analiza itp), wraz z zdaniem opisującym kiedy lub w jakich okolicznościach wykonać dane polecenie. Dzięki temu, książkę śmiało, można nazwać podręcznikiem! Na duży plus można zaliczyć ostatnie dwa rozdziały („INCIDENT MANAGEMENT” oraz „SECURITY INCIDENT IDENTYFICATION”) które są propozycją dokumentacji do zarządzania oraz identyfikacji incydentów. Można to potraktować jako wzorzec do swojej dokumentacji.

Ponownie, odnosi się wrażenie, że duża część treści jest jak gdyby ściągnięta z dokumentacji technicznej i wklejona. Dodatkowo mam podejrzenie, że każdy doświadczony administrator posiada wiedzę zawartą w tej książce, a to oni są odpowiedzialni za bezpieczeństwo infrastruktury. Jaki jest cel tej książki? Według mnie, uporządkowanie wiedzy o „obronie” oraz poszerzenie wiedzy dla osób zajmujących się administracją, jeżeli nigdy nie mieli do czynienia z tego typu problemami. Również, można traktować tę książkę jako źródło wiedzy dla atakujących, czego mogą się spodziewać przy atakowaniu.

Podsumowując, jest to o wiele lepsza pozycja niż „Red Team Field Manual”, pod każdym względem, merytorycznym, materiałowym oraz wizualnym. Stanowi dobre uzupełnienie poprzedniej książki. Warto ją rozważyć jako uzupełnienie/rozwinięcie swojej wiedzy, jeżeli jest się adminem a dla pozostałych jako ciekawostkę.

Red Team Field Manual – recenzja

RT_LOG

Każdy kto choć trochę interesuje się bezpieczeństwem i testami penetracyjnymi zna określenie „Red Team„. Jest to hasło zaczerpnięte z nomenklatury wojskowej armii Stanów Zjednoczonych, określającej zespół atakujących. W kontekście bezpieczeństwa informatycznego jest to zorganizowana grupa ekspertów mających za zadanie zasymulowanie ataku na infrastrukturę/system informatyczny, tak jak by to zrobiły osoby z zewnątrz. W związku z tym, że po drodze mi z takimi tematami, nabyłem „Red Team Field Manual” Bena Clarka.

Czym jest ta książka, na pewno nie podręcznikiem (ew. instrukcją), nie ma tam opisanych technik ataku czy teorii która może wspomóc w realizacji zadań. Według mnie lepszym określeniem na to dzieło, to „ściągawka”. Zawarte w tej książce informacje to pokrótce opisane komendy dla Linuxa,Windowsa, ekstrakt wiedzy z zagadnień sieciowych, skrótowo opisane opcje dla niektórych narzędzi często używanych w testach bezpieczeństwa (wireshark, nmap, metasploit, ettercap), kilka listingów programów. Ogólnie rzecz biorąc, nic czego nie można wyszukać w internecie. Domyślam się, że ma to być pomoc dla osób zajmujących się testami bezpieczeństwa. Taka a nie inna treść jest podyktowana doświadczeniem autora, poniekąd wyglądającego na bardzo doświadczonego eksperta w temacie. Nasuwa się pytanie czy mogło być coś więcej.

Oceniając książkę z innej strony, nie jest jakiejś super jakości. Okładka jest miękka i wygląda jak grubszy zeszyt. Treść w niektórych miejscach jest bardzo ściśnięta a na niektórych stronach (szczególnie tych na końcu sekcji) pozostawione bardzo dużo wolnego miejsca. Dodatkowo tekst jest napisany małą czcionką (wg mnie 6) oraz żywcem wziętą z dokumentacji systemowej (kanciaste i cienkie litery). Dla osób z słabym wzrokiem może być ciężkie do odczytania.

Wszystkie te aspekty powodują, że człowiek się zastanawia po co taka książka. Spodziewałem się trochę czegoś innego, ale ostatecznie traktuję tą książkę jako zbiór najbardziej podstawowych zagadnień, poleceń z zakresu bezpieczeństwa. Dlatego polecam ją początkującym w temacie testów penetracyjnych, bardziej doświadczonym polecałbym jako ściągawkę.

Czysty kod według CIA

logoMarcowy wyciek dokumentów CIA, oprócz tego, że stał się największą atrakcją ostatnich tygodni jest również źródłem wiedzy o zasadach, technikach oraz broni (w ujęciu informatycznym). Mnie najbardziej zaciekawiły zasady kodowania w Pythonie. Jak można wywnioskować z dokumentów, jest to dość popularna technologia pośród pracowników amerykańskiego wywiadu. Dokument jest o tyle ciekawy,że opisuje konwencję i „styl” w jaki powinno pisać się programy w tym języku.

W związku z tym, że zawsze szukam okazji do poszerzenia swojej wiedzy, przeczytałem ten dokument. Czy jest w nim coś odkrywczego, niespecjalnie. Ale warto podkreślić wartościowe zasady.

  • Używać tylko tego co jest potrzebne. Chodzi tutaj o nie deklarowanie zmiennych globalnych (nie zalecane). Importowanie z bibliotek tylko tyle ile jest potrzebne.
  • Upraszczać kod. Starać się unikać złożonych funkcjonalności (lambda functions, power functions), formować proste warunki.
#Yes
 if foo is not None: 

#No
 if not foo is None:
  • Zachować czytelność kodu. Chodzi tutaj o używanie, spacji w odpowiednich miejscach, w linii nie powinno być więcej niż 100 znaków, odpowiednio dzielić długie ciągi znaków, używać komentarzy, stosować 4 spacje jako wcięcia, używać odpowiednio nazw dla funkcji,klas,zmiennych. Czyli wszystko co wpływa na analizę kodu.
  • Dbać o porządek w wykonywaniu operacji na plikach,serwisach. Czyli najogólniej rzecz ujmując jak coś się otworzyło to trzeba zamknąć.

Opisane zasady są powszechnie obowiązującymi. Każdy kto choć trochę kodował stara się ich trzymać. Oznacza to, że nie jest to żadne odkrycie nawet dla CIA 🙂 Na końcu dokumentu możemy przeczytać, że warto użyć zdrowego rozsądku i poświęcić chwilę na przeanalizowanie kodu tak by wpasować się w styl w jakim jest napisany. Obyśmy wszyscy poszli za przykładem CIA.

Próg zwalniający – dokumentacja

bb

Wybór technologii i biblioteki nie był przypadkowy. Python charakteryzuje się efektywnym i szybkim w wytwarzaniu oprogramowania. Drobną rzeczą jaką pominąłem to mnogość opcji w samym Scrapy`m .Optymistycznie założyłem, że przeczytanie dokumentacji zajmie mi max 2 dni. Pewnie by tak było gdyby nie fakt, że Scrapy jest frameworkiem z bardzo wieloma opcjami. Tak więc rozbiłem się o dokumentację i teraz wiem, że potrzebuje więcej czasu.

Aby zobrazować jak bardzo jest to rozbudowane narzędzie, wymienię jakie biblioteki są zintegrowane w scrapy`m.

  • lxml – biblioteka do parsowania XMLa
  • parsel – bilioteka do ekstakcji HTML/XMLa
  • w3lib – biblioteka od kodowania stron oraz poruszania sie po URL
  • twisted – biblioteka do sieciowej komunikacji asynchronicznej
  • cryptography and pyOpenSSL  – biblioteki od komunikacji szyfrowanej

Wszystkie te biblioteki składają się na scrapiego. To pokazuje wielkość tego narzędzia. Tak więc, do zobaczenia w następnym poście. Obiecuję, że będzie treściwszy 🙂

„Zmyl trop na barykadach prywatności w sieci” – recenzja

okladka

Uważam, że żyjemy w ciekawych czasach. Każdy kto ma trochę świadomości jak wygląda e-gospodarka, wie, że wiele firm i instytucji zbiera i gromadzi o nas dane. Dla każdej osoby która się tym przejmuję mogę polecić książkę „Zmyl trop na barykadach prywatności w sieci”. Ten tytuł przybliża nam temat jak wyglądają mechanizmy zbierania o nas informacji i porusza w wyjątkowo prosty sposób na czym polega zaciemnianie.

Zaznaczę od tego, że nie jest to książka techniczna, nie ma tutaj gotowych przepisów na ochronę prywatności. Nie należy spodziewać się, że rozpłyniemy się w szumie informacji i w ten sposób staniemy się bezpieczni. Natomiast zyskamy wiedzę czym jest zaciemnianie i na podstawie wielu różnych przykładów zrozumiemy na czym ono polega. Dodatkowo książka stawia pytania oraz udziela odpowiedzi na pytania o etykę zaciemniania.

Bardzo spodobał mi się charakter tej książki. Bliżej jej do artykułu naukowego niż do książki popularno-naukowej. Dowodem na to jest fakt, że przy każdej ważniejszej informacji znajdziemy odwołanie do artykułu lub innego dzieła. Uważam to za spore ułatwienie w przypadku gdy czytelnik chce pogłębić temat. Styl w jakim jest napisana książka również stanowi jej duży plus, trochę więcej niż 200 stron czyta się niezwykle przyjemnie i przynajmniej mi było ciężko oderwać się od lektury. Na duży plus zaliczam złożone podejście do problemu. Stawianie pytań (Czy zaciemnianie jest uczciwe? Czy zaciemnianie nie jest marnowaniem zasobów?) i próba zmierzenia się z nimi jest czymś wyjątkowym i wartym przeczytania.

Książka nie jest ideałem i ma swoje wady. Autorzy książki są współautorami TrackMeNot i w wielu częściach książki odwołują się do swojego dzieła. Trochę to męczące, ale nie takie nie uzasadnione, w końcu jest to dodatek który „zaciemnia” informacje o użytkowniku. Za małą wadę, trochę traktuję nie równe podzielenie książki pomiędzy część I i II. W części pierwszej znajdują się rozmaite przykłady zaciemniania. Dla mnie ta sekcja mogła by być bardziej rozbudowana, a tak zostawiła niedosyt.

Podsumowując, książka jest warta uwagi każdego kto chce/chciałby zadbać o swoją prywatność. Dzięki niej zdobywa się wiedzę o tym czym jest zaciemnianie (nie tylko w IT) oraz jakie pytania stawia stosowanie tego typu praktyk. Dlatego wszystkim serdecznie polecam 🙂

Faza 1 – projekt – High level design

Realizowany przez mnie projekt to webcrawler. Z mojego szybkiego przeszukania, nie znalazłem pełnoprawnego narzędzia uruchamianego lokalnie z opcją tworzenia raportu zagregowanego po dacie/typie/słowach kluczach. Za to były lub są serwisy oferujące taką usługę.

W założeniach ma być to narzędzie uruchamiane lokalnie lub na domowym klastrze (zbudowanym z malin lub zwykłych PC). W założeniach webcralwer będzie integrował dane z

  1. serwisów informacyjnych
  2. blogów (kanałów RSS lub bezpośredni tekst z bloga)
  3. forów
  4. mediów społecznościowych

W założeniach technicznych projektu:

  • język: Python 2.7 (min. biblioteka SCRAPY)
  • baza danych: MongoDB
  • Warstwa prezentacji: PyQt

Absolutnym minimum jest doprowadzenie do zbierania informacji z serwisów informacyjnych oraz blogów. Fora oraz media społecznościowe to wersja ponad podstawowa.

Efektem pracy crawlera ma być raport wygenerowany do pliku pdf/odt/doc, według wybranych opcji przez użytkownika.

Jeżeli uda się wszystko wykonać to kolejnym etapem będzie dodanie inteligencji webcralwerowi oraz spowodowanie, że będzie mniej wykrywalny przy zbieraniu informacji.

W najbliższym czasie sprawdzę jak sobie radzi prosty webcralwer. Śledźcie GIT`a. Do następnego razu 🙂