No hallucinations here: track the latest AI trends with expanded insights on Cloudflare Radar

Post Syndicated from David Belson original https://blog.cloudflare.com/expanded-ai-insights-on-cloudflare-radar/

During 2024’s Birthday Week, we launched an AI bot & crawler traffic graph on Cloudflare Radar that provides visibility into which bots and crawlers are the most aggressive and have the highest volume of requests, which crawl on a regular basis, and more. Today, we are launching a new dedicated “AI Insights” page on Cloudflare Radar that incorporates this graph and builds on it with additional metrics that you can use to understand AI-related trends from multiple perspectives. In addition to the traffic trends, the new section includes a view into the relative popularity of publicly available Generative AI services based on 1.1.1.1 DNS resolver traffic, the usage of robots.txt directives to restrict AI bot access to content, and open source model usage as seen by Cloudflare Workers AI.

Below, we’ll review each section of the new AI Insights page in more detail.

AI bots and crawlers traffic trends

Tracking traffic trends for AI bots can help us better understand their activity over time. Initially launched in September 2024 on Radar’s Traffic page, the AI bot & crawler traffic graph has moved to the AI Insights page and provides visibility into traffic trends gathered globally over the selected time period for the top five most active AI bots & crawlers. The associated list of user agents tracked here is based on the ai.robots.txt list, and will be updated with new entries as they are identified. The time series and summary data for this graph is available from the Radar API, and traffic trends for the full set of AI bots & crawlers we see traffic from can be viewed in the Data Explorer.


Popularity of Generative AI services

Over the last several years, the Cloudflare Radar Year in Review has analyzed request traffic data from our 1.1.1.1 DNS resolver to present rankings of the most popular Internet services, both generally and across several categories. In both 2023 and 2024, this section included rankings for publicly-available Generative AI services, with ChatGPT topping the list both years. While an accompanying blog post provides a more detailed look at how the rankings shifted over the course of the year, it too is looking through the rearview mirror. That is, it doesn’t provide visibility into the changes as they are occurring. The new Generative AI services popularity graph shows the relative rankings of these services and platforms based on DNS request traffic for domains associated with these services aggregated at a daily level. The underlying time series data is available through the Radar API, using the serviceCategory=Generative%20AI parameter.

The graph below shows that as of the end of January 2025, the top five services were fairly stable over the preceding four weeks, but there was regular movement among those ranked #6-10. We expect that the rankings will continue to change over time. DeepSeek, a Generative AI service that took the industry by storm at the end of January, can be seen making its initial appearance at #9 on January 26, rising rapidly to #3 on January 29, just three days later. 


Analysis of robots.txt files

Content providers can attempt to control access to their full site, or specific portions of it, through the use of Allow or Disallow directives in a robots.txt file. However, successful access control is dependent on the bots respecting the listed directives. Cloudflare’s AI Audit gives you visibility and control into how AI bots are interacting with your website, and now Cloudflare Radar gives you insights into how other sites are handling them.

On a weekly basis, we analyze Radar’s top 10,000 domains to determine which associated sites publish robots.txt files, as well as aggregating the AI-specific directives within those files. In our new AI user agents found in robots.txt graph, seen below, we are now providing insights into actions that these top sites are taking with respect to AI bots. These actions are specified by directives that allow or disallow access by a given user agent (bot identifier) for either all content on the site (Fully Allowed/Disallowed) or certain sections (Partially Allowed/Disallowed).


In addition, we have also organized these domains by category (for example, Ecommerce or News & Media), highlighting the specific bots that the sites within those categories have listed in their directives. For example, the News & Media domain category graph shown below illustrates that these types of sites almost universally fully disallow access to their sites by AI user agents.


Changing the directive to “Allow” shows a much smaller set of user agents, with a drastically smaller set of sites explicitly allowing full or partial access. (Note that if a user agent is not listed in a robots.txt file, and a wildcard “*” user agent is not specified, then access is fully allowed by default.)


In addition to appearing on the AI Insights page, the underlying data is available for further exploration and analysis through the Radar API and the Data Explorer. 

Popularity of models and tasks on Workers AI

The AI model landscape is rapidly evolving, with providers regularly releasing more powerful models, capable of tasks like text and image generation, speech recognition, and image classification. Cloudflare works closely with AI model providers to ensure that Workers AI supports these models as soon as possible following their release. On the new AI Insights page, Radar now provides visibility into the popularity of publicly available supported models (Workers AI model popularity) as well as the types of tasks (Workers AI task popularity) that these models perform, based on customer account share. Extended insights, including share trends and summary shares for the full list of models and tasks, as well as the ability to compare model and task shares across time periods, are available through the Data Explorer. The underlying model popularity and task popularity data is also available through API endpoints.


Conclusion

The AI space is extremely dynamic, with new platforms, services, and models regularly appearing. In some cases, these new entrants even have the power to upset the market as they see rapid growth in interest and usage. And over two years since ChatGPT was announced, there continues to be tension between content providers and AI platforms about scraping content for model training. The new “AI Insights” page on Cloudflare Radar provides timely trends and information about this dynamic space, enabling industry observers and participants to better understand how it is changing and evolving over time.

If you share AI Insights graphs on social media, be sure to tag us: @CloudflareRadar (X), noc.social/@cloudflareradar (Mastodon), and radar.cloudflare.com (Bluesky). You can also reach out on social media, or contact us via email, with suggestions for AI metrics that we can explore adding to the page in the future.

Introducing the Exposure Management Webinar Series: Commanding Your Attack Surface

Post Syndicated from Emma Burdett original https://blog.rapid7.com/2025/02/04/introducing-the-exposure-management-webinar-series-commanding-your-attack-surface/

Introducing the Exposure Management Webinar Series: Commanding Your Attack Surface

The digital landscape is expanding rapidly, and with it, the complexity of managing an organization’s attack surface. To help cybersecurity professionals navigate this challenge, Rapid7 presents a three-part webinar series, “Commanding Your Attack Surface.” This series dives deep into the evolving exposure management landscape, featuring insights, strategies, and practical demonstrations designed to help teams stay ahead of adversaries.

From foundational concepts to cutting-edge solutions, this series is a must-watch for anyone looking to enhance their organization’s security posture. Whether you’re just beginning to explore exposure management or you’re a seasoned practitioner, these webinars offer valuable knowledge and actionable steps to transform your approach.

Why Watch? Key Learnings from the Series

Webinar 1: Exposure Management 101 – Essential Concepts & Strategies. Discover the basics of exposure management and learn how to identify and mitigate risks across your attack surface. This session explores Gartner’s Continuous Threat Exposure Management (CTEM) framework and outlines how a proactive approach can reduce your organization’s likelihood of a breach by threefold.

Watch the Webinar here

Webinar 2: Take Command of Your Attack Surface with Rapid7 Exposure Command. Dive into Rapid7’s cutting-edge Exposure Command platform, which provides unified attack defense and response capabilities. Learn how to bridge the “security visibility gap” by leveraging real-time data aggregation, advanced correlation, and a vendor-agnostic approach to create a single source of truth for your security team.

Watch the Webinar here

Webinar 3: Meeting the Exposure Management Challenge – Key Use Cases for Success. Hear from industry experts on the most pressing challenges in exposure management today. Gain insights into best practices for unifying visibility, prioritizing risks, and validating controls to maximize the effectiveness of your security investments.

Watch the Webinar here

Each session builds on the last, equipping you with the tools and knowledge to proactively manage and defend your attack surface. Click through to view the webinars and transform your cybersecurity strategy today!

Surface Command and Unified Attack Surface Management

At the heart of successful exposure management lies Surface Command, Rapid7’s solution for a continuous 360° view of your attack surface. Here’s how Surface Command can transform your security operations:

  • Eradicate Blind Spots: Achieve unparalleled visibility by monitoring internal and external assets, uncovering shadow IT, and eliminating coverage gaps.
  • Defend with Full Context: Leverage native and third-party enrichment to identify the exposures adversaries are most likely to exploit.
  • Accelerate Response: Equip teams with actionable context to triage the full blast radius of an attack and respond more effectively.

Surface Command enables teams to detect, prioritize, and remediate security issues across their entire digital estate, empowering organizations to defend proactively against emerging threats.

Ready to take control of your attack surface?
Explore the possibilities with Surface Command here

Формата цитира функцията. Архитектурната критика на Анета Василева

Post Syndicated from Светла Енчева original https://www.toest.bg/formata-tsitira-funktsiyata-arhitekturnata-kritika-na-aneta-vasileva/

Формата цитира функцията. Архитектурната критика на Анета Василева

