Tag Archives: General

2020-04-04 пробно online ИББ

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3440

Преди някакво време затвориха “Кривото”, което беше на ъгъла на “Дондуков” и “Будапеща”, и с него изчезна и ИББ. Аз не бях успявал да стигна до там от много време и точно седмицата, в която обявиха пандемията се канех да ходя…

Та, има разговори да го възобновим, и понеже няма как на живо, тая вечер си направихме едно събиране на jitsi.ludost.net/ibb, експериментално, да видим как е. Бяхме десетина човека, поговорихме си за час-два, пихме по едно, хапнахме си и си отидохме да спим 🙂 Та вероятно тая сряда ще направим пак сбирка, за който му липсва. Не изглежда да е възможно да си пуснем всички камерите и да не ни се подпалят машините, но само с аудио пак е добре.

Определено мисля да го броя в категорията неща, които ни помагат да не полудеем 🙂

PSA: COVID-19 is a bad reason to get a firearm

Post Syndicated from esr original http://esr.ibiblio.org/?p=8627

I’m a long-time advocate of more ordinary citizens getting themselves firearms and learning to use them safely and competently. But this is a public-service announcement: if you’re thinking of running out to buy a gun because of COVID-19, please don’t.

There are disaster scenarios in which getting armed up in a hurry makes sense; the precondition for all of them is a collapse of civil order. That’s not going to happen with COVID-19 – the mortality rate is too low.

Be aware that the gun culture doesn’t like and doesn’t trust panic buyers; they tend to be annoying flake cases who are more of liability than an asset. We prefer a higher-quality intake than we can get in the middle of a plague panic. Slow down. Think. And if you’ve somehow formed the idea that you’re in a zombie movie or a Road Warrior sequel, chill. That’s not a useful reaction; it can lead to panic shootings and those are never good.

I don’t mean to discourage anyone from buying guns in the general case – more armed citizens are a good thing on multiple levels. After we’re through the worst of this would be a good time for it. But do it calmly, learn the Four Rules of Firearms Safety first, and train, train, train. Get good with your weapons, and confident enough not to shoot unless you have to, before the next episode of shit-hits-the-fan.

2020-03-21 threat модели

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3439

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

В момента всички усилено търсят начин да си пренесат работата от вкъщи. Аз съм от щастливците – при нас по принцип всичко може да се прави remote и сме си направили така нещата (което е следствие от голямото количество админи на глава от фирмата, май сме над 50%). Също така заради естеството на работата сме обмисляли сериозно как да направим нещата, че да са сигурни, и първата стъпка в това е да се реши какъв е threat модела (т.е. “от какво/кого се пазим?”), понеже това определя смислеността на мерките, които се взимат.

Най-лесният въпрос е “от кого се пазим”, да преценим какви са му възможностите, и какви мерки да вземем. Базовите опции са “script kiddies”, “опортюнисти”, “конкуренцията”, “държавата”, “NSA”.

“Script kiddies” са най-лесни, и са в общи линии стандартните мерки, които всички взимат – от това да няма тривиални пароли и да няма не-patch-нати service-и, до това хората да знаят да не отварят опасни документи (или ако работата им е да получават документи, да имат среда, в която да ги гледат безопасно, което е случая с журналистите например).

“Опортюнисти” са хора на вярното място във верния момент. Пример за такова нещо са например работещи в datacenter, които знаят, че ей-сега ще ги уволнят, и си отмъкват диск от произволен сървър. Или крадци, които са се докопали до някакви ваши неща и са ги угасили и събрали, и не искате информацията там да попада в чужди ръце или да може да се открадне. Или някакви по-таргетирани scammer-и, и какво ли не. Тук се иска малко по-сериозно да се обмислят слабите места и да се вземат мерки (които може да са “пълним машината с бетон, завинтваме я за пода и я заваряваме”), които да са смислени за ситуацията.

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

“Държавата” е супер интересна, понеже тук си проличава утопичното мислене на хората. Криптирани файлове, секретни канали и т.н. – голяма част от това пази от предните точки, не от тази. От метода на гумения маркуч (т.е. да те бият докато си кажеш) не се пазим с технически средства, а много повече с оперативни, като например никой в засегнатата юрисдикция да няма достъп до нещата, които се пазят. Особено текущата ситуация с карантината и извънредното положение го показва много добре – ако приемем, че сме на територията на противника, който има няколко порядъка по-големи ресурси от нас, и като изключим хората, които обучават специално за целта (т.е. шпиони), които имат зад гърба си сериозна поддържаща система, и при които има над 10% заловяемост (защото оперативната сигурност е много трудно нещо), няма някой друг, за който да е смислено да мисли подобни мерки.
Или с по-прости думи, ако всичко ви е в държава в извънредно положение, колкото да са и некадърни в някакви отношения органите, със сигурност умеят търсенето и биенето и всякакви мерки трябва да взимат това предвид, например да се стараем да не ни е противник държавата…

