Security updates for Friday

Post Syndicated from daroc original https://lwn.net/Articles/970508/

Security updates have been issued by AlmaLinux (gnutls, java-17-openjdk, mod_http2, and squid), Debian (firefox-esr), Fedora (editorconfig, perl-Clipboard, php, rust, and wordpress), Mageia (less, libreswan, puppet, and x11-server, x11-server-xwayland, and tigervnc), Slackware (aaa_glibc), and SUSE (firefox, graphviz, kernel, nodejs12, pgadmin4, tomcat, and wireshark).

Заковани в 90-те. Разговор за зависимостта като проблем на личността и на обществото

Post Syndicated from Надежда Цекулова original https://www.toest.bg/zakovani-v-90-te-razgovor-za-zavisimostta-kato-problem-na-lichnostta-i-na-obshtestvoto/

Заковани в 90-те. Разговор за зависимостта като проблем на личността и на обществото

В началото на април т.г. Розовата къща – единственият дневен център в страната, който предоставя социални услуги в помощ на бездомни зависими хора – беше спасена с над 100 000 лв. от дарители.

В България е честа практика граждани да подкрепят или изцяло да поемат основни здравно-социални функции на държавата. Зависимостите обаче са маргинална тема сред маргиналните теми в публичния разговор. Взривът от съпричастност остави усещането, че тя всъщност живее в сърцата на много хора.

Надежда Цекулова търси какво се крие зад мълчанието ни в един разговор с Кристина Янкулова, бивша наркозависима.

Заковани в 90-те. Разговор за зависимостта като проблем на личността и на обществото
Кристина Янкулова © Личен архив

Защо имате отношение към зависимостите? Каква е личната Ви история?

Всичко се случи през 90-те години. Аз съм родена през 1980 г. и съм отраснала в центъра на София. След 89-та тук избухна нещо като епидемия – навсякъде дрога, зависими хора. На 14 вече бях започнала да пия, да пуша трева. Хората казват, че тревата е gateway drug – дрога, която те повежда по пътя на наркотиците. Аз не споделям тази теория, но не отричам, че има хора, при които с това се започва. Така беше и при мен. Но бих казала, че широкото разпространение и лесният достъп до наркотиците допринесоха за това, което се случи с мен. 

Много мои приятели починаха. Други не успяха да се откажат. Имало е и такива, които се отказаха без каквато и да е помощ от някаква институция – тук никога не е имало адекватни институции… Това бяха „факторите на средата“, така да се каже. 

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

Наркотиците не водят ли до още по-голяма изолация?

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

Изходът от такава ситуация не е задължително добър, особено през 90-те. Вие как се справихте?

Няколко години се дрогирах с всичка сила. Всеотдайно беше, нямах никаква идея да се отказвам. Не мисля, че когато някой започва, си задава въпроса как ще се откаже след това. Така на 17 вече бях в тежко положение, стигнах и до свръхдоза, много често попадах в токсикологията. Решението ми да спра беше много повлияно от това да не продължавам да правя гадости на семейството си и на приятелите си. 

Започнах да се опитвам да се отказвам, което беше почти безсмислена борба, защото нямаше институции, нямаше и хора, които да са поне малко наясно с това как да работят със зависими. Всичко се свеждаше до ходене по психиатри, които даваха тежки лекарства, от една зависимост се преминаваше в друга и всичко това не помагаше по никакъв начин човек да спре. Къде ли не съм се лекувала тогава. През 99-та вече бях много зле, приемаха ме непрекъснато в болница и майка ми идваше с мен, защото като истински наркоман аз бягах от болницата, дрогирах се и се връщах. Извикаха я, за да ме пази. Така, докато се разхождала в коридора, една жена ѝ казала: „Аз видях Вашето дете. Трябва да знаете, че синът на моята съседка е в Италия заради същия проблем.“ Ето така се разпространяваше информацията тогава. 

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

Избрах да остана по-дълго време и да помагам на хора като мен, които тепърва започваха пътя си. Имах дори идеята да остана там завинаги. Отказа ме това, че влязох в тази комуна на 19 и на 26 все още не бях имала свой собствен живот. 

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

Абсолютно. Това беше изключително страшно. Дори не беше стресиращо, а беше страшно. Защото на всичкото отгоре точно в тези години се бяха появили мобилните телефони, банковите карти. И изведнъж аз се озовах обратно в България, буквално не знаейки как да използвам банкомат например – елементарни неща от всекидневния живот. Компютър никога не бях използвала. Самият формат на общуване с хората ми беше много куц – как да обясниш кой си, защо те е нямало толкова години, защо не знаеш какви групи са станали известни тогава или какви филми са излезли… Беше много трудно. 

През годините има натрупани много знания за зависимостите. Въпреки това в България изглеждаме сякаш заковани в края на 90-те в това отношение, поне моето усещане е такова. Как изглежда този пейзаж в момента през Вашите очи? 

Леко безнадежден. Защото липсва общност. Аз се прибрах в България през 2006 г., почти 20 години са минали оттогава, а все още усещам културния шок. Съвсем сериозно, седя и си казвам: как е възможно? Защото Италия може да има всичките си проблеми, но начинът на общуване е коренно различен – желанието на хората да помогнат, признанието, което получаваш, когато кажеш: „Аз бях в комуна…“ Хората се радват за теб, поздравяват те. Докато тук, колкото и да ми е неприятно, е имало случаи, в които майка ми е била права да казва: „Мълчи си“. Няма я тази сплотеност, която помага да се почувстваш по-добър, да се почувстваш полезен по някакъв начин. 

Имате ли обяснение за себе си защо като общество сме някак враждебни към хората, които имат нужда от помощ? Понякога дори жестоки…

Когато става дума за зависими, наистина е жестокост. Всъщност вярвам, че отговорът на този въпрос е страх. Страх от това, че някой е различен, че ти не можеш да го разбереш. Сблъсквала съм се стотици пъти със стереотипа, че ако си наркоман, то ти със сигурност си престъпник. Или ако имаш психически проблем, със сигурност си „луд за връзване“, трябва да те изолират някъде. Виновен си, че не си човекът, който се очаква да бъдеш. 

В момента има висока употреба на различни вещества, синтетични, изключително достъпни за младите хора. Институциите ни знаят тревожно малко и правят тревожно малко по въпроса. Така една история като Вашата може да бъде мултиплицирана във времето безброй пъти. Има ли общо действие, което би могло да бъде полезно в такава ситуация? Какво правят примерно в Италия за своите млади хора? 

Трудно е за сравнение, защото обществото е много различно. Там Католическата църква играе огромна роля в живота на хората. Освен това има доста добре развита благотворителност, осигуряваща за хората с проблеми много опции, които в България не съществуват. Тук се стига до „Оправяй се!“, няма институция, която може да помогне. В Италия, когато излязох от комуната, нямах нищо, никакви пари. Живяла съм един месец при сестрите на Майка Тереза, като това беше само една от възможностите, които имах за отсядане. 

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

Звучи като да нямаме чувство за общност, потребност да си помагаме, без значение дали през формални, или през неформални инструменти. 

Точно така, такова е усещането. Мисля, че по някакъв начин е свързано с цялостното отношение към живота. Италианците са някак много свързани с живота. Децата им например не пишат код на 12 години. Няма го това изострено желание да бъдеш велик непременно. Тук има много голям натиск да си добър, да завършиш университет, да си „успял“. Хората със зависимости обикновено имат проблем да се впишат в това изискване – по различни причини – и това ги кара да не виждат място за себе си в този живот. 

Споменахте в разговора стереотипа за „наркомана престъпник“. Този стереотип е резултат от нещо, което не знаем за зависимите, което липсва в масовото съзнание. Какво е то?

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

Подсещате ме как в последно време стоим с широко затворени очи пред бума на хазарта…

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

