Tag: Security

Лекция – “Security Testing of WordPress”

На 24.02.2017 ще говоря на WordPress meetup-а за security testing на WordPress, както писах скоро.

Ще говоря за три основни неща:

  • Platform security – do’s and don’ts какво трябва за да защитим WordPress. Ще има разни добре извесни неща, систематизирани в един малък manual, който ще бъде публикуван и тук;
  • System security – ще поговорим малко за сигурността на server-side ниво. Ще обсъдим разни идеи свързани със nginx/apache и ще ви покажа моя анализ защо НЕ трябва да използваме WP security plugins изобщо;
  • Overall security – общо съвети за това какво трябва и какво не за да поддържаме блога си жив и издрав.

Понеже ще имам около 40 минути + 10 минути за въпроси най-вероятно ще има две версии на лекцията – една кратка, която ще презентирам и една по-дълга, която ще живее в този блог.

Отговори на незададените въпроси:

  1. Нива на знание няма – съветите са за хора, които ползват WordPress без значение дали са съвсем нови в това или са стари кучета. Голяма част от съветите могат да се реализират с няколко клика на мишката;
  2. Примерите, които ще дам, особено за server side са приложими за огромна част от уеб, не са само WordPress specific. Повече инфо ще има в overall security talk-а;
  3. Както казах по-горе ще има две версии на лекцията – първата, която ще използвам за WordPress meetup-а и втора, която ще е доста по-детайлна и ще е нещо като manual в който всеки може да види разни интересни неща свързани със сигурността, систематизирани. Ще има и английска версия (търсят се proof-readers);
  4. Линк към събитието можете да намерите тук. Събитието е напълно безплатно и необвързващо с каквото и да е било (няма да ви карам да говорите много, обещавам). Локацията е Фестивален и Конгресен център, зала 8 (ще има разлепени табелки за ориентация).

Приема всякакви интересни предложения по темата в коментар по-долу.

Ваш,

Недко.

Note – влизам във войната около “Do’s and Don’ts” и “Dos and Don’ts”. Моя избор е и препоръката на The Associated Press, които вярвам знаят как да пишат.

Edit – лекцията и презентацията можете да видите по-долу. Благодаря за пълната зала и любезните организатори.

13.02.2017

Студен Понеделник. Исках да карам сутринта, но дори не съм си чул 15-те аларми. Вечерта смятам да изкатеря баирите на Аксаково или на Кранево. Ще видим как ще е времето, но предполагам, че няма да се спра освен ако не е заледено. В момента е около -2.

И новината на деня – откриха уязвимост в abv.bg

10.02.2017

Петък е, петък е, крещеше черния дроб…

Снощи реших най-накрая да изляза и да побягам малко. Като се навлякох изглеждах на нещо средно между дебелия дядо Коледа + елена му. Тръгнах от Севастопол по долната част на морската градина, после през Почивка (шибания баир пак ме остави без въздух!), после по черните касъци до свлачището, през Станчовата алея, ФК и Севастопол. Точно 8 км за един час. Следващия път – повече. В strava профила ми можете да видите и маршрута + две размазани снимки на пустата морска градина.

 

Днес стана ясно, че ще говоря на WordPress meet-up Varna за “Security testing of WordPress”. Който му е интересно да заповяда.
Ще си говорим за сигурността в платформата и за системна сигурност също. Така или иначе имам мераци да направя едни тестове на nedko.info свързани с bruteforce заплахи така, че ще имам и готов материал до тогава.
Ще покажа и няколко инструмента за self-diagnostic на WP и Do and Don’t. Ако на някой му е интересно нещо повече може да драснете един коментар.
Освен това ме поканиха на Cloud Conf 2017, което е сериозно събитие за cloud development/cloud engineering. Темата най-вероятно ще е за 2FA, но ще пиша повече като има развитие.

 

Очертава се вълнуваща лекционна 2017 година.

In other news:

marvin

Началото

Около 2001 година започна интереса ми към WEB. И с времето се ориентирах към Joomla. Тогава бизнеса вече знаеше, че няма да му се размине без WEB и с времето направих доста сайтове (някои от тях са още online). И след време теглен от желанието си за собствено местенце в интернет и място където да пиша започнах да мисля за стой блог/ресурс в който да пиша разни неща. И така се роди идеята за Nedko.info – блог с интересна информация за web, малко смешки, урочета и т.н. Взех си хостинг в sueprhosting и сложих една Joomla 1.0.x
С времето интереса ми към него замря малко, но го оставих да живее. Няколко години по-късно (и един drop, защото не внимавах с времето за подновяване на домейна) реших да го съживя. 2014 година беше времето в което започнах с блога си в този му вид. Първо поствах мои стихове и разкази, после интересни IT неща, малко простотии и днес блога е изцяло персонален + малко интересни неща, които намирам ежедневно.