“NSA” е по-скоро събирателно за това, което се нарича “APT” (Advanced Persistent Threat, т.е. хора с много акъл, желание и ресурси), и е пример за това кога трябва да имаме airgap firewall-и и други подобни крайни мерки, като фарадееви кафези, неща които изискват минимум двама човека и т.н.. Ако се занимавате с платежни системи и подобни неща, това в общи линии ви влиза в threat модела, иначе е много малко вероятно и много скъпо да се пазите от тях.

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

2020-03-20 първа седмица

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3438

Интересна седмица.

Една прилична част мина в настройване на звука на хора – първо на преподаващите в курса по операционни системи във ФМИ, после на всичките хора от фирмата, наваксване с работата, готвене, още работа, и всякакви неща “какво можем да направим в това положение, което да е смислено”.

В момента курсът по операционни системи ползва за част от нещата комбинация от live streaming (с около 10 секунди латентност, може да се опитаме да го смъкнем) и irc, и за някои други неща jitsi meet (подкарах едно при мен на jitsi.ludost.net, който иска може да го ползва). Като цяло гледаме да ползваме локални ресурси, и от гледна точка на латентност, и от гледна точка на това да не удавим външните тръби без да искаме.
(това с тръбите май малко се преувеличава де, в България има бая хубав интернет и това, че netflix ограничиха да stream-ват само SD по време на пандемията по-скоро говори за липса на капацитет при тях)
(но е доста важно да не зависиш от твърде много външни ресурси)

Jitsi-то и irc-то също са доста полезни, като гледам, а хората за да не полудяват си правят сутрешното кафе по видео конференции. Други хора се организират да сглобяват emergency вентилатори (има някъде fb група по темата, в която се намират и малко медицински лица), някои печатат на 3d принтери компонентите за предпазен шлем при интубиране и подобни (друг линк до файлове за такова нещо) (даже мисля, че принтера в initLab вече е впрегнат по темата).

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

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

Наздраве и лека нощ.

2020-03-13 streaming по време на чума

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3437

Живеем в интересни времена. Даже идват от Китай.

Anyway. В последните няколко дни имам различни разговори по темата как може да се продължат различни преподавателски дейности online. Почти сме сглобили нещо за упражненията по “Операционни системи” във ФМИ, и си говоря с един приятел, който обмисля да сглоби нещо такова за училището си.

Ще напиша нещо по-подробно с как/какво може и т.н., но понеже не съм виждал преподаване в последните 10 години, и училищно такова от 20, много ще се радвам, ако някой каже от какво има нужда – доколко да има обратна връзка/да се виждат учещите, какви неща за показване (т.е. нещо да играе ролята на бялата дъска), дали трябва да се вижда самия преподаващ или дъската/екрана му стигат, и такива неща.

The right to be rude

Post Syndicated from esr original http://esr.ibiblio.org/?p=8609

The historian Robert Conquest once wrote: “The behavior of any bureaucratic organization can best be understood by assuming that it is controlled by a secret cabal of its enemies.”

Today I learned that the Open Source Initiative has reached that point of bureaucratization. I was kicked off their lists for being too rhetorically forceful in opposing certain recent attempts to subvert OSD clauses 5 and 6. This despite the fact that I had vocal support from multiple list members who thanked me for being willing to speak out.

It shouldn’t be news to anyone that there is an effort afoot to change – I would say corrupt – the fundamental premises of the open-source culture. Instead of meritocracy and “show me the code”, we are now urged to behave so that no-one will ever feel uncomfortable.

The effect – the intended effect, I should say, is to diminish the prestige and autonomy of people who do the work – write the code – in favor of self-appointed tone-policers. In the process, the freedom to speak necessary truths even when the manner in which they are expressed is unpleasant is being gradually strangled.

And that is bad for us. Very bad. Both directly – it damages our self-correction process – and in its second-order effects. The habit of institutional tone policing, even when well-intentioned, too easily slides into the active censorship of disfavored views.

The cost of a culture in which avoiding offense trumps the liberty to speak is that crybullies control the discourse. To our great shame, people who should know better – such as the OSI list moderators and BOD – have internalized anticipatory surrender to crybullying. They no longer even wait for the soi-disant victims to complain before wielding the ban-hammer.