Фирмата, в която работя, оперира основно във Великобритания и там всичко е наистина строго регулирано. Няма как най-емблематичните личности, да кажем Христо Стоичков или Димитър Рачков, и този, и онзи, да рекламират хазарт. Освен това тук някак е възможно деца да залагат. Ако си на 16 години, би трябвало да е невъзможно да влезеш в сайт за залагания, но това се случва и ние наистина сякаш седим с широко затворени очи за това. А хазартната зависимост също е зависимост със сериозни последици както за човека, така и за обществото.

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

Да, механизмите са същите. Както при проблемната употреба на вещества, така и при проблемното залагане отново у нас липсват институциите, липсва строгият контрол върху тези, които печелят, липсва подкрепа за хората, които са в риск. И като че ли липсва и общностното ни съзнание. Общата ангажираност да подкрепим уязвимите. Има нужда от много повече „заедно“, което да помогне на този, който се е отклонил. 

Кой може да помогне за развиване на това общностно съзнание?

Мисля, че хора като мен, които имат опит за целия път, могат много да дадат. Аз просто никога досега не съм имала усещането, че мога някъде да дам опита си и да съм полезна. Но виждам, че „Розовата къща“ и основателката ѝ Юлия Георгиева правят именно това – помагат не само на конкретни нуждаещи се, но и за развитието на общността. 

Когато създаваше Розовата къща, Юлия се съмняваше дали ще има достатъчно обществена енергия и не по-маловажното – пари, – за да се издържа такава непопулярна кауза. Оказа се, че има. И че в момент на нужда тази общност успя да се мобилизира и да събере над 100 000 лв., за да спаси центъра. Вие как „четете“ това събитие?

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

Има хора, които ги е страх да се срещнат лице в лице със зависимите, но имат нужда да направят нещо. Това не е негативно, то е реакция, пробуждане за този проблем, на който ние не обръщаме достатъчно внимание. Затова и казах, че „Розовата къща“ помага не само на клиентите си, но и на общността – тя дава шанс на хората в периферията да се включат, да направят нещо, дори това „нещо“ да е скромно дарение.

А създаването на разбираща среда е не по-малко ценно от директната подкрепа, защото един човек със зависимост има нужда от разбиране дори след като се е излекувал. Много е важно хората със зависимости да знаят, че дори да пропаднат, след като са се отказали, това не е краят. Просто излизането от зависимостта не е крайна точка, а път. Този път може да продължи до края на дните ни. И е много важно да има хора, на които да се опрем в трудни моменти, за да не губим надежда. 

Прегрупиране. Гербодепесарщина

Post Syndicated from Емилия Милчева original https://www.toest.bg/pregrupirane-gerbodepesarshtina/

Прегрупиране. Гербодепесарщина

След седмица 49-тият парламент излиза в дълга предизборна ваканция. Край на комисиите за Нотариуса, за митниците, за „Боташ“ и „Турски поток“. Край на абсурдния вот на недоверие срещу служебен кабинет и на канонадите от парламентарната трибуна. 

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

Симулация на парламентаризъм

От януари насам народните представители симулират дейност и дори не направиха формално усилие да преодолеят напрежението в управляващото мнозинство, за да изпълнят ангажиментите, поети по Плана за възстановяване и устойчивост (ПВУ). Става въпрос за закъснелите закони за личния фалит, за защитата на лицата, подаващи сигнали, за процедурните правила за избор на членове на Комисията за противодействие на корупцията, за Пътната карта за климатична неутралност. Тази несвършена работа отлага за неопределено време втория транш от средствата по ПВУ – около 1,4 млрд. лв., ключови за България. С тях се отлагат и останалите два транша по Плана. 

Няма да бъдат приети и други два законопроекта, преминали през обществено обсъждане – за съдебната власт и за еврото. Депутатите запълват работното си време с парламентарен контрол и спорове пред полупразна зала. Отделиха повече време и енергия, за да поставят кадър на ГЕРБ начело на НЗОК, която разпределя над 8 млрд. лв. тази година. На сленга на ГЕРБ ситуацията може да се преведе и така: „В това белотче Бойко Борисов цака!“

Историята с управата на Здравната каса заслужава припомняне поради поуките, които носи. Преди близо пет месеца избраното малко преди това ръководство на НЗОК в лицето на номинирания от ПП–ДБ управител Станимир Михайлов и заместника му Момчил Мавров, издигнат от ГЕРБ, беше принудено от сглобката да подаде оставка. През всички тези пет месеца парламентът не намери време да оправи кашата, която забърка. Оставките „висяха“ в парламента, нови кандидатури нямаше. И ГЕРБ и ДПС се възползваха. „Техният“ човек Мавров оттегли оставката си ден преди точката за избор на управител на НЗОК да бъде включена в дневния ред, а впоследствие беше избран за шеф на Касата с гласовете на ГЕРБ, ДПС и БСП. Михайлов също се опита да изтегли оставката си в деня на избора, но действията му бяха блокирани от парламентарни мушингии. И се стигна до гласуването ѝ. 

Така по-силната сглобка в сглобката – на ГЕРБ и ДПС – осъществи операцията по овладяване на НЗОК, от която зависи финансирането на близо 350-те болници в България.

Но депутатите игнорираха избора на омбудсман и негов заместник, макар че институцията застъпник на човешките права и пазител на обществения интерес е без ръководство. Настоящата омбудсманка Диана Ковачева ще смени Йонко Грозев като съдия в Европейския съд по правата на човека, а нейната заместничка Елена Чернева-Маркова подаде оставка, за да остане извън кръга на възможни номинации за служебен премиер.

Всичко е постарому

В държавата всичко е постарому, а значи по гербодепесарски – 110-те в регулаторите, контролните органи и съдебната система, които отдавна трябваше да бъдат сменени, останаха по местата си. „Играта продължава – прегрупираме се“, както казал миналата пролет Борислав Сарафов на началника си, тогавашния главен прокурор Иван Гешев. После първият „временно“ зае креслото на втория и вероятно ще остане необезпокояван в него още поне година като временно изпълняващ функциите главен прокурор. 

Извършените от кабинета на ПП–ДБ и Николай Денков назначения се заменят с кадри на ГЕРБ, ДПС и посочени от президентския кръг, защото президентът може да няма (още) партия, но има съветници, кабинет в сянка и политически амбиции XXXL размер. В настоящия служебен кабинет „негови“ са поне четирима министри: на иновациите – Росен Карадимов, който беше вкаран в държавната Българска банка за развитие от президентския служебен кабинет „Донев 1“, на туризма – Евтим Милошев, на културата – Найден Тодоров, на външните работи – Стефан Димитров.

Последният по всяка вероятност ще бъде изтеглен (за да поеме поста, той прекъсна мандата си на посланик в Черна гора, където го изпрати първото служебно правителство на Гълъб Донев). Димитров се провали още при първия си тест като външен министър, след като е бил неоткриваем по време на удара на Иран срещу Израел, а впоследствие се опитал да отклони среща с американския помощник държавен секретар по въпросите на Европа и Евразия Джеймс О’Брайън. За да бъде запазен балансът, служебният премиер Главчев предлага смяна на министъра на земеделието Кирил Вътев с Георги Тахов, който оглавява Държавен фонд „Земеделие“ още от служебния кабинет на президента. 

Интригата обаче се заплита, тъй като номинираният за нов външен министър Даниел Митов, който е и заместник-председател на ГЕРБ, оттегли кандидатурата си, след като президентът Румен Радев отказал да я утвърди. Държавният глава настоял за нова номинация – изглежда, е подразнен не от партийната принадлежност на Митов, иначе трябваше да не одобри и други членове на кабинета, а от неговите недвусмислени прозападни позиции и подкрепа за Украйна. Така, въпреки изразените съмнения в способностите на настоящия външен министър да отстоява точно такива позиции, той засега запазва поста. Стефан Димитров е реплика на един друг първи дипломат, какъвто имаше България по време на коалиционното правителство на Кирил Петков – Теодора Генчовска. По това време България имаше две външни политики. 

Удобствата на не-коалициите