Държа в ръцете си първата книга на Анета Василева – „Kicked a Building Lately?* Архитектурна критика след дигиталната революция“. Усещането е странно не само защото книгата е тежка (според кантара ми за багаж близо 200-те ѝ листа плътна хартия тежат 1,02 кг). Нито само заради необичайния начин на визуално представяне на различните текстови жанрове в нея. А най-вече защото от 16–17 години чета текстовете на авторката онлайн и затова ми е необичайно да ги видя в книжно тяло.

Не смеех да напиша тази статия, защото нямам самочувствието, че разбирам от архитектура. Анета Василева обаче ме убеди, като ми написа:

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

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

Архитектурата и аз

2007-ма e годината, когато България влезе в ЕС, роди се архитектурният блог What Association (WhatA или просто ?A), един от чиито автори е Анета Василева, а аз започнах да се интересувам от архитектура. Вече не помня дали първоизточникът на интереса ми беше WhatA, или кандидатурата на Мартин Заимов за кмет на София. Заимов беше комай първият български политик, опитващ се да разпространява идеите на съвременния урбанизъм – с акцент върху хората, а не върху автомобилите, – които Ян Геел три години по-късно обобщава в книгата си „Градове за хората“. До този момент публичното говорене за градска среда и архитектура се свеждаше (поне в моята глава) предимно до възхвала на изграждането на нови булеварди и метростанции, предупреждаване за опасностите от масовото бутане на стени за жилищни и търговски цели и разбира се, мутробарок.

Освен WhatА в българското онлайн пространство се нароиха и други архитектурни блогове, които поотмряха, след като блогърстването започна да излиза от мода. От някогашните архитектурни блогъри Мартин Ангелов стана изобретател. Павел Янчев е един от сътрудниците на Ян Геел при изготвянето на доклада му за София и е част от „Екипът на София“. На други им загубих дирите. Но още помня разказа на Милен Мечкуев от вече несъществуващия архитектурен блог ProvoCAD за защитата на дипломната му работа.

Най-дълго се задържа WhatA – последният пост там е от 2021 г. Признавам, че възгледите ми за архитектура са формирани в решаваща степен под влиянието на този блог и в частност на текстовете на Анета Василева (които четях по-късно и в „Култура“, и в „Тоест“). И аз заедно с авторите на блога исках да спасявам Захарна фабрика, участвах в ироничния протест – поклонение пред надгробната плоча на Музея на съвременното изкуство, редовно гласувах в годишните награди на WhatA. През 2023 г. дилетантското ми желание да съм в по-близки отношения с архитектурата се опредмети (не без посредничеството на главната героиня на тази статия) в една кухня. Но това е вече друга история.

Междувременно жанрът на блоговете май наистина умря. Днешни възпитаници на Анета Василева поддържат сайта Stroiinfo, който се позиционира като „медия за архитектура, строителство, дизайн и градска среда“. Вече не е престижно да си блог(ър).

Разказвам по-подробно, за да стане ясно колко важно събитие за мен е първата книга на Анета Василева. Това от своя страна е предизвикателство за критическата дистанция, която се опитвам да постигна в прочита си.

Не просто книжно тяло

Книгата се състои от две основни части. Първата е теоретична, а във втората са събрани вече публикувани статии на авторката, разпределени по жанрове – блог постове от WhatA, вестникарски колонки от „К“ (бившия вестник „Култура“) и статии в „Тоест“. Редактор и автор на предговора е литераторът Йордан Ефтимов, а графичният дизайн е дело на Виктория Стайкова (която е авторка и на корицата) и на Христо Христов.

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

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

Нахалство или не?

Постмодерната заигравка с цитати не е само на ниво дизайн, а присъства дори в заглавието на книгата. Затова и в него има звездичка – доста нетипично за заглавие на книга. Като отгърнем първите страници, научаваме (ако не сме знаели преди), че Kicked a Building Lately? всъщност е заглавието на друг сборник статии с архитектурна критика – на Ейда Луис Хъкстабъл, както и на статия на Хъкстабъл, на която е наречен сборникът.

Заглавието на програмната статия „Каузата на кучето“, с която завършва теоретичната част на книгата на Анета Василева и версия на която е публикувана в „Тоест“, също заимства заглавие – на публикация на архитектурния критик (и архитект) Павел Попов в „Култура“.

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

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

Структуриран постмодернизъм

Макар че постмодернизмът на Анета Василева си е останал поне малко бунтарски и хаплив (язък, ако не беше), той е зрял и поопитомен. Цитатите са явни, а не скрити, текстът е структуриран, а структурата е важна колкото думите.

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

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

„Оказа се – пише тя в края на увода – че следвайки похода на българската архитектура към европейска адекватност, съм минала през всичко: от блогосферата до вестник „Култура“, от бързо и кратко писане към по-дълги статии с повече контекст и проучване, от новини към анализ, от бунт към търсене на алтернативи. А книгата извървява пълен кръг, наслагвайки Теория и Практика – от стандартни към дигитални медии и обратно.“

Какво ми липсва

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

Теоретичната част на „Kicked a Building Lately?* Архитектурна критика след дигиталната революция“ се концентрира върху развитието на архитектурната критика основно в САЩ. Едно, защото там са ставали важни неща, задаващи общия тон и на архитектурата, и на критиката, второ, защото специализацията на Анета Василева в САЩ ѝ е дала възможност да черпи от извора.

Практическата част обаче се състои от текстове, писани в българския контекст. А в теоретичната част той е маркиран твърде бегло – с по няколко изречения на стр. 13 и 14. В статията „Каузата на кучето“, с която завършва теоретичната част, се споменава за криза на архитектурната критика в България… само за да стане ясно, че проблемът не е местен, а глобален.

Книгата започва с думите:

„Архитектурната критика е история на съвременността. А всеки историк е продукт на времето си.“

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

Отговор, но не в книгата

Не че авторката не може да отговори на горния въпрос – вече го е правила. Например в публичната си лекция за архитектурата на Прехода. Съвсем в прав текст отговаря в интервю за Stroiinfo:

„90-те беше сблъсъкът между модернизъм и постмодернизъм в България, 10–15 години по-късно, отколкото по света. Няколко години по-късно всъщност аз осъзнах колко много българското образование дължи на „Баухаус“, на каква сериозна „Баухаус“ основа е залегнало, която изглежда непробиваема дори и днес, 100 години след създаването на школата. Ние тогава се бунтувахме срещу този според нас закостенял модернизъм. 90-те бяха десетилетието на постмодернизма в България, на постмодерната поезия, на експериментите във визуални изкуства, на пърформансите. Страната се променяше, музиката се променяше, а ние учехме модернизъм, което за нас беше абсурд. Години след това осъзнах колко важно е било това за изграждането на пълноценния образ на архитекта, който трябва да познава модернизма като задължителната база. Дори и после да стане постмодернист, постмодернистът просто е разбунтувалото се дете, непослушното дете на модернизма, винаги така съм го наричала.“

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

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

По буквите: Тан, Стойкова

Post Syndicated from Зорница Христова original https://www.toest.bg/po-bukvite-tan-stoykova/

„Приказки от сърцето на града“ от Шон Тан

По буквите: Тан, Стойкова

превод от английски Нева Мичева, Пловдив: „Жанет-45“, 2024

В един разказ на Бредбъри човек, останал сам на обитаема, но безлюдна планета, чува телефонен звън. Хвърля се към слушалката, но оттатък е само неговият собствен глас, записан преди десетилетия в очакване на самотата. Гласът звъни отвсякъде – и се превръща в подигравка, в безкрайно присмехулно ехо, което те сочи отвсякъде: сам си, не можеш да избягаш от това.

В „Приказки от сърцето на града“ човекът (изобщо) е смътно, но неудържимо самотен, макар да крие това от себе си. Самотен е като биологичен вид – защото унищожава другите животни, макар да копнее за тяхното присъствие до себе си. Копнее за топлината на една природа, на едно естество, което не е неговото – и точно затова е свръх-естествено. Чудо. Шон Тан умее да рисува чудото в целия му библейски блясък – сетивно чудо, като едва доловимия допир на милиарди спуснали се над града пеперуди, на обърнатите нагоре очи и протегнатите ръце. Чудо, което може да разтегля времето, докато исполинските охлюви бавно правят любов насред града. Може да го разтегли до хилядолетия, докато човекът и кучето – различен човек и различно куче, но всъщност едни и същи – крачат един до друг през историята. Тази част е без думи, мълчаливо разказана единствено от рисунките. В друга образите и думите се дописват, допълват – също както човека и неговите мълчаливи спътници.

Българските читатели познават Шон Тан. „Приказки от сърцето на града“ е публикувана няколко години след „Приказки от крайните квартали“, също преведена от Нева Мичева и също издадена от „Жанет-45“. И тя е пропита от копнежа по нещо изгубено, което дори не можем да си спомним напълно – докато не ни прониже внезапното прозрение, внезапното припомняне до какво сме имали достъп. 25-те разказа от „сърцето на града“ не са притчи, нито приказки, нито магически реализъм – те са внимателно описание на един изгубен вътрешен пейзаж, на изгубен вътрешен рай – рая да не бъдем сами. И на отчаяното чувство за вина, което човекът отново бърза да замаже.