We are being social-hacked from being a culture in which freedom is the highest value to one in which it is trumped by the suppression of wrongthink and wrongspeak. Our enemies – people like Coraline Ada-Ehmke – do not even really bother to hide this objective.

Our culture is not fatally damaged yet, but the trend is not good. OSI has been suborned and is betraying its founding commitment to freedom. “Codes of Conduct” that purport to regulate even off-project speech have become all too common.

Wake up and speak out. Embrace the right to be rude – not because “rude” in itself is a good thing, but because the degenerative slide into suppression of disfavored opinions has to be stopped right where it starts, at the tone policing.

2020-02-20 “Лично досие”

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3436

(имам да пиша и за FOSDEM, ама като стигна до там)

От миналата година от двете наистина важни излезли книги – биографията на Едуард Сноудън и Mindf*ck за историята около Cambridge analytica, първата тия дни излиза на български (издават я Егмонт, което мен много ме учуди). Ако не сте я чели в оригинал и/или имате познати, които не могат да я четат в оригинал, определено си струва.

(моето общо с това е, че съм технически редактор на българския превод, та всякакви оплаквания по темата – към мен)

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

Chinese bioweapon II: Electric Boogaloo

Post Syndicated from esr original http://esr.ibiblio.org/?p=8587

Yikes. Despite the withdrawal of the Indian paper arguing that the Wuhan virus showed signs of engineering, the hypothesis that that it’s an escaped bioweapon looks stronger than ever.

Why do I say this? Because it looks like my previous inclination to believe the rough correctness of the official statistics – as conveyed by the Johns Hopkins tracker – was wrong. I now think the Chinese are in way deeper shit than they’re admitting.

My willingness to believe the official line didn’t stem from any credulity about what the Chinese government would do if it believed the truth wouldn’t serve. As Communists they are lying evil scum pretty much by definition, and denial would have been politically attractive for as long as they thought they could nip the pandemic in the bud. I thought their incentives had flipped and they would now be honest as a way of assisting their own countermeasures and seeking international help.

My first clue that I was wrong about that came from a friend who is plugged into the diaspora Chinese community. According to him, there is terrifying video being sent from Chinese clans to the overseas branches they planted in the West to prepare a soft landing in case they have to bail out of China. Video of streets littered with corpses. And of living victims exhibiting symptoms like St. Vitus’s Dance (aka Sydenham’a chorea), which means the virus is attacking central nervous systems.

My second clue was the Tencent leak. Read about it here; the takeaway is that there is now reason to believe that as of Feb 1st the actual coronavirus toll looked like this: confirmed cases 154023, suspected cases 79808, cured 269, deaths 24589.

Compare that with the Johns Hopkins tracker numbers for today, a week later: Confirmed cases 31207, cured 1733, deaths 638. Allowing for the Tencent leak being roughly one doubling period earlier, the official statistics have been lowballing the confirmed case number by a factor of about 8 and the deaths by a factor of about 80. And then inflating cures by a factor of about 12.

Even given what I’d heard about the video, I might have remained skeptical about the leak numbers if someone (don’t remember who or where) hadn’t pointed out that the ratio between reported cases and deaths has been suspiciously constant in the official Chinese statistics. In uncooked statistics one would expect more noise in that ratio, if only because of reporting problems.

So my present judgment, subject to change on further evidence, is that the Tencent-leak numbers are the PRC’s actual statistics. And that has a lot of grim implications.

One is that the Wuhan virus has at least a 15% fatality rate in confirmed cases – and most ways the PRC’s own statistics could be off due to reporting problems would drive it higher. Another is that containment in China has failed. Even in the cooked official statistics first derivative has not fallen; the doubling time is on the close order of five days now and may decrease.

We are already well past any even theoretical coping capability of China’s medical infrastructure. For that matter, it isn’t likely that there are enough trained medical personnel on the entire planet to get on top of a pandemic this size with a 5-day doubling time.

Which means this thing is probably not going to top out in China until it saturates the percentage of the population without natural immunity and kills at least 15% of them. The big, grim question is how many natural immunes there are. The history of past natural pandemics does not conduce to any optimism at all about that.

A very safe prediction is that a whole lot of elderly Chinese people are going to die because their immune systems are pre-compromised.

China’s population is about 1.4 billion. Conservatively, therefore, we can already expect this plague to kill more people in China than the Black Death did in Europe. At its present velocity we can expect that in about 12 doubling periods, or approximately 60 days.

Meanwhile, coronavirus spread outside China enters a critical time.

Based on what we think we know about the incubation period (about 14 days), if there’s going to be a pandemic breakout outside of China due to asymptomatic carriers, we should start to see a slope change in the overseas incidence curve during the next week. It’s been long enough for that now.