Докато се развива сюжетът с евентуалната смяна на външния министър, парламент и служебно управление започнаха да прехвърлят за пореден път горещи картофи на следващите управляващи – които и да са те. Депутатите отложиха с една година либерализацията на електроенергийния пазар и така реформата, която трябваше да се осъществи още преди десет години, отново е стопирана. Отварянето на пазара означаваше затваряне на въглищните централи, тъй като няма да има кой да купува скъпия им ток. В същото време бившият кабинет на ПП–ДБ и Народното събрание гарантираха, че централите ще работят до 2038 г. 

Но преди да го решат депутатите, правителството на Николай Денков също демонстрира нежелание да се заминава с либерализацията, като не гласува нито програмата за нея, нито наредбите. Вероятно са смятали да прехвърлят проблема към следващото правителство с премиер Мария Габриел от ГЕРБ, чийто ред така и не дойде. Отлагането на либерализацията отлага и изработването на механизъм за защита на енергийно бедните и уязвими потребители с една година – също тема, към която политиците не проявяват чувствителност, въпреки че в категорията „енергийно бедни“ вероятно попадат поне десет пъти повече хора от подпомаганите сега с енергийни помощи над 240 000.

А политиците продължават да се възползват от удобствата на не-коалицията. В развитите демокрации не се договарят властови конструкции като местните, при които не се подписва коалиционно споразумение, а партийните лидери се договарят на закрити врата и едва след като градежът се разтури, обществото научава кой чий е бил. Но тук са Балканите, това е България, а в България, както обичаме да казваме, „всичко е възможно“ – освен невъзможният прогрес. 

На второ четене: „История на един германец. Спомени 1914–1933“

Post Syndicated from Стефан Иванов original https://www.toest.bg/na-vtoro-chetene-istoriya-na-edin-germanec/

„История на един германец. Спомени 1914–1933“ от Себастиан Хафнер

На второ четене: „История на един германец. Спомени 1914–1933“

превод от немски Евгения Дебелянова, изд. „Аквариус“, 2021

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

С думите „естествено, става дума за ръкопис“ започва „Името на розата“ на Еко. Книгата на Хафнер (който, след като напуска нацистка Германия, се установява в Англия) излиза в родината му след смъртта на автора и се превръща в сензация. Неговият син открива ръкописа в тайник в бюро, което баща му подарява на внука си. Но усещането за мистификация в духа на XIX век или на постмодернизма свършва тук.

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

Красноречив биографичен опит, категоричен в оценките си и детайлен в описването на климата в Германия по време и след Първата световна война и в навечерието на Втората.

По сила, качество и интензитет тази изключително прецизна хроника на заболяването и описанието на изпадането на духа, на личната и политическа отговорност в клинична смърт и на морала в Германия в несъстоятелност е сравнима с дневниците на Клемперер, с мемоарите на Траудъл Юнге, последната лична секретарка на Хитлер, както и с писаното от Ремарк.

На второ четене: „История на един германец. Спомени 1914–1933“

Добре, защо отново да се връща човек назад и да чете за време, за което толкова много е изписано, заснети са толкова много игрални и документални филми? Краткият отговор, макар и да се повтарям, е, че то може да се случи отново и се случва в отделно взети страни, които натрапчиво се опитват да въвлекат света в сходни реваншистки конфликти и в които обществото няма достатъчно съпротивителни механизми да противостои на индивидуалната лудост на лидерите си. Лудост, която плъзва като масова психоза и води до такива изкривявания във всекидневието, че границата между обществен и личен живот се разрушава, конституцията и правото не значат нищо, а смисълът и основите на демокрацията са не само подкопани, а педантично екзекутирани и хвърлени в масов гроб.

От Гьотевия „Фауст“ в немския са навлезли поне две словосъчетания. Едното е „същината на пудела“, защото Мефистофел следва Фауст от градските порти до кабинета му в кожата на куче от тази порода. Дяволът е черен пудел. Другото е „въпрос на Гретхен“, който е така нацелен, че предизвиква изповед или трудно решение.

Хафнер задълбава много сериозно в „същината на пудела“, сиреч в „причините за нацизма“, и въпросите му са „въпроси на Гретхен“ колкото към времето, в което е живял, толкова и към самия него. Те карат и читателя да се пита как би реагирал на мястото на автора. И за добро или за лошо, всекидневно има възможността да си отговаря с думи и действия, защото плевелите на долнопробен и кален популизъм, национализъм и заредени с желание за мъст партии срещу несъществуващи и измислени врагове се радват на неочаквано добър и радушен прием и в България. И този прием не среща достатъчно добър и категоричен отпор нито от партии, нито от общество.

Това е книга за дуел, който не спира да се случва, „дуел между двама далеч не равни противници: една извънредно мощна, силна и безогледна държава и един малък, анонимен, неизвестен човек“. В това е силата на книгата. Тя разказва от първо лице как цяла една държава се сварява бавно и постепенно чрез страх и пропаганда като рак в тенджера. И сварен, ракът придобива формата на свастика, лагер и тумор. Авторът не спестява нищо и на самия себе си, за да направи едно крайно важно и днес откритие.

Всичко това е вярно: не се намесих в събитията, не бях дори и особено осведомен свидетел, но и никой не може да погледне на собствената ми личност по-скептично от самия мен. Аз все пак съм убеден – и моля това да не се смята за дързост от моя страна, – че със случайната частна история на моята случайна частна персона разказвам една важна и неразказана още част от германската и европейската история – по-важна и по-значима за бъдещето, отколкото ако разкажех кой е подпалил Райхстага и за какво в действителност са разговаряли Хитлер и Рьом. Какво е историята? Къде се разиграва тя? Когато чете обичайни исторически трудове – като обикновено лесно забравя, че те съдържат само контурите на нещата, а не самите неща, – човек се изкушава да повярва, че събитията се разиграват между няколко десетки личности, които решават съдбата на народите, и че от техните решения и дела произлиза това, което по-късно наричаме „история“. И тогава историята на настоящото десетилетие ще му изглежда като игра на шах между Хитлер, Мусолини, Чан Кайшъ, Рузвелт, Чембърлейн, Даладие и още няколко десетки мъже, чиито имена малко или много са в устата на всички. Ние, останалите, безименните, в най-добрия случай сме нейни обекти, пешки в шахматна партия, които биват местени или не, жертвани и губени, и чийто живот, ако имат такъв, минава в един съвсем друг свят, без връзка със ставащото на шахматната дъска, където присъстват дори без тяхно знание.
Може да прозвучи парадоксално по отношение на казаното дотук, но е неоспорим факт, че единствените исторически събития, които наистина имат значение, се случват между нас, безименните, в душата на всеки случаен и отделен човек, и че спрямо тези синхронно и често пъти несъзнавано взети решения на масите са абсолютно безсилни и най-могъщите диктатори, министри и генерали. Характерното за подобни кардинални събития обаче е, че те никога не избиват на повърхността под формата на масови прояви и демонстрации – работата е там, че щом се масовизира, масата губи способност за действие, – а винаги съществуват само като лични преживявания на хиляди и милиони отделни индивиди.

За мен това е сърцето на книгата и най-важното ѝ послание. Тъй снизходително нареченият от големите хора на власт „малък човек“ да не се отказва масово от голямата си сила. От несъгласието и присмеха си, от гласа си по време на избори и от гласа си в личния си живот, когато има вероятност първо да дойдат за приятелите му, а скоро и за него. Свободата, справедливостта и мирът са привилегии, които трябва да се отстояват постоянно.

Да, бих могъл да проследя с богат пъзел от цитати отделните части и етапи от историята на Хафнер, която той споделя с нас, но намирам посланието му за осъзнаването на личния потенциал и отговорност на индивидуално ниво за най-голямото достойнство на книгата. Прочее, поука, която е лесна за рационално усвояване и трудна за практическо прилагане. Историята на Хафнер започва с това как като дете е бил вманиачен в Първата световна война и е гледал статистиките по вестниците и на стената в училище, сякаш става въпрос за спорт, а не за смърт.

Как – впоследствие и след загубата на войната – се оказало, че

