Ами ако САЩ излязат от НАТО?

Post Syndicated from Искрен Иванов original https://www.toest.bg/ami-ako-usa-izlyazat-ot-nato/

Ами ако САЩ излязат от НАТО?

Когато американският президент Хари Труман подписва Договора от Вашингтон, с който се създава Организацията на Североатлантическия договор едва ли някой в САЩ е предполагал, че десетилетия по-късно Америка може да поиска да се изтегли едностранно от НАТО. 

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

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

НАТО, ЕС и „българската мечта“. Но кое по-напред?
Представите за „българската мечта“ често се люшкат между исторически митове и заемки от чужди модели. Но как изобщо се ражда тази идея и защо днес изглежда толкова трудно да я формулираме? Нейните корени, трансформации и рискове в съвременния геополитически контекст проследява Искрен Иванов.
Ами ако САЩ излязат от НАТО?

Защо НАТО е най-могъщият и успешен военен съюз

Дори критиците на Алианса не могат да отрекат една съществена разлика между него и класическите военни съюзи. Варшавският договор и дори съюзните споразумения, които САЩ имат с азиатските си партньори, почиват върху междуправителствения принцип на координация и взаимни консултации. Алиансът е нещо повече. 

НАТО е уникален заради колективната система за сигурност – членството в него предполага взаимни ангажименти, по силата на които атаката срещу един съюзник ще се възприема като атака срещу всички съюзници. 

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

Член 3 

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

Член 3 и член 5 следователно са гарант, че тази колективна система за сигурност се поддържа от всички и функционира за всички – принцип, който изисква солидарно споделяне на финансовата тежест и отбранителните ангажименти в Алианса.

Вторият фактор за успеха на НАТО е ядреното възпиране, и по-конкретно тактическите ядрени оръжия, които САЩ са разположили на европейския континент, за да удържат възможна агресия от друга ядрена сила. Без този ядрен чадър отбранителният капацитет на НАТО остава конвенционален, но недостатъчен, за да възпре заплахите от държави като Русия и Северна Корея. 

Франция и Великобритания разполагат с ядрен арсенал, но не биха могли да гарантират отбраната на континента в степента, в която могат САЩ, не само защото нямат ядрен паритет с Русия, но и защото Лондон и Париж ликвидираха ядрените си триади след края на Студената война. 

Накъде след „Мюнхен 2026“? Отворените въпроси пред Европа и България
Мюнхенската конференция по сигурността затвърди усещането (де да беше само такова), че старият трансатлантически баланс се разпада. Вече всички сме на една вълна по този въпрос. Но докато Европа търси автономия, България рискува да остане между линиите на разделението. От Александър Малинов.
Ами ако САЩ излязат от НАТО?

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

Ключът към успеха на НАТО е в споделената отбранителна тежест. 

Самата идея, че французи и германци могат да извършват съвместни военни учения под един флаг, би изглеждала немислима само преди столетие. Същото се отнася за Париж и Лондон, станали неволни съюзници срещу Берлин в двете световни войни. Какво остава за Централна и Източна Европа, които в продължение на цялата Студена война участват в друга колективна система за сигурност, чиято стратегическа култура значително се отличава от западната. 

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

Да владееш или да не владееш? Как Западът се върна към началото на XX век
Действията на администрацията на Тръмп може да изглеждат безпрецедентни, но не е точно така. Вярно, че когато ги виждаме в подобен вариант назад в историята, контекстът е бил друг. И все пак добре е да ги четем и в рамките на някои исторически натрупвания. Коментар от Искрен Иванов.
Ами ако САЩ излязат от НАТО?

Какво печелят САЩ и Европа от НАТО?

Първият очевиден отговор е мир. Тази дума звучи изключително утопично за по-младото поколение, макар че то не помни ужасите на Втората световна война, а за периода преди нея знаем само от учебниците по история. Снимките на сринатия до основи Берлин, окупирания от нацистите Париж, концентрационните лагери на смъртта и разбира се, съветската окупация на Централна и Източна Европа изглеждат реалистично, но съвсем друго е усещането, когато тези събития са преживени от първо лице. Голяма част от хората, които са били част от тях обаче, вече не са между живите. 

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

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

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

А що се отнася до САЩ, за тях НАТО е не просто непосилно бреме, а инструмент за влияние върху баланса на силите в глобалната политика. Самото понятие за американско глобално лидерство почива върху съюзите, които Вашингтон изгражда след края на Втората световна война, а разширяването на Алианса довършва тази символична победа на Запада в Студената война. Ангажиментите на Америка към НАТО ѝ гарантират, че тя няма да остане откъсната от ставащото на Стария континент, да не говорим че проблемите на Европа – в сегашния все по-глобализиращ се свят – могат сериозно да повлияят на американската национална сигурност, в случай че Североизточното крайбрежие на САЩ остане оголено.

Устойчив мир или нова желязна завеса?
Как би изглеждал мирът след края на войната в Украйна и в какво състояние ще бъде международната система тогава? Какви са реалните отношения между ЕС, НАТО и Русия и какво стои зад идеята за еманципиране на Европейския съюз от САЩ в сферата на сигурността – от Александър Нуцов.
Ами ако САЩ излязат от НАТО?

Какво губят САЩ и Европа без НАТО?

За Европа отговорът на този въпрос е очевиден. В случай че Америка реши да се изтегли от Алианса, Европейският съюз ще трябва бързо да мобилизира свои сили за бързо реагиране, с които да се противопостави на потенциална провокация от страна на Русия. Важно е да подчертаем, че Москва едва ли би се наела директно да хвърли ръкавицата на Европа, тъй като все още воюва в Украйна, а и армиите на европейските държави не са толкова нискотехнологични, за колкото ги смята Доналд Тръмп. 

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

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

САЩ няма да усетят загубите от изтеглянето си веднага, а едва след като то напълно стане факт. След като Америка изтегли войските и ядрения си потенциал от Европа, нейният военнопромишлен, икономически и индустриален комплекс по Североизточното крайбрежие ще остане уязвим. В тези условия САЩ ще трябва или да се насочат към двустранни съюзи с бившите си натовски съюзници, или да гарантират интересите си в Европа с помощта на принуда – установявайки контрол върху стратегически важни региони като Гренландия, от които да проектират сила към Русия, Китай и Стария континент едновременно. 

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

България в НАТО и европейската отбрана
Велизар Шаламанов • Eвропейската отбрана е крайно необходима следваща стъпка в развитие на европейския проект и възможното му преучредяване, а изграждането ѝ е възможно в периода до 2025–2030 г. Eстествено, първият ни приоритет е развитие на силна и модерна българска армия, която е оперативно съвместима в НАТО и ЕС.
Ами ако САЩ излязат от НАТО?

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

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

Твърде е възможно в Европа да се появят и държави, които да продължат военното си сътрудничество със САЩ, но това сигурно ще бъдат единици, като Полша например – тя е от страните със силна и добре развита икономика, сравнима със западноевропейските. 

В тези условия България отново ще се окаже на входа на нов преход, този път между членството си в ЕС, Борда за мир на Тръмп и възможното възстановяване на отношенията с Русия.

И все пак идва ли краят на НАТО?

Член 13 от Вашингтонския договор регламентира правото на всеки съюзник да се изтегли от НАТО, като предварително уведоми за това американското правителство и получи едногодишен логистичен срок, за да осъществи процедурата. 

Член 13

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

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

Обединена Европа и европейската мечта
Възможно ли е европейската стратегическа култура да бъде съживена? И достатъчно ли би било създаването на обединена европейска армия? Как се е променила европейската мечта през годините и мечтае ли изобщо Европа за нещо? От Искрен Иванов.
Ами ако САЩ излязат от НАТО?

Същевременно съществуват някои законови бариери пред тези действия, като най-сериозната от тях е т.нар. National Authorization Defense Act от 2023 г., подписан от бившия президент Джо Байдън. Той забранява на държавния глава едностранно да изтегли Америка от НАТО, без да е получил одобрението на 2/3 от Сената или без Конгресът да е приел специален закон за оттеглянето на САЩ от Алианса. На този етап такова мнозинство няма нито сред демократите, нито сред републиканците, което прави подобно гласуване обречено на провал, а приемането на евентуален закон за изтегляне от НАТО – невъзможно.

И все пак президентът може да се позове на чл. 2 от Конституцията на САЩ, който регламентира изричното му право да сключва договори с чужди правителства. От 1978 г. повечето президенти започват да тълкуват този член и по обратния начин – че това право се разпростира и върху оттеглянето от подобни споразумения. Върхът в това отношение е решението на президента Джими Картър да оттегли дипломатическото признаване на САЩ за Тайван в полза на Пекин, като по този начин слага край на Договора за взаимна отбрана между Вашингтон и Тайпе. 

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

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

(Не)демократичният световен ред
Защо е необходимо да се борим за оцеляването на демокрацията? Надали само защото нищо по-добро не е измислено. От Искрен Иванов.
Ами ако САЩ излязат от НАТО?

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

За жалост, твърде възможен е и следният сценарий: Европа за пореден път да изпълни исканията на американския президент, макар и по по-завоалиран начин. Почвата за това вече се подготвя от британската дипломация. Преди дни в Лондон беше свикана междуправителствена среща за обсъждането на кризата с блокирането на Ормузкия проток. В крайна сметка изглежда, че нито САЩ, нито Европа и Великобритания имат полза от западането на НАТО. И дори Тръмп го знае.

* Заглавно изображение: На подписването присъстват (отляво надясно): сър Фредерик Хойер-Милар от Обединеното кралство; датският посланик Хенрик де Кауфман; съветникът на Канадското посолство У. Д. Матюс; министърът на отбраната Луис Джонсън; норвежкият посланик Вилхелм Мунте де Моргенщерне; френският посланик Анри Боне от Франция; барон Робер Силверкройс, посланик на Белгия; португалският посланик Педру Перейра; държавният секретар Дийн Ачесън; нидерландският министър Йонкер Отo Ройхлин и съветникът на Италианското посолство Марио Лучели.

