2015-03-26 drop database

March 26th, 2015 by Vasil Kolev

Днес получих поредното потвърждение за любимия си израз “Системният администратор се учи на гърба на потребителите”.

Правехме някаква миграция на obshtestvo, и около нея се налагаше няколко пъти да се drop-ват и преналиват едни бази. Хванах се на няколко пъти как съм пуснал DROP DATABASE и чак след това съм погледнал къде съм го пуснал, и не го бях сбъркал нито един път.
(нещото беше малко под пара, иначе гледам да правя нещата по-бавно)

Това не-сбъркване е продукт на МНОГО омазвания преди това, изгубени данни, възстановяване от backup-и и псуване. Трябва да има такива практически, реалистични упражнения и занимания за хората, които се занимават с админстване, просто защото “добрите практики” не стигат, особено като човек бърза, а аз още твърдя, че добър админ се познава по това как се справя като го вдигнат в 4 сутринта с махмурлук…

И по темата, тия дни се каня да си обявя новия не-курс, подробности за това – скоро.

2015-03-12 Отмениха задължението за data retention

March 12th, 2015 by Vasil Kolev

Днес Конституционният съд на Република България обяви за незаконен data retention-а (сезиран от Омбудсмана по молба на Асен Тотин). Днес по-късно се чака пълното мнение на съда, но като цяло задължението на ISP-тата по въпроса отпада.
(самите членове от закона може да се видят тук, вече има и новина с подвеждащо заглавие)

Искам искрено да помоля всички, които побутваха тия неща в закона и цялата директива за data retention да идат да се застрелят и да спрат да ни губят времето с малоумията си.

2015-03-08 RailsGirls – март 2015

March 8th, 2015 by Vasil Kolev

Този петък и събота се поведе поредното издание на Rails Girls Sofia. Аз бях там да помагам инфраструктурно, и около някакви разговори стигнах до странни изводи…

(Като за изясняване на термините, искам да кажа, че “социалната програма” в смисъла в който аз я ползвам е нещо като героизма – нещо важно, полезно и от което реално не би трябвало да има нужда, ако нещата си бяха наред. Това е начинът да се внесе малко повече нужно равенство в една система и да се загладят по-острите ѝ ръбове, и реално малко системи с достатъчно хора в тях могат да си струват да се живее в тях без нещо такова.)

RailsGirls е социална програма на IT обществото. Тя цели да помогне на едно малцинство (жени, които нямат никакъв опит и твърде малко опции) да видят какво представлява програмирането, какво могат да правят те и дали би било подходяща област за тях. Като цяло целият формат е ориентиран така, че в ден и половина да може да покаже достатъчно основни неща, за да си изяснят хората какво е това програмирането, какво иска като мислене и дали да продължат опитите да се занимават.
На теория от това не трябва да има никаква нужда – това трябва да се случва с всички хора в училище (заедно с много други варианти за професионално развитие), където хората да са придобили някаква основна представа, след което да могат и след 10-20 години да решат, че това им е интересно и да седнат да го учат (я с online курсове, я в разните софтуерни академии, или във ФМИ на СУ или ПУ). Реално обаче в момента нивото на преподаване на информатика не се подобрява, а върви в посоката “да обясним на децата как да са юзъри” (против което ние едно време правехме опити да се борим, и май пак трябва).

Та по всякакви такива причини ние реално правим социални програми – турнето, OpenFest, курсовете из ФМИ (дето са твърде много, че да ги изброявам) – реално опитвайки се да запушваме дупки в съществуващата система. Не знам дали не е загубена кауза, но мисля, че успяваме да направим някаква разлика и браво на всички хора (особено на Митьо), че бутат подобни проекти.

(и който не е щастлив от това, което се прави, може да се заеме да направи нещо по-добро. Ще помагаме даже…)

2015-03-01 мина крокодиловден

March 1st, 2015 by Vasil Kolev

Отпразнувах пак крокодиловден. Направих го на 27ми, понеже 23ти се падаше в понеделник, а от МТСП ме помолиха да не се пада преди работен ден, че от колективния махмурлук БВП-то на страната видимо падало.

На хората им хареса, няколко казаха, че трябвало да празнувам рождени дни всеки месец (щото така се виждали всякакви хора). Миналата година протестите вършеха тая работа, като се стопли, може да помислим за още някакви…
(или де да знам, конференция само с една лекция и двудневно afterparty …)

Следва стандартния списък подаръци, доколкото успявам да се сетя:
Бутилка Laphroaig (Мартин);
Бутилка Glenfiddich (Щеряна);
Котка (звучи ето така), или по-точно Digitech bass synth wah ефект (bofh);
Билети за Apocalyptica в Пловдив (там съм ги слушал за пръв път преди бая годин) (iffi и Калоян);
Ваучер за Декстрофобия и един за 3keyrooms (едното от Ива/Калоян, другото от Явор/Таня и още някой, не помня кое как се падаше);
смарткарта за pgp ключове и четец за нея от Merlijn и Моника (ще си сменям явно ключа тия дни);
Един zero-day от RealEnder (тестван, работи, да видим дали иска да го публикува);
Бинокъл (не помня от кого);
Мегафон, ще свърши добра работа по конференциите (Пешо);
Лампа и крушка за нея (Пенчев, Велин, Боян), че нямало у нас достатъчно приглушено осветление (замислих се да си взема още 2-3);
Lego, някакъв багер (Боян), разни хора изявиха вече желание да идват у нас да го сглобяват;
Метроном (Кънев) (без коментар);
Книгата “Плетене на една кука for dummies” (Никсън);
Книгата “Никой не обича крокодила” (Бобсън), някаква древна руска от 1974та;
Мангата “Fullmetal alchemst”, 1ви том (Антоанета);
Книгата “Алекс” на Пиет Льометр (Бойчо);
Книгата “Уискито на Шакълтън” на Невил Пийт (Миши), заедно с една картичка, която вероятно Снежи няма да ми разреши да сканирам и кача, но е много забавна;
“Книжка за зайчетата-самоубийци” (Владо младшия) – питайте google за bunny suicides;
Торбичка желирани крокодили (fredson);
Една рисунка на глухарчета (Нели);
Плато за сервиране на мезета (Мариела и Румен);
Чаша с крокодил в нея (нещо такова) (Румен);
и финално, майсторски клас за уиски тестване (от голяма група хора – Митьо, Стефан, Боян, Яна, Марио, Владо Василев, Стеф, Витков, Недко, Точо, Петко, Мариян, dzver, Кунев и Гери, Благовест, Печкин, Пламен и pCloud-ския екип), както и торба родопски био-картофи.