nasam.be

nasam.be е втората ми идея (тогава за социална мрежа, don’t blame me – всеки тогава искаше социалка), която датира от 2009 г. С времето слагах разни неща. В момента имам един status page там, като скоро ще мигрирам Joomla базата към WordPress и ще вдигна сайта със старите ми писания.

 

Избора на хостинг

Малко след като си купих първия хостинг се чудих защо аз не направя нещо свое? Звучи напълно логично за 15-17 годишен, но реалността се оказа различна. И така с времето все повече и повече изпитвах ограниченията на cpanel, трудностите в това да не знаеш какво става отдолу, кой има достъп до твоите данни и какво би било да можеш да направиш service nginx restart.

След няколко опита (включително вдигнахме един университетски сървър, а малко по-късно имах проект с мои приятели от университета и вдигнах един ubuntu server в таванското помещение на един от приятелите. Проекта се казваше 5heads.eu) останах на superhosting още няколко години, но 2016 беше времето в което трябваше да изляза от комфортната си зона и да направя нещо, което съм мечтал прекалено много време. Намерих vultr.com – VPS (virtual private server) за умопомрачителните $5 месечно и реших да го наема за няколко месеца и да видим дали transition-а ще е лек.

Marvin

marvin е параноичния и вечно депресиран свръхинтелигентен робот от “Пътеводител на галактическия стопаджия” на Дългaс Адамс.

marvin работи с Ubuntu. Всичко тръгна. Или поне по-новите проекти. Имам 2 сайта на античната Joomla 1.5, които са невъзможни за ъпдейт към по-нов бранч (има custom решения, но не и универсални такива) и започнах да търся. Оказа се, че има решение да пусна две отделни PHP-та на nginx с fpm (ако някой има интерес ще пусна инструкциите тук). Отне ми цяла вечност да ги подкарам поради различни проблеми и най-вече това, че за пръв път пипах nginx.

След като подкарах всичко реших, че е време да сложа Let’s encrypt сертификати на всичките си сайтове и сега си светят в зелено. Доволен съм. Статия за това как го направих ще пиша скоро.

 

Хостинг в marvin

През целия си живот съм бил привърженик на споделянето на знания с другите и marvin не прави изключение. VPS, който ползвам в момента е със следната конфигурация:

  • 1 CPU;
  • 2 GB RAM memory;
  • 50 GB SSD storage;
  • 2 TB bandwidth.

В този си вид мога да споделя малко място с FTP достъп, mySQL база данни и сертификат от Let’s Encrypt безплатно за всеки, който пожелае това и ми даде достатъчно добър довод (от типа на – студент съм, ученик съм, нов съм в бранша и не искам да си взимам хостинг за сега).

Edit – към септември 2017 г. marvin беше ъпгрейднат от 768 мб рам към 1ГБ, а storage-а му – от 15 SSD към 25 GB SSD.

Към Май 2021 г. marvin се търкаля на DigitalOcean с 1vCPU (avg CPU usage за последните 14 дни – 10%), 2GB RAM (avg RAM usage за последните 14 дни – 55%) и 50GB SSD (avg Disk usage за последните 14 дни – 83%).

 

Бъдещето на marvin

Надявам се marvin да не свърши като робота в книгата. Искам да подкарам няколко услуги на него като една от тях ще е wpscan за web, ще има gitlab и най-вероятно munin и backup service (вероятно duply или прост скрипт използващ rsync).
Към marvin смятам след време да присъединя още един, който ще е на друг VPS provider, който ще играе ролята на failover и DB replication service.

 

slartibartfast

И ето, че днес (15.02.20117) вдигнах още един VPS, този път на digitalocean, който ще играе ролята на backup, replication и failover solution на marvin. Хостинга по традиция е от $5 и ще свърши много повече отколкото имам нужда.
Скоро ще пиша в отделен пост какво съм вдигнал и как на сървъра.
В момента прехвърлям и nasam.be към него за да имам асоцииран домейн с който да си играя.

Ъпдейт към 27.05.2021 – slartibartfast е мъртъв от година и повече. Доста по-изгодно е да имам един по-голям VPS с повече RAM и диск отколкото два и колкото и да не ми се искаше теглих ножа на slartibartfast и се наложи да забравя за failover и remote backup.

vortex

Вече писах за vortex, но би било редно да направя honorable mention за него и тук. Откакто съм DevOps виждайки scale-а с който работим и всичките услуги, които мога да хостна и да науча не видях смисъл да търкалям един нещастен VPS (не, че не може на DigitalOcean, но освен цената идва и отговорността за поддръжката и правилната експлоатация на сървисите) и реших да взема нещо в нас. Повече инфо за това можете да намерите в статията, която съм линкнал по-горе.

 