[$] A flood of useful security reports

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

The idea of using large language models (LLMs) to discover security problems is
not new. Google’s Project Zero
investigated
the feasibility of using LLMs for security research in 2024. At the time, they
found that models could identify real problems, but required a good deal of
structure and hand-holding to do so on small benchmark problems. In February
2026, Anthropic
published a report
claiming that the company’s most recent LLM at that point in time, Claude Opus 4.6, had discovered
real-world vulnerabilities in critical open-source software, including the Linux
kernel, with far less scaffolding. On April 7, Anthropic announced a new experimental model that is

supposedly even better
; which they have

partnered with the Linux Foundation

to supply to some open-source developers with access to the tool for security reviews.
LLMs seem to have progressed significantly in the last few months, a change
which is being noticed in the open-source community.

Relicensing versus license compatibility (FSF Blog)

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

The Free Software Foundation has published
a short article on relicensing versus license compatibility.

The FSF’s Licensing and
Compliance Lab
receives many questions and license violation reports
related to projects that had their license changed by a downstream
distributor, or that are combined from two or more programs under
different licenses. We collaborated with Yoni Rabkin, an experienced
and long time FSF licensing volunteer, on an updated version of his
article to provide the free software community with a general
explanation on how the GNU General Public License (GNU GPL) is
intended to work in such situations.

Security updates for Thursday

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

Security updates have been issued by Debian (firefox-esr, postgresql-13, and tiff), Fedora (bind, bind-dyndb-ldap, cef, opensc, python-biopython, python-pydicom, and roundcubemail), Slackware (mozilla), SUSE (ckermit, cockpit-repos, dnsdist, expat, freerdp, git-cliff, gnutls, heroic-games-launcher, libeverest, openssl-1_1, openssl-3, polkit, python-poetry, python-requests, python311-social-auth-app-django, and SDL2_image-devel), and Ubuntu (dogtag-pki, gdk-pixbuf, linux, linux-aws, linux-aws-5.15, linux-gcp, linux-gcp-5.15, linux-gke,
linux-gkeop, linux-ibm, linux-ibm-5.15, linux-intel-iotg,
linux-intel-iotg-5.15, linux-kvm, linux-lowlatency,
linux-lowlatency-hwe-5.15, linux-nvidia, linux-nvidia-tegra,
linux-nvidia-tegra-igx, linux-oracle, linux-oracle-5.15, linux-raspi,
linux-xilinx-zynqmp, linux-aws-6.8, linux-gcp-6.8, linux-hwe-6.8, linux-ibm-6.8,
linux-lowlatency-hwe-6.8, linux-fips, linux-aws-fips, linux-gcp-fips, linux-oracle, linux-oracle-6.17, linux-raspi, linux-realtime, openssl, and squid).

What’s New in Rapid7 Products and Services: Q1 2026 in Review

Post Syndicated from Ed Montgomery original https://www.rapid7.com/blog/post/pt-whats-new-rapid7-products-services-q1-2026

If product releases had a runway moment, Q1 at Rapid7 would’ve walked out in Cloud Dancer; crisp, confident, and quietly powerful, before breaking into a full gallop in the Year of the Horse. At Rapid7, our first-quarter launches combined velocity with refinement: meaningful enhancements designed to move security teams faster without adding complexity. Let’s cover off the key launches, one by one.

Detection and response

MDR for Microsoft

Getting more value from the tools you already have is an objective shared by all of us. For many of you, that translates to achieving greater security operations outcomes and resilience from your Microsoft technology. With MDR for Microsoft, organizations correlate their Microsoft, Rapid7, and third-party telemetry with prioritized risk context so the service can anticipate attacks before they start. 

AI-powered triage and investigations – backed by unlimited incident response that ensures threats are fully eradicated – delivers certainty in an uncertain attack environment. Dedicated advisory provides strategic recommendations and program hardening guidance that drives long-term security resilience. Customers ultimately experience security operations excellence and achieve stronger outcomes from their existing Microsoft foundation.

Read the blog to learn more.

Rapid7-MDR-for-Microsoft-chart.png
MDR for Microsoft explained

Rapid7 acquires Kenzo Security

The acquisition of Kenzo Security marks another step forward for the Rapid7 Command Platform and Rapid7’s vision for preemptive, AI-powered security operations. In an environment where most security teams are forced to leave large volumes of alerts uninvestigated, Kenzo’s agentic AI capabilities are expected to help accelerate Rapid7 from AI-assisted workflows toward AI-driven, machine-speed operations. Designed around specialized AI agents that work together across security operations tasks, this technology has the potential to reduce manual strain, broaden investigative coverage, and deliver more consistent, precise outcomes.

An average Kenzo customer reported a 94% reduction in investigation time, and their alert coverage increased from 12% to 100%. As these capabilities are brought into MDR, Managed Threat Complete, InsightIDR, and Incident Command, customers will benefit from a stronger, more scalable approach to cyber defense.

Incident Command

User to Identity mapping

Connecting user activity to full identity context is critical for faster, more confident investigations. With User to Identity mapping in Incident Command, analysts can seamlessly link SIEM users to their corresponding identity profiles, gaining instant visibility into MFA status, account posture, and group memberships. By unifying detection and exposure data, teams eliminate manual reconciliation and close visibility gaps across the identity attack surface. This enables faster triage, deeper insight into user risk, and a complete, connected view of identity-driven threats.

user-to-identity-mapping-rapid7-incident-command.png
User to Identity mapping within Incident Command

AI-Powered Log Entry Summary

AI-powered Log Entry Summary brings instant clarity to even the most complex log data. By translating raw log lines into a simple “who, what, when, where, and why” framework, analysts can quickly uncover insights without needing to interpret vendor-specific syntax or business logic. This removes the cognitive burden from investigations and hunts, allowing teams to spot threats faster across all data sources. Teams benefit from accelerated triage, more efficient investigations, and smarter decisions driven by clear, actionable context.

ai-powered-log-entry-summary.png
Instant context with AI Log Entry summary

Exposure management

Cloud Runtime Security (application detection and response)

Earlier this year, we made a significant announcement that Rapid7 had partnered with ARMO to add AI-powered cloud application detection and response (CADR) – or cloud runtime security – to our cloud security portfolio. We are thrilled to announce that these capabilities are now integrated with Rapid7 Exposure Command Ultimate. For our customers, this milestone represents our ability to deliver on the promise of a complete cloud-native application protection platform (CNAPP) that helps security teams preemptively identify and proactively thwart attacks. If you’re interested in learning more about this latest innovation to our cloud security portfolio, reach out to one of our account executives.

cloud-runtime-security-rapid7.png
Runtime security delivering real-time visibility across cloud-native and containerized workloads

Top Remediation Report in Remediation Hub

Understanding which remediations to prioritize is only part of the process, teams also need asset-level detail to act. Top Remediations Report adds that context in Remediation Hub, with customizable filters, shared visibility across teams, and automated scheduling for recurring delivery to key stakeholders in CSV, HTML, or PDF. The result is faster coordination, clearer ownership, and quicker remediation progress.

Remediation Bulk Export API

We understand that organizations need to customize reporting for various stakeholders and levels across their business to drive effective vulnerability remediation and communicate security posture. One of the ways that organizations address this need is through our powerful cloud-based API, which enables teams to extract and export large amounts of security data into external tools like Tableau or PowerBI. Customers can export security data at scale, including assets, vulnerabilities, remediations and agent-based policy data, resulting in more flexible reporting and querying.

Data Security Posture Management (DSPM)

Understanding which exposures threaten sensitive data is difficult when data security and exposure insights live in separate tools. A partnership between Rapid7 and Symmetry Systems brings those perspectives together on Exposure Command, aligning sensitive data intelligence with real attacker reachability. DSPM capabilities discover sensitive data and map identity access, helping teams prioritize remediation based on breach impact.

Read the blog to learn how aligning data and exposure reduces breach risk.

automated-sensitive-data-discovery.png
Automated Sensitive Data Discovery: See how PII, PHI and Financial Data is flagged

Attack surface management

Dynamic External Attack Surface Discovery

Your attack surface doesn’t stand still, and point-in-time visibility can leave teams chasing what’s already changed. Dynamic EASM Discovery helps Surface Command automatically identify and track changes across the external attack surface by ingesting domain and IP data from across the environment. The result is more current visibility, fewer blind spots, and stronger confidence that teams are prioritizing and validating the exposures that matter most.

Read the blog to see how Dynamic EASM Discovery helps teams keep pace with a changing attack surface.

rapid7-command-platform-easm-seed-data.png
The Rapid7 Command Platform displaying your EASM seed data

Platform and Labs

Rapid7 Command Platform

We’re excited to introduce a centralized way to programmatically access data across all managed tenants with new multi-tenant API keys. For organizations managing multiple environments, tenants, or customers, integrating with each one individually has traditionally required significant manual effort, creating, maintaining, and rotating separate API keys for every tenant. This not only slows down development but also increases operational overhead and the risk of inconsistency.

With this new capability, you can build a single integration that seamlessly “loops” through tenants automatically, enabling consistent data access and streamlined workflows at scale. Whether you’re aggregating data for reporting, powering automation, or integrating with third-party tools, multi-tenant API keys simplify the process and reduce complexity, freeing up your teams to focus on higher-value tasks instead of repetitive configuration. Read all about it in our blog. 

Rapid7 Labs

The latest threat research reports from Rapid7 Labs