(извън тия неща, Снежи ми подари странна възглавница/шапка за спане навсякъде. Невероятно плашещо изглеждам с нея…)

Ако се сетя/открия още нещо, ще дописвам.

Update: Също така едно bonsai дърво (от Наков), което май не става за ядене.

2015-02-27 Reverse engineering for beginners

February 27th, 2015 by Vasil Kolev

Тия дни приключих с първата редакция на Reverse Engineering for Beginngers на Денис Юричев, и снощи ми е merge-нал последния pull request.

Книгата е много добра за начинаещи не само в reverse engineering-а, но и за хора, които искат да видят как работи отдолу асемблера и какво генерират компилаторите. Пълно е с всякакви интересни факти и като цяло не е много за четене (въпреки че генерираният pdf е около 950 страници). Има вид на подходящ учебник за един нормален едносеместриален курс, та даже някой може да реши да пробва да води по него :) Книгата е под creative commons лиценз, и може да се ползва за всякакви цели.

По принцип source на книгата може да се намери в github, авторът приема смислени редакции. Аз мисля да направя втори пас за редактиране, понеже досега оправях английския да звучи като английски и да е ясен, но може да се направи доста по темата да звучи наистина добре. Ако някой може да помогне с нещо друго (LaTeX-а не е чак толкова сложен), няма лошо да праща :) В todo-то на автора има “MIPS, Objective-C, Visual Basic, anti-debugging tricks, Windows NT kernel debugger, Java, .NET, Oracle RDBMS”, а в самата книга на доста места има “TODO” (например да се опишат в appendix A разни SIMD x86 инструкции).

2015-02-24 CitizenFour

February 24th, 2015 by Vasil Kolev

Преди ден-два Citizenfour спечели Оскар за най-добър документален филм, а вчера в Reddit имаше AMA с Glenn Greenwald, Laura Poitras и Edward Snowden.

Филмът трябва да се гледа.

Което и вече е доста по-възможно, защото въпреки че няма release-нато DVD, поради едно дело срещу филма той официално е in the public record, т.е. public domain (новина в hackernews, съдебно решение) и по случая може да се свали от cryptome, или от mirror-а при мен (свалил съм само HD версията).

Ако има желаещи, може да организираме и още една прожекция в initlab (направо да направим double feature заедно с The Internet’s own boy, филмът за Aaron Swartz).

Update: Филмът вече е и в archive.org

2015-02-11 Библиотеката на initLab и POC||GTFO

February 11th, 2015 by Vasil Kolev

Лабът си има две библиотеки и нещо като book crossing…
(може директно да гледате снимки, или да четете и обясненията по-долу)

Библиотеките са една голяма в коридора (1, 2) и една малка в рубинената стая.

В дясната част на голямата библиотека в коридора първия, втория и третия рафт са нещо като book-crossing. Там са оставени книги за раздаване, които всеки, който иска може да си вземе, и при желание да остави нещо друго.

В лявата и част първия рафт е с развлекателни четива (комикси, списания и т.н.). Вторият е с разпечатаните броеве на POC||GTFO (за него съм писал по-долу), а третия, който не съм снимал съдържа тениски по една инициатива.

В по-малката библиотека са подредени по-друг тип книги, които са по-скоро за вътрешна употреба. На първия рафт има разни средно-полезни технически книги, на втория са подбрани по-ценните книги, а на третия има различни неща, за които май няма общо мнение дали да не ги раздадем и по принцип една част трябва да отидат в book crossing-а. Също така там има един специален четвърти рафт, с подпори – дебели книги, чието съдържание не е особено полезно, но са много добри да се подпре нещо с тях.
(сега забелязах, че и в лекционната има едно прилично количество подпори)

POC||GTFO (т.е. Proof-of-concept or get the fuck out) е едно доста интересно списание, правено от някаква част от екипа на phrack. Издава се под САМИЗДАТ лиценз (т.е. може да го печатате и т.н., но трябва да отпечатате копия и за хората около вас), и е бая забавно.

До тук в съдържанието му могат да се срещнат неща като “как да направим един файл да е pdf и swf”, “javascript random генератор”, “операционна система в 512 байта и pdf файл, който boot-ва”, “как да познаем, че сме под QEMU, а не на истински MIPS” и всякакви други странности. Прилична част от нещата имат практическо приложение (ако се занимавате със странни/весели неща), а останалите са приятни четива за забавни хакове.

Провеждам една инициатива да печатам списанието, и в initLab има до тук всички броеве на хартия. Пращам и по другите български hackerspace-ове по някакво количество броеве, само последните два още не са пратени (понеже трябва някой да има път към София:) ).

Ако ви е интересно (а би трябвало да е), погледнете моя mirror, или минете през близкия ви лаб, за да видите хартиен брой :)

2015-01-27 maintenance

January 27th, 2015 by Vasil Kolev

Днес следобед (27.01.2015) ще рестартирам marla.

Update: приключи успешно.

2015-01-26 “The Imitation Game” и Алан Тюринг

January 26th, 2015 by Vasil Kolev

Тия дни гледах малко филми, които ме докараха до желанието да попиша.
(човек би си помислил, че като безработен ще имам повече време за такива неща, ама на…)