По буквите: Тан, Стойкова

Впрочем Шон Тан има у нас заклети почитатели, които отдавна са изнамерили и другите му книги – например „Цикада“ (за насекомото – корпоративен служител) и „Пристигане“, и коя ли не още. Тези от почитателите, които познавам, се занимават с поддържането на малко ъгълче от онзи вътрешен рай, до който ту губим, ту възвръщаме достъп – езиковото биоразнообразие, бавното време на стила, тихите строежи на духа. Мисля, че с новата книга на Шон Тан на български тези хора ще станат повече.

„Нокомис“ от Катерина Стойкова

София: изд. ICU, 2024

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

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

По буквите: Тан, Стойкова

Докато четях, виждах нещата, пред които аз съм склонна да сваля рационалните защити, конструктите, които аз съм склонна да заменя с лични истории, четях и виждах защо размагьосването се случва толкова неохотно, и в конкретния сюжет с предполагаемото учение на индианците хопи, и въобще; защо човек е толкова склонен да уволни the fact-checkers в главата си. Защото ако твърдим, че искаме и двете части от приказната ябълка в „Американски деликатеси“, и двете части на истината – удобната и неудобната, – най-вероятно лъжем.

А Катя Стойкова успява да ни задържи на място, от което поне за кратко се виждат и двете страни на този парадокс. Това е впрочем място, което присъства във всяка нейна книга. Мястото на скептичното, горчиво прозрение, което не носи надежда за по-добър живот в истината, не носи увереност, а разколебава, раздвоява. Така, както е двойна черната фигура на корицата на Люба Халева – от една страна, се вглежда в гигантската маска, от друга страна, я поддържа. В „Нокомис“ обаче изборът е направен. И интимното „баба“ е очуждено.


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

В емблематичната си колонка, започната още през 2008 г. във в-к „Култура“, Марин Бодаков ни представяше нови литературни заглавия и питаше с какво точно тези книги ни променят. Вярваме, че е важно тази рубрика да продължи. От човек до човек, с нова книга в ръка.

Deepfakes and the 2024 US Election

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2025/02/deepfakes-and-the-2024-us-election.html

Interesting analysis:

We analyzed every instance of AI use in elections collected by the WIRED AI Elections Project (source for our analysis), which tracked known uses of AI for creating political content during elections taking place in 2024 worldwide. In each case, we identified what AI was used for and estimated the cost of creating similar content without AI.

We find that (1) half of AI use isn’t deceptive, (2) deceptive content produced using AI is nevertheless cheap to replicate without AI, and (3) focusing on the demand for misinformation rather than the supply is a much more effective way to diagnose problems and identify interventions.

This tracks with my analysis. People share as a form of social signaling. I send you a meme/article/clipping/photo to show that we are on the same team. Whether it is true, or misinformation, or actual propaganda, is of secondary importance. Sometimes it’s completely irrelevant. This is why fact checking doesn’t work. This is why “cheap fakes”—obviously fake photos and videos—are effective. This is why, as the authors of that analysis said, the demand side is the real problem.

Community Story | Daniela, Thetford Library

Post Syndicated from Sophie Ashford original https://www.raspberrypi.org/blog/community-story-daniela-thetford-library/

We love hearing from members of the community and sharing the stories of amazing young people, volunteers, and educators who are using their passion for technology to create positive change in the world around them.

Daniela in a Code Club.

When Daniela made the transition from working in retail to joining the team at Thetford Library, she never imagined that she would one day be leading a Code Club. Her manager, who had previously run the club, asked if Daniela would be interested in taking over, and although she was nervous, she was also eager to embrace the challenge and learn new skills.

“At first, I was nervous about teaching coding, but seeing the children’s excitement made me realise it was so important, and I was learning just as much as they were.”

The Code Club was designed to run in eight-week blocks, with a new group of children joining for each term. However, the kids loved it so much that they didn’t want to leave. Daniela, with her growing passion for coding and mentoring, welcomed the children to attend as often as they wanted, with some children, including one particularly enthusiastic young creator, attending every session. This continuity allowed the children to delve deeper into the world of coding, learning in a different way to what they were used to at school.

Inspiring young coders through creativity

One of the key things that Daniela has found resonates most with the children is the combination of creativity and coding. She encourages the kids to draw and plan their projects first, which makes the process more engaging and accessible to all of the young people who want to attend. The freedom to be creative is something that she feels is crucial, especially when compared to the more structured and rigid environment of school curriculums. This approach has been particularly rewarding for one young girl in the club who insists on planning and drawing her own characters and backgrounds for all of her projects.

“Coding isn’t just about writing lines of code — it’s about storytelling, problem solving, and imagining what’s possible.”

Students in a Code Club.

Astro Pi: giving young people the confidence to dream big

Daniela’s journey into coding took a significant leap when she decided to explore the Astro Pi challenge, a project that involves writing code to run on Astro Pi computers aboard the International Space Station. Despite her initial nerves about diving into Python, a more advanced programming language than she had tried at the club previously, she was blown away by the possibilities it opened up. When telling the children, she almost felt that she was more excited at the prospect of them trying out real space science than them. But once she showed them some examples, the buzz was infectious and the sessions ran far smoother than she could have hoped. Daniela’s tip for trying Astro Pi for the first time? Find a fellow mentor to help you along the way and dream big.

“I never imagined we’d be working on space science at our library. Introducing children to coding early isn’t just about technology; it’s about giving them the confidence to dream big and think differently.”

Thetford Library

The success of the Code Club at Thetford Library is part of a broader initiative by Norfolk Libraries to provide digital skills to the community. They are committed to offering resources and opportunities for people of all ages to engage with technology. From their Digital Week, which focuses on improving digital literacy, to offering mentorship for adults learning to navigate the digital world, Norfolk Libraries is working hard to bridge the digital divide.

Benefits of volunteering at a Code Club 

For Daniela, the importance of introducing children to coding at an early age is not something she thought would become a passion for her when moving careers. She sees firsthand how these skills empower the children, giving them confidence and opening up future career opportunities. 

“Code Club has shown me that stepping outside your comfort zone is where the real growth happens. Both for me and the kids!”

A mentor is helping a student in class.

It’s this combination of creativity, learning, and the sheer joy of discovery that keeps Daniela passionate about running the Code Club, and why she continues to welcome every eager child who walks through the door.

Inspire young people in your community

If you are interested in encouraging your child to explore coding, take a look at the free coding project resources we have available to support you. If you would like to set up a Code Club for young people in your community, or attend one, head to codeclub.org for information and support.

The post Community Story | Daniela, Thetford Library appeared first on Raspberry Pi Foundation.

В деня за борба с рака не знаем твърде много

Post Syndicated from Боян Юруков original https://yurukov.net/blog/2025/ne-poznavame-raka/

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

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

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

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

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

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

Дори страницата на регистъра е премахната и старите доклади са изтрити. Може да ги намерим обаче в регистрите на международни организации. На този етап единствените актуални данни са на сайта на НЦОЗА, но както споменах горе и многократно съм писал, те се базират предимно на информация на НЗОК, липсва всякаква методология и са крайно подвеждащи.

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

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

The post В деня за борба с рака не знаем твърде много first appeared on Блогът на Юруков.

AWS Weekly Roundup: DeepSeek-R1, S3 Metadata, Elastic Beanstalk updates, and more (February 3, 2024)

Post Syndicated from Donnie Prakoso original https://aws.amazon.com/blogs/aws/aws-weekly-roundup-deepseek-r1-s3-metadata-elastic-beanstalk-updates-and-more-february-3-2024/

Last week, I had an amazing time attending AWS Community Day Thailand in Bangkok. This event came at an exciting time, following the recent launch of the AWS Asia Pacific (Bangkok) Region. We had over 300 attendees and featured 15 speakers from the community, including an AWS Hero and 4 AWS Community Builders who shared their technical expertise and experiences.

The highlight was definitely Jeff Barr, AWS Vice President & Chief Evangelist, delivering an inspiring keynote titled “Next-Generation Software Development”, which set the perfect tone for the day. The day kicked off with welcoming remarks from Vatsun Thirapatarapong, AWS Country Manager for Thailand, and was made even more special thanks to the tremendous support from both the AWS User Group volunteers and the AWS Thailand team.

Here’s a photo capturing the excitement from the event: 

Last week’s AWS Launches
There are 30+ launches last week and here are some launches that caught my attention:

DeepSeek-R1 models now available on AWS — Channy wrote on how you can now deploy DeepSeek-R1 models in Amazon Bedrock and Amazon SageMaker AI. This helps you to build and scale generative AI applications with minimal infrastructure investment.