цяло едно поколение в Германия не знаеше какво да прави с подаръка „свободен, независим частен живот“.

Как

тази младеж не познаваше друго освен публичен шум, сензации, анархия и опасния чар на безотговорното жонглиране с числа. Тя само чакаше момента да повтори сама всичко, видяно през изминалите години, и то с още по-голям замах, а личният живот започна междувременно да ѝ се струва „скучен“, „еснафски“ и „демоде“. Масите също бяха свикнали с всевъзможните проявления на хаоса.

Как поколението,

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

Как

в годините между 1925 и 1930 у най-добрите представители на германската младеж съвсем незабелязано се зараждаше нещо много хубаво и обещаващо: един нов идеализъм отвъд съмненията и разочарованията; една втора либералност, по-широка, по-всеобхватна и по-зряла от политическия либерализъм на деветнайсети век; да, може би дори основите на едно ново благородство, на една нова аристократичност, на една нова естетика на живота. Превръщането на всичко това в действителна сила беше още твърде далеч; то тъкмо се беше проявило в мисъл и слово, когато четириногите дойдоха и го стъпкаха.

Как

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

Как

решението беше само едно: физическо отдалечаване; емиграция; раздяла със страната, към която принадлежиш по рождение, език и възпитание, и с всякакъв род обвързаности с нея.

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

С думите „естествено, става дума за ръкопис“ започва „Името на розата“ на Еко. В първа глава на „Алената буква“ Хоторн нарича затвора „черното цвете на цивилизованото общество“, а пред затвора, пред вратата на „черното цвете“, расте буен розов храст. Не бива отново и отново да се позволява буйният розов храст да се превръща в черно цвете. В букет за поредно погребение на някоя държава и общество.


Активните дарители на „Тоест“ получават постоянна отстъпка в размер на 20% от коричната цена на всички заглавия от каталога на „Аквариус“, както и на няколко други български издателства в рамките на партньорската програма Читателски клуб „Тоест“. За повече информация прочетете на toest.bg/club.

Никой от нас не чете единствено най-новите книги. Тогава защо само за тях се пише? „На второ четене“ е рубрика, в която отваряме списъците с книги, публикувани преди поне година, четем ги и препоръчваме любимите си от тях. Рубриката е част от партньорската програма Читателски клуб „Тоест“. Изборът на заглавия обаче е единствено на авторите – Стефан Иванов и Севда Семер, които биха ви препоръчали тези книги и ако имаше как веднъж на две седмици да се разходите с тях в книжарницата.

Meta Llama 3 available on Cloudflare Workers AI

Post Syndicated from Michelle Chen original https://blog.cloudflare.com/meta-llama-3-available-on-cloudflare-workers-ai


Workers AI

Workers AI’s initial launch in beta included support for Llama 2, as it was one of the most requested open source models from the developer community. Since that initial launch, we’ve seen developers build all kinds of innovative applications including knowledge sharing chatbots, creative content generation, and automation for various workflows.  

At Cloudflare, we know developers want simplicity and flexibility, with the ability to build with multiple AI models while optimizing for accuracy, performance, and cost, among other factors. Our goal is to make it as easy as possible for developers to use their models of choice without having to worry about the complexities of hosting or deploying models.

As soon as we learned about the development of Llama 3 from our partners at Meta, we knew developers would want to start building with it as quickly as possible. Workers AI’s serverless inference platform makes it extremely easy and cost effective to start using the latest large language models (LLMs). Meta’s commitment to developing and growing an open AI-ecosystem makes it possible for customers of all sizes to use AI at scale in production. All it takes is a few lines of code to run inference to Llama 3:

export interface Env {
  // If you set another name in wrangler.toml as the value for 'binding',
  // replace "AI" with the variable name you defined.
  AI: any;
}

export default {
  async fetch(request: Request, env: Env) {
    const response = await env.AI.run('@cf/meta/llama-3-8b-instruct', {
        messages: [
{role: "user", content: "What is the origin of the phrase Hello, World?"}
	 ]
      }
    );

    return new Response(JSON.stringify(response));
  },
};

Built with Meta Llama 3

Llama 3 offers leading performance on a wide range of industry benchmarks. You can learn more about the architecture and improvements on Meta’s blog post. Cloudflare Workers AI supports Llama 3 8B, including the instruction fine-tuned model.

Meta’s testing shows that Llama 3 is the most advanced open LLM today on evaluation benchmarks such as MMLU, GPQA, HumanEval, GSM-8K, and MATH. Llama 3 was trained on an increased number of training tokens (15T), allowing the model to have a better grasp on language intricacies. Larger context windows doubles the capacity of Llama 2, and allows the model to better understand lengthy passages with rich contextual data. Although the model supports a context window of 8k, we currently only support 2.8k but are looking to support 8k context windows through quantized models soon. As well, the new model introduces an efficient new tiktoken-based tokenizer with a vocabulary of 128k tokens, encoding more characters per token, and achieving better performance on English and multilingual benchmarks. This means that there are 4 times as many parameters in the embedding and output layers, making the model larger than the previous Llama 2 generation of models.

Under the hood, Llama 3 uses grouped-query attention (GQA), which improves inference efficiency for longer sequences and also renders their 8B model architecturally equivalent to Mistral-7B. For tokenization, it uses byte-level byte-pair encoding (BPE), similar to OpenAI’s GPT tokenizers. This allows tokens to represent any arbitrary byte sequence — even those without a valid utf-8 encoding. This makes the end-to-end model much more flexible in its representation of language, and leads to improved performance.

Along with the base Llama 3 models, Meta has released a suite of offerings with tools such as Llama Guard 2, Code Shield, and CyberSec Eval 2, which we are hoping to release on our Workers AI platform shortly.

Try it out now

Meta Llama 3 8B is available in the Workers AI Model Catalog today! Check out the documentation here and as always if you want to share your experiences or learn more, join us in the Developer Discord.

Serverless IoT email capture, attachment processing, and distribution

Post Syndicated from Stacy Conant original https://aws.amazon.com/blogs/messaging-and-targeting/serverless-iot-email-capture-attachment-processing-and-distribution/

Many customers need to automate email notifications to a broad and diverse set of email recipients, sometimes from a sensor network with a variety of monitoring capabilities. Many sensor monitoring software products include an SMTP client to achieve this goal. However, managing email server infrastructure requires specialty expertise and operating an email server comes with additional cost and inherent risk of breach, spam, and storage management. Organizations also need to manage distribution of attachments, which could be large and potentially contain exploits or viruses. For IoT use cases, diagnostic data relevance quickly expires, necessitating retention policies to regularly delete content.

Solution Overview

This solution uses the Amazon Simple Email Service (SES) SMTP interface to receive SMTP client messages, and processes the message to replace an attachment with a pre-signed URL in the resulting email to its intended recipients. Attachments are stored separately in an Amazon Simple Storage Service (S3) bucket with a lifecycle policy implemented. This reduces the storage requirements of recipient email server receiving notification emails. Additionally, this solution leverages built-in anti-spam and security scanning capabilities to deal with spam and potentially malicious attachments while at the same time providing the mechanism by which pre-signed attachment links can be revoked should the emails be distributed to unintended recipients.

The solution uses:

  • Amazon SES SMTP interface to receive incoming emails.
  • Amazon SES receipt rule on a (sub)domain controlled by administrators, to store raw incoming emails in an Amazon S3 bucket.
  • AWS Lambda function, triggered on S3 ObjectCreated event, to process raw emails, extract attachments, replace each with pre-signed URL with configurable expiry, and send the processed emails to intended recipients.