Гледах “The imitation game”, след което прочетох “Alan Turing: The Enigma”(по която уж е правен филма) и крайното ми мнение е, че не струва:
– Ненужно драматичен е, през цялото време основната ми мисъл беше “тука прекаляват”;
– Избрали са за ролята на Тюринг актьор, който играе аутисти и психопати (и докарва още повече драматичност);
– Сериозно се различава от реалността (има доста неща в wikipedia по въпроса) – например Enigma-та е счупена от поляците, след което англичаните доразвиват идеята, като ролята на Тюринг е сериозна, но не е като на единствен човек, който е бутал цялото нещо;
– Споменали са само малка част от работата му, криптоаналитичните му занимания не са по-важни от машината на Тюринг и приносът му в създаването на информатиката (“Computer science” звучи по-подходящо, ама “компютърни науки” не изглежда добре). Силно препоръчвам на всички програмисти и изобщо компютърджии “The Annotated Turing: A Guided Tour Through Alan Turing’s Historic Paper on Computability and the Turing Machine”, обяснение на paper-а му по темата изчислимост, в който могат да се видят в общи линии за пръв път различни основни програмистки похвати.

(самата му биография, която съм споменал по-горе не препоръчвам толкова, написана е доста зле)

А днес гледах “Citizenfour”, на чиито принцип е трябвало да направят филма за Тюринг.
(и това е филм, който трябва да гледате, и за който силно се надявам (и изобщо не вярвам) да го дават по кината в България)

2015-01-20 записи от OpenFest 2014

January 20th, 2015 by Vasil Kolev

И най-накрая сме готови с (почти) всички видеа от OpenFest 2014, може да се свалят от архива, или да се гледат в тубата. Липсва ни само едно видео (“I reject your reality and substitute my own”), което самите хора ще си го редактират и ще качат.

An Open Letter to Mr. David Cameron

January 13th, 2015 by Vasil Kolev

(this is a guest post from Boyan Krosnov, the original is here)

An open letter to Mr. David Cameron,

Sir,

This letter is in reaction to you statement: ” But the question remains: are we going to allow a means of communications which it simply isn’t possible to read. My answer to that question is: ‘No we must not’. “Source: link

Mr. Cameron, firstly this letter has nothing to do with recent events in Paris. It is solely addressing the issue of private communications.

End-to-end computer-assisted encryption with ephemeral keys has existed on this world since at least 1977. Even 130 years ago, in 1885, the one-time pad was already invented. If you don’t understand what these are, then please ask your technical advisers. Essentially, someone with a book (for one-time pad), a pen and a sheet of paper can encrypt and decrypt secret messages from/to a party located on the other end of the world. They can communicate these messages in public using a variety of low tech means. For example, they could post innocent-looking messages in a classifieds section of a newspaper. Anyone, without the necessary procedures and a copy of the pad, would not be able to know the content of their communication, and if the scheme is implemented correctly, would not be able to detect that a conversation is taking place. This is not a new development. Even the modern idea of a Sneakernet has existed at least as long as the Internet has existed.

Short of inventing a time machine, your goal is unachievable. :)

On a more serious note though, what you are promoting in your speech is scary and deeply immoral.

Since end-to-end encryption exists, I know of only three ways you could try to achieve your goal of total on-demand, and probably retro-active snoop-ability of communications. These are ineffective and in some cases even impossible to implement, but anyway here they are:

  • Option 1. to have a backdoor in every end-point device manufactured in the UK or brought in through the UK border. This approach does not prevent a sufficiently dedicated person from building a secure end-point from scratch, like with the one-time pad and newspaper approach I mentioned. Backdooring online services is a sub-case of this.

    and/or
  • Option 2. to introduce a key escrow requirement for all encrypted communication beginning and ending and maybe even crossing the UK, and also detect and block all encrypted communication, not conforming to the key escrow rules. The latter might be impossible to implement, but that’s a whole other matter.

    and/or
  • Option 3. Ban encrypted communication altogether. Which would tear down the whole of what you call “the digital economy”, and revert the UK back to a technological state resembling the 80s, while the rest of the world moves on.

The reality of the matter is that all three, apart from being totally ineffective in dealing with the threat of isolated terrorist acts, open the door for massive abuse, not just by the government, but also by related and unrelated third parties. Other people have explained this a lot better than I ever could. For example, in Cory Doctorow’s talk here. To quote just one line ” – … but we both understand, that if our government decided that weaponizing water-bourne parasites was more important than addressing them and curing them, then we would need a new government.”

Let me be clear on one point: We don’t trust nation states with our private thoughts and conversations. We need private communications not just for the paranoid, perverts and criminals, but for businesses, law enforcement, journalists and for regular every-day private conversations between friends and family members.

Your scheme would ruin private communication for all of us. The bad guys are already using secure and undetectable communication media.

Privacy is the opposite of total surveillance. You can’t have both. So unfortunately, for the goals you outlined, we need to have a working and secure private communication for everyone in the world to use, regardless of their sex, skin color, sexual orientation, age, religious views (or lack thereof), wealth, social status or intent. Your scheme for a total surveillance state must be stopped.

With good meaning and respect,
Boyan Krosnov
Sofia, 2015-01-13

(c) 2015, Boyan Krosnov, public domain

2015-01-06

January 6th, 2015 by Vasil Kolev

Някои дреболии, дето изникват тия дни:

Описание как да си настроим ssh-а, така че да е минимално vulnerable към възможните проблеми (дето се мисли, че съществуват след лекцията на Апелбаум)
(мисля, че автора прекалява, ама па параноята е нещо важно в нашата професия)
(събирам желание да си rekey-на сървърите)

Ще има високосна секунда юли месец. Предишния път разни неща се счупиха, не мисля, че и тоя път ще ни се размине без проблеми.

Също така, в initlab ще има лекция/дискусия на тема “Design patterns for web-application scaling”, която даже ще stream-ваме online. Ще е в общи линии админска, но вероятно ще се допускат developer-и, ако не говорят много глупости.
(няма какво да се притеснявате, vloo ни е забранил да ползваме брадвата в тоя студ, а па и земята е твърде замръзнала, че да заравяме някой)