This quarter Rapid7 Labs continued to deliver critical insights into the evolving threat landscape, uncovering how attackers are adapting their tactics – from stealthy, long-term intrusions to increasingly targeted and data-driven attacks. Our latest research reports highlight the growing complexity of modern threats and the real-world risks facing organizations today. Explore the findings below to better understand what’s changing and what it means for your security strategy.

  • BPFdoor in Telecom Networks: Sleeper Cells in the Backbone: Rapid7 uncovered a long-running espionage campaign in which a China-nexus threat actor, Red Menshen, embedded stealthy “sleeper cells” inside global telecommunications networks using the BPFdoor backdoor. Operating at the Linux kernel level, this malware enables persistent, hard-to-detect access without typical network signals, allowing attackers to monitor communications, subscriber data, and critical infrastructure over time. The research highlights a shift from opportunistic attacks to deliberate, long-term pre-positioning inside core systems that underpin global connectivity, raising national-level risk.

  • 2026 Global Threat Landscape Report: The latest report from Rapid7 Labs delivers an in-depth analysis of global adversary behavior, drawing on telemetry from Rapid7 MDR investigations, vulnerability intelligence, and frontline incident response. This year’s findings highlight a rapidly evolving threat environment, marked by the collapse of the window between vulnerability disclosure and exploitation, the continued industrialization of ransomware operations, and the acceleration of modern attacks through the use of AI.

  • Executives’ Digital Footprints Threat Report: Today, 60% of an executive’s digital risk exposure is retrievable through surface web searches, including public records, professional history, and social media activity — all of which can be weaponized for highly targeted attacks. The Executive Digital Footprints Threat Report from Rapid7 Labs details how these executive digital footprints are an often overlooked threat vector that can be exploited, posing risks to the executive, their families, and organizations.

Exposing the Chrysalis Backdoor

Last month, Rapid7 uncovered the Chrysalis backdoor, a sophisticated supply chain attack that leveraged the Notepad++ update mechanism to selectively target organizations with a stealthy, persistent backdoor. This discovery highlights the growing risk of trusted software being weaponized and the real-world impact of advanced, targeted campaigns that can evade traditional defenses, reinforcing the importance of continuous monitoring and validating third-party software behavior in today’s threat landscape. Learn more about the Chrysalis backdoor here, and see more details on its impact and what you can do next here.

Cyber threat activity related to the Iran conflict

Rapid7 is actively monitoring cyber threat activity related to the Iran conflict, providing support for our customers and the cybersecurity community. Review observed activity, official advisories, and recommended defensive actions here.

Announcing Metasploit Pro 5.0.0

We’re excited to announce the launch of Metasploit Pro 5.0.0, a major evolution in red-team and penetration testing. Built to address today’s dynamic threat landscape, this release delivers a significantly improved UI, usability, validation, and workflow improvements that empower security teams to validate vulnerabilities faster and more effectively. Learn more in our blog post here.

newly-designed-metasploit-interface.png
Newly designed interface of Metasploit Pro

We’re just getting started

The innovation doesn’t stop here. We have a strong pipeline of product enhancements and new capabilities rolling out all year long. Be sure to follow our blog and release notes to see how Rapid7 continues to advance our platform and deliver greater value.

Many paths into mentoring: Building inclusive Code Clubs in Glasgow

Post Syndicated from Sophie Ashford original https://www.raspberrypi.org/blog/many-paths-into-mentoring-building-inclusive-code-clubs-in-glasgow/

Across Glasgow’s libraries, Code Clubs are opening doors for young people to explore creativity, problem-solving, and confidence through coding. Behind many of these sessions is Claire Quigley, who supports volunteers and helps Code Clubs thrive in community spaces across the city.

Claire Quigley

Claire’s story challenges the idea that there is only one route into technology or mentoring. With a background in computer science and a passion for teaching, she now helps create welcoming, inclusive environments where young people — and volunteers — from a wide range of backgrounds can belong.

From computing to community

Claire’s Code Club journey began long before she worked in libraries. With a degree and PhD in computer science, she spent time in academia before finding her way to community-based learning and volunteering. Teaching runs in her family, and sharing knowledge has always brought her joy. That’s why, after being introduced to CoderDojo (part of the Code Club community) through a friend, Claire began volunteering at club sessions.

“I had always intended to work in academia but, working as a postdoc for a couple of years, realised it wasn’t what I wanted to do long term. CoderDojo sessions gave me and the other volunteers a chance to look at more adventurous coding topics, without the constraints of curriculum and the time-pressure that teachers have to contend with.

“We were also able to engage with children and young people who were struggling with the formal education environment for a variety of reasons. Doing well at something they enjoyed increased their confidence and was often a factor in helping them become more engaged at school.”

Young learner at a Code Club in Glasgow

Becoming a Code Club volunteer eventually led Claire to her current role coordinating Code Clubs across Glasgow Life venues, including Mitchell Library, Gorbals, Drumchapel, and beyond.

“Working with Glasgow Life colleagues across libraries, communities and museums has given me the chance to connect with children, young people and adults in a non-threatening environment. Mixing coding with mediaeval manuscripts, wearable tech, poetry or electronic music has allowed people to approach a topic they hadn’t considered interesting or understandable and make some really original and fun things.”

Inside a Code Club session

Stepping into one of Claire’s Code Club sessions, you’ll find a mix of focus, laughter, and creative chaos. Young people gather around laptops in library spaces to build games and animations in Scratch, experiment with micro:bits, and help each other solve problems as they go.

Sessions vary by location and age group. Some run weekly, others every two weeks, and each has its own character — from younger children discovering coding for the first time to teenagers returning with ambitious ideas they want to bring to life.

“The clubs are quite varied, depending on location, size and the personality mix of the coders and volunteers. Some clubs are quieter, while others are very lively! Scratch features prominently in most clubs. The children really enjoy the way it allows them to bring in topics they’re interested in, design their own characters, or build games inspired by other games they’ve played.”

Young learners at a Code Club

For Claire, these sessions are about more than learning to code. They’re spaces where young people practise problem-solving, learn to ask for help, and gain confidence in sharing their ideas.

“Some coders come with a friend or have made friends at the club. So there are often children working together on a project, chatting to each other about what they’re working on, or showing each other how to do something.”

Inclusion, confidence, and belonging

Inclusion is core to Claire’s approach. From running all-girls sessions to supporting volunteers and young people with neurodivergence and other additional needs, her focus is on creating spaces where everyone feels welcome.

“One young coder who spends a lot of time in his local library after school, but can be a bit boisterous, agreed to come and join the club. Initially a bit hesitant, he soon displayed a real talent for solving coding puzzles.

“He was particularly proud when, encouraged to try the challenge level rather than skipping past it, he solved it quickly. We printed a Code Club ‘Problem-solving Champion’ certificate for him and he carefully folded it up to take home.“

Claire has seen firsthand how confidence can grow when people are given time, patience, and encouragement.

Volunteers: The backbone of Code Clubs

That sense of belonging doesn’t stop with young people — it extends to the volunteers who help make these spaces possible. For some volunteers, involvement in Code Club has been a stepping stone to employment, new skills, or a stronger sense of belonging.

Like many community programmes, Code Clubs in Glasgow were disrupted by the pandemic. It made one thing clear: clubs only work when volunteers are willing and supported to run them. With fewer library staff available to anchor sessions, rebuilding the clubs meant casting a wider net for volunteers. As a result, volunteers arrived with more diverse life experiences, ways of thinking, and approaches to problem-solving, which enriched the sessions and created more inclusive learning environments for young people.

Young learner at a Code Club

“I recruit mainly through the Glasgow Life volunteering website. I also advertise through STEM Ambassadors, via my contacts in local universities, colleges and tech companies, in the newsletter my colleague sends to students in the Glasgow Code Learning programme, and by putting up posters in libraries.

“I’m really keen to try and get a mixture of qualities in a team. I try to ensure at least one person is a confident programmer, who can help with trickier bugs and more advanced topics. However, I’m also keen to have volunteers who may not have so much of a technical background but are good at chatting to children and helping create a real sense of it being a club.“

Who makes a good Code Club volunteer?

One of the most important messages Claire wants to share is that there is no single type of Code Club volunteer. Students, career-changers, refugees, people returning to work, and neurodivergent people all bring valuable perspectives. While technical skills are helpful, Claire believes empathy, curiosity, and willingness to learn alongside young people are just as important.

“Finding out how to do something by searching online, asking other coders and the mentors is part of the code club experience (and the experience of being a professional programmer!) The main thing is not to be afraid to admit you don’t know something. Although this can be alarming at first, I’ve found the coders are happy to be told that I’ll look at it over the next week and report back. And that they should do the same so we can compare notes. And if they know how to do something that you don’t, they absolutely love explaining it to you!“

We asked Claire what she would say to someone who doesn’t see themselves as ‘technical enough’ but is curious about getting involved:

“The majority of library staff didn’t have any background in programming. They are simply happy to learn as they go along and help the children make their ideas come to life. In fact, one of these ‘non-technical’ staff ran a very popular and successful club and supported a team of coders to develop a project that [was chosen as a judges’ favourite] at Coolest Projects.”

As Code Clubs continue to grow and adapt, Claire hopes to see even more people step forward, especially those who might not immediately picture themselves in a mentoring or volunteering role.

Young learner at a Code Club

Where community impact begins — with people

By keeping Code Clubs rooted in libraries and community spaces, it is possible to reach people across a wide range of backgrounds and circumstances.

Claire’s story is a reminder that community impact is built by people who care and that supporting young people with coding is about far more than technology alone. It’s about confidence, connection, and opening doors.

For anyone curious about supporting young people with coding, there are many ways to get involved. You don’t need to be an expert, as mentors support young people by encouraging curiosity, helping build confidence, and learning alongside them. If you’d like to find out more about what mentoring looks like and the different ways you can contribute, visit the Code Club mentor page to explore guidance, training, and next steps.

The post Many paths into mentoring: Building inclusive Code Clubs in Glasgow appeared first on Raspberry Pi Foundation.

On Microsoft’s Lousy Cloud Security

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2026/04/on-microsofts-lousy-cloud-security.html