Solution Flow Details:

  1. SMTP client transmits email content to an email address in a (sub) domain with MX record set to Amazon SES service’s regional endpoint.
  2. Amazon SES SMTP interface receives an email and forwards it to SES Receipt Rule(s) for processing.
  3. A matching Amazon SES Receipt Rule saves incoming email into an Amazon S3 Bucket.
  4. Amazon S3 Bucket emits an S3 ObjectCreated Event, and places the event onto the Amazon Simple Queue Services (SQS) queue.
  5. The AWS Lambda service polls the inbound messages’ SQS queue and feeds events to the Lambda function.
  6. The Lambda function, retrieves email files from the S3 bucket, parses the email sender/subject/body, saves attachments to a separate attachment S3 bucket (7), and replaces attachments with pre-signed URLs in the email body. The Lambda function then extracts intended recipient addresses from the email body. If the body contains properly formatted recipients list, email is then sent using SES API (9), otherwise a notice is posted to a fallback Amazon Simple Notification Service (SNS) Topic (8).
  7. The Lambda function saves extracted attachments, if any, into an attachments bucket.
  8. Malformed email notifications are posted to a fallback Amazon SNS Topic.
  9. The Lambda function invokes Amazon SES API to send the processed email to all intended recipient addresses.
  10. If the Lambda function is unable to process email successfully, the inbound message is placed on to the SQS dead-letter queue (DLQ) queue for later intervention by the operator.
  11. SES delivers an email to each recipients’ mail server.
  12. Intended recipients download emails from their corporate mail servers and retrieve attachments from the S3 pre-signed URL(s) embedded in the email body.
  13. An alarm is triggered and a notification is published to Amazon SNS Alarms Topic whenever:
    • More than 50 failed messages are in the DLQ.
    • Oldest message on incoming SQS queue is older than 3 minutes – unable to keep up with inbound messages (flooding).
    • The incoming SQS queue contains over 180 messages (configurable) over 5 minutes old.

Setting up Amazon SES

For this solution you will need an email account where you can receive emails. You’ll also need a (sub)domain for which you control the mail exchanger (MX) record. You can obtain your (sub)domain either from Amazon Route53 or another domain hosting provider.

Verify the sender email address

You’ll need to follow the instructions to Verify an email address for all identities that you use as “From”, “Source”, ” Sender”, or “Return-Path” addresses. You’ll also need to follow these instructions for any identities you wish to send emails to during initial testing while your SES account is in the “Sandbox” (see next “Moving out of the SES Sandbox” section).

Moving out of the SES Sandbox

Amazon SES accounts are “in the Sandbox” by default, limiting email sending only to verified identities. AWS does this to prevent fraud and abuse as well as protecting your reputation as an email sender. When your account leaves the Sandbox, SES can send email to any recipient, regardless of whether the recipient’s address or domain is verified by SES. However, you still have to verify all identities that you use as “From”, “Source”, “Sender”, or “Return-Path” addresses.
Follow the Moving out of the SES Sandbox instructions in the SES Developer Guide. Approval is usually within 24 hours.

Set up the SES SMTP interface

Follow the workshop lab instructions to set up email sending from your SMTP client using the SES SMTP interface. Once you’ve completed this step, your SMTP client can open authenticated sessions with the SES SMTP interface and send emails. The workshop will guide you through the following steps:

  1. Create SMTP credentials for your SES account.
    • IMPORTANT: Never share SMTP credentials with unauthorized individuals. Anyone with these credentials can send as many SMTP requests and in whatever format/content they choose. This may result in end-users receiving emails with malicious content, administrative/operations overload, and unbounded AWS charges.
  2. Test your connection to ensure you can send emails.
  3. Authenticate using the SMTP credentials generated in step 1 and then send a test email from an SMTP client.

Verify your email domain and bounce notifications with Amazon SES

In order to replace email attachments with a pre-signed URL and other application logic, you’ll need to set up SES to receive emails on a domain or subdomain you control.

  1. Verify the domain that you want to use for receiving emails.
  2. Publish a mail exchanger record (MX record) and include the Amazon SES inbound receiving endpoint for your AWS region ( e.g. inbound-smtp.us-east-1.amazonaws.com for US East Northern Virginia) in the domain DNS configuration.
  3. Amazon SES automatically manages the bounce notifications whenever recipient email is not deliverable. Follow the Set up notifications for bounces and complaints guide to setup bounce notifications.

Deploying the solution

The solution is implemented using AWS CDK with Python. First clone the solution repository to your local machine or Cloud9 development environment. Then deploy the solution by entering the following commands into your terminal:

python -m venv .venv
. ./venv/bin/activate
pip install -r requirements.txt

cdk deploy \
--context SenderEmail=<verified sender email> \
 --context RecipientEmail=<recipient email address> \
 --context ConfigurationSetName=<configuration set name>

Note:

The RecipientEmail CDK context parameter in the cdk deploy command above can be any email address in the domain you verified as part of the Verify the domain step. In other words, if the verified domain is acme-corp.com, then the emails can be [email protected], [email protected], etc.

The ConfigurationSetName CDK context can be obtained by navigating to Identities in Amazon SES console, selecting the verified domain (same as above), switching to “Configuration set” tab and selecting name of the “Default configuration set”

After deploying the solution, please, navigate to Amazon SES Email receiving in AWS console, edit the rule set and set it to Active.

Testing the solution end-to-end

Create a small file and generate a base64 encoding so that you can attach it to an SMTP message:

echo content >> demo.txt
cat demo.txt | base64 > demo64.txt
cat demo64.txt

Install openssl (which includes an SMTP client capability) using the following command:

sudo yum install openssl

Now run the SMTP client (openssl is used for the proof of concept, be sure to complete the steps in the workshop lab instructions first):

openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.<aws-region>.amazonaws.com:587

and feed in the commands (replacing the brackets [] and everything between them) to send the SMTP message with the attachment you created.

EHLO amazonses.com
AUTH LOGIN
[base64 encoded SMTP user name]
[base64 encoded SMTP password]
MAIL FROM:[VERIFIED EMAIL IN SES]
RCPT TO:[VERIFIED EMAIL WITH SES RECEIPT RULE]
DATA
Subject: Demo from openssl
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="XXXXboundary text"

This is a multipart message in MIME format.

--XXXXboundary text
Content-Type: text/plain

Line1:This is a Test email sent to coded list of email addresses using the Amazon SES SMTP interface from openssl SMTP client.
Line2:Email_Rxers_Code:[ANYUSER1@DOMAIN_A,ANYUSER2@DOMAIN_B,ANYUSERX@DOMAIN_Y]:Email_Rxers_Code:
Line3:Last line.

--XXXXboundary text
Content-Type: text/plain;
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename="demo64.txt"
Y29udGVudAo=
--XXXXboundary text
.
QUIT

Note: For base64 SMTP username and password above, use values obtained in Set up the SES SMTP interface, step 1. So for example, if the username is AKZB3LJAF5TQQRRPQZO1, then you can obtain base64 encoded value using following command:

echo -n AKZB3LJAF5TQQRRPQZO1 |base64
QUtaQjNMSkFGNVRRUVJSUFFaTzE=

This makes base64 encoded value QUtaQjNMSkFGNVRRUVJSUFFaTzE= Repeat same process for SMTP username and password values in the example above.

The openssl command should result in successful SMTP authentication and send. You should receive an email that looks like this:

Optimizing Security of the Solution

  1. Do not share DNS credentials. Unauthorized access can lead to domain control, potential denial of service, and AWS charges. Restrict access to authorized personnel only.
  2. Do not set the SENDER_EMAIL environment variable to the email address associated with the receipt rule. This address is a closely guarded secret, known only to administrators, and should be changed frequently.
  3. Review access to your code repository regularly to ensure there are no unauthorized changes to your code base.
  4. Utilize Permissions Boundaries to restrict the actions permitted by an IAM user or role.

Cleanup

To cleanup, start by navigating to Amazon SES Email receiving in AWS console, and setting the rule set to Inactive.

Once completed, delete the stack:

cdk destroy

Cleanup AWS SES Access Credentials

In Amazon SES Console, select Manage existing SMTP credentials, select the username for which credentials were created in Set up the SES SMTP interface above, navigate to the Security credentials tab and in the Access keys section, select Action -> Delete to delete AWS SES access credentials.

Troubleshooting