За тестове сме пуснали initLab TV, което в общи линии върти всичките записи, дето има на va.ludost.net.

Всички видеа от 31C3 са качени, ако има достатъчно желаещи, може да организираме гледане на най-добрите.

И довърших една книга, дето май всички трябва да прочетат.

(да, правя опити да пиша по-често)

2014-12-30 31C3 ден 4

December 30th, 2014 by Vasil Kolev

И последен ден на 31C3.

Започнах с лекцията за online гласуването в Норвегия – имаше реализирана система на база на ел-Гамал (където има интересната възможност да се събират криптирани числа, без да се виждат), по принцип “стандартът” по темата е горе-долу този (не помня url-тата по въпроса). Докато тествали открили няколко бъга, но като цяло защитата в дълбочина ги спряла. Отказали са се от системата, понеже не давала нищо повече – не се увеличил броя гласуващи и като цяло гласувалите по internet не били различни от тези, които гласували на място.

“Why are computers so @#!*, and what can we do about it?” беше сравнително скучно (някъде по средата излязох да ям и го слушах през gsm-а), поредното нещо по темата как трябва да си правим кода доказуем и да ползваме технологиите за целта.

Във “State of the onion” имаше разни интересни неща, които съм си отбелязал – ooniprobe (мислех да взема една хардуерна проба, но вероятно просто софтуерното нещо ще е достатъчно), направили са TOR weekly news, и Roger е разказвал на NSA около 2008ма колко е готин TOR и във Washington post има статия по въпроса (след като едно от leak-натите неща от Snowden са били бележките на хората от NSA от тая среща).

Infrastructure review беше доста интересно, setup-ът им става все по-голям всяка година и все по-интересен, чак ми идва желание да се включа в някой екип. Гледайте го за повече подробности.

TOR deanonimization talk-а разказа как са изброили доколкото е възможно hidden service-ите в мрежата и какво горе-долу има на тях. Също така обясниха как с pattern-а на трафика, ако човек има достъп до guard node на потребителя и има достатъчно места, на които да следи изходящия трафик, има някакъв вариант да се види къде отива, както и ако имат някакъв такъв достъп до guard node на hidden service. Като цяло нищо ново, и за съжаление нямаше хубаво описание на ловенето на traffic pattern-и.

Не останах да гледам закриването, него и още няколко неща ще си ги гледам на запис като ми остане време. Имам да хващам полет в ранната сутрин и трябва да стана в 5, та ще се спи…

2014-12-23 31C3 ден 3

December 30th, 2014 by Vasil Kolev

(това го пиша в доста насмукано състояние, да се приема за оправдание за грешките)

Сутринта започна с лекция за full-body scanners, т.е. скенерите, които от известно време се ползват на американските летища и разни други места за разглеждане на пътниците. Хората бяха разгледали един от скенерите (Rapiscan Secure 1000), който работи с backscatter рентгенови лъчи. Нещата, които разказаха са, че:
– скенерът не генерира достатъчно радиация, за да е опасен (нивата са съвсем мижави), и като цяло не е лесно да е пипне така, че да е опасен;
– има начин да се подслушва донякъде образа, който вади, извън самия скенер (почти като подслушването на нечий монитор, като се знаят периодите на хоризонтално и вертикално сканиране и като може да се уловят отдалече разсеяните лъчи);
– оригиналният софтуер може да записва картинки (на ДИСКЕТА), твърди се, че тоя на TSA нямал тая функционалност;
– има вариант да се атакува машината, т.е. да се пренесе през нея нещо, което трябва да хване, по няколко начина (например като се направи да е само спрямо фона и да не се различава от него, или като се нанесе по тялото и да не се отличава от него, в случая с пластичния експлозив).
Този тип машини в момента не се ползват от TSA, понеже са искали да се отърват от гледането на “голи” хора, и софтуера да казва “еди-къде-си по човека има съмнителен обект”, а още никой не е успял да го напише (и звучи като доста безнадеждна задача).
Имаше и други забавни моменти, например как са си купили машината от ebay и се опитват да се снабдят с машина от другия вид (ако не се лъжа, с милиметрови вълни), за да изследват и нея.

Let’s build a quantum computer не беше лошо, в общи линии беше някакъв малък увод (непълен) в квантовите компютри и как човекът за две години като дипломна работа е сглобил 2-qubit-ов компютър, който работи при около 10-13 градуса по Келвин.

Между останалите лекции се засякох с Филип Пепс (от FOSDEM) и си говорехме с него и още някой по темата за техните видео записи и мрежата им, и как може да им потрябват hack-ове от типа на опъването-на-кабели-като-за-български-internet (лепена оптика с duct tape по стените, например). Има шанс да ходя до там да се забавлявам догодина…

Лекцията за NORX/Caesar беше за един конкурс за authenticated encryption, шифър с метод за прилагане. Представиха конкурса и техния участник (който изглежда интересен, но е цял шифър с метода и бая ме притеснява), направен със съвсем прости операции и като цяло доста по-прост от доста блокови шифри, които съм виждал.
Странно ми беше, че конкурса е за метод за прилагане И шифър, т.е. не просто за за метода (като нещо, което да замести GCM/CBC и компания), та за това голяма част от участниците просто ползват AES.

Лекцията за ядрените оръжия беше леко забавно, но в нея нямаше нищо, което го няма в wikipedia.

Докато си почивах, се запознах с човека от totalism.net, в общи линии hackerspace на един остров не-съвсем-в-нищото, където има net, топло е и човек може да си работи и почива спокойно, като даже не излиза особено скъпо. Bandwidth-а им не е много, но ако някой ден реша да ходя на “почивка”, може да е там…

Последва стандартния whisky workshop, на който се насмуках прилично. Харесах си сериозно само едно уиски, някакъв странен edition на glenfarcas, дето беше cask strength, 60 градуса и с истински вкус/
аромат.

