The newest Top500 list is out, and we have the former #1 supercomputer Frontier was dethroned. In this list, the Intel-powered Aurora supercomputer passed 1EF, but then El Capitan rose to take the #1 spot. This is a big win for HPE and AMD delivering a system at over 2 exaflops of FP64 performance. El […]
This week, we wrapped up the final 2024 Latin America Amazon Web Services (AWS) Community Days of the year in Brazil, with multiple parallel events taking place. In Goiânia, we had Marcelo Palladino, senior developer advocate, and Marcelo Paiva, AWS Community Builder, as keynote speakers. Florianópolis feature Ana Cunha, senior developer advocate, and in Santiago de Chile, I had the honor to share the stage with Rossana Suarez, AWS Container Hero, as keynote speakers. These events, organized by communities for communities, provide opportunities to network, learn something new, and immerse yourself in the community. In a community, everyone grows together, and no one is left behind.
AWS Lambda celebrates its 10th anniversary, the service that introduced me to AWS and remains my favorite. Born from customer needs, it revolutionized cloud computing by allowing code execution without server management. Since its inception, documented in this LinkedIn post by Dr. Werner Vogels, Chief Technology Officer at Amazon.com, through the original PR/FAQ document, the service has grown significantly, introducing features such as 1ms billing precision and support for 10GB memory. Thank you AWS Lambda, here’s to many more anniversaries.
Last week’s launches AWS BuilderCards second edition at re:Invent 2024 – Jeff Barr announced the launch of the second edition of AWS BuilderCards at re:Invent 2024. It includes improvements to the design and game mechanics, plus a new add-on pack on generative AI. Over 15,000 sets have been distributed at previous events, with excellent user feedback. They’ll be available for online purchase after re:Invent.
Amazon EventBridge announces up to 94% improvement in end-to-end latency for Event Buses – Amazon EventBridge has improved end-to-end latency for Event Buses by up to 94%, reducing average latency from 2235.23ms (measured in January 2023) to 129.33ms (measured in August 2024 at P99). This enhancement enables faster processing for time-sensitive applications such as fraud detection, industrial automation, and gaming across all AWS Regions where Amazon EventBridge is available, including the AWS GovCloud (US) Regions, at no additional cost to you.
Amazon S3 now supports up to 1 million buckets per AWS account– Amazon S3 has increased its default bucket quota from 100 to 10,000 per AWS account. Customers can now request increases up to 1 million buckets. The first 2,000 buckets are free, with a small monthly fee applying thereafter for additional buckets.
Centrally managing root access for customers using AWS Organizations – AWS Identity and Access Management (IAM) launches a new capability for centrally managing root access in AWS Organizations. This feature allows security teams to remove long-term root credentials from member accounts and use temporary, task-scoped root sessions for specific actions. The solution enhances security by eliminating permanent root credentials while maintaining the ability to perform necessary privileged operations.
Upcoming AWS events Check your calendars and sign up for upcoming AWS events:
AWS Community Days – Join community-led conferences featuring technical discussions, workshops, and hands-on labs driven by expert AWS users and industry leaders from around the world. Upcoming AWS Community Days are scheduled for November 23 in Indonesia, and on December 14 in Kochi, India.
AWS re:Invent 2024 – Join us in Las Vegas to learn all things AWS. Our annual conference is the best—and fastest—way to grow your skills. If you can’t join us in person, you can attend virtually by registering at Watch re:Invent online.
Create your AWS Builder ID and reserve your alias. Builder ID is a universal login credential that gives users access to AWS tools and resources, including over 600 free training courses, community features, and developer tools such as Amazon Q Developer beyond the AWS Management Console.
That’s all for this week. Check back next Monday for another Weekly Roundup!
Thanks to Odina Jacobs for the AWS Community Chile photo.
Linus Torvalds released
the 6.12 kernel on November 17, as expected. This development
cycle, the last for 2024, brought 13,344 non-merge changesets into the
mainline kernel; that made it a relatively slow cycle from this
perspective, but 6.12 includes a long list of significant new features.
The time has come to look at where those changes came from, and to look at
the year-long LTS cycle as well.
Zero-day vulnerabilities are more commonly used, according to the Five Eyes:
Key Findings
In 2023, malicious cyber actors exploited more zero-day vulnerabilities to compromise enterprise networks compared to 2022, allowing them to conduct cyber operations against higher-priority targets. In 2023, the majority of the most frequently exploited vulnerabilities were initially exploited as a zero-day, which is an increase from 2022, when less than half of the top exploited vulnerabilities were exploited as a zero-day.
Malicious cyber actors continue to have the most success exploiting vulnerabilities within two years after public disclosure of the vulnerability. The utility of these vulnerabilities declines over time as more systems are patched or replaced. Malicious cyber actors find less utility from zero-day exploits when international cybersecurity efforts reduce the lifespan of zero-day vulnerabilities.
In today’s complex threat landscape, organizations need every advantage at their disposal to stay secure–starting with maximizing the tools they already have within their ecosystem. With the launch of Rapid7 MXDR’s SOC support for key Microsoft security products, we’re making it possible for organizations to layer security defenses and amplify outcomes by combining their existing Microsoft telemetry with the 24×7 coverage, broad security ecosystem telemetry and in-depth expertise of Rapid7’s MXDR service.
By connecting directly to key Microsoft event sources—like Microsoft O365, Defender for Cloud, Defender for Endpoint, Defender for Vulnerability Management, Defender for Identity, and Entra Identity—MXDR amplifies detection, visibility, and response capabilities across the technology you rely on, without needing additional infrastructure or complex setups. From uncovering hidden threats to responding to incidents faster, this integration leverages Microsoft’s event data to help security teams achieve 24×7 comprehensive Microsoft coverage throughout their tool stack.
Organizations of every size can now harness the best of both worlds: the familiarity and depth of their Microsoft environment and the advanced detection, correlation, automation, and forensic response capabilities of Rapid7’s MXDR service.
Importance of Microsoft Event Sources in Today’s Threat Landscape
Microsoft tools are foundational in many organizations’ tech stacks, and help teams collect security-critical data that can enhance threat detection and incident response. Without an integrated technology stack and 24×7 SOC triage, investigation, and response coverage across the Microsoft tools that teams already rely on, normalizing inputs and pinpointing real signs of attacker behavior can be nearly impossible for teams of all sizes.
By supporting Microsoft event sources as a layer on top of native telemetry provided through the Rapid7 Detection Engine, we’re making it easier for security teams to correlate data across their environment from key areas in their Microsoft toolset.
Teams can now customize their Rapid7 MXDR support to cover triage, investigation, and response to threats across key Microsoft Security tools, including:
Microsoft Entra Identity Protection
Microsoft Defender for Identity
Microsoft Defender for Cloud
Microsoft Defender for Endpoint
Microsoft Defender for O365
Microsoft Defender for Vulnerability Management
By incorporating support for Microsoft security tools, Rapid7 MXDR maximizes your existing Microsoft investment, helping your security team stay agile and resilient in the face of an ever-evolving threat landscape.
Maintaining our Commitment to Securing Your Attack Surface
We’re on a mission for our MDR service to bring unified visibility to the attack surface and comprehensive defense capabilities to your security program. By extending 24×7 expert SOC coverage to Microsoft Security tools, we’re bringing:
Customization through integrating the tools you already rely on with Rapid7’s native telemetry to create a tailored service that layers alert data and accelerates response.
Visibility from both native and existing tool telemetry, to eliminate blind spots and respond rapidly to abnormal and malicious activity across your entire attack surface.
Broader response capabilities by extending the insights for the Rapid7 SOC to respond to and contain malicious behavior before it can cause harm to your environment, business, and brand.
Getting Started
As we extend our MXDR service with more comprehensive coverage to meet security teams where they are, we’re excited to partner with you to secure your extended ecosystem. If you’re a Rapid7 MDR customer, reach out to your account team to learn more about our extended coverage. If you’re not a Rapid7 MDR customer yet, request a demo here.
As generative AI models become increasingly integrated into business applications, it’s crucial to evaluate the potential security risks they introduce. At AWS re:Invent 2023, we presented on this topic, helping hundreds of customers maintain high-velocity decision-making for adopting new technologies securely. Customers who attended this session were able to better understand our recommended approach for qualifying security risk and maintaining a high security bar for the applications they build. In this blog post, we’ll revisit the key steps for conducting effective threat modeling on generative AI workloads, along with additional best practices and examples, including some typical deliverables and outcomes you should look for across each stage. Throughout this post we will link to specific examples that we created with the AWS Threat Composer tool. Threat Composer is an open source AWS tool you can use to document your threat model, available at no additional cost.
This post covers a practical approach for threat modeling a generative AI workload and assumes you know the basics of threat modeling. If you want to get an overview on threat modeling, we recommend that you check out this blog post. In addition, this post is part of a larger series on the security and compliance considerations of generative AI.
Why use threat modeling for generative AI?
Each new technology comes with its own learning curve when it comes to identifying and mitigating the unique security risks it presents. The adoption of generative AI into workloads is no different. These workloads, specifically the use of large language models (LLMs), introduce new security challenges because they can generate highly customized and non-deterministic outputs based on user prompts, which introduces the possibility for potential misuse or abuse. In addition, relies on access to large and customized data sets, often internal data sources which might contain sensitive information.
Although working with LLMs is a relatively new practice and has some unique and nuanced security risks and impacts, it’s crucial to remember that LLMs are only one portion of a larger workload. It’s important to apply the threat modeling approach to parts of the system, taking into account well-known threats such as injections or the compromise of credentials. Part 1 of the Securing generative AI AWS blog series, An introduction to the Generative AI Security Scoping Matrix, provides a great overview of what those nuances are, and how the risks differ depending on how you make use of LLMs in your organization.
The four stages of threat modeling for generative AI
As a quick refresher, threat modeling is a structured approach to identifying, understanding, addressing, and communicating the security risks in a given system or application. It is a fundamental element of the design phase that allows you to identify and implement appropriate mitigations and make fundamental security decisions as early as possible.
At AWS, threat modeling is a required input to initiating our Application Security (AppSec) process for the builder teams at AWS, and our builder teams get support from a Security Guardian to build threat models for their features or services.
A useful way of structuring the approach to threat modeling, created by expert Adam Shostack, involves answering four key questions. We’ll look into each one and how to apply them to your generative AI workload.
What are we working on?
What can go wrong?
What are we going to do about it?
Did we do a good enough job?
What are we working on?
This question aims to get a detailed understanding of your business context and application architecture. The detail that you’re looking for should already be captured as part of the comprehensive system documentation created by the builders of your generative AI solution. By starting from this documentation, you can streamline the threat modeling process and focus on identifying potential threats and vulnerabilities, rather than on re-creating foundational system knowledge.
Example outcomes or deliverables
At a minimum, builders should capture the key components of the solution, including data flows, assumptions, and design decisions. This lays the groundwork for identifying potential threats. Key elements to document are the following:
Data flow diagrams (DFDs) that clearly illustrate the critical data flows of the application, from request to response, detailing what happens at each component or “hop”
Well-articulated assumptions about how users are expected to interact with and ask questions of the system, or how the model will interact with other parts of the system. For example, in a RAG scenario where the model needs to retrieve data that is stored in other systems, how it will authenticate and translate that data into an appropriate response for the user
Documentation of key design decisions made by the business, including the rationale behind these decisions
Detailed business context about the application, such as whether it is considered a critical system, what types of data it handles (for example, confidential, high-integrity, high-availability), and the primary business concerns for the application (for example, data confidentiality, data integrity, system availability)
Figure 1: Threat composer dataflow diagram view for a generative AI chatbot example
What can go wrong?
For this question, you identify possible threats to your application using the context and information you gathered for the previous question. To help you identify possible threats, make use of existing repositories of knowledge, especially those related to the new technologies you are adopting. These often have tangible examples that you can apply to your application. Useful resources are the OWASP top 10 for LLMs, MITRE ATLAS framework, and the AI Risk Repository. You can also use a structured framework such as STRIDE to aid you in your thinking. Use the information you received from the “What are we building?” question and apply the most relevant STRIDE categories to your thinking. For example, if your application hosts critical data that the business has no risk appetite for losing, then you might think about the various Information Disclosure threats first.
You can write and document these possible threats to your application in the form of threat statements. Threat statements are a way to maintain consistency and conciseness when you document your threat. At AWS, we adhere to a threat grammar which follows the syntax:
A [threat source] with [prerequisites] can [threat action] which leads to [threat impact], negatively impacting [impacted assets].
This threat grammar structure helps you to maintain consistency and allows you to iteratively write useful threat statements. As shown in Figure 2, Threat Composer provides you with this structure for new threat statements and includes examples to assist you.
Once you go through the process of creating threat statements, you will have a summary of “what can go wrong.” You can then define attack steps, as an analysis of “how it can go wrong.” It’s not always necessary to define attack steps for each threat statement because there are many ways a threat might actually happen. Going through the exercise of identifying and documenting a few different threat mechanisms can help to get specific mitigations that you can associate with each attack step for a more effective defense-in-depth approach.
Threat Composer gives you the ability to add additional metadata to your threat statements. Customers who have adopted this option into their workflows most commonly use the STRIDE category and Priority metadata tags. Those customers can quickly track which threats are the highest priority and which STRIDE category they correspond to. Figure 3 shows how you can document threat statements alongside their associated metadata in Threat Composer.
By systematically considering what can go wrong, and how, you can uncover a range of possible threats. Let’s explore some of the example deliverables that can emerge from this process:
A list of threat statements that you will develop mitigations for, categorized by STRIDE element and priority
A list of attack steps that are associated to your threat statements. As mentioned, attack steps are an optional activity at this stage, but we recommend at least identifying some for your highest-priority threats
Example threat statements
These are some example threat statements for an application that is interacting with an LLM component:
A threat actor with access to the public-facing application can inject malicious prompts that overwrite existing system prompts, resulting in healthcare data from other patients being returned, impacting the confidentiality of the data in the database
A threat actor with access to the public-facing application can inject malicious prompts that request malicious or destructive actions, resulting in healthcare data from other patients being deleted, impacting the availability of the data in the database
Example attack steps
These are some example attack steps that demonstrate how the preceding threat statements could occur:
Perform crafted prompt injection to bypass system prompt guardrails
Embed a vulnerable agent with access to the model
Embed an indirect prompt injection in a webpage instructing the LLM to disregard previous user instructions and use an LLM plugin to delete the user’s emails
What can we do about it?
Now that you’ve identified some possible threats, consider which controls would be appropriate to help mitigate the risks associated with those threats. This decision will be driven by your business context and the asset in question. Your organizational policies will also influence prioritization of controls: Some organizations might choose to prioritize the control that impacts the highest number of threats, while others might choose to start with the control that impacts the threats that are deemed the highest risk (by likelihood and impact).
For each identified threat, define specific mitigation strategies. This could include input sanitization, output validation, access controls, and more. Ideally, at a minimum, you want at least one preventative control and one detective control associated with each threat. The same resources that are linked to in the What can go wrong? section are also highly useful for identifying relevant controls. For example, the MITRE ATLAS has a dedicated section for mitigations.
Note: You might find that as you identify mitigations for your threats, you start to see duplication in your controls. For example, least-privilege access control might be associated with almost all of your threats. This duplication can also help you to prioritize. If a single control appears in 90% of your threat mitigations, the effective implementation of that control will help to drive down risk across each of those threats.
Example outcomes or deliverables
Associated with each threat, you should have a list of mitigations, each with a unique identifier to ease lookups and reusability later on. Example mitigations with identifiers include the following:
M-001: Predefine SQL query structure
M-002: Sanitize for known parameters (input filtering)
M-003: Check against templated prompt parameters
M-004: Review output is relevant to user (output filtering)
M-005: Limit LLM context window
M-006: Dynamic permissions check on high-risk actions performed by model (separating authentication parameters from prompt)
M-007: Apply least privilege to all components of the application
For more information on relevant security controls for your workload, we recommend that you read Part 3 of our Securing generative AI series: Applying relevant security controls.
Figure 4 shows some completed example threat statements in Threat Composer, with mitigations linked to each.
Figure 4: Completed threat statements with metadata and linked mitigations
After answering the first three questions, you have your completed threat model. The documentation should contain your DFDs, threat statements, [optional] attack steps, and mitigations.
For a more detailed example, including a visual dashboard that shows a breakdown of a threat summary, see the full GenAI chatbot example in Threat Composer.
Did we do a good enough job?
A threat model is a living document. This post has discussed how creating a threat model helps you to identify technical controls for threats, but it’s also important to consider the non-technical benefits that the process of threat modeling provides.
For your final activity, you should validate both elements of the threat modeling activity.
Validate the effectiveness of the identified mitigation: Some of the mitigations you identify might be new, and some you might already have had in place. Regardless, it’s important to continuously test and verify that your security measures are working as intended. This could involve penetration testing or automated security scans. At AWS, threat models serve as inputs to automated test cases to be embedded in the pipeline. The threats defined are also used to define the scope of the penetration testing, to confirm whether those threats have been mitigated sufficiently.
Validate the effectiveness of the process: Threat modeling is fundamentally a human activity. It requires interaction across your business, builder teams, and security functions. Those closest to the creation and operations of the application should own the threat model document and revisit it often, with support from their security team (or Security Guardian equivalent). How often this is done will depend on your organizational policies and the criticality of the workload, though it is important to define triggers that will initiate a review of the threat model. Example triggers can include threat intelligence updates, new features that significantly change data flows, or new features that impact security-related aspects of the system (such as authentication or authorization, or logging). Validating your process periodically is especially important when you adopt new technologies because the threat landscape for these evolves faster than usual.
Performing a retrospective on the threat modeling process is also a good way to work through and discuss what worked well, what didn’t work well, and what changes you will commit to the next time the threat model is revisited.
Example outputs
These are some example outputs for this step of the process:
Automated test case definitions based on mitigations
A defined scope for penetration testing, and test cases based on threats
A living document for the threat model that is stored alongside application documentation (including a data flow diagram)
A retrospective overview, including lessons learned and feedback from the threat modeling participants, and what will be done next time to improve
Conclusion
In this blog post, we explored a practical and proactive approach to threat modeling for generative AI workloads. The key steps we covered provide a structured framework for conducting effective threat modeling, from understanding the business context and application architecture to identifying potential threats, defining mitigation strategies, and validating the overall effectiveness of the process.
By following this approach, organizations can better equip themselves to maintain a high security bar as they adopt generative AI technologies. The threat modeling process not only helps to mitigate known risks, but also fosters a culture of security-mindedness that is crucial for organizations to adopt. This can help your organization to unlock the full potential of these powerful technologies while maintaining the security and privacy of your systems and data.
Want to look deeper into additional areas of generative AI security? Check out the other posts in the Securing Generative AI series:
Още една серия от събития проследяващи иначе тривиален казус, който илюстрира по-голям проблем в надзора и отклика на сигнали за градската среда. Може да прочетете аналогичен за озеленяването на нова сграда. Подобен случай бях съобщил преди почти четири години, който поне беше покрит някак.
15-ти септември
Първи учебен ден. Получавам съобщение от гости на квартала от чужбина, че са забелязали отворено табло на трафопост. Питат как е позволено това и кой следва да го оправи. Намирам го до 105-то СУ в Дианабад – точно по пътя, където всеки ден минават десетки ученици. Съвсем лесно може някое дете да отиде там и да пипа вътре. Подавам сигнал по call.sofia със снимки. Минават два дни и поради липсата на реакция подавам сигнал директно в Електрохолд, които общават да вземат мерки.
25-ти септември
Минават десет дни от сигнала. Минавам да видя как са го оправили и наистина е затворено… с камък. От таблото все така стърчи кабел вързан директно към открити пластини с напрежение и минаващ през клоните на дърветата до близкото заведение. Подавам втори сигнал барем нещо се случи.
30-ти септември
Две седмици след първия ми сигнал кметът на район Изгрев пише по двата сигнала на Електрохолд с молба да се поправи.
4-ти октомври
Ново писмо към Електрохолд от районния кмет.
5-ти ноември
Минах отново да видя какво се е случило. Има натрупани клони върху и пред таблото. Не е заключено или подсигурено срещу достъп или вода. Кабелът все така си стърчи в посока заведението. Макар да е малко по-трудно да се стигне до таблото заради сухите клони, вероятността да се запалят създава много по-голям риск, особено ако някой тръгне да ги гаси с вода.
Тук проследявам описание на класически проблем с озеленяването в София в две части.
4-ти ноември 2024
Понякога дяволът е в детайлите и на вид дребни неща разкриват системни проблеми. Ето още нещо такова.
Преди време забелязах, че на няколко новостроящи се обекти и други вече пуснати в експлоатация в район Изгрев задължителното озеленяване е бутафорно, а скоро след пускането дори бутафорното се бетонира. Подадох няколко сигнала до районното кметство. Отговорите варираха от „като го построят ще видим“ до „вече е построено и не може да направим нищо“. Имаше санкция за конкретен случай, но не и за „определени“ строителни фирми.
Такъв обект, където озеленяването е вече паркоместа, а където го има не отговаря на изискванията, е една от скорошните сгради на Артекс. При сигнала районния кмет д-р Георгиев първо е искал плана за озеленяване и навярно разбирайки, че трябва все пак да вземе мерки, излезе с извинението, че са минали две години гаранционен срок и каквото било – било. Всъщност, този гаранционен срок е за купувачите. Общината в негово лице има задължение до 5 години след пускане е експлоатация да проверява дали озеленяването е в същите параметри.
При бетонирането на няколко зелени алеи се видя, че на останалите има едва 10 см. пръст, а дърветата са във вкопани кашпи. Така Артекс декларират степен на озеленяване на бъдеща корона на дърветата, които никога няма да пораснат най-малкото, защото нямат изисканите по наредба почва и отстояние. Отделно почвата на други места е около 15 см. както стана ясно при течащото сега изравяне с цел бетониране на зелена площ (снимките). Изискванията са за много повече.
Следва строителят да възстанови зеленината, но няма кой да ги накара. Както писах преди, проблемът е масов и не е защото някой му харесва да е зелено, макар и това да е фактор за градската среда. Изискванията са за предотвратяване на наводнения, ерозия на почвата, намаляване на шума и замърсяване на въздуха.
Идентичен проблем вече се вижда в новата ию сграда, строителството на която си подсигуриха с машинации от екипа на Фандъкова. Рекламират я като изключително зелена с много дърветата по терасите и в двора. В последния обаче се лее бетон на нивото на улицата, няма планове за издигнат двор, което значи, че задължителните 1.2 метра почва за дърветата няма да ги има и тук.
София е опасана от сгради с бутафорно и направо комично озеленяване. Именно районните кметове имат задължение да го санкционират, а специалисти в администрациите им – да не пускат акт 16 на първо време. Аналогично, районните кметове подписват заповедите за сеч на дървета в районите им и някой от администрацията им следва да присъства, за да гарантира, че се сече само позволенито, а от това има протоколи. Длъжни са да публикуват и всички тези документи на страниците им, но даже по ЗДОИ е трудно да се получат, понякога защото ги няма.
Конкретната градинка може би попада в категорията „това ли е баш най-големия проблем“. Но поведението, допускането и отказът от отговорност довела до нея е системен проблем с ефекти умножени в цяла София. Та ако се чудите защо има дървета под стрехи, градинки се бетонират, пръчки забодени в педя земя или подвижна кашпа се водят за озеленяване, а наводненията и въздухът се влошават, това е една от основните причини.
18-ти ноември 2024
Когато виждате реклами на бъдещи „елитни“ строителни обекти окъпани в зеленина, сетете се за това.
Преди точно две седмици писах за нещо приемано за тривиално и до болка познато – бетониране на зелена площ. Проблемът е случая е, че става дума за част от задължителното озеленяване на сграда, където както при много други, и без това се виждат проблеми с просто око.
Та развитието е следното – август тази година е имало на мястото дърво, което е участвало в оценката за озеленяване, за да може да мине въобще акт 16. Септември вече няма дърво и храсти отзад. В края на ноември изгребват пръста, която се оказва само 10 см. със закопани малки кашпи колкото да не паднат дърветата, бетонират пространството и слагат плочи за паркинг. Отдолу няма пръст, а направо бетон, но често тази комбинация с малко пръст в дупките се използва като „озеленяване“, когато си имаш човек в районната община да ти се подпише.
След подаден сигнал, районната община първо иска плана за озеленяване, но после се извинява, че били минали две години от строежа и не били длъжни да проверяват. Всъщност, говорят за гаранцията на озеленяването за собствениците, а задължението за районния кмет по ЗУТ е 5 години. Въпреки първоначалния бърз отказ, последвалите въпроси включително тук остават без отговор.
Ефект обаче има, макар не желаният. Изглежда по неведоми пътища строителите са разбрали, че има риск от проверка и освен, че точно ден след отговора на районния кмет са боцнали едно допълнително дърво отзад на сградата, но са покрили паркинг плочите с три сантиметра пръст и трева, за да не се вижда какво са сътворили отдолу. Като мине проверката ще може спокойно да си паркират коли и там, тъй като проверките явно са бутафорни като озеленяването и никой не следи дълбочината на почвения слой.
Отново – това е капка наглост в блатото, но е показателно как отделни чиновници в местната власт мижат за проблемите. През подобно мижене често минават огромни строежи, злоупотреби и дори корупция. Проблемът е структурен и на прозрачност и далеч не е само в Изгрев или София.
Linus has released the 6.12 kernel.
“No strange surprises this last week, so we’re sticking to the regular
release schedule, and that obviously means that the merge window opens
tomorrow.“.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.