Cieć. Zwykolak #001. Od niego zaczęło się całe to uniwersum :)

Cieć. Zwykolak #001. Od niego zaczęło się całe to uniwersum 🙂

Najmłodszego już poznaliście — Liczysław niedawno oficjalnie wszedł na produkcję.

Dzisiaj cofamy taśmę.

Do czasów, kiedy nie było jeszcze Gildii.
Nie było Zwykolaków.
Nie było nawet nazw.

Był tylko problem.

GENEZA

Przy części systemów płatniczych regularnie wykonujemy raporty bezpieczeństwa wymagane przez operatora płatności.

Takie raporty potrafią być bardzo szczegółowe.

Command Injection.
CVE.
Eskalacja uprawnień.
Otwarte porty.
Konfiguracja usług.
Dziesiątki potencjalnych podatności — część realnych, część wymagających ręcznej weryfikacji, część będących zwykłymi false positive.

I podczas analizowania jednego z takich raportów pojawiło się bardzo proste pytanie:

A co z najbardziej oczywistymi błędami?

Zanim zaczniemy rozważać scenariusze rodem z Mission: Impossible, może warto najpierw sprawdzić, czy ktoś po prostu nie zostawił otwartych drzwi.

Tak powstał pierwszy skrypt.

PHP.
Kilka testów.
Raport.

Bez wielkiej architektury i bez budowania platformy klasy enterprise do zadania, które można rozwiązać prościej.

PIERWSZY PROBLEM

Skrypt zaczął rosnąć.

Dochodziły kolejne testy, więc pojedynczy skan trwał coraz dłużej.

W końcu warstwa HTTP powiedziała:

30 sekund. Koniec imprezy. Timeout.

Sam proces nadal miał pracę do wykonania. Problemem nie był więc skaner.

Problemem był sposób jego uruchamiania.

Rozwiązanie?

CLI.

Bez HTTP.
Bez limitu requestu.
Bez czekania na odpowiedź przeglądarki.

Cron uruchamia proces, skrypt robi swoje i kończy wtedy, kiedy skończy.

Proste.

I właśnie wtedy pojawił się pierwszy element osobowości późniejszej Gildii.

Komunikat testowy brzmiał mniej więcej:

„Serwer nie odpowiada, admini piją drinki. Piu, piu, piu, madafaka — strzelamy z CLI.”

Być może nie było to absolutnie konieczne.

Ale najwyraźniej już wtedy nasze oprogramowanie zaczynało mieć własny charakter.

DRUGI PROBLEM

Samo wykrycie błędu niewiele daje, jeśli nikt o nim nie wie.

Można wysłać maila.

Można też zrobić coś, czego znacznie trudniej nie zauważyć.

Cieć dostał własnego bota Telegramowego.

Od tej chwili po wykryciu problemu nie zapisywał już tylko wyniku w raporcie.

Darł mordę bezpośrednio do administratora.

Przykładowy komunikat?

„ADMIN TO IDIOTA. NIE POZDRAWIAM.”

Subtelne?

Nie.

Skuteczne?

Bardzo.

Szczególnie że głównym administratorem i najczęstszym adresatem tych komunikatów był autor skryptu.

I TAK POWSTAŁ CIEĆ

Jego zadanie było banalnie proste:

obchodzić strony,
szarpać za klamki,
sprawdzać podstawową konfigurację,
wyłapywać rzeczy, które nie powinny być publicznie dostępne,
a kiedy coś znajdzie — natychmiast alarmować.

Strzały z crona lecą do dziś.

I z perspektywy czasu właśnie tutaj powstało DNA wszystkich późniejszych Zwykolaków:

jedno konkretne zadanie, możliwie prosty kod, automatyzacja tam, gdzie człowiek nie powinien wykonywać nudnej pracy ręcznie, i absolutnie niepotrzebna osobowość.

Bez AI na siłę.

Bez mikroserwisów dla 200 linijek kodu.

Bez budowania kombajnu, kiedy wystarczy młotek.

Po prostu narzędzie, które ma jedną robotę.

I ją wykonuje.

Cieć.
Zwykolak #001.
Pierwszy na służbie.

Pierwszy od:

Piu. Piu. Piu. Madafaka.

I pierwszy, który regularnie obrażał swojego autora za błędy we własnej konfiguracji. 🫡

POST-CREDITS: STACK

Engine: PHP
Trigger: cron
Requesty: cURL
Alerty: Telegram Bot API
Interfejs administracyjny: niepotrzebny

Dziękujemy, do widzenia.

In PHP We Trust.

Share this :