Гледах лекцията за Computer science in DPRK (т.е. по темата Северна Корея), имаше интересни моменти – как имат клон на OSX с превод (почти на принципа, на който нашите хора едно време крадяха и превеждаха софтуер директно в binary-тата), как имат таблет с аналогова телевизия, клон на andoid с patch-нати app-ове (и добавени, като например един с речи на лидерите им). Като цяло доста полезна гледна точка (лекторът беше водил лекции там в един от университетите).

А лекцията за exploit-ването в perl беше адски забавна, как явно самите хора, които ползват perl не схващат някои негови кривотии и как самият език не се държи по очаквания начин (т.е. как реално погледнато някои неща в него се държат като в shell script, а не като в LISP) и какви адски забавни атаки могат да се получат (например, да се пробута аргумент който като се предаде на функция, да се приеме като два аргумента и да избута тия след него). Аз лично се смях с глас…

2014-12-28 31C3 ден 2

December 29th, 2014 by Vasil Kolev

Втори ден на CCC. Сутринта беше тихо, само в irc се обсъждаше миризмата на крака и какво може да се направи по въпроса.

Започнах с tea with RIPE, говорихме си малко за RIPE Atlas пробите и пихме чай, ама аз някъде по средата трябваше да бягам за друга лекция (това със слушането на лекциите през локалната gsm мрежа е страхотно, може да се слуша лекцията, докато вървиш към нея (и закъсняваш)).

Първата, на която ходих беше “Why is GPG unusable”, която беше сравнително бедна от страна на съдържание, имаше базови идеи, къде да четем и т.н. и как проблемите в gpg/pgp са същите от около 15 години и нищо не е направено по тях. Имаше нещо интересно – книгата “Evil by design”, която мисля да погледна.
(полезни отбелязани бележки: трябва да се тества с потребителите, cryptocat се ползва, щото е готин, identities в момента (като pgp fingerprint-а) не са особено използваеми, щото не могат да се помнят).

Telecoms & NSA лекцията беше основно историческа, като някаква част от нещата съм ги чел в “The codebreakers” (как още от първата световна война тогавашния еквивалент на NSA е събирал копия на всички телеграми), лекторът е работил в NSA и е писал малко книги по темата, като интересното сега беше една статия в the intercept, както и документ за разследването на щатското министерство на правосъдието на NSA (в което NSA се описва като криминална организация и трябва да се зачете по-подробно).

Лекцията за internet-базираното гласуване в Естония беше също доста интересна. Атаките, които те описваха бяха основно на оперативно ниво (клиенти, как можем да се доберем до инсталацията на сървъра и т.н.), т.е. самата система изглежда работеща. Спрямо post-а ми по темата имат частично решение на първия проблем – всеки може да подаде колкото си иска гласа и се зачита последния, така че човек може да гласува пред някой, да си вземе парите и после да гласува както си иска. Системата им дава QR код, който важи 30 минути след гласуването, чрез който (криптографски сигурно) може да се провери дали системата е отчела вярно за кого си гласувал.
Имаше доста интересно описание как са атакували и счупили системата за гласуване във Вашингтон, през някакъв нормален shell injection.
Като цяло освен нещата, които аз бях отбелязал съществува проблема, че реално нищо в хардуера и софтуера ни не е достатъчно сигурно, че да му вярваме. Също така, поне с това, което знаем/можем в момента, моментът с купуването на гласове/принуждаване не може да бъде избегнат и е някакъв tradeoff за всяко отдалечено гласуване.

Finding the Weak Crypto Needle in a Byte Haystack обясни метод, чрез който при криптоанализ може да се търси повторение на keystream в поток от данни. Схемата е доста проста и с квадратична сложност (което при криптографията е нищо работа) и изглежда съвсем тривиално за реализация.

Information Control and Strategic Violence не струваше, лекцията беше да ни кажат, че в Сирия има корелация между насочеността на убийствата и работещия internet (т.е. колкото повече работи internet-а, толкова повече убитите са жертви на насочено насилие, т.е. прибрани, измъчвани и разстреляни).

(Пропих кафе, очаквах това да стане чак на третия ден)

Privacy and Consumer Markets беше лекция как/защо да търсим/правим механизми за обръщане на стандартния модел – вместо да ни набиват реклами, чрез които да избираме какво искаме, да правим “задания” какво ни трябва и да можем да намираме лесно това, което ни трябва, чрез reverse auction и подобни системи. Също така имаше идеята да се комбинират достатъчно хора, за да имат нужния buying power, за да им се обръща внимание (нещо което е доста близо до kickstarter-ската идея). Беше кратък обзор на нещата, но като цяло с добри идеи.

(тези две лекции бяха по 20-30 минути, и това изглежда като много лоша идея, понеже почти нямаха съдържание, толкова кратките май не трябва да ги има в програмата)

Някъде по това време изскочи тоя tweet, с който май съм бая съгласен:
(18,46,24) marlabot: (notice) wikileaks: Politics at this year’s CCC is conspicuously provincial and stupid. No-one from BRICS. No Ukraine. No Bitcoin. Endless security mercenaries.

Mining for Bugs with Graph Database Queries беше страхотна лекция – публикували са инструмент, който се казва Joern, който може да търси интересни pattern-и върху един граф, наречен от тях code property graph, който е комбинация от AST дървото и няколко други графа, които компилатора прави по време на компилация. Идеята е, че знаем как изглежда тип vulnerability (единия от примерите – malloc() и memcpy(), където изразът за дължината на първото е различен от тоя на второто и работят със същия буфер), можем лесно да намерим всичките срещания на pattern-а му и после да ги прегледаме. По принцип е инструмент за хора, които audit-ват код, но с внимателно писане на тестовете може да се използва и за regression testing, инструменти за автоматичен audit, разпознаване на бъгове чрез pattern recognition и т.н.