If that doesn’t happen, either the rest of the world dodged the pandemic bullet (optimistic) or the low end of the incubation period is longer than has been thought (pessimistic). On the basis of previous experience with SARS and MERS, I think the optimistic read is more likely to be correct.

Now back to the bioweapon hypothesis. Does recent data strengthen or weaken it? Consider:

* 645 Indian evacuees from Wuhan all tested negative.

* The only death outside China has been an ethnic-Chinese traveler from Wuhan.

The evidence that this virus likes to eat Han Chinese and almost ignores everybody else is mounting. That’s bioweapon-like selectivity.

One of my previous objections to the bioweapon hypothesis was that the Wuhan virus’s lethality wasn’t high enough. At 15% or higher I withdraw that objection.

And that St. Vitus’s Dance thing – coronaviruses don’t do that. But it’s exactly the kind of thing you’d engineer into a terror weapon intended not just to kill a chunk of your target population but break the morale of the rest.

Finally, my friend Phil Salkie tells me that on Google Maps the reported location of the Wuhan Institute of Virology has been jumping around like a Mexican flea. That’s guilty behavior, that is.

Head-voice vs. quiet-mind

Post Syndicated from esr original http://esr.ibiblio.org/?p=8558

I’m utterly boggled. Yesterday, out of nowhere, I learned of a fundamental divide in how peoples’ mental lives work about which I had had no previous idea at all.

From this: Today I Learned That Not Everyone Has An Internal Monologue And It Has Ruined My Day.

My reaction to that title can be rendered in language as – “Wait. People actually have internal monologues? Those aren’t just a cheesy artistic convention used to concretize the welter of pre-verbal feelings and images and maps bubbling in peoples’ brains?”

Apparently not. I’m what I have now learned to call a quiet-mind. I don’t have an internal narrator constantly expressing my thinking in language; in shorthand. I’m not a head-voice person. So much not so that when I follow the usual convention of rendering quotes from my thinking as though they were spoken to myself, I always feel somewhat as though I’m lying, fabulating to my readers. It’s not like that at all! I justify doing that only because the full multiordinality of my actual thought-forms won’t fit through my fingers.

But, apparently, for others it often is like that. Yesterday I learned that the world is full of head-voice people who report that they don’t know what they’re thinking until the narratizer says it. Judging by the reaction to the article it seems us quiet-minds are a minority, one in five or fewer. And that completely messes with my head.

What’s the point? Why do you head-voice people need a narrator to tell you what your own mind is doing? I fully realize this question could be be reflected with “Why don’t you need one, Eric?” but it is quite disturbing in either direction.

So now I’m going to report some interesting detail. There are exactly two circumstances under which I have head-voice. One is when I’m writing or consciously framing spoken communication. Then, my compositional output does indeed manifest as narratizing head-voice. The other circumstances is the kind of hypnogogic experience I reported in Sometimes I hear voices.

Outside of those two circumstances, no head-voice. Instead, my thought forms are a jumble of words, images, and things like diagrams (a commenter on Instapundit spoke of “concept maps” and yeah, a lot of it is like that). To speak or write I have to down-sample this flood of pre-verbal stuff into language, a process I am not normally aware of except as an occasional vague and uneasy sense of how much I have thrown away.

(A friend reports Richard Feynman observing that ‘You don’t describe the shape of a camshaft to yourself.” No; you visualize a camshaft, then work with that visualization in your head. Well, if you can – some people can’t. I therefore dub the pre-verbal level “camshaft thinking.”)

To be fully aware of that pre-verbal, camshaft-thinking level I have to go into a meditative or hypnogogic state. Then I can observe that underneath my normal mental life is a vast roar of constant free associations, apparently random memory retrievals, and weird spurts of logic connecting things, only some of which passes filters to present to my conscious attention.

I don’t think much or any of this roar is language. What it probably is, is the shock-front described in the predictive-processing model of how the brain works – where the constant inrush of sense-data meets the brain’s attempt to fit it to prior predictive models.

So for me there are actually three levels: (1) the roaring flood of free association, which I normally don’t observe; (2) the filtered pre-verbal stream of consciousness, mostly camshaft thinking, that is my normal experience of self, and (3) narratized head-voice when I’m writing or thinking about what to say to other people.

I certainly do not head-voice when I program. No, that’s all camshaft thinking – concept maps of data structures, chains of logic. processing that is like mathematical reasoning though not identical to it. After the fact I can sometimes describe parts of this process in language, but it doesn’t happen in language.

Learning that other people mostly hang out at (3), with a constant internal monologue…this is to me unutterably bizarre. A day later I’m still having trouble actually believing it. But I’ve been talking with wife and friends, and the evidence is overwhelming that it’s true.