Amazon S3 Tables increases table limit to 10,000 per bucket — S3 Tables now supports creating up to 10,000 tables in each table bucket, allowing you to scale up to 100,000 tables across 10 buckets within an AWS Region per account.

Amazon S3 Metadata now generally available — S3 Metadata provides automated and easily queried metadata that updates in near real-time, simplifying business analytics and real-time inference applications. It supports both system-defined and custom metadata, including integration with AWS analytics services.

AWS Amplify adds TypeScript Data client support for Lambda functions — Developers can now use the Amplify Data client within AWS Lambda functions, enabling consistent type-safe data operations across frontend and backend applications.

AWS Elastic Beanstalk adds Python 3.13, .NET 9, and PHP 8.4 support on Amazon Linux 2023 — AWS Elastic Beanstalk brings the latest language features and improvements to application deployments while benefiting from Amazon Linux 2023 enhanced security and performance features.

From community.aws
Here’s my top 5 personal favorites posts from community.aws:

Upcoming AWS and community events
Check your calendars and sign up for upcoming AWS and community events:

  • AWS Korea re:Invent reCap Online, February 2-4 — A virtual event recapping key announcements and innovations from re:Invent 2023 for the Korean audience.
  • AWS Community Days – Join community-led conferences that feature technical discussions, workshops, and hands-on labs. Upcoming AWS Community Day is in Ahmedabad (February 8).
  • AWS Public Sector Day London, February 27 — Join public sector leaders and innovators to explore how AWS is enabling digital transformation in government, education, and healthcare.
  • AWS Innovate GenAI + Data Edition — A free online conference focusing on generative AI and data innovations. Available in multiple Regions: APJC and EMEA (March 6), North America (March 13), Greater China Region (March 14), and Latin America (April 8).

Browse more upcoming AWS led in-person and virtual developer-focused events.

AWS Community re:Invent re:Caps

Lastly, if you want to learn about top announcements and innovations from AWS re:Invent, the AWS Community shares a summary from a community perspective of these announcements so you can get up to speed. Download the AWS Community re:Invent re:Caps deck. 

That’s all for this week. Check back next Monday for another Weekly Roundup!

— Donnie

This post is part of our Weekly Roundup series. Check back each week for a quick roundup of interesting news and announcements from AWS!

Automating Notifications for Future-Dated Amazon EC2 Capacity Reservation State Changes

Post Syndicated from aostan original https://aws.amazon.com/blogs/compute/automating-notifications-for-future-dated-amazon-ec2-capacity-reservation-state-changes/

This post is written by Ballu Singh, Principal Solutions Architect at AWS, Sandeep Rohilla, Senior Solutions Architect at AWS and Pranjal Gururani, Senior Solutions Architect at AWS.

AWS customers are able to proactively reserve future-dated Amazon EC2 On-Demand Capacity Reservations (known as future-dated CRs) to get capacity assurance for workloads and events. Because reservations can be created weeks in advance, customers are able to ensure that they can monitor their real-time status. Future-dated CRs can transition through various state of a Capacity Reservation, based on capacity availability. Over the course of several weeks, the status of a reservation might only change 1 or 2 times. Even with the low frequency of changes, most customers don’t want to manually poll the state of their reservations, instead they want to be proactively notified when something changes.

Amazon EventBridge is a serverless event bus service that facilitates the routing of events and EventBridge rules establish how events are processed, allowing you to filter events and route them to one or more targets for action. Amazon Simple Notification Service (SNS) is a fully managed messaging service that enables you to send messages or notifications to a variety of endpoints, facilitating scalable, and decoupled communication between different components of your application or with end-users.

In this blog post, we guide you through the process of automating notifications for future-dated CR state changes using AWS services such as Amazon EventBridge and Amazon Simple Notification Service (SNS).

Pre-requisites

  • Existing future-dated Capacity Reservation. To learn how to create future-dated CRs, visit our blog post here.
  • IAM access to create Amazon EventBridge rules
  • IAM access to create Amazon SNS topic and subscription

Architecture

Amazon EC2 continuously monitors the state of your Capacity Reservations and sends events to Amazon EventBridge when Capacity Reservation states change. Using Amazon EventBridge, you can create rules that trigger notifications through Amazon SNS in response to these events. Amazon SNS then pushes these notifications to a variety of supported endpoint types such as Amazon Data Firehose, Amazon Simple Queue Service (SQS), AWS Lambda, HTTP, email, mobile push notifications, and mobile text messages (SMS). In our example, we will send notification to our email address.

Send notification to email address

Walkthrough

To automate the notification process for future-dated CR state changes, we will use the following AWS services:

  1. Amazon Simple Notification Service (SNS): We will use SNS to send email notifications to the designated recipients.
  2. Amazon EventBridge: We will create an EventBridge rule to capture the state change events of future-dated CRs.

AWS Console Walkthrough

Step 1: Set Up Amazon SNS Topics and Subscriptions

  • Create a new topic for future-dated CR state change notifications.
    • Navigate to Amazon SNS console. On the Topics page, choose Create topic
    • In the Details section, for Type, choose Standard and enter the name of Topic (ex: Subscriber)

Set up amazon sns topics and subscriptions

    • Choose rest of details as is. Choose Create topic.
  • Create a subscription for the desired recipients, such as email addresses to receive the notifications.
    • Navigate to Amazon SNS console. In the left navigation pane, choose Subscriptions. Choose Create subscription.
    • On the Create subscription page, in the Details section, for Topic ARN, choose the Amazon Resource Name (ARN) of a topic enter topic ARN noted above. For Protocol, choose Email/Email-JSON
    • For Endpoint, enter your email address. Keep rest of details as is.

create subscription for the desired recipients

    • Choose Create subscription
    • Navigate to your email and choose Confirm subscription in the email from Amazon SNS.

Step 2: Create an Amazon EventBridge Rule

  • Next open the Amazon EventBridge console and navigate to the Rules
  • Click on Create rule and provide a name (ex: EC2CapacityReservationStateChange) and description for the rule. Keep all other setting as it is. Select
  • For Event source, choose AWS events or EventBridge partner events.
  • In the Creation method section, for Method, choose Use pattern form.
  • For Event source, choose AWS services. Under AWS Service, choose EC2 and then choose EC2 Capacity Reservation.
  • Optionally, you can narrow down the state and reservation ID you want to be alerted for by selecting Specific Capacity Reservation State and Specific Capacity reservation ID. Select Next.

Create an amazon eventbridge rule

  • In the Target section, under Target Type, select AWS Service.
  • For Select Target, choose SNS topic, under Topic, select SNS Topic you created in Step 1. Select
  • On Configure Tags page, select Next.
  • On Review and create page, select Create Rule.

CloudFormation Walkthrough

To simplify the setup process and make it easier for you to implement the automated notification solution, we have provided a CloudFormation template. This template automates the creation of the necessary Amazon EventBridge rule and Amazon SNS topic, along with the required configurations and permissions.

  1. Download yaml sample template.
  2. Navigate to AWS CloudFormation console and click on Create stack.
  3. Choose Upload a template file and select the downloaded template. Choose Next
  4. Provide a name for the stack under Stack Name. For CapacityReservationId, enter ID of the EC2 Capacity Reservation to monitor, (e.g., cr-1234567890abcdef0), for EmailAddress, enter email address you want to subscribe to the SNS topic, and for MonitoredStates enter comma-separated list of Capacity Reservation states to monitor (e.g. failed, expired, cancelled, pending). Choose Next

CloudFormation walkthrough

5. On Configure stack options, keep defaults. Choose

6. On Review and create page, choose

Clean up

To avoid ongoing charges, clean up your environment, by following these steps to delete the resources you created by following this blog, if they are no longer needed:

If you followed setup for AWS Console, please follow the below steps:

  1. Delete the Amazon EventBridge Rule
    1. Navigate to Amazon EventBridge console and choose to the Rules from left pane.
    2. Choose the rule you created earlier and click on Delete.
    3. Confirm the deletion by clicking Delete in the confirmation dialog.
  2. Delete the Amazon SNS Topic and Subscriptions
    1. Navigate to Amazon SNS console and navigate to the Topics from left pane.
    2. Choose the topic you created earlier and click on Delete.
    3. Confirm the deletion by clicking Delete in the confirmation dialog.

If you created any subscriptions for the topic (e.g., email or SMS), they will be automatically deleted along with the topic.

If you deployed CloudFormation template, please follow the below steps:

Conclusion

In this blog post we walked you through setting up an EventBridge rule to capture the state change events of your future-dated CRs and configure SNS to send notifications to the designated recipients. This automated approach eliminates the need for manual monitoring and ensures that you stay informed about the status of your capacity reservations.