Но ако трябваше да отбележа само една лекция от деня, щеше да е тази на Jacob Appelbaum и Laura Poitras, “Reconstructing narratives”. Заглавието не звучеше особено интересно и гледах “Mining for bugs”, та после гледах записа на тази, и понеже още не съм я обмислил, ето по-важните неща:
Лекцията беше за неща, които в същия момент бяха публикувани в Der Spiegel, подробности за програмата за targeted killing на ЦРУ, и данни от NSA за счупена криптография.
От всичките неща само за две е ясно, че не са счупени (GPG и OTR);
(т.е. има накакви данни за чупене на SSH, SSL, IPSec, PPTP (последното никой не учудва))
NSA имат някакви неизвестни за останалите атаки в/у AES;
Като цяло сме още по-кофти преебани;
Трябват ни големи ключове и добри криптосистеми, защото май само това върши работа;
(трябва да си отделя някакво време да прегледам оригиналните документи и да си изградя някаква картина, но преди това искам да поспя и се надявам да нямам кошмари как ми декриптират ssh сесиите)

(in other news, тук вали сняг (и ако вали в сряда сутринта, има приличен шанс да си изтърва втория полет и да карам нова година във Франкфурт), а като се прибирам температурите в София ще са под -10. Искам си локалното затопляне и времето от миналата година.)

2014-12-27 31C3 ден 1

December 28th, 2014 by Vasil Kolev

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

(Видях се с Denisa Kera, която ни гостува преди време в initlab, и тя ми спомена за интересен проект, crowdfunding за някой разследващ човек, да дебне политици и да събира за тях какво правят, това е линка, който ми прати. Звучи като забавна идея, за другата подобна, която имах (crowdfunding за лобиране) ме разубедиха)

Сутринта към 9-10 беше учудващо празно, ама това доста бързо се промени. Мисля, че спокойно има едни 7-8 хиляди човека (може би и 10), за доста лекции залите се пълнят, а зала 1 събира 3000 човека…

(докато чаках да почне откриването забелязах доста wifi мрежи, които се казваха “Not fuzzing with your wifi” от 1 до 20)

Откриването беше твърде оптимистично и прилична част от него беше wishful thinking – “it’s not the shady intelligence agencies with big budges ruling the internet, but us” и подобни, но като цяло нямаше нещо глупаво, и започнаха с “welcome to the largest hacker conference in the free world”, което зарадва всички.
Споменаха си менторската програма, да се помага на хора/деца, дошли за пръв път на конгреса, има бегъл шанс да се навия за година, ако идвам (т.е. ако ще мога да издържа пак тия тълпи).

Keynote беше трагедия. В началото си бях отбелязал, че е нищо особено, но в общи линии се оказа директно зле – Alec Emprire ot Atari Teenage Riot чете нещо от някакви листи, пуска клипове с не-особено-кадърна-музика и като цяло говори за твърде известни и ясни неща. Може би единственото интересно беше разказа му как Spotify тръгнали да им ban-ват един албум (и с него всичкото от label-а, в който са), щото нещо се говорело вътре за нацисти, те им обяснили подробно, че са най-антинацистката група, която може да има (заедно със статии от вестници и т.н.) и им отговорили “nazi or anti-nazi – doesn’t matter”…

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

Reproducible builds лекцията беше също доста интересна, имаше обяснения кои проекти докъде са (оказва се, че прилична част от debian вече е с такива build-ове), както и са работили по въпроса за android, мисля, че това все повече ще намира приложение, особено при всякакви crypto-свързани неща.
(трябва да дам на pcloud-ци да видят какво може да се приложи)

(Като човек гледа мястото, може да си помисли, че е на някой woodstock, пълно е със странни хора. Всъщност, странни даже не започва да ги описва…)

Лекцията за EMV беше донякъде rehash на стари атаки, с подобрения и в общи линии как се появяват по-добри и ефективни skimmer-и. Накратко, можеш да се добереш до pin-а на карта само със skimmer (тук имаше малко нов research), или можеш да правиш транзакции с карта, на която не знаеш pin-а. Лекторът беше от фирма, която се занимава да помага на хора да се разберат с банката, ако не признае някоя измама и не им върне парите, както с audit на различни такива системи.