Language…it’s so small. And linear. Of course camshaft thinking is intrinsically limited by the capabilities of the brain and senses, but less so. So why do most people further limit themselves by being in head-voice thinking most of the time? What’s the advantage to this? Why are quiet-minds a minority?

I think the answers to these questions might be really important.

Missing documentation and the reproduction problem

Post Syndicated from esr original http://esr.ibiblio.org/?p=8551

I recently took some criticism over the fact that reposurgeon has no documentation that is an easy introduction for beginners.

After contemplating the undeniable truth of this criticism for a while, I realized that I might have something useful to say about the process and problems of documentation in general – something I didn’t already bring out in
How to write narrative documentation. If you haven’t read that yet, doing so before you read the rest of this mini-essay would be a good idea.

“Why doesn’t reposurgeon have easy introductory documentation” would normally have a simple answer: because the author, like all too many programmers, hates writing documentation, has never gotten very good at it, and will evade frantically when under pressure to try. But in my case none of that description is even slightly true. Like Donald Knuth, I consider writing good documentation an integral and enjoyable part of the art of software engineering. If you don’t learn to do it well you are short-changing not just your users but yourself.

So, with all that said, “Why doesn’t reposurgeon have easy introductory documentation” actually becomes a much more interesting question. I knew there was some good reason I’d never tried to write any, but until I read Elijah Newren’s critique I never bothered to analyze for the reason. He incidentally said something very useful by mentioning gdb (the GNU symbolic debugger), and that started me thinking, and now think I understand something general.

If you go looking for gdb intro documentation, you’ll find it’s also pretty terrible. Examples of a few basic commands is all they can do; you never get an entire worked example of using gdb to identify and fix a failure point. And why is this?

The gdb maintainers probably aren’t very self-aware about this, but I think at bottom it’s because the attempt would be futile. Yes, you could include a session capture of someone diagnosing and debugging a simple problem with gdb, but the reader couldn’t reliably reproduce it. How would you the user go about generating a binary on which the replicating the same commands produced the same results?

For an extremely opposite example, consider the documentation for an image editor such as GIMP. It can have excellent documentation precisely because including worked examples that the reader can easily understand and reproduce is almost trivial to arrange.

What’s my implicit premise here? This: High-quality introductory software documentation depends on worked examples that are understandable and reproducible. If your software’s problem domain features serious technical barriers to mounting and stuffing a gallery of reproducible examples, you have a problem that even great willingness and excellent writing skills can’t fix.

Of course my punchline is that reposurgeon has this problem, and arguably an even worse example of it than gdb’s. How would you make a worked example of a repository conversion that is both nontrivial and reproducible? What would that even look like?

In the gdb documentation, you could in theory write a buggy variant of “Hello, World!” with a crash due to null pointer dereference and walk the reader through locating it with gdb. It would be a ritual gesture in the right direction, but essentially useless because the example is too trivial. It would read as a pointless tease.

Similarly, the reposurgeon documentation could include a worked conversion example on a tiny synthetic repository and be no better off than before. In both problem domains reproducibility implies triviality!

Having identified the deep problem, I’d love to be able to say something revelatory and upbeat about how to solve it.

The obvious inversion would be something like this: to improve the quality of your introductory documentation, design your software so that user reproduction of instructive examples is as easy as its problem domain allows.

I understand that this only pushes the boundaries of the problem. It doesn’t tell you what to do when you’re in a problem domain as intrinsically hostile to reproduction of examples as gdb and reposurgeon are.

Unfortunately, at this point I am out of answers. Perhaps the regulars on my blog will come up with some interesting angle.

2019-12-25

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3435

Изминалата година най-добре може да се опише с текста от коледната ми картичка от фирмата: “Пожелаваме ти да се наспиш и да можеш да си работиш на спокойствие” 🙂 Друго, доста очевидно нещо е как за пръв път чета по-малко от 30к страници за една година.

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

StorPool-ската игра на OpenFest 2019

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3434

В последните няколко годинии (2017, 2018) сглабям по някаква online игра за щанда на StorPool на OpenFest. Тази година пак сглобих нещо такова, и понеже изисква някаква сървърна част, просто ще му напиша описание, а който иска, може да го setup-не някъде, всичките му неща могат да се свалят от quiz.storpool.com/of2019.tgz.

Играта изглеждаше по следния начин: в началото човек се логва на един сървър, и в motd-то го посреща описание от “предишния човек”, който е hack-вал машината:


yo

i kept working on this, but what i've seen that there's
a strange firewall, and we need to get to port 3xxx. there's
some readme in a weird encoding, no idea how to read that.