If you are not receiving the email or email is not being sent correctly there are a number of common causes of these errors:

  • HTTP Error 554 Message rejected email address is not verified. The following identities failed the check in region :
    • This means that you have attempted to send an email from address that has not been verified.
    • Please, ensure that the “MAIL FROM:[VERIFIED EMAIL IN SES]” email address sent via openssl matches the SenderEmail=<verified sender email> email address used in cdk deploy.
    • Also make sure this email address was used in Verify the sender email address step.
  • Email is not being delivered/forwarded
    • The incoming S3 bucket under the incoming prefix, contains file called AMAZON_SES_SETUP_NOTIFICATION. This means that MX record of the domain setup is missing. Please, validate that the MX record (step 2) of Verify your email domain with Amazon SES to receive emails section is fully configured.
    • Please ensure after deploying the Amazon SES solution, the created rule set was made active by navigating to Amazon SES Email receiving in AWS console, and set it to Active.
    • This may mean that the destination email address has bounced. Please, navigate to Amazon SES Suppression list in AWS console ensure that recipient’s email is not in the suppression list. If it is listed, you can see the reason in the “Suppression reason” column. There you may either manually remove from the suppression list or if the recipient email is not valid, consider using a different recipient email address.
AWS Legal Disclaimer: Sample code, software libraries, command line tools, proofs of concept, templates, or other related technology are provided as AWS Content or Third-Party Content under the AWS Customer Agreement, or the relevant written agreement between you and AWS (whichever applies). You should not use this AWS Content or Third-Party Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the AWS Content or Third-Party Content, such as sample code, as appropriate for production grade use based on your specific quality control practices and standards. Deploying AWS Content or Third-Party Content may incur AWS charges for creating or using AWS chargeable resources, such as running Amazon EC2 instances or using Amazon S3 storage.

About the Authors

Tarek Soliman

Tarek Soliman

Tarek is a Senior Solutions Architect at AWS. His background is in Software Engineering with a focus on distributed systems. He is passionate about diving into customer problems and solving them. He also enjoys building things using software, woodworking, and hobby electronics.

Dave Spencer

Dave Spencer

Dave is a Senior Solutions Architect at AWS. His background is in cloud solutions architecture, Infrastructure as Code (Iac), systems engineering, and embedded systems programming. Dave’s passion is developing partnerships with Department of Defense customers to maximize technology investments and realize their strategic vision.

Ayman Ishimwe

Ayman Ishimwe

Ayman is a Solutions Architect at AWS based in Seattle, Washington. He holds a Master’s degree in Software Engineering and IT from Oakland University. With prior experience in software development, specifically in building microservices for distributed web applications, he is passionate about helping customers build robust and scalable solutions on AWS cloud services following best practices.

Dmytro Protsiv

Dmytro Protsiv

Dmytro is a Cloud Applications Architect for with Amazon Web Services. He is passionate about helping customers to solve their business challenges around application modernization.

Stacy Conant

Stacy Conant

Stacy is a Solutions Architect working with DoD and US Navy customers. She enjoys helping customers understand how to harness big data and working on data analytics solutions. On the weekends, you can find Stacy crocheting, reading Harry Potter (again), playing with her dogs and cooking with her husband.

2023 ISO 27001 certificate available in Spanish and French, and 2023 ISO 22301 certificate available in Spanish

Post Syndicated from Atulsing Patil original https://aws.amazon.com/blogs/security/2023-iso-27001-certificate-available-in-spanish-and-french-and-2023-iso-22301-certificate-available-in-spanish/

French »
Spanish »

Amazon Web Services (AWS) is pleased to announce that a translated version of our 2023 ISO 27001 and 2023 ISO 22301 certifications are now available:

  • The 2023 ISO 27001 certificate is available in Spanish and French.
  • The 2023 ISO 22301 certificate is available in Spanish.

Translated certificates are available to customers through AWS Artifact.

These translated certificates will help drive greater engagement and alignment with customer and regulatory requirements across France, Latin America, and Spain.

We continue to listen to our customers, regulators, and stakeholders to understand their needs regarding audit, assurance, certification, and attestation programs at AWS. If you have questions or feedback about ISO compliance, reach out to your AWS account team.
 


French version

La certification ISO 27001 2023 est désormais disponible en espagnol et en français et le certification ISO 22301 est désormais disponible en espagnol

Nous restons à l’écoute de nos clients, des autorités de régulation et des parties prenantes pour mieux comprendre leurs besoins en matière de programmes d’audit, d’assurance, de certification et d’attestation au sein d’Amazon Web Services (AWS). La certification ISO 27001 2023 est désormais disponible en espagnol et en français. La certification ISO 22301 2023 est également désormais disponible en espagnol. Ces certifications traduites contribueront à renforcer notre engagement et notre conformité aux exigences des clients et de la réglementation en France, en Amérique latine et en Espagne.

Les certifications traduites sont mises à la disposition des clients via AWS Artifact.

Si vous avez des commentaires sur cet article, soumettez-les dans la section Commentaires ci-dessous.

Vous souhaitez davantage de contenu, d’actualités et d’annonces sur les fonctionnalités AWS Security ? Suivez-nous sur Twitter.
 


Spanish version

El certificado ISO 27001 2023 ahora está disponible en Español y Francés y el certificado ISO 22301 ahora está disponible en Español

Seguimos escuchando a nuestros clientes, reguladores y partes interesadas para comprender sus necesidades en relación con los programas de auditoría, garantía, certificación y atestación en Amazon Web Services (AWS). El certificado ISO 27001 2023 ya está disponible en español y francés. Además, el certificado ISO 22301 de 2023 ahora está disponible en español. Estos certificados traducidos ayudarán a impulsar un mayor compromiso y alineación con los requisitos normativos y de los clientes en Francia, América Latina y España.

Los certificados traducidos están disponibles para los clientes en AWS Artifact.

Si tienes comentarios sobre esta publicación, envíalos en la sección Comentarios a continuación.

¿Desea obtener más noticias sobre seguridad de AWS? Síguenos en Twitter.

Atul Patil

Atulsing Patil

Atulsing is a Compliance Program Manager at AWS. He has 27 years of consulting experience in information technology and information security management. Atulsing holds a master of science in electronics degree and professional certifications such as CCSP, CISSP, CISM, CDPSE, ISO 27001 Lead Auditor, HITRUST CSF, Archer Certified Consultant, and AWS CCP.

Nimesh Ravas

Nimesh Ravasa

Nimesh is a Compliance Program Manager at AWS. He leads multiple security and privacy initiatives within AWS. Nimesh has 15 years of experience in information security and holds CISSP, CDPSE, CISA, PMP, CSX, AWS Solutions Architect – Associate, and AWS Security Specialty certifications.

Chinmaee Parulekar

Chinmaee Parulekar

Chinmaee is a Compliance Program Manager at AWS. She has 5 years of experience in information security. Chinmaee holds a master of science degree in management information systems and professional certifications such as CISA.

How Salesforce optimized their detection and response platform using AWS managed services

Post Syndicated from Atul Khare original https://aws.amazon.com/blogs/big-data/how-salesforce-optimized-their-detection-and-response-platform-using-aws-managed-services/

This is a guest blog post co-authored with Atul Khare and Bhupender Panwar from Salesforce.

Headquartered in San Francisco, Salesforce, Inc. is a cloud-based customer relationship management (CRM) software company building artificial intelligence (AI)-powered business applications that allow businesses to connect with their customers in new and personalized ways.

The Salesforce Trust Intelligence Platform (TIP) log platform team is responsible for data pipeline and data lake infrastructure, providing log ingestion, normalization, persistence, search, and detection capability to ensure Salesforce is safe from threat actors. It runs miscellaneous services to facilitate investigation, mitigation, and containment for security operations. The TIP team is critical to securing Salesforce’s infrastructure, detecting malicious threat activities, and providing timely responses to security events. This is achieved by collecting and inspecting petabytes of security logs across dozens of organizations, some with thousands of accounts.

In this post, we discuss how the Salesforce TIP team optimized their architecture using Amazon Web Services (AWS) managed services to achieve better scalability, cost, and operational efficiency.