Лекцията за SS7 беше… полезна. Накратко – все едно сме в internet-а от 70та година, всеки може да си пише с всеки без auth и да подава какви ли не съобщения. Целия research тръгнал от фирми, които могат да локализират по телефонен номер къде точно се намира, от това изскочили какви ли не весели работи:
Може да се пита в коя клетка е телефона (което е прилично локализиране);
Може да се пита за gsm координати на телефона (което уж е само за полицията, но поради глупост в протокола можеш да си spoof-неш from-а и да получиш данните);
Можеш да подадеш в нечий HLR-а къде се намира някой (без auth);
Можеш да изпълняваш USSD кодове (*xxxx#) за нечий телефон (от които може да правиш forwarding и какво ли не още), и т.н. прекрасни неща.
Имаше и демонстрации (например как могат да видят баланса на чужда prepaid карта).
Най-тъжното беше в последните няколко слайда, как реално потребителите могат или да си хвърлят телефона, или да мрънкат на оператора, щото за това няма нищо, което може да се направи в endpoint-а.
Talk-ът на Karsten Nohl след това продължи темата с няколко нови атаки, най-вече в/у 3G с малко помощ от SS7, както и с някои интересни наблюдения как в момента всички ползват 64бита ключове за A5/3, и никой не ползва пълните 128бита, понеже няма никъде подходящи sim карти.
Като цяло, тия две лекции трябва да се гледат. Във втората казаха, че са update-нали вече gsmmap с нова информация, както и че са пуснали android приложение за телефони с определен baseband, което може да дебне за част от атаките.
(приложението е под GPL)
(лекцията на Karsten я слушах/гледах на лаптопа, докато се редях на опашката за тениски, която се виеше през цялото фоайе на CCH като странна змия. Да живеят streaming-а, пускането на лекциите през локалния gsm и доста издръжливата wireless мрежа).

Code pointer security също беше полезно, като цяло идеята е, че пазят само указателите, които сочат към код, което прави възможно да утрепеш приложението, но не и да го exploit-неш по някакъв начин (директно счупват return-oriented programming-а). Overhead-а им е до около 10% и като цяло изглежда много използваемо.

Деня приключих с ECC Hacks, лекция на DJB и Tanja Lange, в която обясняваха как работят елиптичните криви. Беше много добре, мисля, че сега имам доста по-добра идея как работят и мисля, че трудно може да се направи по-добро обяснение от това.

2014-12-26 31c3 ден 0

December 26th, 2014 by Vasil Kolev

Нулев ден на 31C3.

Станах си нормално в 9-10, добрах се спокойно до летището, летях (и в двата полета) с пищящи деца и се чудех защо изобщо хората се размножават, след което на Мюнхен за 30 минути се изсипа едно весело количество сняг и полета ми го забавиха с час и половина (който иска, може да гледа снимки).

(В Хамбург още не вали)

Изсипах си нещата в хотела и се добрах до CCH, откъдето пиша това. Отворили са още повече място от миналата година, ние имаме една малка маса, дето се надяваме да ни събере (assembly-то ни се казва Eastern-European Hackerspaces и сме набутани в “international” частта, малко като зоопарк за странни видове (което тук нищо не значи, “странно” е най-простото определение за почти всичко)).

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

Утре се почва в 11:00, да видим колко човека ще побере голямата зала и колко ще оцелее wireless-а…

(моята предварителна програма:

27.12
11:00 saal1 opening/keynote
12:45 saalG aluminum casting
14:00 saal1 scada | saalG reproducible bulids | saal6 textile
16:00 saal1 emv
17:10 saal1 SS7
18:30 saal1 mobile self-defense
20:30 saalG code pointer integrity
21:45 saal1 ecchacks | saalG cloud consp | saal6 banking
23:00 saal2 rocket kitten
24:00 saal1 citizenfour
00:00 Hall13 ripe atlas workshop

28.12
11:00 hall13 ripe morning tea
11:30 saalG gpg
12:45 saal1 PNR | saal2 telecoms/nsa
13:00 hallC tor operators meetup
14:00 saal1 estonia voing
16:00 sall6 automobiles
16:45 saalG crypto needle
17:15 DIYISP anycast vpn
17:30 saal1 information control
18:15 saal2 privacy and markets
19:00 saal6 blow stuff with your brain
20:30 saal1 reconstructing narratives | saalG bug hunting
21:45 saal1 fernvale | saal2 field station
23:00 saal2 sources

29.12
11:00 hall13 ripe morning tea
11:30 saal1 RMS | saalG scanner
12:45 saal2 quantum computer
14:00 saal6 file formats
16:00 Saal2 emet | saalG caesar and norx
17:15 saal2 nuclear weapons
18:30 saal2 maker movement
19:30-21:30 hallB whisky workshop
20:30 saal6 agri-tech
21:15 saal2 cs in DPRK
22:00 saal1 perl expoloit
22:45 saal2 megacode
22:30 saal1 infocalypse

30.12
11:00 hall13 ripe morning tea
11:30 saal6 internet voting in norway
12:45 saal1 why computers are bad and what to do
14:00 saal1 state of the onion | saal6 lets encrypt
16:00 saal2 crypto dust | saalG infrastructure review
17:15 saal2 tor hidden svc
18:30 saal1 closing event
)

2014-12-24 равносметка

December 24th, 2014 by Vasil Kolev

Гледайки плановете от началото на годината:

С четенето на сериозни книги като гледам съм се справил, въпреки че ми пак ми висят някакви неща, дето са бая интересни и важни и не намирам време за тях (статистиката в goodreads);
Ходих на Балканския компютърен конгрес (даже говорих);
Почнах да поспивам чак като напуснах работа в края на декември (горе-долу);
Свирих… пак твърде малко, въпреки че поне вече си организираме дрънчане в лаба;
Техническите лекции тая година ми бяха свързани с работата – криптография, сигурност, web услуги, може да се каже, че все пак съм наблегнал на техническите;
Изобщо не съм писал сериозно в блога.

Иначе, като цяло:

Годината мина в конференции и работа. Поне по списък съм направил 5 лекции по всякакви теми, и май си бяха много, а конференциите са около 10, плюс още едно-две събития:
Два пъти RailsGirls София (екип)
Ro[ug]e conf 2014 (екип, лектор)
RIPE-SEE-3 (лектор)
HackFMI 3 (жури)
PlovdivConf (екип)
BurgasConf (лектор)
VarnaConf (екип)
CryptoBG конферецията (посетител)
YAPC-Europe (екип)
EuroBSDCon (екип)
Balccon (лектор)
Openfest (екип)
(след няколко дни) 31C3 (посетител)
Това по никакъв начин не е нормално.

Като гледам, едвам съм писал в блога.

Напуснах работа в края на ноември и още си почивам, като още нямам конкретен план. В списъка ми е да реша и дали да оставам в България (не че има голям шанс да се махна, твърде закостенял съм, както казват някои хора) и да видя с какво точно ми се занимава (най-вече с мрежи и/или дебъгване).

От ходенето в офиса тотално изгубих желанието да се виждам с повече хора и се надявам 1) да успея да си върна поне някаква част от него, 2) да оцелея на 31c3.

Заех се сериозно да редактирам Reverse engineering for beginners, харесва ми, и има поне още два месеца работа там.

Пренесохме initlab на по-голямо и хубаво място, в малко странен квартал.

Не направих не-курса за системни администратори поради липса на време, но пък имам идея за BGP workshop.

Продължава да не ме боли главата.

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

2014-12-23 гласуване по Internet

December 23rd, 2014 by Vasil Kolev

На разни места още се среща идеята, че трябва да направим възможност за гласуване по internet (не говоря просто за електронно гласуване, с машини вместо бюлетини, което си има отделен набор проблеми).

От чисто теоретична страна има няколко нерешими проблема:

Купуването на гласове става още по-лесно. Ако хората могат да гласуват отдалечено, нищо не пречи на купуващите гласове да си setup-нат едно място за гласуване, където да се изреждат платените хора и да си подават гласовете. За такова нещо защити няма и няма как да има (това със следенето колко се гласува от един IP адрес е тривиално за прескачане, през tor или произволен ботнет). Не казвам, че в момента не е възможно (практиката показва обратното), но с internet-базираното гласуване нещата стават тривиални.

