03062026

Скоро писах за Globus и като цяло част от душата на блога е насочена към музиката и колко пъти ме е спасявала.

В речта си като кум към Радо преди 2 години казах как музиката ме е спасила и продължава да го прави и споделих безкрайната си благодарност към него, че ме запали към по-тежката музика (Slipknot, Lamb of God, etc). И вярвам, че древното чувство на крайлагерния огън се е запазило под формата на музика. И понякога изпитвам чувство, което не мога да назова като слушам нещо особено. Едно от тях е на M83 – Outro, която ме кара някак да погледна нагоре към космическия безкрай (това вероятно е и заради многото видеа на Veritasium, които гледам напоследък) и да се спра за малко с тревогите, защото всички все пак сме просто шепа атоми, които могат да споделят, чувстват и обичат. И да се бият с пръчки, но това е друг въпрос.

Вариант първи:

Трябва да обърнем внимание и на монументалния труд на човека, който е събирал всички части и е направил монтажа.

Второто е в оригинал отново с невероятно качество:

01062026

Щях да пиша нещо за WordCamp и колко се вълнувам от цялото нещо, но видях, че е минало 00:00 часа и – честит ден на детето.

След всичката гняс, която ям от 2 години и повече след развода още стои в мен искрата на детето в мен, макар и по-бледа от всякога.

Но не се отказвам лесно. Хвърлям се в приключения, борим се с децата в тревата в двора, смеем се когато някой пръдне и се изненадвам на моите набори (и по-млади), които го нямат този живец.

Колкото и трудно да е три неща трябва да са в центъра на всеки човек:

  1. Здраве
  2. Детската искра
  3. Любов (към нещо – деца/половинка/място/хоби/каквотоидае)

Та честит ден на детето.

27052026

Откритието на деня. Нещо изискано като праскова и вино от Сотерн. Но за да има смисъл и за вас горното сравнение оставям този великолепен диалог между Mythical Kitchen и Алтън Браун в който си говорят за храната и за бащите.

А Тами Нелсън сама по себе си е бижу, която наподобява на смесицата между една от любимите ми песни изобщо, тази на Iyeoka, която идва със абсолютната нежност, на грубия глас на Kovacs и може би мааааалко на Bet Harth като и трите са в свои собствени категории.

Май малко се увлякох. In other news – нов епизод на подкаста ще има, пиша сега скрипта!

26052026

Ново видео на малките панелни концерти, този път с Остава. Production quality-то е жееестоко, както и самите Остава.

За Каланджа Рън нещо ме засърбяха пръстите да запиша епизод в подкаста и май ще го направя. Да видим кога обаче.

Ще бъда лектор на WordCamp Europe 2026

Както писах преди време, че нещо голямо се задава – ще бъда лектор на WordCamp Europe 2026!

Ще говоря за две неща, които ме бутнаха напред в моята кариера и за които говорих на Cybersec usergroup-а на dev.bg, на OpenFest 2025 и сигурно на още много места – WordPress и Security.

Всичко започна преди доста годни (домейна към момента е на 19 години така, че няколко месеца/година след регистрацията) с една Joomla! която в последствие ме вкара в web development-а, но след редица грешни решения на Joomla дойде време да се разделим и минах към CMS-а, който бута малко 43% от ЦЕЛИЯ (видим) Интернет и 62% от CMS пазара.

С годините мигрирах от споделения хостинг на superhosting.bg (преди да ги купят) към Vultr, след това на моя home server (vortex и marvin) и накрая, от вече няколко години – в DigitalOcean. И понеже не обичам да НЕ оптимизирам неща покрай себе си ми се струваше, че 1GB RAM и 1vCPU са прекалено много за един клет блог така, че реших да се насоча към кеширане, FPM, mySQL оптимизации и още много малки и големи трикове. И изведнъж видях как се освободиха значителни ресурси. А после дойде и downscale initiative-a и сега блога, cdn-check и още няколко проекта си живеят съвсем комфортно на 1vCPU и едва 1GB RAM:

Тоест 430МБ RAM на разположение (available) и пог-оре виждате натовраврането на CPU-то.

Та когато видях, че WordCamp Europe, най-голямото WordCamp събитие в Европа и едно от най-големите в света, имат CfP (Call for Papers) реших да се включа с тема, която ми е близка – как да натъпчем колкото можем повече WordPress в малък VPS.

И демото щеше да е просто – щях да използвам вече направеното в dev.bg workshop-а за сигурност, което както и бях обещал, живее тук – https://github.com/NedkoHristov/WordPress-Security-or-keep-yourself-positive-dev-bg-webinar (и е под GPL лиценз, така, че няма проблем да си го вземете и използвате и вие), да емулирам малко постове, WooCommerce плъгини и още малко неща и кот-такоа.

Накрая приключих с цялостен docker compose, който вдига nginx + mariaDB + apache + k9 + playright + grafana/logi/prometheus, абееее 100000 неща. И съм доволен. Дори имам скрипт, който следи за точно определено събитие за да направи правилни screenshots за презентацията. Този път съм доволен то себе си, ти да видиш.