By proactively managing your future-dated CRs through automated notifications, you can make informed decisions, adjust your reservation plans if need, and take corrective actions to ensure you have the necessary resources available for your critical events.

This solution enhances your operational efficiency, reduces the risk of capacity shortages, and allows you to focus on other important aspects of your business.

We encourage you to implement this automated notification system for your future-dated Amazon EC2 On-Demand Capacity Reservations and experience the benefits of streamlined monitoring and proactive capacity management.

Implement effective data authorization mechanisms to secure your data used in generative AI applications – part 2

Post Syndicated from Riggs Goodman III original https://aws.amazon.com/blogs/security/implement-effective-data-authorization-mechanisms-to-secure-your-data-used-in-generative-ai-applications-part-2/

In part 1 of this blog series, we walked through the risks associated with using sensitive data as part of your generative AI application. This overview provided a baseline of the challenges of using sensitive data with a non-deterministic large language model (LLM) and how to mitigate these challenges with Amazon Bedrock Agents. The next question that might come to mind is where and how to use sensitive data across LLM training, fine-tuning, vector databases, agents, and tooling. In this blog post, we build on part 1 with a more detailed discussion about data governance. Then, knowing the data governance baseline, we walk through how to use sensitive data across different data sources with the correct data authorization model. Lastly, we talk about how to implement data authorization mechanisms as part of a generative AI application that uses Retrieval Augmented Generation (RAG) as part of the architecture.

Data governance with LLMs

In this section, we’ll look into data governance as part of the overall data security landscape in more detail than we did in part 1. Many traditional workloads rely upon structured data stores, such as relational databases, for their data source. In contrast, one of the main benefits when you build a generative AI application is the ability to gain insight from massive amounts of both structured (schema-based) and unstructured data, including logs, documents, warehouse data, and other data sources. In the past, access to the unstructured data was limited to specific applications where authorization was granted to specific principals. In this type of architecture, a frontend application makes a decision whether to authorize the user’s access to the data and then uses a single AWS Identity and Access Management (IAM) role to the backend data source, providing access to the data in an object store, data warehouse, or other location. Access to the application incorporates authorization decisions to permit or deny access to the data or a subset of data. AWS has implemented access patterns tied to principal identity, including AWS trusted identity propagation and Amazon Simple Storage Service (Amazon S3) access grants.

Managing data access for generative AI applications presents challenges when you’re interested in using multiple data sources as part of the application, due to a lack of visibility into what data exists in what location and whether there is sensitive data as part of the data source. With data stored across locations, departments, and systems, many customers don’t know what data they have within each data source. And if you don’t know what data you have, it’s difficult to determine authorization policies to govern access to this data with generative AI applications, or whether the data source should be part of the generative AI application to begin with. From a data governance perspective, you need to look across four different pillars of the process: data visibility, access control, quality assurance, and ownership. Do the data sources include customer data? Is it internal data? Is it a combination of both? Do you need to remove certain objects or documents from the data source to align to the business goals of the application you’re building? Who should be authorized to access that data if you have different authorization levels within generative AI applications? AWS provides services in this area, including AWS Glue, Amazon DataZone, and AWS Lake Formation, to govern data to use with generative AI applications. Having a grasp on data governance is a critical prerequisite to implementing the data authorization capabilities we discuss in this post.

With that, how do you securely integrate sensitive data into your generative AI applications? Let’s walk through the different locations where sensitive data can exist: LLM training and fine-tuning, vector databases, tools, and agents.

LLM training and fine-tuning

The first location where sensitive data might reside within a generative AI application is in the LLM itself. The majority of foundation models (FMs) and LLMs are built and developed by third-party organizations, including Anthropic, Cohere, Meta, and other model providers. In these models, LLMs are becoming increasingly large, training on trillions of data points across both regular data and synthetic data created by other LLMs. However, most model providers today do not disclose the data sources used by the models because of privacy and proprietary reasons. FMs developed by third-party organizations are not trained on your private data, but if you are a large enterprise, you might train your own LLMs using sensitive data, licensed data, and public data for your use cases, or you might fine-tune existing models with additional data. This allows you to choose which data to include in training the model.

However, and as mentioned in part 1, LLMs do not make data authorization decisions, which causes challenges with granting access to different groups of principals. It is your application that will decide whether a given principal should be authorized to invoke the model. In addition, if you need to remove data from the LLM, the only way to remove training or fine-tuned data today is to retrain the model without that data. Although fine-tuning and prompt engineering can influence the completions the LLM returns, training data or fine-tuned data can be returned to whomever has access to query the model. Therefore, if you choose to fine-tune an existing model, carefully consider what data you use during training. Proprietary data that is included in training can be accessible to users who perform inference using that model. You should carefully evaluate training data to remove personally identifiable information (PII) or data that requires additional authorization above that which is required to access the model itself.

It’s important to note that there are LLM guardrails that support responsible AI mechanisms. For example, Amazon Bedrock Guardrails implementations remove certain content from prompts and completions. However, guardrails are non-deterministic and focus on filtering out harmful content, denied topics, word filters, or PII data from prompts and completions.

Important: You should not rely on responsible AI mechanisms such as guardrails or built-in model safety mechanisms for your data security, because they do not use identity as a signal as part of the filtering.

Retrieval-Augmented Generation (RAG)

The second location where sensitive data sits in generative AI applications is in vector databases. RAG implementations provide generative AI applications with access to contextual information from your organization’s private data sources to deliver relevant, accurate, and customized responses from LLMs. RAG allows you to add additional context to a prompt that is sent to an LLM and does not require you to train or fine-tune a model with your own data. When you use RAG as part of the generative AI application, you query the vector database to find documents or chunks of information similar to the principal’s prompt. Data that is returned from the vector database will be sent to the model with the original prompt as additional context for the request. For AWS services, we implement RAG using Amazon Bedrock Knowledge Bases and Amazon Q Connectors.

Figure 1 shows the RAG runtime execution flow with vector databases and models. When a user queries the application, the query is turned into embeddings that the vector database uses to find documents that are similar to the query. These documents or chunks are sent to the LLM to augment the original query from the user, so that the LLM can generate a response.

Figure 1: RAG runtime execution flow

Figure 1: RAG runtime execution flow

In order to implement strong data authorization with RAG, you need to authorize the data before sending the additional content as part of the prompt to the LLM. This can be implemented at the generative AI application or the vector database. With RAG, you build your own authorization workflow within your application and perform authorization at different granularity levels. If you authorize the access to the vector database itself, then you allow a user with access to the application access to documents within the vector database. Therefore, for example, if you have two departments (such as finance and HR), you can create two vector databases, one for finance and one for HR. Principals who have the finance entitlement will be allowed access to the finance vector store, but not the one for HR, and vice versa.

What if you want to shift authorization granularity into the vector database itself? In a different deployment, if the vector database includes documents for separate groups of principals in the vector database, the API call to the vector database must include information on the group membership for the principal making the request. For example, if HR employees have access to certain documents within the vector database, the generative AI application or vector database must authorize whether the principal has access to the data that is returned. You can implement document-level filtering in Amazon Bedrock Knowledge Bases by using the retrievalConfiguration metadata field as part of the API call. As shown in the example in the next section, with metadata filtering, you add metadata key/value pairs that the vector database uses to filter the results that are returned, similar to group membership. Because the metadata filter is part of the API request and not the prompt, threat actors cannot use prompt injections to get access to data they are not authorized to access—authorization is tied to the principal’s identity that is passed to the frontend application and the metadata filters that are passed to the RAG implementation.

In order to build secure RAG implementations, it’s important that you use the correct authorization and data governance implementation. The data sent to the LLM should include only data the principal is authorized to have access to. LLM and guardrail features are probabilistic, and therefore they should not be used to make data authorization decisions.

Tools

A third pattern used by generative AI applications to interface with sensitive data is function or tool calling. With tools, the LLM doesn’t directly call the tool. Rather, when you send a request to an LLM, you also supply a definition for one or more tools that help the LLM generate a response. If the LLM determines it needs the tool to generate a response for the message, the LLM responds with a request for the application to call the tool. It also includes the input parameters to pass to the tool. Then, in the generative AI application, the application calls the tool on the LLM’s behalf, for example an API, an AWS Lambda function, or other software. The application continues the conversation with the LLM by providing the output from the tool as part of the prompt, and then the LLM generates a response based on the new data. This runtime execution flow is shown in Figure 2.

Figure 2: Tools runtime execution flow

Figure 2: Tools runtime execution flow

Although the LLM decides whether a tool is required, the application code must perform security checks on the parameters passed back by the LLM and make authorization decisions on what tools can be called, what permissions the tool should have, and what actions can be taken. Traditional security mechanisms still apply. For example, tools should be sandboxed so that the side effects of running the tool will not affect future invocations. In addition, parameters generated by the LLM for use by the tool should be sanitized before they are passed into the tool to help avoid potential privilege escalation or remote code execution issues (for more information, see the OWASP top 10 for LLM, Improper Output Handling).