the guys that wrote this system are the worst, it's a patch
over duct tape over bad stitching.

looking at the way i got this password, they know nothing
about crypto, anyway, so it should be easy.

gl

Информацията в този текст в общи линии е “нещо слуша на порт 3xxx, има странен firewall, има документация във формат, който не мога да прочета, и тия хора от криптография не разбират”.

В директорията освен този файл (“y00dud3”) има още два – kdctl.dump и manual.EBCDIC-INT. kdctl.dump е strace на /opt/kd/linux-x86_64/devel/bin/kdctl, който може да се види как прави connect() до localhost на порт 3xxx (където “xxx” е номерчето на user-а, имаше отделен порт за всеки участник). Ако човек се опиташе да пусне kdctl, му даваше permission denied (и такова нещо няма, сложих просто permission-и 000 на една от директориите по пътя), така че човек трябва сам да се прави на клиента.

manual.EBCDIC-INT представлява малко документация, обърната в EBCDIC, която човек може да си конвертира обратно с iconv (или както се оказа, с dd). Вътре има описание на системата, с която трябва да се говори, и малко development информация за протокола, като част от информацията е криптирана:


KroberDyne access terminal v2.1.18-fcdb1fa
==========================================

!!! This document is property of KroberDyne corporation. A license is
!!! granted to the purchaser of this system for 1 (one) copy. All
!!! unauthorized copies must be destroyed.

Audience
========

This document is for use of the commander of the operation in which
the KroberDyne terminal is used. A simplified version is avaiable
for the operation personnel.

Introduction
============

The KroberDyne(tm) access terminal provides accesss credentials to
authorized users to be able to interact with KroberDyne(tm) Semi-
Autonomous Unmanned Aerial Vehicles. Its goal is to provide the
sufficient authentication of a pilot to provide it back with the
proper codes to authorize the activation of different sensors
and activators.

The terminal authentication is certified to be used with UAVs
that carry nuclear and biological weapons. Please refer to document
KD-25.8069 for more details.

Usage
=====

The terminal is to be used mostly via the main client, kdauth.

Usage: kdauth

The tool will prompt with the relevant codebook names and will
request a password that matches. On success, it'll provide back the
allowed credentials.

Development
===========

The protocol to communicate with the device is line-based and
follows the basic notations of IETF protocols, for convenience.
Return codes in the 2xx mean no problem, 4xx are authentication-
related, and 5xx non-transient errors.

Commands:
AUTH - requests authentication data
PASS - sends password
LANG - sets protocol language for some messages. Currently only
English ("en") is supported.
HELP - short list of commands.

The following extra commands are available for support purposes.
As their usage is dangerous, the following information is encrypted.
Please contact KroberDyne for key access.

JNVG - gur npprff grezvany vf ol qrsnhyg qrynl-yvzvgrq gb abg
biresybj fybj frevny yvaxf. Guvf cnenzrgre pbagebyf qrynl
va zf. Hfntr erfgevpgrq gb grpuavpvnaf.

QOHT - qhzcf n fcrpvsvp gnoyr va fbsgjner.
HFNTR ERFGEVGRQ GB XEBOREQLAR FRPHEVGL FGNSS BAYL.

All rights reserved, KroberDyne corporation(tm)

(“Kroberdyne” е някаква комбинация от cyberdyne (корпорацията във филмите за Terminator) и крокодил)

“Криптирането” е ROT13 (което мисля, че дори се вижда) и вътре има следното:


WAIT - the access terminal is by default delay-limited to not
overflow slow serial links. This parameter controls delay
in ms. Usage restricted to technicians.


DBUG - dumps a specific table in software.
USAGE RESTRITED TO KROBERDYNE SECURITY STAFF ONLY.

И така, имаме протокол, с който да си говорим с един демон локално, и да се опитаме да вземем някакъв auth code. Като направим telnet localhost 3xxx, получаваме:


$ telnet localhost 3001
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200-KroberDyne terminal VT18. Unathorized access prohibited.
200 Welcome 001
>

Тук има няколко неща, не всички са задължителни:
– LANG en, и след това HELP ще ви даде един списък от команди (иначе казва, че няма такъв файл);
– WAIT 0 ще махне забавянето при печатане (което е random wait м/у всеки 2 букви и изглежда бая странно);
– AUTH ще ви каже 3 codebook-а, от които да извадите парола;
– DBUG codebook ще ви извади всичките пароли от определения codebook, и
– PASS парола (която се среща и в 3-те codebook-а) ще ви даде код да си получите тениската.

(това с DBUG може да ви се струва невероятно, но е по съвсем истински случай, използван от първия worm в Internet)