Събитието ще е в Краков, Полша и е второто ми такова извън страната за тази година.
Доволен съм.

Линк към LinkedIn поста

11052026

Е – най-накрая го постигнах. С ръка на сърцето мога да кажа, че съм в най-лошата форма в живота си.

И не преувеличавам – на медикаменти за кръвно и пулс съм от много време, бях на ръба на инсулиновата резистентност (бях, но не съм си правил скоро изследвания), ментално съм до никъде. Единственото, което имам са децата и съответно хвърлям всичката си енергия там.

А това е смазващо. Особено като си дойдат при мен и видя понякога каква деградация е било и се отчайвам от всичко. Нямам думи да опиша колко жестоко разочарован съм от себе си, от златина, от света и живота си като цяло.

Нямам абсолютно никакво желание да продължавам напред в каквото и да е отношение. Никакво.

10052026

Идвам да кажа, че marp е жесток инструмент! Ей сега разцъквах покрай слайдовете за конференцията за която ще пиша скоро и попаднах на този инструмент. Може да конвертира MarkDown файлове в много неща две от които са PPTX (powerpoint), PDF или направо в HMTL. Това ще рече, че мога да си променям SLIDES.md файла и при commit или PR може да пали pipeline, който да генерира презентацията в няколко формата.

Скоро ще пусна лекцията заедно с md файла и инструкции как да си ги направите в нужния формат.

07052026

Идвам да оставя линка за copy.fail за исторически цели. Много е интересно как има уязвимости, които са well known и не са пачнати от години. Тук оставям и по-дългия writeup по темата https://xint.io/blog/copy-fail-linux-distributions

Има два начина за mitigation:

Module unloading (без рестарт, за текущия kernel):

# Blacklist the module to prevent it from loading
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf

# Remove the module from the current kernel
sudo rmmod algif_aead 2>/dev/null || true

Правилния начин (с debian based distributions):

sudo apt update && sudo apt upgrade
sudo reboot

Ако използвате WSL тогава отвътре в инстанцията няма да можете да фикснете проблема, трябва да вдигнете версията на wsl kernel-а с:

wsl --update

Ако използвате multi-tenant среда, CI/CD runners или workloads, които са containerized имплементирайте seccomp профили за да блокират създаването на AF_ALG сокети.

Понеже fix-а е в linux kernel фикса е най-добре да се приложи с рестарт, защото дори и да имате един user в системата не е сигурно дали нямате други уязвимости/backdoors така, че uptime reset не е по-важно от този фикс.

И успех на всички, които трябва да bake-ват нови images и да деплойват (особено пък тези, които имат решения, които имат общо с linux internals).

dev.bg WordPress ot keep yourself positive

Добре де, нещата малко ескалираха при подготовката за DEV.BG – от bulletpoint lecture (която лесно може да отиде към death by powerpoint) взех, че направих intentionally vulnerable WordPress plugin и тема, които са с повечето известни уязвимости (като гравитацията е около OWASP® Foundation). Всичко това много добре документирано (умря циганката …) и с абсолютно всички примери, които дадох и на почти двучасовия workshop.

Част от темите, които засегнах бяха класическите (и най-разпространени):

* Cross-Site Request Forgery

* Insecure Direct Object Reference

* Remote Code Execution

* Supply Chain Attack

* SQL Injection

* и още няколко дребни

Всичко това в docker compose (с команди как да си вдигнем всичко и как да го затрием), който тръгва точно по начина по който вървеше при мен на демото. И понеже моята същност се връща отново и отново в първата ми голяма сцена на QA: Challenge Accepted когато говорих за performance testing не се сдържах и добавих опция да напълним празния WordPress с доста данни (които са близко до реалните такива по това, което виждам поне в www.nedko.info ) и да направим benchmark с тези данни, след оптимизация (каква – в документацята) като има дори и PoC за с и без Redis caching.

Вътрешното ми чувство обаче ме спря ден преди събитието и реших, че понеже този webinar така и така ще отнеме половин работен ден по-добре да дам всичко от себе си. И ето, че вече имаме и скенер за уязвимости (wp-scan), дори и демо за bruteforce с enumeration & dictionary атака, nginx и PHP препоръки за фиксове на OS ниво и сигурно още неща, които забравям.

Мисля, че това е най-пълния списък, който съм намирал в интернет по темата хем за сигурност, хем за WordPress особено като се има предвид и демо плъгина и темата. Всичко това под MIT лиценз.

Линк към репото:

https://github.com/NedkoHristov/WordPress-Security-or-keep-yourself-positive-dev-bg-webinar

Благодарности на Nemetschek Bulgaria, които за пореден път ми се връзват на налудничевите идеи (скоро идва анонса на нещо много голямо) и на DEV.BG с които организацията както обикновено, е страхотна.

Излишно е да казвам, че всичко това е само за обучителни цели.

Ако някой има интерес към материята и иска нещо, което не е вътре – пишете, интересно ми е и ще надграждам.

// копие на поста ми от linkedin