As with the other generative AI patterns mentioned earlier, the application also makes the tool authorization decisions. Similar to RAG implementations, the generative AI application decides on the appropriate authorization implementation, including application-level authorization, group-level authorization, or user-level authorization, or passes that decision to the tool through the use of an identity token, which was part of the discussion of agents in the part 1 post. With these capabilities, you can use multiple types of data sets (sensitive data, public data) in a function call implementation. However, as with authorization decisions with APIs today, authorization decisions in generative AI applications should be made based on the identity of the principal that is accessing the generative AI application and validated as part of every call to the tool. As mentioned previously, you should not allow the LLM to decide which authorization level a principal should have access to, because this can lead to excess agency (for more information, see the OWASP Top 10 for LLM Applications, Excess Agency).

Agents

The fourth pattern that we spoke about at length in the previous post is the use of agents. Here, we’ll discuss how to make use of multiple different data sources with agents. An agent helps principals complete multi-step actions based on principal input and data provided to the model. Agents, including Amazon Bedrock Agents, orchestrate between LLMs, data sources (RAG), software applications (tools), and principal conversations. With an agent, you choose an LLM that the agent invokes to interpret prompt input and subsequent prompts in its orchestration process, including generating follow-up steps. You configure the agent with actions, which might include eliciting clarification from the end user through additional questions, function calling for API operations, or RAG to augment the query with extra relevant context from knowledge bases. These actions are used during the orchestration process, which might take multiple steps, in order to answer the end user’s original query. These components are gathered to construct base prompts for the agent to perform orchestration until the principal request is complete, as shown in Figure 3.

Figure 3: Agent runtime execution flow

Figure 3: Agent runtime execution flow

For agents and the use of external data sources, there are some additional considerations beyond the data authorization decisions we discussed earlier. First, in order to use the right data authorization context, identity information needs to be passed to the agent as part of the generative AI API call to the agent. With Amazon Bedrock Agents, this is done by using session attributes for tools and metadata filtering for vector databases. You use these attributes as part of calling different data sources within the agent configuration.

Second, the goal of using agents is to perform a task for the principal. Unlike RAG, these tasks may include making API calls to change data or take actions on behalf of the end user (principal). This differs from other data sources discussed previously, where the implementation for data access was data retrieval. With agents, the goal is to have the autonomous orchestration perform API actions, including the add, update, and delete categories of the function. You should take additional care when deciding the authorization you give principals as part of the execution flow of the agent. One option to consider when using agents is adding validation steps. This provides the principal (user) with validation steps for the work the agent performed before the agent changes data or makes calls to APIs to perform actions with data.

Now that we’ve discussed where and how to use data with generative AI applications, let’s walk through an example with a RAG implementation.

Data filtering and authorization with RAG

Let’s say you’re an enterprise that is interested in using a generative AI application for internal groups to retrieve information about policies and historical information. For this implementation, a single Amazon S3 data source for the vector database, which includes documents for both the Finance department and the HR department, is used as part of a RAG implementation. For our simplified example, users are interested in knowing what SECRET_KEY they need to use for their work. Each department has separate SECRET_KEY values that only users who are part of the respective groups have access to. The S3 bucket is the source of the Amazon Bedrock knowledge base, which the generative AI application uses as part of the implementation. This is shown in Figure 4.

Figure 4: Architecture overview with Finance and HR users accessing a generative AI application

Figure 4: Architecture overview with Finance and HR users accessing a generative AI application

Without any data authorization implemented, when an HR user queries the generative AI application, the Amazon Bedrock knowledge base will return the following results when using the Retrieve API call. (The Retrieve API call allows you to call the Amazon Bedrock knowledge base and have the results sent back to the generative AI application, in comparison to the RetrieveAndGenerate API call, which sends the results along with the prompt to the LLM without the generative AI application seeing the results from the knowledge base call until after the LLM responds to the prompt.)

aws bedrock-agent-runtime retrieve \
--knowledge-base-id FF6MZUZQMQ \
--retrieval-query text="What is the SECRET_KEY?"
{
    "retrievalResults": [
        {
            "content": {
                "text": "HR SECRET_KEY is HRBOT"
            },
            "location": {
                "s3Location": {
                    "uri": "s3://amzn-s3-demo-bucket/hr/hr.txt"
                },
                "type": "S3"
            },
            "metadata": {
                "x-amz-bedrock-kb-source-uri": "s3://amzn-s3-demo-bucket/hr/hr.txt",
                "x-amz-bedrock-kb-chunk-id": "1%3A0%3A5pe-v5IBdy11OzJ9mB2-",
                "x-amz-bedrock-kb-data-source-id": "OVJKWTMXQD",
                "group": "HR"
            },
            "score": 0.50864935
        },
        {
            "content": {
                "text": "Finance SECRET_KEY is FinanceBOT"
            },
            "location": {
                "s3Location": {
                    "uri": "s3://amzn-s3-demo-bucket/finance/finance.txt"
                },
                "type": "S3"
            },
            "metadata": {
                "x-amz-bedrock-kb-source-uri": "s3://amzn-s3-demo-bucket/finance/finance.txt",
                "x-amz-bedrock-kb-chunk-id": "1%3A0%3AvVK-v5IBeX5eb0Bilm5H",
                "x-amz-bedrock-kb-data-source-id": "OVJKWTMXQD"
            },
            "score": 0.4856355
        }
    ]
}

As shown, the SECRET_KEY for both the Finance department (FinanceBOT) and the HR department (HRBOT) are returned from the knowledge base, sourced from the respective prefixes in S3. However, to follow company policy, the Finance department and HR department do not want users outside the department to gain access to information within the S3 buckets that they are not authorized to view, including PII data for employees, unreleased financial data, internal HR policies, and other information that is only for users within each department. How would you go about implementing this restriction using the proper data authorization as described here?

There are two options for the solution. First, you could create two separate vector stores, one for Finance and one for HR. When a Finance user accesses the generative AI application, the application will only request data from the Finance vector store, because the user does not have authorization to the HR vector store. When an HR user accesses the generative AI application, it’s the opposite, with the application only allowing access to the HR vector store.

The second option is using a common vector store, where you might have common data for both departments in addition to sensitive data for the use of specific groups. Metadata filtering provides the generative AI application with a way to filter out context from the vector store at the vector store itself. When you add metadata as a *.metadata.json file that’s associated with an S3 object, you can apply filters within the Amazon Bedrock API call to filter out data that is returned by the knowledge base. For example, you can add metadata to both objects (hr.txt and finance.txt) within S3, by adding a hr.txt.metdata.json file and finance.txt.metadata.json file within the S3 bucket. When the vector database indexes from the S3 bucket, it will pull the metadata from the S3 bucket to allow you to filter on the metadata associated with the respective file. An example of the hr.txt.metadata.json file is shown following, along with the vectorSearchConfiguration filter that is used alongside the Retrieve API.

// hr.txt.metadata.json

{
    "metadataAttributes" : { 
        "group" : "HR"
    }
}

// retrieveconfiguration.json

{
    "vectorSearchConfiguration": {
        "filter": {
            "equals": {
                "key": "group",
                "value": "HR"
            }
        }
    }
}

With both of these metadata files in place, you will reindex the knowledge base to associate the metadata with each file. When you call the knowledge base with the filter as part of the API call, you get the following response:

aws bedrock-agent-runtime retrieve \
--knowledge-base-id FF6MZUZQMQ \
--retrieval-configuration="file://retrieveconfiguration.json" \
--retrieval-query text="What is the SECRET_KEY?"
{
    "retrievalResults": [
        {
            "content": {
                "text": "HR SECRET_KEY is HRBOT"
            },
            "location": {
                "s3Location": {
                    "uri": "s3://amzn-s3-demo-bucket/hr/hr.txt"
                },
                "type": "S3"
            },
            "metadata": {
                "x-amz-bedrock-kb-source-uri": "s3://amzn-s3-demo-bucket/hr/hr.txt",
                "x-amz-bedrock-kb-chunk-id": "1%3A0%3A5pe-v5IBdy11OzJ9mB2-",
                "x-amz-bedrock-kb-data-source-id": "OVJKWTMXQD",
                "group": "HR"
            },
            "score": 0.49277097
        }
    ]
}

As you can see, you only receive the chunks from the HR folder, because only the hr.txt object has the "group' : "HR" metadata applied to the objects. Due to this, the generative AI application can pass these chunks along with your prompt to the LLM for the user to receive the SECRET_KEY. You can find more information on metadata filtering in the blog post Amazon Bedrock Knowledge Bases now supports metadata filtering to improve retrieval accuracy.