TIP existing architecture bird’s eye view and scale of the platform

The main key performance indicator (KPI) for the TIP platform is its capability to ingest a high volume of security logs from a variety of Salesforce internal systems in real time and process them with high velocity. The platform ingests more than 1 PB of data per day, more than 10 million events per second, and more than 200 different log types. The platform ingests log files in JSON, text, and Common Event Format (CEF) formats.

The message bus in TIP’s existing architecture mainly uses Apache Kafka for ingesting different log types coming from the upstream systems. Kafka had a single topic for all the log types before they were consumed by different downstream applications including Splunk, Streaming Search, and Log Normalizer. The Normalized Parquet Logs are stored in an Amazon Simple Storage Service (Amazon S3) data lake and cataloged into Hive Metastore (HMS) on an Amazon Relational Database Service (Amazon RDS) instance based on S3 event notifications. The data lake consumers then use Apache Presto running on Amazon EMR cluster to perform one-time queries. Other teams including the Data Science and Machine Learning teams use the platform to detect, analyze, and control security threats.

Challenges with the existing TIP log platform architecture

Some of the main challenges that TIP’s existing architecture was facing include:

  • Heavy operational overhead and maintenance cost managing the Kafka cluster
  • High cost to serve (CTS) to meet growing business needs
  • Compute threads limited by partitions’ numbers
  • Difficult to scale out when traffic increases
  • Weekly patching creates lags
  • Challenges with HMS scalability

All these challenges motivated the TIP team to embark on a journey to create a more optimized platform that’s easier to scale with less operational overhead and lower CTS.

New TIP log platform architecture

The Salesforce TIP log platform engineering team, in collaboration with AWS, started building the new architecture to replace the Kafka-based message bus solution with the fully managed AWS messaging and notification solutions Amazon Simple Queue Service (Amazon SQS) and Amazon Simple Notification Service (Amazon SNS). In the new design, the upstream systems send their logs to a central Amazon S3 storage location, which invokes a process to partition the logs and store them in an S3 data lake. Consumer applications such as Splunk get the messages delivered to their system using Amazon SQS. Similarly, the partitioned log data through Amazon SQS events initializes a log normalization process that delivers the normalized log data to open source Delta Lake tables on an S3 data lake. One of the major changes in the new architecture is the use of an AWS Glue Data Catalog to replace the previous Hive Metastore. The one-time analysis applications use Apache Trino on an Amazon EMR cluster to query the Delta Tables cataloged in AWS Glue. Other consumer applications also read the data from S3 data lake files stored in Delta Table format. More details on some of the important processes are as follows:

Log partitioner (Spark structured stream)

This service ingests logs from the Amazon S3 SNS SQS-based store and stores them in the partitioned (by log types) format in S3 for further downstream consumptions from the Amazon SNS SQS subscription. This is the bronze layer of the TIP data lake.

Log normalizer (Spark structured stream)

One of the downstream consumers of log partitioner (Splunk Ingestor is another one), the log normalizer ingests the data from Partitioned Output S3, using Amazon SNS SQS notifications, and enriches them using Salesforce custom parsers and tags. Finally, this enriched data is landed in the data lake on S3. This is the silver layer of the TIP data lake.

Machine learning and other data analytics consumers (Trino, Flink, and Spark Jobs)

These consumers consume from the silver layer of the TIP data lake and run analytics for security detection use cases. The earlier Kafka interface is now converted to delta streams ingestion, which concludes the total removal of the Kafka bus from the TIP data pipeline.

Advantages of the new TIP log platform architecture

The main advantages realized by the Salesforce TIP team based on this new architecture using Amazon S3, Amazon SNS, and Amazon SQS include:

  • Cost savings of approximately $400 thousand per month
  • Auto scaling to meet growing business needs
  • Zero DevOps maintenance overhead
  • No mapping of partitions to compute threads
  • Compute resources can be scaled up and down independently
  • Fully managed Data Catalog to reduce the operational overhead of managing HMS

Summary

In this blog post we discussed how the Salesforce Trust Intelligence Platform (TIP) optimized their data pipeline by replacing the Kafka-based message bus solution with fully managed AWS messaging and notification solutions using Amazon SQS and Amazon SNS. Salesforce and AWS teams worked together to make sure this new platform seamlessly scales to ingest more than 1 PB of data per day, more than 10 millions events per second, and more than 200 different log types. Reach out to your AWS account team if you have similar use cases and you need help architecting your platform to achieve operational efficiencies and scale.


About the authors

Atul Khare is a Director of Engineering at Salesforce Security, where he spearheads the Security Log Platform and Data Lakehouse initiatives. He supports diverse security customers by building robust big data ETL pipeline that is elastic, resilient, and easy to use, providing uniform & consistent security datasets for threat detection and response operations, AI, forensic analysis, analytics, and compliance needs across all Salesforce clouds. Beyond his professional endeavors, Atul enjoys performing music with his band to raise funds for local charities.

Bhupender Panwar is a Big Data Architect at Salesforce and seasoned advocate for big data and cloud computing. His background encompasses the development of data-intensive applications and pipelines, solving intricate architectural and scalability challenges, and extracting valuable insights from extensive datasets within the technology industry. Outside of his big data work, Bhupender loves to hike, bike, enjoy travel and is a great foodie.

Avijit Goswami is a Principal Solutions Architect at AWS specialized in data and analytics. He supports AWS strategic customers in building high-performing, secure, and scalable data lake solutions on AWS using AWS managed services and open-source solutions. Outside of his work, Avijit likes to travel, hike in the San Francisco Bay Area trails, watch sports, and listen to music.

Vikas Panghal is the Principal Product Manager leading the product management team for Amazon SNS and Amazon SQS. He has deep expertise in event-driven and messaging applications and brings a wealth of knowledge and experience to his role, shaping the future of messaging services. He is passionate about helping customers build highly scalable, fault-tolerant, and loosely coupled systems. Outside of work, he enjoys spending time with his family outdoors, playing chess, and running.

Integrate Kubernetes policy-as-code solutions into Security Hub

Post Syndicated from Joaquin Manuel Rinaudo original https://aws.amazon.com/blogs/security/integrate-kubernetes-policy-as-code-solutions-into-security-hub/

Using Kubernetes policy-as-code (PaC) solutions, administrators and security professionals can enforce organization policies to Kubernetes resources. There are several publicly available PAC solutions that are available for Kubernetes, such as Gatekeeper, Polaris, and Kyverno.

PaC solutions usually implement two features:

  • Use Kubernetes admission controllers to validate or modify objects before they’re created to help enforce configuration best practices for your clusters.
  • Provide a way for you to scan your resources created before policies were deployed or against new policies being evaluated.

This post presents a solution to send policy violations from PaC solutions using Kubernetes policy report format (for example, using Kyverno) or from Gatekeeper’s constraints status directly to AWS Security Hub. With this solution, you can visualize Kubernetes security misconfigurations across your Amazon Elastic Kubernetes Service (Amazon EKS) clusters and your organizations in AWS Organizations. This can also help you implement standard security use cases—such as unified security reporting, escalation through a ticketing system, or automated remediation—on top of Security Hub to help improve your overall Kubernetes security posture and reduce manual efforts.

Solution overview

The solution uses the approach described in A Container-Free Way to Configure Kubernetes Using AWS Lambda to deploy an AWS Lambda function that periodically synchronizes the security status of a Kubernetes cluster from a Kubernetes or Gatekeeper policy report with Security Hub. Figure 1 shows the architecture diagram for the solution.

Figure 1: Diagram of solution

Figure 1: Diagram of solution