ProPublica has a scoop:

In late 2024, the federal government’s cybersecurity evaluators rendered a troubling verdict on one of Microsoft’s biggest cloud computing offerings.

The tech giant’s “lack of proper detailed security documentation” left reviewers with a “lack of confidence in assessing the system’s overall security posture,” according to an internal government report reviewed by ProPublica.

Or, as one member of the team put it: “The package is a pile of shit.”

For years, reviewers said, Microsoft had tried and failed to fully explain how it protects sensitive information in the cloud as it hops from server to server across the digital terrain. Given that and other unknowns, government experts couldn’t vouch for the technology’s security.

[…]

The federal government could be further exposed if it couldn’t verify the cybersecurity of Microsoft’s Government Community Cloud High, a suite of cloud-based services intended to safeguard some of the nation’s most sensitive information.

Yet, in a highly unusual move that still reverberates across Washington, the Federal Risk and Authorization Management Program, or FedRAMP, authorized the product anyway, bestowing what amounts to the federal government’s cybersecurity seal of approval. FedRAMP’s ruling—which included a kind of “buyer beware” notice to any federal agency considering GCC High—helped Microsoft expand a government business empire worth billions of dollars.

NVIDIA Vera Rubin NVL72 Rack and More in the Pegatron booth at GTC 2026

Post Syndicated from Patrick Kennedy original https://www.servethehome.com/nvidia-vera-rubin-nvl72-rack-and-more-in-the-pegatron-booth-at-gtc-2026/

We saw the NVIDIA Vera Rubin NVL72 rack, CPUs, GPUs, networking, storage, and a lot more in the Pegatron booth at NVIDIA GTC 2026

The post NVIDIA Vera Rubin NVL72 Rack and More in the Pegatron booth at GTC 2026 appeared first on ServeTheHome.

Build a multi-tenant configuration system with tagged storage patterns

Post Syndicated from Koshal Agrawal original https://aws.amazon.com/blogs/architecture/build-a-multi-tenant-configuration-system-with-tagged-storage-patterns/

In modern microservices architectures, configuration management remains one of the most challenging operational concerns. Two gaps emerge as organizations scale: handling tenant metadata that changes faster than cache TTL allows, and scaling the metadata service itself without creating a performance bottleneck.

Traditional caching strategies force an uncomfortable trade-off: either accept stale tenant context (risking incorrect data isolation or feature flags), or implement aggressive cache invalidation that sacrifices performance and increases load on your metadata service. When tenant counts grow into the hundreds or thousands, this metadata service itself becomes a scaling challenge, particularly when different configuration types have vastly different access patterns.

The challenge intensifies when you need to support different storage backends for different configuration types. Some require high-frequency access patterns suited for Amazon DynamoDB, while others benefit from the hierarchical organization and built-in versioning of AWS Systems Manager Parameter Store. Traditional solutions often force engineering teams into a corner: either build multiple configuration services (increasing operational overhead), or compromise on performance by using a single storage backend that isn’t optimized for every use case.

In this post, we demonstrate how you can build a scalable, multi-tenant configuration service using the tagged storage pattern, an architectural approach that uses key prefixes (like tenant_config_ or param_config_) to automatically route configuration requests to the most appropriate AWS storage service. This pattern maintains strict tenant isolation and supports real-time, zero-downtime configuration updates through event-driven architecture, alleviating the cache staleness problem.

What you’ll learn:

  • Implementing a multi-tenant data model with DynamoDB and Parameter Store
  • Using the Strategy pattern for flexible storage backend switching
  • Building tenant isolation through JSON Web Token (JWT) claims
  • Creating an event-driven auto-refresh mechanism with Amazon EventBridge and AWS Lambda
  • Implementing zero-downtime configuration updates with gRPC (a high-performance communication protocol) streaming
  • Addressing the cache TTL problem for rapidly-changing tenant metadata

By the end of this post, you’ll understand how to architect a configuration service that handles complex multi-tenant requirements while optimizing for both performance and operational simplicity.

Solution overview

The architecture uses four AWS services orchestrated through a NestJS-based gRPC service to create a reliable, event-driven configuration management system. Let’s first understand the overall architecture before diving into each component’s implementation details.

Architecture components

The following diagram shows the end-to-end architecture of the Multi-Tenant Configuration Service deployed on AWS, from how client requests enter the system to how configuration data is retrieved from the right storage backend.

WS microservices architecture diagram showing ECS Fargate services, API Gateway, Cognito auth, DynamoDB, and CloudWatch monitoring

Figure 1: Multi-Tenant Configuration Service Architecture

Client applications authenticate via Amazon Cognito and pass through AWS WAF before reaching Amazon API Gateway. Traffic is then routed through a VPC Link to an Application Load Balancer, which distributes requests across two core microservices running on Amazon Elastic Container Service (Amazon ECS) on AWS Fargate within private subnets :

  • Order Service— handles incoming REST requests and delegates configuration lookups to the Config Service via gRPC
  • Config Service— exposes a gRPC API and uses a Config Strategy Factory to dynamically select the appropriate storage backend (DynamoDB or Parameter Store) based on the request

Service discovery is managed by AWS Cloud Map, while Amazon CloudWatch centralizes logs and metrics across services.

The system is organized into four interconnected layers, each addressing a specific aspect of the configuration management challenge:

1. Storage layer – multi-backend strategy