Regardless of how you assign metadata to objects within the data source, the filter used with the API call is applied after the data authorization decision is made by the generative AI application. When a user logs in to the generative AI application, the application authenticates the user to identify who the user is and what department the user is in through the use of OpenID Connect (OIDC) or OAuth2, depending on the application. This step is required if you want your generative AI application to have strong authorization policies. After the generative AI application authenticates the user, it will authorize the user and apply the filters that are required when making API calls to the Amazon Bedrock knowledge base. It’s worth repeating that it’s the application that makes the data authorization decision, and the resulting API call to the knowledge base is post-authorization. By passing metadata through a secure side channel within the API and not the prompt, this practice helps to prevent threat actors and unintended users from gaining access to data they aren’t authorized to access.

Conclusion

Implementing the correct data authorization mechanisms is a foundational step that is required when you use sensitive data as part of generative AI applications. Depending on where the data sits as part of the generative AI application, you will need to use different implementations of data authorization, and there isn’t a one-size-fits-all solution. In this post, we walked through how to use sensitive data across these different data sources with the correct data authorization model. Then, we discussed how to implement data authorization mechanisms as part of a generative AI application and RAG by using metadata filtering. For additional information on generative AI security, take a look at other blog posts in the AWS Security Blog Channel and AWS blog posts covering generative AI.

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

Riggs Goodman III
Riggs Goodman III

Riggs is a Principal Partner Solution Architect at AWS. His current focus is on AI security and data security, providing technical guidance, architecture patterns, and leadership for customers and partners to build AI workloads on AWS. Internally, Riggs focuses on driving overall technical strategy and innovation across AWS service teams to address customer and partner challenges.

[$] The rest of the 6.14 merge window

Post Syndicated from corbet original https://lwn.net/Articles/1006378/

By the time that Linus Torvalds released
6.14-rc1
and closed the merge window for this development cycle, some
9,307 non-merge changesets had been pulled into the mainline
repository — the lowest level of merge-window activity seen in years.
There were, nonetheless, a number of interesting changes in the
5,000 commits pulled since the
first-half merge-window summary
was written.

What’s new in GTK, winter 2025 edition

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

Matthias Clasen has written a short update on a GTK hackfest that
took place at FOSDSEM and what’s
coming in GTK 4.18. This includes fixes for pointer sizes in Wayland
when fractional scaling is enabled, removal of the old GL renderer in
favor of the GL
renderer
introduced in GTK
4.13.6
, and deprecation of X11 and Broadway backends with intent
to remove them in GTK 5.

The deprecated backends will remain available until then, and no
action is required by developers at this time, Clasen wrote: “There
is no need to act on deprecations until you are actively porting your
app to the next major version of GTK, which is not on the horizon
yet
“.

Security updates for Monday

Post Syndicated from jake original https://lwn.net/Articles/1007646/

Security updates have been issued by AlmaLinux (git-lfs, libsoup, and unbound), Debian (dcmtk, ffmpeg, openjdk-11, pam-u2f, and python-aiohttp), Fedora (buku, chromium, jpegxl, nodejs18, nodejs20, and rust-routinator), Mageia (clamav, kernel, kmod-virtualbox, kmod-xtables-addons & dwarves, and kernel-linus), SUSE (apptainer, bind, buildah, chromedriver, clamav, dovecot24, ignition, kubelogin, libjxl, libQt5Bluetooth5-32bit, orc, owasp-modsecurity-crs, python-pydantic, python311-ipython, and stb), and Ubuntu (linux-azure and netdata).

Excellence in Leadership: CRN Recognizes Alex Page Among Its 2025 Channel Chiefs

Post Syndicated from Rapid7 original https://blog.rapid7.com/2025/02/03/excellence-in-leadership-crn-recognizes-alex-page-among-its-2025-channel-chiefs/

Excellence in Leadership: CRN Recognizes Alex Page Among Its 2025 Channel Chiefs

For the third consecutive year, Rapid7’s Alex Page has been honored as a CRN Channel Chief, a testament to his unwavering commitment to driving growth, fostering innovation, and strengthening our global channel partnerships. CRN’s annual Channel Chiefs list showcases the top leaders throughout the IT channel ecosystem who go above and beyond to ensure mutual success with their partners and customers. This recognition highlights Alex’s remarkable leadership as well as the significant strides his team has made in collaboration with Rapid7’s channel ecosystem.

A philosophy that drives success

Alex’s channel philosophy is simple, yet powerful: Focus matters. By identifying and investing in the partners who best align with Rapid7’s goals and have the ability to deliver exceptional customer success, Alex and his team ensure a meaningful and impactful collaboration. This focused approach has not only delivered outstanding mutual results, it has also deepened the appreciation and trust we share with our partners.

Innovating for the future

An example of an impactful initiative led by Alex and his team in 2024 was Rapid7’s partnership with Comcast. This collaboration combines the advanced SecOps technology of Rapid7’s Command Platform with 24/7 SOC capabilities to provide superior threat detection and prevention for Comcast’s small, medium, and large enterprise customers. Through this innovative partnership, we have expanded our partner ecosystem as well as set a new standard for delivering world-class security solutions.

Looking ahead to 2025

As the channel landscape evolves, Alex and his team — supported by the greater Rapid7 organization — are doubling down on three key areas in 2025:

  1. Relationship focused approach – By focusing on the partners who will solve our customers’ problems, and forming deep relationships with each of them, rather than aiming for a breadth of partners with shallow connections, we will jointly acquire more customers and enable their long-term success.
  2. A unified partner experience – Many of Rapid7’s partners don’t fit cleanly into a single bucket. They’re not just a channel partner or just a service provider; they are many things to their customers. In 2025 and beyond, partners will be able to engage with Rapid7 and their customers in a variety of ways.
  3. Technical enablement and specialization – Partners are making it clear that they need to empower their technical resources more than ever before to meet the evolving security needs of their customers. By prioritizing technical enablement and helping our partners specialize in the many capabilities where Rapid7 technologies lead the market, we will ultimately drive even higher rates of customer satisfaction together, which leads to positive business outcomes for the customer, the partner, and Rapid7.

Shared growth through collaboration

Learn more about sales, technology, and partnerships with Rapid7 by visiting our Partners page.

Preserving content provenance by integrating Content Credentials into Cloudflare Images

Post Syndicated from Will Allen original https://blog.cloudflare.com/preserve-content-credentials-with-cloudflare-images/

Today, we are thrilled to announce the integration of the Coalition for Content Provenance and Authenticity (C2PA) provenance standard into Cloudflare Images. Content creators and publishers can seamlessly preserve the entire provenance chain — from how an image was created and by whom, to every subsequent edit — across the Cloudflare network.

What is the C2PA and the Content Authenticity Initiative?

When you hear the word provenance, you might have flashbacks to your high school Art History class. In that context, it means that the artwork you see at the Met in New York really came from the artist in question and isn’t a fake. Its provenance is how that piece of physical art changed possession over time, from the original artist all the way to the museum. 

Digital content provenance builds upon this concept. It helps you understand how a piece of digital media — images, videos, PDFs, and more — was created and subsequently edited. The provenance of a photo I posted on Instagram might look like this: I took the picture with my iPhone, performed an auto-magic edit using Apple Photos’ editing tools, uploaded it to Instagram, cropped it using Instagram’s editing tools, and then posted it. 

Why does digital content provenance matter? At a fundamental level, it’s an important way to give content creators credit for their work. Many photographers have had the experience of seeing their photograph or video go viral online, but with their name and attribution stripped away. In that scenario, the opportunities that might have accrued to the creator once the world saw their work don’t materialize. If you help ensure an artist or content creator gets credit for their work, that exposure could result in more career opportunities. 

Digital content provenance can also be an important tool in understanding the world around us. If you see a video or a photo of a newsworthy event, you’d like to know if that photo was really taken at that particular location, or if it was from years prior at a different location. If you see a grainy picture of a UFO flying over New Jersey, knowing when and where that photo was taken is helpful information in understanding what is actually happening. 

The C2PA is a project of the non-profit Joint Development Foundation and has developed technical specifications for attaching digital content provenance to a piece of media. The standards also specify how to cryptographically sign that manifest, thereby allowing anyone to verify that the manifest hasn’t been tampered with. The JSON manifests and the associated signatures are together referred to as Content Credentials.

The Adobe-led Content Authenticity Initiative, which has thousands of members across a variety of industries, aims to drive global adoption of Content Credentials. 

Why integrate Content Credentials into Cloudflare Images?

Cloudflare Images allows you to build an effortlessly scalable and cost-effective image pipeline. With our new Content Credentials integration, you can now preserve existing Content Credentials, ensuring they remain intact from creation all the way to end-user delivery.