Changelog

И понеже много обичам да пиша changelogs реших да го сложа директно в тази статия:

  • Full SSL support преди започването на този blogpost;
  • Пълен бекъп на базите данни ежедневно;
  • swap support – on (защото на VPS-а на който съм не е пуснат по default). Как да си активирате swap-а на кой да е VPS можете да прочетете тук;
  • Вдигнах slartibartfast на 15.02.2017 използващ услугите на digitalocean.com
  • 16.03.2017 г. marvin вече работи с HTTP/2 и HSTS (HTTP Strict Transport Security). Резултата от SSLLabs можете да видите тук;
  • 18.07.2017 г. – marvin вече поддържа livepatch, което ще минимизира downtime-а му до минимум.

100% SSL поддържка на marvin

Днес най-накрая успях да подкарам 100% SSL support на всичките ми хостнати проекти с Let’s Encrypt.

Без проблеми естествено не можеше, но бяха решени с касапския метод:

[code]aptitude remove letsencrypt[/code]

[code]aptitude purge[/code]

[code]aptitude install letsencrypt[/code]

Заедно с това сложих и letsencrypt renew, защото сертификатите са валидни само три месеца. Сега ще чакам да видим след три месеца дали всичко ще стане автоматично :)

13.01.2017

Снощи ходихме до фитнеса да го видим дали е още там. :) Залепнах за велотренажора, направих една загряваща петкилометрова и после пуснах програма за един час да видим колко ще мога да изкарам. Очаквах около 30 км/ч средна, но се оказа, че забих на 27.3 км/ч (което не е чак толкова много при положение, че нямам баири). И все пак не беше лоша тренировката.
Тегло от снощи – 99 кг. Има надежда.

 

Днес разбрах, че норвежеца Viljami Kuosmanen (това не мога да го произнеса на глас) показа на Google, Apple и Opera foundation как лесно може да се възползва от един елементарен security flow (макар, че по дефиниция не бих го нарекал така). Идеята е, че ако имам поле с id=name autofill на браузъра ще ми предложи да попълня полето, но хватката е ако имаме няколко скрити полета с margin-left:-500px. В случая са скритите полета са phone, organization, address, postal и city. Така при $_POST освен данните, които виждаме (name и email) ще постнем и останалите (ако са въведени в autofill-а). Хубавото в случая е, че пароли и CVV на кредитни карти не се изпращат.

Можете да разгледате live demo-то на скрипта и да си поиграете. Има го в github в горния линк.

 

  • In other news намерих един много приятен Online JSON viewer. Върши страхотна работа при визуализация на JSON и за по-лесно намиране на счупен такъв;
  • От същата поредица намерих и един много приятен online DIFF checker, който може освен да ви покаже в много приятен вариант разликите в два текста и да ви запази за определен период стринговете. Ето и един вариант – https://www.diffchecker.com/XuNaSlwI
  • Малко приятна фонова музика;
  • А случайно да имате ли проблеми със запомнянето на response codes като мен? HTTP Status Cats API е вашия помощник. Този малък инструмент събира двете най-важни неща в Интернет – котки и status codes. Якото е, че можете да го викате и по линк – https://http.cat/[response code]. Например едно от любимите ми https://http.cat/416 :D
  • Един малък thread за любими книги свързани с Quality Assurance Engineering. Като преглътнем индийците има някои интересни четива;

 

И за накрая едно тъжно интервю от Саймън Синек за хората на Новото Време като го наричахме преди или за децата израстли след 2000 година. Силно препоръчвам ако сте от тях или сте родители на такива деца.

10.11.2017

Днес деня започна с поезия. Този път ред е на Мария Донева и нейния блог, който влиза в личния ми feedly моментално:

 

Тя се готви да пътува.

Тя се готви да пътува.
Вече знае накъде.
Но макар че се шегува,
тайна мисъл я яде.

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

трябва да развърже възел,
трябва да прескочи плет,
да надвие своя мързел,
да изхвърли много смет.

И четирите саксии
на сираческа съдба
да остави. Да изтрие
спомена за веселба.

Да извика студовете.
Да си спомни за дъжда
във леглото, на ръцете –
пръстените със ръжда.

Да не мисли за доброто.
Да не мисли за вина.
Да си навлече палтото.
Без целувка на уста

да потегли, да замине –
вече знае накъде.
Да остави да изстине
окаденото кафе.

Да не мие тези чаши,
да не готви за обяд.
Да се радва, че се плаши,
Да не търси път назад.

Да не спира. Да не чака,
време е да се реши –
който пак я е разплакал,
няма да я утеши.