Става много трудно да се гарантира тайната на гласуването. Има две действия в системата – идентификация и подаване на глас, и е твърде лесно да се остави каквото и да е дребно нещо, през което да може да се свърже конкретен човек с конкретен глас. В съществуващата система нещата са достатъчно добре подредени и разделени, че по принцип да може крайния потребител (гласуващия) да види какво се случва и да е по-трудно да се реализира система за следене кой как гласува (и по-лесно за хващане). Аз лично не мога да измисля как в електронна система нещата могат да се разделят достатъчно добре и достатъчно добре доказано, че да е приемливо.
(изобщо няма да коментирам колко зле са ни крайните работни станции и дали няма да проима троянски коне, които да следят тия неща)

Другите проблеми – как се идентифицираш, кой ще пише софтуера, с какво приложение ще се гласува, колко/как ще се тества, дали/как ще се пусне кода – са в общи линии решими, но горните два при съществуващите технологии не виждам как ще се оправят. Аз поне досега колкото решения съм мислил или чувал, все съм намирал как ще се строшат, или в няколко странни случая решенията са твърде сложни за нормални хора (донякъде дори и за мен бяха).

Разбира се, изобщо не отказвам някой да ми обясни колко не съм прав и да даде примерна система, че така и така ми се чупи нещо :)

2014-12-18 Internet свързаността на initlab

December 18th, 2014 by Vasil Kolev

(алтернативното заглавие беше “мизерии, които правим като нямаме BGP”)

След доста мъки с onlinedirect в initlab си пуснахме втора връзка, през TBC.bg. За да можем да ползваме и двете, се наложи малко бърникане по setup-а и забавни неща, които съм описал по-долу, разделени на v4 и v6.

Преди всичко може да погледнете схемата на мрежата.

За IPv4 имаше два проблема: трафикът, влизащ от един доставчик трябва да излиза пак през него (нормален policy routing), и трябва по някакъв начин да се избира през кой интерфейс да се излиза (чрез gwping).

Policy routing-а е стандартен, описан е на хиляда места и за това без много подробности, идеята е че се прави routing таблица за всеки доставчик, в нея се вкарват пътя до самия доставчик, default през него и пътищата към локалните вътрешни мрежи, след което се слагат правила, че ip адреса от тоя доставчик изходящия трафик ползва определената таблица. Или, погледнато на cassie:

vasil@cassie:~$ cat /etc/iproute2/rt_tables|grep -v #
255     local
254     main
253     default
0       unspec

2       od
3       tbc

vasil@cassie:~$ ip r show table od
default via 93.152.128.1 dev eth0.5
93.152.128.0/17 dev eth0.5  scope link
172.31.190.0/24 dev eth0.2  scope link

vasil@cassie:~$ ip r show table tbc
default via 94.26.100.129 dev eth0.6
94.26.100.128/27 dev eth0.6  scope link
172.31.190.0/24 dev eth0.2  scope link

vasil@cassie:~$ ip rule
0:      from all lookup local
32764:  from 94.26.100.155 iif lo lookup tbc
32765:  from 93.152.143.66 iif lo lookup od
32766:  from all lookup main
32767:  from all lookup default

За изходящия трафик проблемът се решава чрез gwping (който намерих от тук и ми спести час-два писане на нещо такова). Това е прост скрипт, който ping-ва през двете връзки нещо определено (например google) и ако през едната го няма, я маха от routing-а, а иначе държи два default route-а с различна тежест, т.е.

vasil@cassie:~$ ip r
default
        nexthop via 93.152.128.1  dev eth0.5 weight 1
        nexthop via 94.26.100.129  dev eth0.6 weight 2
...

(докато чертаех схемата, едната връзка падна за малко и като гледам никой не го е усетил)

За IPv6 нещата се оказаха малко по-сложни (но по-изчистени), понеже свързаността ни идва от един тунел до моя машина в telepoint (бяхме на HE.net, ама ни омръзна да ни се отваря немския google). От там имаме една наша /64, която се появява във вътрешната мрежа на лаба. За да мога да прекарам тунела да работи и през двете връзки, просто пуснах два отделни тунела от cassie до tyler през двата доставчика, след което в/у тях пуснах с quagga OSPFv3. В него от страната на cassie announce-вам префикса на локалната мрежа, от другата страна – default route. В общи линии в конфигурацията имам следните неща:

cassie (тук вътрешния ми интерфейс е eth0.2):

interface vk-ipv6-od
 ipv6 ospf6 priority 0
!
interface vk-ipv6-tbc
 ipv6 ospf6 priority 0
!
router ospf6
 router-id 255.1.1.1
 redistribute connected route-map internal
 interface vk-ipv6-od area 0.0.0.0
 interface vk-ipv6-tbc area 0.0.0.0
!
route-map internal permit 10
 match interface eth0.2
!
route-map internal deny 20

tyler (тук външния ми интерфейс за IPv6 е eth1, а правя redistribute kernel, понеже default route се вижда като такъв):

interface lab-ipv6-od
 ipv6 ospf6 priority 0
!
interface lab-ipv6-tbc
 ipv6 ospf6 priority 0
!
router ospf6
 router-id 255.1.1.2
 redistribute kernel route-map external
 redistribute connected route-map external
 interface lab-ipv6-od area 0.0.0.0
 interface lab-ipv6-tbc area 0.0.0.0
!
route-map external permit 10
 match interface eth1
!
route-map external deny 20

Учудващо, но работи и даже не успях да си отрежа клона, докато го подкарвах. Има няколко дребни момента, например че OSPFv3 няма auth. на пакетите (или поне го няма реализиран в quagga) и ще му трябва ipsec в един момент, или че може да е по-интересно да вземем от двата доставчика IPv6 адреси, да ги раздаваме на потребителите и те да избират от кой да излизат (което ще е интересно да се тества колко добре работи, ако работи изобщо).