The storage layer strategically uses two complementary AWS services, each optimized for different configuration access patterns and requirements.

  • Amazon DynamoDB: Stores tenant-specific configurations. These are settings unique to each customer, such as payment gateway preferences or feature flags. With single-digit millisecond latency, DynamoDB handles high-frequency reads efficiently. The schema uses composite keys (TENANT#{tenantId} as partition key, CONFIG#{configType} as sort key) for efficient tenant-scoped queries and built-in multi-tenant isolation at the data model level.
  • AWS Systems Manager Parameter Store: manages shared parameters. These are configuration values used across multiple services or tenants, such as API endpoints, database connection strings, and region-specific settings. Unlike tenant-specific configs that change frequently, these parameters are relatively static but benefit from hierarchical organization. The path structure (/config-service/{tenantId}/{service}/{parameter}) enables bulk retrieval operations, reducing the number of API calls needed during service initialization from dozens to a single request.

2. Service layer – gRPC with strategy pattern

A NestJS-based microservice implements the configuration retrieval logic using gRPC for high-performance, type-safe communication. This choice significantly reduces network bandwidth and improves response times for service-to-service communication where compatibility with web browsers isn’t a requirement.

At the core is a Strategy Pattern implementation that determines the optimal storage backend based on configuration key prefixes. This pattern simplifies the addition of new storage backends (like Amazon Simple Storage Service (Amazon S3) for large configuration files) without modifying the core service logic.

3. Authentication layer – Amazon Cognito

User authentication flows through Amazon Cognito with custom attributes:

  • custom:tenantId (immutable) – Tenant identifier embedded in JWT
  • custom:role (mutable) – User role for authorization

Critical security design: The service never accepts tenantId from request parameters. Instead, it extracts the tenant context from validated JWT tokens, making sure requests cannot access other tenants’ data even if they attempt to manipulate request payloads.

4. Event-driven refresh layer

Traditional configuration updates present a dilemma: how do you keep services synchronized without compromising performance or causing downtime?

Polling approaches continuously check for changes, generating unnecessary API calls that cost money even when nothing changes. They also introduce delays. Services don’t see updates until the next poll cycle, which could be seconds or minutes later.

Service restart approaches cause downtime, drop active connections, and disrupt user sessions. For SaaS applications serving customers 24/7, restart-based updates are unacceptable.

The event-driven refresh layer addresses both problems by implementing a reactive architecture where Amazon EventBridge monitors Parameter Store for changes and triggers AWS Lambda to update the service’s local cache. This achieves configuration updates within seconds while users experience no interruption.

Technical implementation

The following sections detail the implementation, starting with the data model, which serves as the backbone for tenant isolation and efficient querying.

A. Multi-tenant data model

The foundation of tenant isolation begins with the data model. Using DynamoDB’s composite key structure, we achieve both tenant isolation and efficient querying without requiring separate tables per tenant.

DynamoDB schema design:

The following example shows a tenant-specific configuration stored in DynamoDB, illustrating how composite keys enable both isolation and efficient access:

{
  "pk": "TENANT#acme-corp",
  "sk": "CONFIG#payment-gateway",
  "config": {
    "providers": [
      {
        "name": "Stripe",
        "apiEndpoint": "https://api.stripe.com",
        "retryPolicy": "exponential"
      }
    ]
  },
  "isActive": true,
  "version": 2,
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-02-20T14:45:00Z"
}

Key schema decisions:

  1. Partition key pattern: TENANT#{tenantId} makes sure tenant data is co-located, enabling efficient tenant-scoped queries while maintaining logical separation.
  2. Sort key pattern: CONFIG#{configType} allows querying specific configuration types within a tenant’s data. The CONFIG# prefix enables future expansion with other entity types (for example, METADATA#, AUDIT#).
  3. Soft deletion: The isActive boolean flag supports soft deletion, maintaining audit trails while excluding inactive configurations from queries.
  4. Versioning: The version field tracks configuration changes, supporting rollback capabilities and change history.

Parameter store organization:

Parameters follow a hierarchical structure that mirrors the multi-tenant model. This example demonstrates the path structure:

/config-service/
├── acme-corp/
│   ├── api/
│   │   ├── api-key
│   │   └── endpoint
│   └── database/
│       └── connection-string
└── globex-inc/
    ├── api/
    │   ├── api-key
    │   └── endpoint
    └── database/
        └── connection-string

This structure provides several benefits:

  • Bulk retrieval using path prefix (GetParametersByPath API)
  • Clear ownership and access control through AWS Identity and Access Management (AWS IAM) policies
  • Environment separation (dev/staging/prod) at the path level
  • Automatic parameter versioning and change tracking

Advanced: Multi-dimensional tenant context
For organizations with multiple services requiring different configuration scopes, consider introducing a second dimension in the partition key:

PK = "TENANT#acme-corp|SERVICE#order-service"
SK = "CONFIG#payment-gateway"

This multi-dimensional approach enables service-level isolation where the Order service sees only billing API configurations while the Reporting service doesn’t have access to payment gateway settings. It also provides efficient service-scoped queries, retrieve configurations for a specific service with PK = TENANT#acme-corp|SERVICE#order-service and SK begins with CONFIG#. The second dimension can represent business units, geographic regions, or a logical boundary that aligns with access control requirements, making this pattern particularly valuable when fine-grained access control beyond tenant-level isolation is needed. For detailed guidance on multi-tenant DynamoDB modelling patterns, see amazon-dynamodb-data-modeling-for-multi-tenancy-part-2.

B. Strategy pattern for storage flexibility

The system decides which storage backend to use for each configuration request. The Strategy Pattern is a design approach that allows a program to choose different behaviors at runtime based on context. Think of it like a traffic controller that examines each request and directs it to the appropriate service.

Why use the strategy pattern?

Without the Strategy Pattern, handling multiple storage backends would require complex conditional logic throughout the code base. Different tenant metadata has vastly different access patterns. Routing to optimized backends alleviates both DynamoDB cost explosions (for rarely-changing configs) and Parameter Store throttling (for high-frequency reads), addressing the scaling gap. A naive implementation might look something like this and it’s worth pausing to understand why this approach breaks down.

// Without Strategy Pattern - complex and hard to maintain
async getConfig(key: string, tenantId: string) {
  if (key.startsWith('tenant_config_')) {
    // DynamoDB logic here
    const pk = `TENANT#${tenantId}`;
    const sk = `CONFIG#${key.slice(14)}`;
    return await this.dynamoDB.query({...});
  } else if (key.startsWith('param_config_')) {
    // Parameter Store logic here
    const path = `/config-service/${tenantId}/${key.slice(13)}`;
    return await this.ssm.getParameter({...});
  }
  // More conditions as backends are added...
}

Every time you add a new storage backend, say, AWS Secrets Manager or Amazon S3, you’re forced to reach back into this function and bolt on another else if. The storage logic becomes tightly coupled to your service layer, making it harder to test each backend in isolation and nearly impossible to swap one out without risking regressions elsewhere.

Implementation strategy

The Strategy Pattern encapsulates storage-specific logic into separate, interchangeable strategy classes. This code demonstrates how the factory examines keys and selects strategies:

@Injectable()
export class ConfigStrategyFactory {
  private keyStrategyMap = new Map<string, ConfigStrategy>([
    ['tenant_config_', this.dynamoDBConfigStrategy],
    ['param_config_', this.ssmConfigStrategy],
  ]);
  getStrategy(key: string): ConfigStrategy {
    for (const [prefix, strategy] of this.keyStrategyMap.entries()) {
      if (key.startsWith(prefix)) {
        return strategy;
      }
    }
    throw new ValidationException(`Invalid key format: ${key}`);
  }
}

Key prefix mapping:

  • tenant_config_* → Routes to Amazon DynamoDB for tenant-specific, high-frequency access patterns
  • param_config_* → Routes to AWS Systems Manager Parameter Store for shared, hierarchical parameters

With this approach, adding a new storage backend requires only:

  • Creating a new strategy class implementing the ConfigStrategy interface
  • Adding one line to the keyStrategyMap with the new prefix and strategy
  • No changes to existing strategies or calling code

This design helps protect technology investments. As requirements evolve and new AWS services become relevant, the system adapts without major rewrites.

Multi-layer caching strategy

Different configurations benefit from different caching approaches. The pattern implements different caching strategies optimized for each configuration type’s access patterns and business requirements:

  • High-frequency tenant configurations (accessed thousands of times per minute) use application-level caching with short Time-To-Live (TTL) values. This significantly reduces database queries while maintaining reasonably fresh data.
  • Shared parameters (accessed frequently but change rarely) use in-memory caching with event-driven invalidation. The cache only refreshes when EventBridge detects an actual change, alleviating unnecessary API calls.

Cache Security Considerations

The implementation uses a shared in-memory Map with tenant-prefixed keys (tenantId:serviceName:configKey). Cached values are configuration metadata (API endpoints, feature flags, thresholds), not sensitive data like credentials or PII. Sensitive values remain in Parameter Store with SecureString encryption and are retrieved on-demand, not cached. Even in edge cases, downstream access controls (JWT validation, DynamoDB composite keys) act as the final enforcement boundary.

For teams handling more sensitive configuration payloads, consider Amazon ElastiCache (Redis OSS) or Valkey with key-prefix isolation and encryption at rest/in transit, though this adds 1-3ms network latency versus sub-millisecond in-memory access.

C. Authentication and tenant isolation

Tenant isolation is enforced at multiple layers, starting with JWT-based authentication and custom authorization guards.

Cognito JWT validation flow:

  1. Client authenticates with Cognito and receives JWT token
  2. Request includes JWT in Authorization: Bearer {token} header
  3. CognitoJwtGuard validates token signature against Cognito JSON Web Key Sets (JWKS) endpoint
  4. Guard extracts custom:tenantId claim and attaches to request context
  5. TenantAccessGuard verifies user has access to requested tenant
  6. Service layer uses validated tenantId for data operations

This implementation demonstrates the secure approach to tenant context extraction:

async retrieveConfig(req: RetrieveConfigRequest): Promise<RetrieveConfigResponse> {
  // tenantId is extracted from validated JWT token, never from request parameters
  const tenantId = (req as any).tenantId;
  if (!tenantId) {
    throw new UnauthorizedException('Tenant ID not found in authentication context');
  }
  const strategy = this.strategyFactory.getStrategy(req.key);
  const data = await strategy.getConfig(req.serviceName, req.key, tenantId);
  return { data };
}

Why this approach helps prevent unauthorized access:

Consider what happens if an unauthorized user tries to access another tenant’s configuration:

  1. User authenticates as Tenant A and receives JWT with custom:tenantId: "tenant-a"
  2. User attempts to manipulate request to access Tenant B’s data
  3. The service extracts tenantId from the JWT (still “tenant-a”), ignoring request parameters
  4. Query uses the JWT’s tenant ID, so user only sees Tenant A’s data

Advanced: Infrastructure-level credential isolation

The current design enforces tenant isolation at the application layer through JWT extraction and DynamoDB composite keys. The ECS task uses a shared IAM execution role, meaning tenant requests operate under the same AWS credentials. While this approach is sufficient for most multi-tenant applications, teams with stricter compliance requirements (HIPAA, PCI-DSS, FedRAMP) may need infrastructure-level isolation.

For enhanced isolation, consider implementing a Token Vending Machine (TVM) pattern with AWS Security Token Service (STS) to issue temporary, tenant-scoped IAM credentials. This provides infrastructure-level isolation with per-tenant AWS CloudTrail audit trails and principle of least privilege enforcement. However, TVM adds operational complexity (credential caching, STS API costs, token refresh logic) and latency (50-100ms per operation).

Consider this as a next step when compliance auditors require infrastructure-level separation rather than a baseline requirement.

This design helps prevent cross-tenant access attempts at the infrastructure level, addressing a common security issue.

D. Zero-downtime auto-refresh mechanism

Configuration updates in production systems present a classic operations challenge. This event-driven approach addresses the cache TTL trade-off entirely, configurations update in real-time without polling or staleness windows.

EventBridge integration flow:

1. Parameter Store Change
         ↓
2. EventBridge Rule (matches /config-service/* changes)
         ↓
3. Lambda Function (extracts tenantId from path)
         ↓
4. Service Discovery (AWS Cloud Map queries for healthy instances)
         ↓
5. gRPC Refresh Call (direct service-to-service invocation)
         ↓
6. In-Memory Cache Update (zero-downtime)
         ↓
7. Updated Configuration Active (no connection drops)

Key benefits:

  1. Zero downtime: No service restarts required. Connections remain active
  2. Reactive updates: Only triggers when changes occur (no wasteful polling)
  3. Cost efficient: Minimizes SSM API calls through caching and event-driven refresh
  4. Audit trail: EventBridge provides complete change history and monitoring

When to use this pattern?

The tagged storage pattern isn’t universally applicable. Like most architectural approaches, it has ideal use cases where the benefits significantly outweigh the implementation complexity. Consider this pattern when your application matches these characteristics:

  • Multi-tenant SaaS requiring strict tenant isolation and regulatory compliance benefit significantly. The pattern’s infrastructure-level isolation through JWT claims and data model design provides security commitments that application-level isolation cannot match.
  • Microservices architectures with complex configuration requirements across dozens of services find value in the centralized management and flexible storage routing.
  • Organizations managing configurations across multiple storage backends and environments (dev, staging, production, DR) appreciate the hierarchical organization and path-based access control that Parameter Store provides, combined with DynamoDB’s performance for high-frequency access.
  • High-throughput applications (1000+ requests/second) needing sub-millisecond response times use DynamoDB Accelerator (DAX) for in-memory caching. While DynamoDB offers excellent single-digit millisecond latency, DAX delivers microsecond read latency, typically 5-10x faster for cached data. This makes a substantial difference at scale.
  • Teams prioritizing operational simplicity value the event-driven refresh mechanism that avoids manual deployment coordination.

Getting started

Ready to implement the Tagged Storage Pattern in your organization?

Start with a pilot project focusing on a single microservice and gradually expand the pattern across your architecture. The modular design means that you can realize benefits incrementally while building confidence in the approach.

Implementation steps:

  1. Design your data model: Define DynamoDB schema and Parameter Store hierarchy
  2. Set up Amazon Cognito: Configure user pool with custom tenant attributes
  3. Build the service layer: Implement Strategy Pattern for storage routing
  4. Add event-driven refresh: Configure EventBridge rules and Lambda function
  5. Test tenant isolation: Verify JWT validation and cross-tenant access deterrence
  6. Deploy and monitor: Establish CloudWatch dashboards and operational procedures

You can find the complete code for this solution, including AWS CloudFormation templates, deployment and testing scripts, in the GitHub – Configuration Management Service.

To avoid incurring ongoing charges, delete the resources you created during this walkthrough. For detailed cleanup instructions including step-by-step commands and verification steps, see the Infrastructure Cleanup Guide.

Conclusion

Building a multi-tenant configuration service requires careful consideration of storage patterns, security boundaries, and operational requirements. The tagged storage pattern demonstrated in this post provides a flexible, scalable foundation that addresses these challenges through:

  1. Intelligent storage routing: The Strategy Pattern provides optimal backend selection per configuration type, allowing DynamoDB for tenant-specific settings and SSM Parameter Store for shared parameters.
  2. Zero-downtime updates: Event-driven architecture through EventBridge and Lambda avoids service restarts and polling overhead so that configurations refresh immediately upon changes.
  3. Strong tenant isolation: JWT-based authentication with custom claims makes sure tenant boundaries are enforced at the infrastructure level, not application logic, helping prevent cross-tenant access attempts.
  4. Operational simplicity: In-memory caching, combined with event-driven refresh, can reduce API costs while maintaining microsecond response times.
  5. Cost efficiency: Pay-per-request billing, aggressive caching, and Spot instances help keep operational costs minimal even at scale.

Additional resources


About the authors

A framework for securely collecting forensic artifacts into S3 buckets

Post Syndicated from Jason Garman original https://aws.amazon.com/blogs/security/a-framework-for-securely-collecting-forensic-artifacts-into-s3-buckets/

When customers experience a security incident, they need to acquire forensic artifacts to identify root cause, extract indicators of compromise (IoCs), and validate remediation efforts. NIST 800-86, Guide to Integrating Forensic Techniques into Incident Response, defines digital forensics as a process comprised of four basic phases: collection, examination, analysis, and reporting. This blog post focuses on the first phase—collection—and provides best practices for implementing least privilege during the forensic evidence collection processes that collect evidence and store the artifacts in Amazon Simple Storage Service (Amazon S3) buckets. The architecture presented in this post can be used to collect forensic evidence from both Amazon Web Services (AWS) and non-AWS compute resources.

It’s important to consider the security of the forensic artifact collection process because it involves communicating with potentially compromised resources. The collection methodology itself should be designed to avoid adding additional risks to infrastructure or other forensic investigation processes. At the same time, the collection of forensic artifacts requires the use of specialized tools that are difficult to change or adapt to new security requirements.

This post outlines factors that you should consider when creating an evidence collection capability and introduces an architecture that implements the best practices for least privilege and integrating with (instead of changing or adapting) existing forensic tools that support uploading artifacts to S3 buckets by using AWS security credentials.

Solution architecture

The architecture presented in this post demonstrates the following AWS best practices:

  1. Least privilege – Use AWS Identity and Access Management (IAM) policies to provide least privilege access to upload forensic artifacts to an S3 location dedicated to a specific forensic collection task. The locked down credentials cannot be used to view or modify any other forensic collections.
  2. Time-limited credentials – Use AWS Security Token Service (AWS STS) to provide time limited credentials, reducing the potential for an unauthorized user to abuse credentials while they’re visible on the target machine during the artifact collection process.
  3. Compatibility with third-party tools – Forensic tools are specialized and changing a forensic collection process to adapt to different collection methods might not be possible. To avoid the risk of needing to change tools, maximize compatibility with any third-party tools that support uploading to S3 buckets. The method introduced in this post to generate time-limited, scoped down credentials can be used with most third-party forensic tools that support uploading to S3 buckets.
  4. Credential vending – Use time-limited tokens, which can be vended on demand through an automated process, eliminating the need for forensic investigators to use the AWS Management Console, understand least privilege, or have any access to the AWS control plane. Forensic investigators can focus on the process of collecting and analyzing evidence.
  5. Process automation – Deploy the process as infrastructure as code (IaC) and automate it through AWS services, reducing the burden on security teams to manually perform runbook steps during an active security incident.

This post starts with an overview of the digital forensic process, provides best practices for using Amazon S3 to store forensic artifacts, details how you can create time-limited, least privilege tokens to provide secure access to upload forensic artifacts to S3 buckets, and introduces a sample architecture that automates the end-to-end process.

The digital forensic process

Organizations need to have practices and resources in place to support a digital forensic investigation environment before an incident occurs. AWS has published several resources, including Forensic investigation environment strategies in the AWS Cloud and AWS prescriptive guidance: Security Reference Architecture, Cyber forensics, to provide best practices for organizing your AWS accounts using AWS Organizations to support forensic clean-room environments. Creating segregated AWS accounts and resources for your security teams is critical to provide your incident responders a location to store and analyze any digital forensic evidence collected during an investigation.

After you’ve established a landing zone for performing digital forensics, you’re ready to collect and process digital forensic evidence. AWS supports the collection of digital forensics through extensive logging of control plane events in AWS CloudTrail, and metrics and application logs that can be stored in Amazon CloudWatch. In addition, AWS core compute services, such as Amazon Elastic Compute Cloud (Amazon EC2), support forensics operations through snapshots of the underlying Amazon Elastic Block Storage (Amazon EBS) volume. An example architecture to demonstrate how to automate the collection of EBS volume snapshots for forensic investigations can be found in How to automate forensic disk collection in AWS.

You might want to use the same AWS infrastructure to collect, examine, analyze, and report on forensic incidents that occur on other resources, such as corporate laptops. You can use existing forensic tooling to perform live response, collecting specific artifacts such as Windows NT File System (NTFS) Master File Table (MFT), logs from Linux machines, volatile memory images, or other artifacts that are specified as part of your organization’s incident response plan. These tools can be provided by third parties or built in-house, and many support uploading to S3 buckets using AWS security credentials.

Using Amazon S3 for forensic artifact collection

Amazon S3 provides the foundational requirements for collecting and storing forensic artifacts. Digital forensics requires highly available, durable, and secure storage of artifacts collected from potentially compromised systems. Amazon S3 is designed for 11 nines of durability and can be configured to provide protection against modification, deletion, and unauthorized access to sensitive forensic artifacts. You can also use S3 to store forensic artifacts of almost any size—from one byte to 5 TB—in an S3 object.

S3 buckets used to store forensic artifacts require custom configuration to provide additional security. You should configure the S3 bucket that you use to store forensic artifacts to enable the following security and governance features:

  1. Encryption in transit. You can require the use of encryption in transit and specify acceptable TLS versions using the aws:SecureTransport and s3:TlsVersion condition keys on the S3 bucket policy.
  2. Encryption at rest using a customer managed key. You can automatically encrypt all objects uploaded to the bucket using a specified customer managed key by specifying a default server-side encryption key in the bucket’s configuration. For this post, we encourage you to use a customer managed key rather than relying upon an AWS managed key, so you can control the associated key policy.
    1. Encryption at rest provides an additional layer of protection, because only entities that have both the permission to read from the bucket and permission to use the AWS Key Management Service (AWS KMS) key for decryption can download the forensic artifact from the S3 bucket.
    2. You need to adjust the example KMS policies in this post if the evidence collection S3 bucket uses the S3 Bucket Key feature.
  3. Audit logs of all S3 data event activity. You can turn on CloudTrail data events for any S3 buckets that contain forensic artifacts to provide a comprehensive audit trail of S3 object-level API activity. This helps provide a chain of custody of any artifacts stored in your forensic buckets.
  4. Fine-grained access control using IAM permissions. You can define the set of entities (both human and machine) that have access to the artifacts in the S3 bucket. This post includes how to create time-limited, least privilege access using IAM permissions for uploading files into an S3 bucket. The permissions are fine-grained enough to scope down access to specific object names or object prefixes in an S3 bucket. Additionally, access to read the artifacts can be controlled through IAM permissions and access to the encryption-at-rest KMS key.
  5. Protections against data modification and deletion. S3 provides features, such as S3 object versioning, to provide assurances that data hasn’t been modified or removed after it’s been collected. This is an additional layer of protection beyond the fine-grained access permissions, so even if an authorized entity attempts to overwrite or delete an object in the S3 bucket, the previous version of the object is still available.
  6. There are additional options that you can configure on the S3 bucket to protect your data against modification and deletion, including S3 Object Lock and multi-factor authentication (MFA) delete.

In addition to the preceding configuration, consider how to organize forensic artifacts in the S3 bucket. This post introduces a folder structure using S3 object prefixes to segregate each forensic artifact collection task into its own S3 object namespace. An example S3 namespace structure for an S3 bucket is shown in Figure 1.

Figure 1 – S3 namespace structure for an S3 forensics artifact bucket using object prefixes

Figure 1: S3 namespace structure for an S3 forensics artifact bucket using object prefixes

By separating each forensic collection task by its own prefix, you can use fine-grained IAM permissions to permit object uploads only into the active collection task. For example, scoped down credentials can be generated to only allow uploads into buckets with the CASE-0001 prefix using an IAM permission as shown in the following code example. Temporary security credentials can be generated using these limited permissions and the key is then used by the forensic acquisition tool to upload the artifacts into the S3 bucket.

{
	"Sid": "UploadToCase0001",
	"Effect": "Allow",
	"Action": [
		"s3:PutObject",
		"s3:AbortMultipartUpload"
	],
"	Resource": "arn:aws:s3:::mycompany-forensics-collection/CASE-0001/*"
}

Manually creating temporary IAM credentials for each forensic collection activity can be error-prone and time-consuming. Therefore, this post demonstrates how to use AWS tooling to automate the process of generating time-limited, scoped-down credentials.

Adapt existing forensic tools for AWS best security practices

Existing forensic tools typically use IAM access keys to perform S3 operations. Using a static IAM user secret access key isn’t a best practice. Even if the static key is associated with an IAM user that has been scoped down to only have access to the forensic collection S3 bucket as described previously, that means anyone with access to that key can potentially upload objects into that bucket. Therefore, the best practice is to create a time-limited temporary security credential unique to each collection activity, scoped down to only allow uploading files to a specific prefix in the target S3 bucket.

The examples in this post use the following resource names. Because these names will change based on your deployment, substitute your resource names in place of the names in the example code.

  1. The evidence S3 bucket is named mycompany-forensics-collection
  2. The forensics AWS account number is 112233445566. For the purposes of this example, all resources will live within this account.
  3. The customer managed key used to encrypt the forensic artifacts at rest is ForensicsEvidenceKey
  4. The IAM role that incident responders will assume when signing in to their AWS account is ForensicsUserRole
  5. The IAM role that incident responders will use for generating S3 file upload temporary credentials is ForensicsUploadRole
  6. The example uses the us-east-1 AWS Region

The following steps show you how to configure the IAM policies associated with the customer managed key ForensicsEvidenceKey and the IAM role ForensicsUploadRole.
Before you begin, create the evidence S3 bucket configured as described in Using S3 for artifact collection and a customer managed key to encrypt the forensic artifacts at rest. Configure the evidence S3 bucket to use the KMS key by opening the S3 bucket’s properties tab in the Amazon S3 console and setting the new KMS key as the default encryption key for the bucket.

Next, create an IAM role that incident responders will assume through the AWS STS AssumeRole API to generate the temporary credentials. This role will define the maximum set of permissions allowed to upload artifacts to your evidence S3 bucket. This role, ForensicsUploadRole, created using the following example code, defines the maximum allowable permissions: the ability to upload objects into the evidence S3 bucket and to use the KMS key to encrypt those uploads. The effective permissions available to the forensic tool will be scoped down even further to the specific object prefix when the AWS STS temporary security credential is generated.

Note that the policy allows the forensics upload role Decrypt permission in addition to Encrypt; this is required when uploading files larger than 5 GB using the multi-part S3 file upload feature.

{
	"Version": "2012-10-17",
	"Statement": [
			{
				"Sid": "BasePermissionsForS3Upload",
				"Effect": "Allow",
				"Action": [
					"s3:PutObject",
					"s3:AbortMultipartUpload"
				],
				"Resource": "arn:aws:s3:::mycompany-forensics-collection/*"
		},
		{
			"Sid": "KeyAccessToS3Upload",
			"Effect": "Allow",
			"Action": [
				"kms:GenerateDataKey",
				"kms:Encrypt",
				"kms:Decrypt"
			],
			"Resource": "arn:aws:kms:us-east-1:112233445566:alias/ForensicsEvidenceKey",
			"Condition": {
				"StringLike": {
					"kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::mycompany-forensics-collection/*"
				}
			}
		}
	]
}

Next, you need to provide an ability to assume this role and generate AWS STS tokens using the role’s permissions. This is accomplished by creating a trust relationship associated with the IAM role you just created. The trust relationship shown in the following code sample describes which AWS principals are allowed to assume the role—in this case, you will allow any user who has federated into the ForensicsUserRole IAM role to be able to generate AWS STS tokens for forensic artifact collection.

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "Statement1",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::112233445566:role/ForensicsUserRole"
			},
			"Action": "sts:AssumeRole"
		}
	]
}

After the role is established and access to the encryption key is granted, you can use the AWS STS AssumeRole API to create temporary credentials using this role. You can call this API using the AWS Command Line Interface (AWS CLI) or programmatically from a script. To scope down the token’s access to only provide permission to upload to the specific evidence object prefix, you must include a session policy as part of your AssumeRole API request to AWS STS. The following is an example session policy to restrict access to only upload objects into the CASE-0001 prefix.

[
	{
		"Effect": "Allow",
		"Action": [
			"s3:PutObject", 
			"s3:AbortMultipartUpload"
		],
		"Resource": "arn:aws:s3:::mycompany-forensics-collection/CASE-0001/*"
	},
	{
		"Effect": "Allow",
		"Action": [
			"kms:GenerateDataKey", 
			"kms:Encrypt", 
			"kms:Decrypt"
		],
		"Resource": "*",
		"Condition": {
			"StringLike": {
				"kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::mycompany-forensics-collection/CASE-0001/*"
			}
		}
	}
]

The effective permissions available to the session role will be the intersection of permissions available in the role policy (ForensicsUploadRole), the resource policy (in this case, mandating TLS-encrypted connections to the bucket), and the session policy that’s created on demand for every forensic collection (only allowing access to upload objects into the CASE-0001 prefix, as shown in the preceding example). Pictorially, this looks like the Venn diagram shown in Figure 2.

Figure 2 – Intersection of IAM policies determine the effective permissions for the restricted forensic session role.

Figure 2: Intersection of IAM policies determine the effective permissions for the restricted forensic session role.

Test the temporary credentials

Now that the bucket has been created and the AWS KMS key and roles configured, you can use AWS STS to create a temporary security credential for a collection on CASE-0001. You can use the AWS CLI to do this manually or you can write a script to automate this process using the AWS API. The IAM access key, secret access key, and session token returned by this call can then be used by any tool that can use AWS access keys to upload files into the specified S3 bucket.

The following example shows an AWS CLI call to AssumeRole using the example ForensicsUploadRole and a case named CASE-0001. The --duration-seconds parameter defines the period, in seconds, that the temporary credentials are valid; the default of 3600 seconds will provide temporary credentials that are valid for one hour.

$ aws sts assume-role \
	--role-arn arn:aws:iam::112233445566:role/ForensicsUploadRole \
	--role-session-name CASE-0001 \
	--duration-seconds 3600 \
	--policy '{"Version": "2012-10-17", "Statement": [{"Effect": "Allow", "Action": ["s3:PutObject", "s3:AbortMultipartUpload"], "Resource": "arn:aws:s3:::mycompany-forensics-collection/CASE-0001/*"}, {"Sid": "BasePermissionsForS3Upload", "Effect": "Allow", "Action": ["kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt"], "Resource": "*"}]}'

{
	"Credentials": {
		"AccessKeyId": "ASIAXXXX",
		"SecretAccessKey": "XXXX",
		"SessionToken": "XXXX",
		"Expiration": "2025-04-10T17:16:13+00:00"
	},
	"AssumedRoleUser": {
		"AssumedRoleId": "AROXXXX:CASE-0001",
		"Arn": "arn:aws:sts::112233445566:assumed-role/ForensicsUploadRole/CASE-0001"
	},
	"PackedPolicySize": 39
}

Now that you have obtained temporary credentials from AWS STS, you can use those credentials to upload a file into Amazon S3:

$ AWS_ACCESS_KEY_ID=ASIAXXXX \
	AWS_SECRET_ACCESS_KEY=XXXX \
	AWS_SESSION_TOKEN=XXXX \
	aws s3 cp evidence.zip s3://mycompany-forensics-collection/CASE-0001/evidence.zip

upload: evidence.zip to s3://mycompany-forensics-collection/CASE-0001/evidence.zip

You can also verify that you can’t use those credentials to upload a file into any other object prefixes or S3 buckets. For example, if you change CASE-0001 to CASE-0004 in the Amazon S3 upload command, you will receive an AccessDenied error because you’re trying to upload an object outside of the allowed key prefix.

$ AWS_ACCESS_KEY_ID=ASIAXXXX \
	AWS_SECRET_ACCESS_KEY=XXXX \
	AWS_SESSION_TOKEN=XXXX \
	aws s3 cp evidence.zip s3://mycompany-forensics-collection/CASE-0004/evidence.zip

upload failed: evidence.zip to s3://mycompany-forensics-collection/cases/CASE-0004/evidence.zip
An error occurred (AccessDenied) when calling the PutObject operation: User: arn:aws:sts::112233445566:assumed-role/ForensicsUploadRole/CASE-0001 is not authorized to perform: s3:PutObject on resource: "arn:aws:s3:::mycompany-forensics-collection/CASE-0004/evidence.zip" because no session policy allows the s3:PutObject action

Additionally, if you wait more than the lifetime of the token (1 hour in this case), attempting to upload a file into the bucket will fail, because the token will no longer be valid:

$ AWS_ACCESS_KEY_ID=ASIAXXXX \
	AWS_SECRET_ACCESS_KEY=XXXX \
	AWS_SESSION_TOKEN=XXXX \
	aws s3 cp evidence.zip s3://mycompany-forensics-collection/CASE-0001/evidence.zip

upload failed: evidence.zip to s3://mycompany-forensics-collection/CASE-0001/evidence.zip

An error occurred (ExpiredToken) when calling the PutObject operation: The provided token has expired.

Create an automated process to vend temporary credentials on demand

After you’ve verified the security benefits of creating temporary credentials for S3 uploads and validated that the credentials work with your forensic software of choice, you can now use them as part of an automated process.

A sample automated architecture is shown in Figure 3.

Figure 3: Architecture to automate S3 credential vending and forensic artifact collection.

Figure 3: Architecture to automate S3 credential vending and forensic artifact collection.

The workflow depicted in Figure 3 includes the following steps:

  1. The workflow is triggered by an alert from a detection source or a manual trigger from an incident responder.
  2. The workflow input is added to an Amazon Simple Queue Service (Amazon SQS) queue.
  3. The Amazon SQS queue invokes an AWS Lambda function which in turn executes a Step Functions state machine to orchestrate the workflow.
  4. First, the Step Functions workflow determines whether the target system is managed by AWS Systems Manager.
    1. If the target system isn’t managed by Systems Manager, an error is noted, and the execution is abandoned.
    2. If the target system is managed by Systems Manager, the Step Functions workflow determines the operating system (OS) of the target system and proceeds with the flow of execution.
  5. The workflow then continues by executing the Systems Manager documents that implement the forensic collection process:
    1. Downloads tooling:
      1. Generates dynamically scoped IAM temporary credentials that provide access to download the OS-specific tooling to be executed on the target system from the tooling S3 bucket. These credentials are tightly scoped to only allow downloads from the S3 prefix that corresponds to the tooling for the target system’s OS.
      2. Executes a Systems Manager command on the target system that uses the credentials generated from the previous step to download the OS tooling on the target system.
    2. Runs forensic tools:
      • Executes a Systems Manager command on the target system to execute the OS tooling on the target system.
  6. The Systems Manager commands run on the target system, which in this case is an EC2 instance.
  7. Results are uploaded to the evidence S3 bucket:
    1. Generates dynamically scoped IAM temporary credentials (as described previously) that provide access to upload the output of the previously executed tooling to the evidence S3 bucket. These credentials are tightly scoped to only allow uploads to a particular S3 prefix corresponding to the alert prefix.
    2. Executes a Systems Manager command on the target system to upload the output of the previously executed tooling to the evidence S3 bucket. After the upload is complete, it cleans up both the output and the evidence tooling from the target system.
    3. The evidence S3 bucket is tightly locked down to a subset of identities within the AWS security account. Access attempts from identities that aren’t allow listed trigger an Amazon EventBridge rule to alert the security team through an Amazon Simple Notification Service (Amazon SNS) topic.
  8. When the workflow is complete, related details and metrics are recorded in an Amazon DynamoDB table.
  9. The forensic analysis can be performed on a separate EC2 instance that has access to read from the evidence S3 bucket.

Deploying the example solution

You can use the AWS Cloud Development Kit (AWS CDK) repository to implement the architecture shown in Figure 3.

The AWS CDK solution is split into three stacks:

  1. SecurityStack: This stack contains the basic forensic artifact workflow orchestration infrastructure described in this post, including the Step Functions workflow, Lambda functions, AWS SQS queues, IAM roles, and S3 buckets.
  2. AlertStack: This stack contains the EventBridge workflow to notify administrators of anomalous activity in the evidence S3 bucket.
  3. CustomerStack: This stack contains the SSM documents that are executed for the forensic artifact workflow and an IAM role assumed by the SecurityStack when the workflow is invoked. It’s deployed into each child AWS account containing EC2 instances from which the security account is authorized to collect forensic artifacts.

Configuration

Before deploying the solution, there are several variables in the config.ts file that must be modified for the environment:

  1. SECURITY_ACCOUNT: Security Tooling AWS account ID.
  2. CUSTOMER_ACCOUNTS: Target AWS account IDs (the Child AWS account in the architecture diagram).
  3. ALERT_EMAIL_RECIPIENTS: List of email addresses that receive alerts when there is unexpected access to the evidence S3 bucket.
  4. ALLOW_LISTED_ROLE_NAMES: Roles allowed to access the evidence S3 bucket. Any other identities accessing the evidence S3 bucket will result in an alarm.

Deployment

After you’ve updated the config.ts file to reflect the account numbers, email recipients, and role names, the stacks can be deployed into your AWS infrastructure.

  1. Set Up AWS credentials using the AWS CLI:
    aws configure
  2. Install dependencies and configure constants:
    1. Clone the repository.
    2. Navigate to the project directory.
    3. Install project dependencies:
      npm install
    4. Configure constants in constants/config.ts with the required information:
      export const SECURITY_ACCOUNT = "123456789012"; // Your security tooling account ID 
      export const CUSTOMER_ACCOUNTS = ["234567890123", "345678901234"]; // Target account IDs 
      export const ALLOW_LISTED_ROLE_NAMES = ["SecurityAnalystRole"];// Roles allowed to access evidence S3 bucket 
      export const ALERT_EMAIL_RECIPIENTS = ["[email protected]"];// Email addresses for alerts

  3. Bootstrap AWS CDK in your accounts (if it hasn’t been done already):
    1. Example: cdk bootstrap aws://456789012345/us-east-1 (example security AWS account).
    2. Then bootstrap if necessary in any target AWS accounts.
  4. Deploy the AWS CDK Stacks:
    1. Synthesize the CloudFormation template:
      cdk synth
    2. Deploy the security and alert stacks in your security account:
      cdk deploy SecurityStack AlertStack
    3. Deploy the customer stacks in your workload accounts:
      cdk deploy CustomerStack-ACCOUNT_ID
  5. Set up your email alerts:
    1. After the AlertStack is deployed, it will email all addresses listed in ALERT_EMAIL_RECIPIENTS. Choose the embedded link to accept the AWS SNS topic in each of those accounts.

Testing

With deployment complete, it’s time to test the solution.

  1. Trigger an analysis
    1. Make sure you have a Linux EC2 instance running in one of your customer accounts and in the AWS Region where you deployed the preceding customer stack.
    2. Because this example uses Systems Manager to orchestrate the collection script, make sure that the EC2 instance is visible in Systems Manager either by checking the Systems Manager console, or by using the AWS CLI:
      1. Console: In the AWS Systems Manager console, choose Managed instances in the left navigation pane and verify your instance appears in the list. For more information, see Managed Instances in the AWS Systems Manager User Guide.
      2. AWS CLI: Run the following command to verify the instance is managed:
        aws ssm describe-instance-information --filters “Key=InstanceIds,Values=<instance-id>
        If the command returns instance information with PingStatus: Online, the instance is properly connected to Systems Manager.
    3. Post a message in your security account to the Amazon SQS queue to start the Step Functions workflow. Note that the values in angle brackets (for example <accountID>) are placeholders that you must update with relevant AWS account ID, tracking ticket ID, AWS Region, and EC2 instance ID values:
      aws sqs send-message --queue-url --message-body ‘{ “account”: “”, “ticket_id”: “”, “region”: “>”, “instance_id”: “” }’
  2. Go to the Step Functions console to view the successful execution of the workflow:
    Figure 4 – Workflow as shown in the Step Functions console

    Figure 4: Workflow as shown in the Step Functions console

  3. View the DynamoDB table to see the metadata for the results.
  4. Check the evidence S3 bucket to see the uploaded files from the forensic collection.

Conclusion

Collecting forensic artifacts securely is a critical component of any digital forensics investigation. This post demonstrated how to implement least privilege access controls and time-limited credentials for forensic evidence collection workflows that use Amazon S3 for artifact storage. By combining IAM session policies with AWS STS temporary credentials, you can provide forensic tools with secure, scoped-down access to upload artifacts without exposing long-lived credentials or granting overly permissive access.

The architecture presented in this post automates the process of generating temporary credentials, collecting forensic artifacts from both AWS and non-AWS resources, and securely storing them in S3 buckets with appropriate encryption, access controls, and audit logging. With this approach, your security teams can focus on analyzing evidence instead of managing credentials and permissions during active security incidents.To get started with this solution, deploy the example AWS CDK stacks provided in the collect forensic artifacts repository and customize them for your organization’s forensic investigation requirements. For more information about related AWS forensic investigation architectures, review the Automated Forensics Orchestrator for EC2 and How to build forensic kernel modules for Linux EC2 instances resources.

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

Jason Garman

Jason Garman

Jason is a principal security specialist solutions architect at AWS. He has 30 years of cybersecurity experience including incident response, reverse engineering, identity, and data protection. At AWS, he helps large organizations adopt the latest cloud and AI technologies while maintaining a high bar for data governance, security, and safety.

Vaishnav Murthy

Vaishnav Murthy

Vaishnav is a Senior Security Engineer with AWS CloudResponse. He has an extensive background in incident response and security automation and enjoys building automated solutions that help AWS customers investigate and respond to security incidents at scale.

[$] Ripping CDs and converting audio with fre:ac

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

It has been a little while since LWN last surveyed tools for managing a digital
music collection
. In the intervening decades, many Linux users have moved on to
music streaming services, found them wanting, and are looking to curate their own
collection once again. There are plenty of choices when it comes to
ripping, managing, and playing digital audio; so many, in fact, that it can be a
bit daunting. After years of tinkering, I’ve found a few tools that work well for
managing my digital library: the first I’d like to cover is the fre:ac free audio encoder for ripping music from
CDs and converting between audio formats.

[$] An API for handling arithmetic overflow

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

On March 31, Kees Cook shared

a patch set
that represents the culmination of more than a year of work
toward eliminating the possibility of silent, unintentional integer overflow in
the kernel. Linus Torvalds was

not pleased
with the approach, leading to a detailed discussion about the
meaning of “safe” integer operations and the design of APIs for handling integer
overflows. Eventually, the developers involved reached a consensus for a
different API that should make handling overflow errors in the kernel much less
of a hassle.

Nix privilege escalation security advisory

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

The NixOS project has announced
a critical vulnerability
in many versions of the Nix package
manager’s daemon. The flaw was introduced as part of a fix for a
prior vulnerability in 2024
. According to the advisory,
all default configurations of NixOS and systems building untrusted derivations
are impacted.

A bug in the fix for CVE-2024-27297
allowed for arbitrary overwrites of files writable by the Nix process
orchestrating the builds (typically the Nix daemon running as root in
multi-user installations) by following symlinks during fixed-output
derivation output registration. This affects sandboxed Linux builds –
sandboxed macOS builds are unaffected. The location of the temporary
output used for the output copy was located inside the build chroot. A
symlink, pointing to an arbitrary location in the filesystem, could be
created by the derivation builder at that path. During output
registration, the Nix process (running in the host mount namespace)
would follow that symlink and overwrite the destination with the
derivation’s output contents.

In multi-user installations, this allows all users able to submit
builds to the Nix daemon (allowed-users – defaulting to all users) to
gain root privileges by modifying sensitive files.

The collective thoughts of the interwebz