This solution works using the following resources and configurations:

  1. A scheduled event which invokes a Lambda function on a 10-minute interval.
  2. The Lambda function iterates through each running EKS cluster that you want to integrate and authenticate by using a Kubernetes Python client and an AWS Identity and Access Management (IAM) role of the Lambda function.
  3. For each running cluster, the Lambda function retrieves the selected Kubernetes policy reports (or the Gatekeeper constraint status, depending on the policy selected) and sends active violations, if present, to Security Hub. With Gatekeeper, if more violations exist than those reported in the constraint, an additional INFORMATIONAL finding is generated in Security Hub to let security teams know of the missing findings.

    Optional: EKS cluster administrators can raise the limit of reported policy violations by using the –constraint-violations-limit flag in their Gatekeeper audit operation.

  4. For each running cluster, the Lambda function archives archive previously raised and resolved findings in Security Hub.

You can download the solution from this GitHub repository.

Walkthrough

In the walkthrough, I show you how to deploy a Kubernetes policy-as-code solution and forward the findings to Security Hub. We’ll configure Kyverno and a Kubernetes demo environment with findings in an existing EKS cluster to Security Hub.

The code provided includes an example constraint and noncompliant resource to test against.

Prerequisites

An EKS cluster is required to set up this solution within your AWS environments. The cluster should be configured with either aws-auth ConfigMap or access entries. Optional: You can use eksctl to create a cluster.

The following resources need to be installed on your computer:

Step 1: Set up the environment

The first step is to install Kyverno on an existing Kubernetes cluster. Then deploy examples of a Kyverno policy and noncompliant resources.

Deploy Kyverno example and policy

  1. Deploy Kyverno in your Kubernetes cluster according to its installation manual using the Kubernetes CLI.
    kubectl create -f https://github.com/kyverno/kyverno/releases/download/v1.10.0/install.yaml

  2. Set up a policy that requires namespaces to use the label thisshouldntexist.
    kubectl create -f - << EOF
    apiVersion: kyverno.io/v1
    kind: ClusterPolicy
    metadata:
      name: require-ns-labels
    spec:
      validationFailureAction: Audit
      background: true
      rules:
      - name: check-for-labels-on-namespace
        match:
          any:
          - resources:
              kinds:
              - Namespace
        validate:
          message: "The label thisshouldntexist is required."
          pattern:
            metadata:
              labels:
                thisshouldntexist: "?*"
    EOF

Deploy a noncompliant resource to test this solution

  1. Create a noncompliant namespace.
    kubectl create namespace non-compliant

  2. Check the Kubernetes policy report status using the following command:
    kubectl get clusterpolicyreport -o yaml

You should see output similar to the following:

apiVersion: v1
items:
- apiVersion: wgpolicyk8s.io/v1alpha2
  kind: ClusterPolicyReport
  metadata:
    creationTimestamp: "2024-02-20T14:00:37Z"
    generation: 1
    labels:
      app.kubernetes.io/managed-by: kyverno
      cpol.kyverno.io/require-ns-labels: "3734083"
    name: cpol-require-ns-labels
    resourceVersion: "3734261"
    uid: 3cfcf1da-bd28-453f-b2f5-512c26065986
  results:
   ...
  - message: 'validation error: The label thisshouldntexist is required. rule check-for-labels-on-namespace
      failed at path /metadata/labels/thisshouldntexist/'
    policy: require-ns-labels
    resources:
    - apiVersion: v1
      kind: Namespace
      name: non-compliant
      uid: d62eb1ad-8a0b-476b-848d-ff6542c57840
    result: fail
    rule: check-for-labels-on-namespace
    scored: true
    source: kyverno
    timestamp:
      nanos: 0
      seconds: 1708437615

Step 2: Solution code deployment and configuration

The next step is to clone and deploy the solution that integrates with Security Hub.

To deploy the solution

  1. Clone the GitHub repository by using your preferred command line terminal:
    git clone https://github.com/aws-samples/securityhub-k8s-policy-integration.git

  2. Open the parameters.json file and configure the following values:
    1. Policy – Name of the product that you want to enable, in this case policyreport, which is supported by tools such as Kyverno.
    2. ClusterNames – List of EKS clusters. When AccessEntryEnabled is enabled, this solution deploys an access entry for the integration to access your EKS clusters.
    3. SubnetIds – (Optional) A comma-separated list of your subnets. If you’ve configured the API endpoints of your EKS clusters as private only, then you need to configure this parameter. If your EKS clusters have public endpoints enabled, you can remove this parameter.
    4. SecurityGroupId – (Optional) A security group ID that allows connectivity to the EKS clusters. This parameter is only required if you’re running private API endpoints; otherwise, you can remove it. This security group should be allowed ingress from the security group of the EKS control plane.
    5. AccessEntryEnabled – (Optional) If you’re using EKS access entries, the solution automatically deploys the access entries with read-only-group permissions deployed in the next step. This parameter is True by default.
  3. Save the changes and close the parameters file.
  4. Set up your AWS_REGION (for example, export AWS_REGION=eu-west-1) and make sure that your credentials are configured for the delegated administrator account.
  5. Enter the following command to deploy:
    ./deploy.sh

You should see the following output:

Waiting for changeset to be created..
Waiting for stack create/update to complete
Successfully created/updated stack - aws-securityhub-k8s-policy-integration

Step 3: Set up EKS cluster access

You need to create the Kubernetes Group read-only-group to allow read-only permissions to the IAM role of the Lambda function. If you aren’t using access entries, you will also need to modify the aws-auth ConfigMap of the Kubernetes clusters.

To configure access to EKS clusters

  1. For each cluster that’s running in your account, run the kube-setup.sh script to create the Kubernetes read-only cluster role and cluster role binding.
  2. (Optional) Configure aws-auth ConfigMap using eksctl if you aren’t using access entries.

Step 4: Verify AWS service integration

The next step is to verify that the Lambda integration to Security Hub is running.

To verify the integration is running

  1. Open the Lambda console, and navigate to the aws-securityhub-k8s-policy-integration-<region> function.
  2. Start a test to import your cluster’s noncompliant findings to Security Hub.
  3. In the Security Hub console, review the recently created findings from Kyverno.
     
    Figure 2: Sample Kyverno findings in Security Hub

    Figure 2: Sample Kyverno findings in Security Hub

Step 5: Clean up

The final step is to clean up the resources that you created for this walkthrough.

To destroy the stack

  • Use the command line terminal in your laptop to run the following command:
    ./cleanup.sh

Conclusion

In this post, you learned how to integrate Kubernetes policy report findings with Security Hub and tested this setup by using the Kyverno policy engine. If you want to test the integration of this solution with Gatekeeper, you can find alternative commands for step 1 of this post in the GitHub repository’s README file.

Using this integration, you can gain visibility into your Kubernetes security posture across EKS clusters and join it with a centralized view, together with other security findings such as those from AWS Config, Amazon Inspector, and more across your organization. You can also try this solution with other tools, such as kube-bench or Gatekeeper. You can extend this setup to notify security teams of critical misconfigurations or implement automated remediation actions by using AWS Security Hub.

For more information on how to use PaC solutions to secure Kubernetes workloads in the AWS cloud, see Amazon Elastic Kubernetes Service (Amazon EKS) workshop, Amazon EKS best practices, Using Gatekeeper as a drop-in Pod Security Policy replacement in Amazon EKS and Policy-based countermeasures for Kubernetes.

 
If you have feedback about this post, submit comments in the Comments section below. If you have questions about this post, contact AWS Support.

Author

Joaquin Manuel Rinaudo

Joaquin is a Principal Security Architect with AWS Professional Services. He is passionate about building solutions that help developers improve their software quality. Prior to AWS, he worked across multiple domains in the security industry, from mobile security to cloud and compliance related topics. In his free time, Joaquin enjoys spending time with family and reading science fiction novels.

[$] Gentoo bans AI-created contributions

Post Syndicated from jzb original https://lwn.net/Articles/970072/

Gentoo Council member Michał Górny posted
an RFC to the gentoo-dev mailing
list in late February about banning “‘AI’-backed (LLM/GPT/whatever)
contributions
” to the Gentoo Linux project. Górny wrote that the spread of the
AI bubble” indicated a need for Gentoo to formally take a stand on AI
tools. After a lengthy discussion, the Gentoo Council voted
unanimously this week to adopt his proposal and ban contributions generated with AI/ML tools.