Тя се готви да пътува,
но да се стопи снега.
Ще избяга, ще отплува,
но не знам кога,
кога…

 

 

Нещо интересно, което намерих днес:

  • Новината на деня – след като verizon купиха огроман част от Yahoo остатъка от компанията се преименува на … “Altaba”??? Мисля, че по-тъпо име не е било възможно да бъде измислено;
  • Chrome Backdoor – Chromebackdoor is a pentest tool, this tool use a MITB technique for generate a windows executable “.exe” after launch run a malicious extension or script on most popular browsers, and send all DOM datas on command and control;
  • 3 Ways to Permanently and Securely Delete ‘Files and Directories’ in Linux;
  • И едно очарователно видео. Канят няколко badasses в стая и малко по-късно влиза малко момиченце, което без да казва нищо започва да си разтоварва нещата от раничката и кани лошите чичковци на по чаша кафе/чай/торта (пластмасови). И разтапя тия лошите татуирани и начумерени хора с една усмивка;

QualityAssurance.pro brought back to life

I bought the perfect domain for a quality assurance blog about four years ago. It’s called QualityAssurance.pro. I started the project but it failed. And it failed for the following reasons:

  1. Unclear concept;
  2. Inefficient article structure;
  3. It took me way more time to set up the WordPress theme to write a couple of articles.

For those four years I learned a lot and I recently launched Nedko.info (personal humorous blog in Bulgarian). This made me feel like the time to bring QualityAssurance.pro back to life is now!

My concept for it is very simple:

  1. Highly targeted content based on the following subject mainly:
    1. Software Quality Assurance;
    2. Development;
    3. System administration (mostly *unix based, but Windows will be on the list somehow :) );
    4. Practical tips and tricks, tools.
  2. Some fun and geeky projects;
  3. Brand new, very clean and simple design that makes reading as easy as possible;
  4. The fanciest logo the world would ever see!;
  5. “Article request form” that will gather ideas for new articles;
  6. NO commercials, no AdWords, no clickbait and etc (the people who know me they know that I hate that kind of stuff);
  7. Articles written in English only. That should make me improve my English (or at least I hope so!);
  8. All IT related posts from Nedko.info will be translated there so there will be no information loss;
  9. Nedko.info will remain my personal blog (in Bulgarian only);
  10. Changelog to keep you up with the platform improvements.

So stay tuned.

Cheers,
Nedko.

Недко разказва: За сайта на МОН, МВР, НАП, OFFNEWS.bg XSS атаките и OWASP

Днес за пореден път се доказа твърдението, че добрия програмист не пише само функционалност, която да работи, а такава, която е съобразена с множество фактори – скорост, сигурност, логичност. Този път сайтовете са Министерството на Образованието и Науката и Министерство на Вътрешните Работи и новинарския сайт OFFNEWS.BG бяха мишената използвайки очевидно една и съща търсачка. И да ви кажа честно – срам е, че някой не си е escape–нал параметрите за да предтврати един прост XSS, които потребителя подава. Това е нещо тривиално, нещо, което всеки, който пише код трябва да знае и използва. Защото знаете – когато пишем никога не трябва да имаме доверие на потребителите. Ни-ко-га.

Continue reading

Articles TODO

Тук ще направя един списък със статиите, които смятам да напиша в (близко) бъдеще:

  • IT Stuff:
    • WordPress checking tool trough Linux console;
    • Hosting provider vs VPS – плюсове и минуси и къде хоствам аз (и защо);
    • Security – daily feed в който ще пускам разни security issues:
      • sqlmap;
      • wpscan;
      • metasploit.
    • Quality Assurance материали – простотиите ще ги пускам тук, а по-сериозните неща – директно на другия ми блог – QualityAssurance.Pro
  • Музикална секция – няма да съм аз ако не пиша за музика. Крайната ми цел е една малка библиотека от знания, които да мога да дам на теб, посетителю. Това ще включва история на групи/изпълнители/песни, кавъри и плейлисти. Имам от всичко по предостатъчно;
  • Спорт – основно велосипеден спорт, основно шосеен такъв, основно от Global Cycling Network и Bicycling.com и от личен опит :) ;
  • Секция “Today highlights” или-там-както-го-кръстя където ще слагам проекти, цитати (няма да са на Пабло Куелю, обещавам), интересни неща, които съм намерил (комикси, ресурси, новини) и т.н.;
  • Изкуство – основно визуално, свързано с по-горната секция, но по-профилирано и подредено;
  • Секция с QA/Dev humor – общо взето някакви JPG/GIF–ове с текст за разведряване :) ;

 

Чувствайте се свободни да пускате и някакви неща, които ви интересуват в коментарите по-долу.