Няколко неща може би не бяха ясни – например имаше 30-минутен time limit за всички пробващи се и после им lock-ваше account-а (което май не сработи точно както трябваше), и може би не беше ясно до какво точно трябва да се стигне. Хората, решили задачата са малко, доколкото знам, та явно догодина ще трябва повече подсказки. Портовете бяха филтрирани така, че всеки да може да се връзва само на собствения си, и всъщност имах и идеята да изисквам определен range за source port, но не намерих за краткото време, което имах лесен начин човек да си намества source port-а от telnet, и реших да го прескоча.

Иначе, интерактивен сървър с команди се оказа тривиален за правене, с малко python и един rlinetd да се занимава с TCP-то отпред, може да видите колко е тривиален кода вътре.

Четири числа на тема броя хора в IT-то

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3432

Днес ми изпълниха заявка от НСИ по темата “колко системни администратора има в България”.

Искам преди това да кажа, че това са едни прекрасни хора – след като си подадох online заявка в свободен текст (“колко човека е имало на трудов договор през годините с код на длъжноста 2522* и 25*)”, те ми се обадиха да ми кажат какво имат (че данни за нещо такова се събират на 4 години, и още не са обработени тези за 2018, тях ще ги има догодина), и след като ми взеха невероятната сума от 1.86лв (платими през epay, тривиално online) ми пратиха данните.

Самите данни са 4 числа: през 2010та на код 2522* е имало 3478 човека, на код 25* – 20360 човека. През 2014та на код 2522 е имало 4847 човека, на 25* – 29413 човека.

Гласуване за лекции за OpenFest 2019

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3431

TLDR – Гласуване за лекциите за OpenFest 2019.

Както всяка от последните години, имаме едно консултативно гласуване за лекциите за OpenFest 2019, резултатите от което ни помагат да подредим лекциите по зали и да избегнем колкото можем конфликтите.

2019-09-08 нов мрежов setup в 3dc

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3428

Преди някакво време с Мариян си взехме половин rack в 3dc, за да си слиожим там разни машини (и подслоняваме други проекти, последно linux-bg.org). Свършихме малко интересни неща с мрежата и ми се ще да ги разкажа, заедно с разни бъдещи планове.

В началото бяхме на един гигабитов switch (Quanta LB4m, стои ми в момента в краката). От там тръгна setup-а с няколко vlan-а – един за публични цели (/27), едни за ipmi, и разни за външните връзки. От самото начало две машини бяха router-и и за всяка връзка навън или навътре се правят сесии и до двата.

Последва разширяване, първо с един, после с втори 10gbe switch – Arista DCS-7050S-64 и DCS-7050S-52 (имаше и някакъв междинен, който не мога да си спомня). Самите switch-ове имат много приятен начин за настройка, понеже на практика са откраднали Cisco CLI-то и са го направили приятно за ползване. В началото използвахме основно единия, после закачихме всичко на двата, взехме една кофа медни SFP-та и махнахме гигабитовата Quanta.

За redundancy (понеже веднъж се случи да crash-не единия switch), първоначално направихме setup-а с active-passive bond-ове с miimon (arp_monitor щеше да е трудно заради неяснотата какво точно да се пингва, вероятно трябваше да са самите switch-ове). Не сме мислили за идеята за MLAG и клъстериране на switch-овете, понеже поне моя опит показва, че няма никой производител, който да може да си направи правилно клъстерирането и отпадането на единия switch да не повлияе на другия (и вероятно мога да напиша един blog post по темата).

Текущата стъпка е active-passive bond-а да се замести от отделни BGP сесии през двата switch-а до двата router-а, т.е. общо 4 сесии. Създадох по един vlan на switch (за да не пипам съществуващия трафик), peer-нах там машините с двата router-а и те си анонсират на /32ки адресите, които имат. Така се постига по-добро redundancy, понеже всяка машина има 4 пътя и при отпадане на каквото и да е може да знае кои други пътища и работят.
(има пуснато и BFD в схемата, на което Мариян ме открехна, и сесия се усеща, че е умряла за около секунда, вместо стандартните BGP timeout-и)

С този setup също така може да се пусне ECMP (equal-cost multipath) и да се ползват и двата интерфейса едновременно (не че някой пълни и един 10gbps интерфейс, но принципът е интересен).