Many media organizations across the globe, such as the BBC, the New York Times, and Dow Jones, are members of the Content Authenticity Initiative. Imagine one of these news organizations wanted to include the Content Credentials of their photojournalist’s photos and allow anyone to verify the provenance of that image. Before now, even if the news organization was using a C2PA-compliant camera and editing flow, these credentials would frequently be stripped if the image was transformed by their CDN.

If you use Cloudflare, that is now a solved problem. In Cloudflare Images, you can now preserve Content Credentials when transforming images from remote sources. Enabling this integration will retain any existing Content Credentials that are embedded in the image.

When you use Images to resize or change the file format to your images, these transformations will be cryptographically signed by Cloudflare. This ensures, for example, that the end-user who sees the photograph on your website can use an open-source verification service such as contentcredentials.org/verify  to verify the full provenance chain. 

How it works

Imagine you are a photojournalist using a Nikon camera that has C2PA-compliant signing. That photojournalist  could opt to attach Content Credentials to their photo, identifying the key elements of the photograph such as the camera model, the original image size, and aperture settings. 

Below is a simplified example of what a C2PA-compliant Content Credential for a photograph taken with that Nikon camera could look like. 

Content Credentials are stored using JUMBF (JPEG Universal Metadata Box Format), which serves as a standardized container format for embedding metadata within files. You can think of it as an envelope system that packages together both the data about where a piece of digital content came from and how it changed, as well as the cryptographic signatures that can be used to verify that data.

The assertions, or facts about the content provenance, are typically written in JSON for a better developer experience. Note that this example deliberately simplifies the JUMBF box nesting and adds comments to make it easier to follow.

{
  "jumbf": {
    "c2pa.manifest": {
      "claim_generator": "Nikon Z9 Firmware v1.2",
      "assertions": [
        {
          "label": "c2pa.actions",
          "data": {
            "actions": [
              {
                "action": "c2pa.captured",
                "when": "2025-01-10T12:00:00Z",
                "softwareAgent": "Nikon Z9",
                "parameters": {
                  "captureDevice": "NIKON Z9",
                  "serialNumber": "7DX12345",
                  "exposure": "1/250",
                  "aperture": "f/2.8",
                  "iso": 100,
                  "focalLength": "70mm"
                }
              }
            ]
          }
        }
      ],
      "signature_info": {
        "issuer": "Nikon",
        "time": "2025-01-10T12:00:00Z",
        "cert_fingerprint": "01234567890abcdef"
      },
      "claim_metadata": {
        "claim_id": "nikon_z9_123"
      }
    }
  }
}

Now imagine that you want to use this photograph on your website. 

If you’ve enabled the Preserve Content Credentials setting in Cloudflare, then that metadata is now preserved in Cloudflare Images. 

If you use Cloudflare Images to dynamically resize or transform this image, then Cloudflare automatically appends and cryptographically signs any additional actions in that same manifest. Below we show what the new Content Credentials could look like. 

{
  "jumbf": {
    // Original Nikon manifest
    "c2pa.manifest.nikon": {
  /*unchanged*/      
},

    // New Cloudflare manifest
    "c2pa.manifest.cloudflare": {
      "claim_generator": "Cloudflare Images",
      "assertions": [
        {
          "label": "c2pa.actions",
          "data": {
            "actions": [
              {
                "action": "c2pa.resized",
                "when": "2025-01-10T12:05:00Z",
                "softwareAgent": "Cloudflare Images",
                "parameters": {
                  "originalDimensions": {
                    "width": 8256,
                    "height": 5504
                  },
                  "newDimensions": {
                    "width": 800,
                    "height": 533
                  }
                }
              }
            ]
          }
        }
      ],
      "signature_info": {
        "issuer": "Cloudflare, Inc",
        "time": "2025-01-10T12:05:00Z",
        "cert_fingerprint": "fedcba9876543210"
      },
      "claim_metadata": {
        "claim_id": "cf_resize_123",
        "parent_claim_id": "nikon_z9_123"
      }
    }
  }
}

In this example, the c2pa.action.resized entry describes a non-destructive transformation from one set of dimensions to another. This is included as a separate, independent assertion about this particular photograph. 

Notice how there are two cryptographic signatures in this manifest, each referenced by signature_info. Since there were two entities involved in this example image — Nikon for the image’s creation, then Cloudflare for resizing it — both Nikon and Cloudflare independently signed their respective assertions about the content provenance.  

In this example, the signature reference looks like this: 

"signature_info": {
        "issuer": "Cloudflare, Inc",
        "time": "2025-01-10T12:05:00Z",
        "cert_fingerprint": "fedcba9876543210"

During the creation, editing, and resizing process of a piece of digital content, a unique hash of metadata is created for each action and then signed using a private key. The signature, along with the signer’s public certificate or reference to it, are contained in the JUMBF container as referenced by this JSON. 

These hashes and signatures allow any open source verification tool to recalculate the hash, validate it against the signature, and check the certificate chain to ensure trustworthiness for each action taken on the image. This is what is meant by Content Credentials being tamper-evident: if any of these hashes and signatures fail to validate, it means that the metadata has been tampered with. 

Each cryptographic signature is part of a Trust List, allowing anyone to verify the provenance chain across various entities, such as from a camera manufacturer to photo editing software to distribution across Cloudflare. More from the Content Authenticity Initiative: 

Trust lists connect the end-entity certificate that signed a manifest back to the originating root CA. This is accomplished by supplying the subordinate public X.509 certificates forming the trust chain (the public X.509 certificate chain).

In order for Cloudflare to append the Content Credentials with any transformations, we needed to have a publicly available end-entity certificate and join this Trust List. Here we used DigiCert for our end-entity certificate and reference this certificate in the JSON manifests that we are now creating in production:

"signature_info": {
        "alg": "sha256",
        "issuer": "Cloudflare, Inc",
        "cert_serial_number": "073E9F61ADE599BE128B02EDC5BD2BDE",
        "time": "2024-01-06T22:42:36+00:00"
      },

The end result is that news organizations, journalists, and content companies can now create an auditable chain of digital provenance whose claims can be verified using public-key cryptography.  

Let’s see an example

Earlier this year, OpenAI announced their support for including Content Credentials in DALL-E. I recently created an image in DALL-E (with ski season on my mind).

Cloudflare Images allows you to transform any image by URL. You can do so by simply changing the URL structure using this syntax: 

https://<ZONE>/cdn-cgi/image/<OPTIONS>/<SOURCE-IMAGE>

We can break down each of these parameters:

  • ZONE is your particular domain.

  • cdn-cgi/image is a fixed prefix that identifies that this is a special path handled by a built-in Worker.

  • The OPTIONS parameter allows you to then transform the image — rotating it, changing the width, compressing it, and more. 

  • SOURCE-IMAGE is the URL where your image is currently hosted.

To tie these together, I then have a new URL structure where I want to change the width and quality of the image I created in DALL-E and display this on my personal website. After uploading the image from DALL-E to one of my R2 buckets, I can create this URL: 

https://williamallen.com/cdn-cgi/image/width=1000,quality=75,format=webp/https://pub-3d2658f6f7004dc38a4dd6be147b6a86.r2.dev/dalle.webp

Anyone can now verify its provenance using the Content Credentials Verify tool to see the result. The provenance chain is fully intact, even after using the Cloudflare Images transformation shown above to resize the image. 


There are numerous open source command line tools that allow you to explore the full details of the Content Credentials. The C2PA Tool is created and maintained by the Content Authenticity Initiative. You can read more about the tool here and view the source code for it on GitHub.

There are two ways to install the tool: through a pre-built binary executable, or using Cargo Binstall if you have already installed Rust. Once installed, the C2PA Tool uses this syntax in your command line: 

c2patool [OPTIONS] <PATH> [COMMAND]

If I navigate to the link of the image in my browser and save it to my downloads folder on my Mac, then I simply need to use the command -d (short for -detailed) to see the full details of the JSON manifest. Of course, you should change yourusername to your actual Mac username.

c2patool /Users/yourusername/Downloads/dalle.webp -d

And if you wanted to output this to a JSON file that you can review in VSCode or Cursor, use this command instead:

c2patool /Users/yourusername/Downloads/dalle.webp -d > manifest.json

This allows you to not just trust, but verify, the details of the image transformation yourself. 

How to start using Cloudflare Images with Content Credentials 

It’s straightforward to start preserving Content Credentials. Log in to your Cloudflare dashboard and navigate to Images in the dashboard. From there, choose Transformations and choose a Zone where you want to enable this feature. Then toggle this option to on:


If the images you are transforming do not contain any Content Credentials, no action is taken. But if they do, we preserve those Content Credentials and attest to any transformations. 

Looking ahead

We are excited to continue to partner with Adobe and many other organizations to extend support for preserving Content Credentials across our products and services. If you are interested in learning more, we’d love to hear from you: I’m @williamallen on X or on LinkedIn.

The collective thoughts of the interwebz