Обмислях да направя директно следващата стъпка вместо тази, която е вместо с двата router-а машините да говорят BGP директно със switch-овете, като така се намалява броя сесии. Това обаче изисква малко tooling, за да мога да синхронизирам конфигурацията на двата switch-а по темата и доста внимание да не изтърва пълна таблица натам, защото ще клекнат (така като гледам, на пръв поглед поддържат до 16к пътя). В този случай обаче все пак ще трябва да оставя L2 нещата по switch-овете за външните връзки, т.е. не мога да мина изцяло на route-нат setup (защото не мога и да терминирам сесиите директно в switch-овете, въпреки че обмислям хакове да прекарвам многото трафик директно през switch-овете, с VRF-и).

Също един от следващите планове е cloud-тип нещо – три железа (с най-вероятно StorPool за storage), около 1 TB памет, 100-ти на core-а и изцяло route-ната мрежа, до самите виртуалки. Също така обмислям и router-ите да са 2 и да са пак виртуалки, с PCI pass-through на мрежови интерфейси, но това трябва да си го досглобя в главата – има разни подробности за най-подходящия point-to-point интерфейс за вътре във виртуалките, и за начина на реализация на вътрешни мрежи.

(
Дълго време гледам как чисто layer2 мрежите имат купчина неудобни проблеми от гледна точка на redundancy и използване на целия си ресурс. Редовно виждам как в datacenter мрежи STP-то, клъстерирането и подобните неща убиват някакви услуги, и пробутвам на разни хора идеята да минат на layer3 мрежи – от много време няма някаква разлика в performance на двете. Явно е по-правилно да дам пример 🙂 )

Be the America Hong Kong thinks you are

Post Syndicated from esr original http://esr.ibiblio.org/?p=8448

I think this is my favorite Internet meme ever.

Yeah, Hong Kong, we actually have a problem with Communist oppression here, too. Notably in our universities, but metastatizing through pop culture and social media censorship too. They haven’t totally captured the machinery of state yet, but they’re working on that Long March all too effectively.

And you are absolutely right when you say you need a Second-Amendment-equivalent civil rights guarantee. Our Communists hate that liberty as much as yours do – actually, noticing who is gung-ho for gun confiscation is one of the more reliable ways to unmask Communist tools.

We need to be the America you think we are, too. Some of us are still trying.

2019-08-04 единичен апокриф

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3427

От серията апокрифи, с добавка.

Преди година-две се возех с един приятел, и той ми разказа следната история: българска фирма, която едно време продаваше много мрежов хардуер на isp-та, си поръчала много оптични конвертори от Китай.Пазарили се здраво с китайците за отстъпки, и накрая китайците казали – добре, за тия пари ще ви направим конвертори, и им ги пратили…

Пуснали те първите конвертори за разни потребители, и дошъл въпроса “защо през тая връзка мога да сваля zip файл, ама doc не мога?”… И тук човека ме пита – сещаш ли се какво е станало?

И аз си спомних как преди много години, около 1998, почти всичкия internet беше серийни връзки, и бяхме намерили начин да качваме серийния асинхронен сигнал в/у радио и да го носим на някакви сериозни разстояния, но имаше малък проблем – като пуснеш само нули или само единици, и те потрошаваха сигнала, понеже нямаше какво да му поддържа нормално нивото. Нещо като manchester encoding щеше да реши проблема (и да ни смъкне двойно bandwidth-а), но тогава такива неща не ни бяха във възможностите, за това написах малко демонче, наречено lfld (“line-fill daemon”), което в моментите, в които няма сигнал от серийния порт, да бълва “U” (01010101 в binary, 0x55), та да държи линията в нормално състояние, и на pppd-то беше обяснено да escape-ва 0x00, 0xff и 0x55. Тия дни дори си видях кода някъде, и е средно зле, ако има интерес към подобно нещо, мога да го кача някъде (може да се наложи допипване, че да работи на kernel > 2.0)
(синхронен сериен порт също би трябвало да ни реши проблема, ако си носеше clock-а със себе си, но тогава тия неща бяха ужасно скъпи)

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

Учудващо как някакви проблеми не изчезват 🙂

НАП Leaks

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3426

Та, leak-а от НАП.

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

Върви много спам по темата, няма да преповтарям неща от там. По-скоро ми се мотае въпроса, този набор от файлове от къде точно в НАП идва? Би било много интересно някой да анотира и напише какво има там като типове справки/данни, понеже поне по някакъв начален поглед и малко разпитване, онова там е тюрлю-гювеч (да използваме техническия термин). Изглежда като “staging” за раздаване на поискани справки по неофициална линия (особено файла QNEQNEV.CSV), и това изглежда като по-интересния момент – кой, какви справки и защо си е вадел от там.
(също така, някой да вземе да публикува какъв е тоя неофициален ред за искане на справки – от много време ми е интересно колко човека в България се водят на sysadmin-ска длъжност (даже не ме интересува кои са, просто числото))

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