Arm Neoverse S3 Detailed for the Infrastructure Chiplet Era

Post Syndicated from John Lee original https://www.servethehome.com/arm-neoverse-s3-detailed-for-the-infrastructure-chiplet-era/

The Arm Neoverse S3 with the CMN S3, MMU S3, and NoC S3 underpin the company’s new Neoverse CSS offerings for future chiplet based processors

The post Arm Neoverse S3 Detailed for the Infrastructure Chiplet Era appeared first on ServeTheHome.

Friday Squid Blogging: Illex Squid and Climate Change

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2024/02/friday-squid-blogging-illex-squid-and-climate-change.html

There are correlations between the populations of the Illex Argentines squid and water temperatures.

As usual, you can also use this squid post to talk about the security stories in the news that I haven’t covered.

Read my blog posting guidelines here.

[$] Forgejo makes a full break from Gitea

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

The world of open-source “forges” is becoming a little more fragmented. The Forgejo project is a software-development platform that started as a “soft” fork of Gitea in late 2022. On February 16, Forgejo announced its intent to become a “hard fork” of Gitea to help address its mission of community-controlled development and to “liberate software development from the shackles of proprietary tools“. In a world where proprietary tools cast a long shadow over open-source development that’s a welcome sentiment—if the project can deliver.

Metasploit Weekly Wrap-Up 02/23/2024

Post Syndicated from Spencer McIntyre original https://blog.rapid7.com/2024/02/23/metasploit-weekly-wrap-up-02-23-2024/

LDAP Capture module

Metasploit Weekly Wrap-Up 02/23/2024

Metasploit now has an LDAP capture module thanks to the work of llcjngdjttrvddchfntdbinjblktjjetrtifdlibuchh
JustAnda7. This work was completed as part of the Google Summer of Code program.

When the module runs it will by default require privileges to listen on port 389. The module implements a default implementation for BindRequest, SearchRequest, UnbindRequest, and will capture both plaintext credentials and NTLM hashes which can be brute-forced offline. Upon receiving a successful Bind Request, a ldap_bind: Authentication method not supported (7) error is sent to the connecting client.

The module can be with run:

msf6 > use auxiliary/server/capture/ldap
msf6 auxiliary(server/capture/ldap) > run

Incoming requests will have their credentials stored for later use:

[+] LDAP Login attempt => From:10.0.2.15:48198 Username:User Password:Pass
[+] LDAP Login Attempt => From:127.0.0.1:55566	 Username:admin	 ntlm_hash::8aa0e517cd547b4032ff7e9c5359c200879aa5a8031d3d74	 Domain:DOMAIN

These values will be stored in the database for later retrieval:

msf6 auxiliary(server/capture/ldap) > creds
Credentials
===========
host       origin     service         public  private  realm        private_type  JtR Format
----       ------     -------         ------  -------  -----        ------------  ----------
10.0.2.15  10.0.2.15  389/tcp (ldap)  User    Pass     example.com  Password      

Ivanti exploit module

Another honorable mention for this week’s Metasploit release is a module by sfewer-r7 that chains two recently disclosed vulnerabilities(CVE-2024-21893 and CVE-2024-21887) in Ivanti gateways to achieve remote code execution on a vulnerable target. The vulnerabilities are both being widely exploited in the wild. Read Rapid7’s full technical analysis of the exploit chain in AttackerKB.

New module content (4)

Authentication Capture: LDAP

Author: JustAnda7
Type: Auxiliary
Pull request: #18678 contributed by jmartin-tech
Path: server/capture/ldap

Description: Adds a new auxiliary/server/capture/ldap module that emulates an LDAP Server. The server accepts a user’s bind request, and the user credentials or NTLM hash is then captured, logged, and persisted to the currently active database. An ldap_bind: Authentication method not supported (7) error is sent to the connecting client.

Ivanti Connect Secure Unauthenticated Remote Code Execution

Author: sfewer-r7
Type: Exploit
Pull request: #18792 contributed by sfewer-r7
Path: linux/http/ivanti_connect_secure_rce_cve_2024_21893
AttackerKB references: CVE-2024-21887, CVE-2023-36661, CVE-2024-21893

Description: This module exploits the recently disclosed SSRF vulnerability (CVE-2024-21893) in Ivanti Connect Secure and Ivanti Policy Secure. The SSRF is chained to a command injection vulnerability (CVE-2024-21887) to achieve unauthenticated RCE.

Kafka UI Unauthenticated Remote Command Execution via the Groovy Filter option.

Authors: BobTheShopLifter and Thingstad and h00die-gr3y [email protected]
Type: Exploit
Pull request: #18700 contributed by h00die-gr3y
Path: linux/http/kafka_ui_unauth_rce_cve_2023_52251
AttackerKB reference: CVE-2023-52251

Description: This PR adds an exploit module for a command injection vulnerability that exists in Kafka-ui between v0.4.0 and v0.7.1 that allows an attacker to inject and execute arbitrary shell commands via the groovy filter parameter at the topic section.

QNAP QTS and QuTS Hero Unauthenticated Remote Code Execution in quick.cgi

Authors: Spencer McIntyre, jheysel-r7, and sfewer-r7
Type: Exploit
Pull request: #18832 contributed by sfewer-r7
Path: linux/http/qnap_qts_rce_cve_2023_47218
AttackerKB reference: CVE-2023-47218

Description: The PR adds a module targeting CVE-2023-47218, an unauthenticated command injection vulnerability affecting QNAP QTS and QuTH Hero devices. CVE-2023-47218 was discovered and disclosed by Stephen Fewer.

Enhanced Modules (2)

Modules which have either been enhanced, or renamed:

  • #18125 from JustAnda7 – This PR adds a module to launch an LDAP service supporting capture and storage of Simple Authentication attempts. When launching this module with default options users must have permissions to bind to port 389.
  • #18681 from h00die – This PR updates the pre-existing apache_ofbiz_deserialization module to include functionality that will bypass authentication by using the newly discovered auth-bypass vulnerability: CVE-2023-51467.

Enhancements and features (8)

  • #18376 from JustAnda7 – This PR adds support for LDAP capture of NTLM authentication and adds a default implementation for LDAP BindRequest, SearchRequest, UnbindRequest, as well as a default action for unsupported requests.
  • #18817 from dwelch-r7 – This PR adds support to now bucket module options that are output after running the options command. This will be for modules that support either an RHOST or a SESSION connection to show that only one or the other is required when using the new session type features for SMB/MSSQL/MYSQL/PostgreSQL sessions.
  • #18847 from sjanusz-r7 – This PR adds proxy support for getting a PostgreSQL session via the postgres_login module.
  • #18848 from sjanusz-r7 – This PR adds proxy support for getting a MSSQL session via the mssql_login module.
  • #18854 from sjanusz-r7 – This PR adds proxy support for getting a MySQL session via the mysql_login module.
  • #18855 from sjanusz-r7 – This PR removes the cwd convention from SQL-based sessions, and instead uses a more appropriate def database_name computed value rather than a cached variable.
  • #18863 from sjanusz-r7 – This PR adds in the ENVCHANGE types to the MSSQL client mixin, and uses those to fetch the initial DB name received from the server.
  • #18864 from cgranleese-r7 – Adds an alias for ls and dir inside SMB sessions.

Bugs fixed (5)

  • #18770 from dwelch-r7 – Fixes a bug when multiple new session types (SMB, PostgreSQL, MSSQL, MySQL) were enabled with the features set postgresql_session_type true command.
  • #18842 from upsidedwn – Updates the Metasploit Dockerfile to correctly honor user provided bundler config arguments.
  • #18850 from adfoster-r7 – Fixes failing ldap server tests.
  • #18861 from cgranleese-r7 – Removes SessionType values from modules with OptionalSession mixin.
  • #18871 from adfoster-r7 – Fixes a crash when using the webconsole.

Documentation added (1)

  • #18857 from jlownie – Updates the Wiki documentation on running the Metasploit database to be more clear.

You can always find more documentation on our docsite at docs.metasploit.com.

Get it

As always, you can update to the latest Metasploit Framework with msfupdate
and you can get more details on the changes since the last blog post from
GitHub:

If you are a git user, you can clone the Metasploit Framework repo (master branch) for the latest.
To install fresh without using git, you can use the open-source-only Nightly Installers or the
commercial edition Metasploit Pro

Mistral AI models coming soon to Amazon Bedrock

Post Syndicated from Donnie Prakoso original https://aws.amazon.com/blogs/aws/mistral-ai-models-coming-soon-to-amazon-bedrock/

Mistral AI, an AI company based in France, is on a mission to elevate publicly available models to state-of-the-art performance. They specialize in creating fast and secure large language models (LLMs) that can be used for various tasks, from chatbots to code generation.

We’re pleased to announce that two high-performing Mistral AI models, Mistral 7B and Mixtral 8x7B, will be available soon on Amazon Bedrock. AWS is bringing Mistral AI to Amazon Bedrock as our 7th foundation model provider, joining other leading AI companies like AI21 Labs, Anthropic, Cohere, Meta, Stability AI, and Amazon. With these two Mistral AI models, you will have the flexibility to choose the optimal, high-performing LLM for your use case to build and scale generative AI applications using Amazon Bedrock.

Overview of Mistral AI Models
Here’s a quick overview of these two highly anticipated Mistral AI models:

  • Mistral 7B is the first foundation model from Mistral AI, supporting English text generation tasks with natural coding capabilities. It is optimized for low latency with a low memory requirement and high throughput for its size. This model is powerful and supports various use cases from text summarization and classification, to text completion and code completion.
  • Mixtral 8x7B is a popular, high-quality sparse Mixture-of-Experts (MoE) model that is ideal for text summarization, question and answering, text classification, text completion, and code generation.

Choosing the right foundation model is key to building successful applications. Let’s have a look at a few highlights that demonstrate why Mistral AI models could be a good fit for your use case:

  • Balance of cost and performance — One prominent highlight of Mistral AI’s models strikes a remarkable balance between cost and performance. The use of sparse MoE makes these models efficient, affordable, and scalable, while controlling costs.
  • Fast inference speed — Mistral AI models have an impressive inference speed and are optimized for low latency. The models also have a low memory requirement and high throughput for their size. This feature matters most when you want to scale your production use cases.
  • Transparency and trust — Mistral AI models are transparent and customizable. This enables organizations to meet stringent regulatory requirements.
  • Accessible to a wide range of users — Mistral AI models are accessible to everyone. This helps organizations of any size integrate generative AI features into their applications.

Available Soon
Mistral AI publicly available models are coming soon to Amazon Bedrock. As usual, subscribe to this blog so that you will be among the first to know when these models will be available on Amazon Bedrock.

Learn more

Stay tuned,
Donnie

What’s Wrong With Google Drive, Dropbox, and OneDrive? More Than You Think

Post Syndicated from Vinodh Subramanian original https://www.backblaze.com/blog/whats-wrong-with-google-drive-dropbox-and-onedrive-more-than-you-think/

Cloud drives like Google Drive, Dropbox, Box, and OneDrive have become the go-to data management solution for countless individuals and organizations. Their appeal lies in the initial free storage offering, user-friendly interface, robust file-sharing, and collaboration tools, making it easier to access files from anywhere with an internet connection. 

However, recent developments in the cloud drives space have posed significant challenges for businesses and organizations. Both Google and Microsoft, leading providers in this space, have announced the discontinuation of their unlimited storage plans.

Additionally, it’s essential to note that cloud drives, which are primarily sync services, do not offer comprehensive data protection. Today, we’re exploring how organizations can recognize the limitations of cloud drives and strategize accordingly to safeguard their data without breaking the bank. 

Attention Higher Ed

Higher education institutions have embraced platforms like Google Drive, Dropbox, Box, and OneDrive to store vast amounts of data—sometimes reaching into the petabytes. With unlimited plans out the window, they now face the dilemma of either finding alternative storage solutions or deleting data to avoid steep fees. In fact, the education sector reported the highest rates of ransomware attacks with 80% of secondary education providers and 79% of higher education providers hit by ransomware in 2023. If you manage IT for a

Sync vs. Backup: Why Cloud Drives Fall Short on Full Data Security

Cloud Sync

Cloud drives offer users an easy way to store and protect files online, and it might seem like these services back up your data. But, they don’t. These services sync (short for “synchronize”) files or folders on your computer to your other devices running the same application, ensuring that the same and most up-to-date information is merged across each device.

The “live update” feature of cloud drives is a double-edged sword. On one hand, it ensures you’re always working on the latest version of a document. On the other, if you need to go back to a specific version of a file from two weeks ago, you might be out of luck unless you’ve manually saved that version elsewhere. 

Another important item to note is that if cloud drives are shared with others, often they can make changes to the content which can result in the data changing or being deleted and without notifying other users. With the complexity of larger organizations, this presents a potential vulnerability, even with well-meaning users and proactive management of drive permissions. 

Cloud Backup

Unlike cloud sync tools, backup solutions are all about historical data preservation. They utilize block-level backup technology, which offers granular protection of your data. After an initial full backup, these systems only save the incremental changes that occur in the dataset. This means if you need to recover a file (or an entire system) as it existed at a specific point in time, you can do so with precision. This approach is not only more efficient in terms of storage space but also crucial for data recovery scenarios.

For organizations where data grows exponentially but is also critically important and sensitive, the difference between sync and backup is a crucial divide between being vulnerable and being secure. While cloud drives offer ease of access and collaboration, they fall short in providing the comprehensive data protection that comes from true backup solutions, highlighting the need to identify the gap and choose a solution that better fits your data storage and security goals. A full-scale backup solution will typically include backup software like Veeam, Commvault, and Rubrik, and a storage destination for that data. The backup software allows you to configure the frequency and types of backups, and the backup data is then stored on-premises and/or off-premises. Ideally, at least one copy is stored in the cloud, like Backblaze B2, to provide true off-site, geographically distanced protection.

Lack of Protection Against Ransomware

Ransomware payments hit a record high $1 billion in 2023. It shouldn’t be news to anyone in IT that you need to defend against the evolving threat of ransomware with immutable backups now more than ever. However, cloud drives fall short when it comes to protecting against ransomware.

The Absence of Object Lock

Object Lock serves as a digital vault, making data immutable for a specified period. It creates a virtual air gap, protecting data from modification, manipulation, or deletion, effectively shielding it from ransomware attacks that seek to encrypt files for ransom. Unfortunately, most cloud drives do not incorporate this technology. 

Without Object Lock, if a piece of data or a document becomes infected with ransomware before it’s uploaded to the cloud, the version saved on a cloud drive can be compromised as well. This replication of infected files across the cloud environment can escalate a localized ransomware attack into a widespread data disaster. 

Other Security Shortcomings

Beyond the absence of Object Lock, cloud drives may also lag in other critical security measures. While many offer some level of encryption, the robustness of this encryption and its effectiveness in protecting data at reset and in transit can vary significantly. Additionally, the implementation of 2FA and other access control measures is not always standard. These gaps in security protocols can leave the door open for unauthorized access and data breaches.

Navigating the Shared Responsibility Model

The shared responsibility model of cloud computing outlines who is responsible for what when it comes to cloud security. However, this model often leads to a sense of false security. Under this model, cloud drives typically take responsibility for the security “of” the cloud, including the infrastructure that runs all of the services offered in the cloud. On the other hand, the customers are responsible for security “in” the cloud. This means customers must manage the security of their own data. 

What’s the difference? Let’s use an example. If a user inadvertently uploads a ransomware-infected file to a cloud drive, the service might protect the integrity of the cloud infrastructure, ensuring the malware doesn’t spread to other users. However, the responsibility to prevent the upload of the infected file in the first place, and managing its consequences, falls directly on the user. In essence, while cloud drives provide a platform for storing your data, relying solely on them without understanding the nuances of the shared responsibility model could leave gaps in your data protection strategy. 

It’s also important to understand that Google, Microsoft, and Dropbox may not back up your data as often as you’d like, in the format you need, or provide timely, accessible recovery options. 

The Limitations of Cloud Drives in Computer Failures

Cloud drives, such as iCloud, Google Drive, Dropbox, and OneDrive, synchronize your files across multiple devices and the cloud, ensuring that the latest version of a file is accessible from anywhere. However, this synchronization does not equate to a full backup of your computer’s data. In the event of a computer failure, only the files you’ve chosen to sync would be recoverable. Other data stored on the computer (but not in the sync folder) would be lost. 

While some cloud drives offer versioning, which allows you to recover previous versions of files, this features are often limited in scope and time. It’s not designed to recover all types of files after a hardware failure, which a comprehensive backup solution would allow. 

Additionally, users often have to select which folders of files are synchronized, potentially overlooking important data. This selective sync means that not all critical information is protected automatically, unlike with a backup solution that can be set to automatically back up all data.

The Challenges of Data Sprawl in Cloud Drives

Cloud drives make it easy to provision storage for a wide array of end users. From students and faculty in education institutions to teams in corporations, the ease with which users can start storing data is unparalleled. However, this convenience comes with its own set of challenges—and one of the most notable culprits is data sprawl. 

Data sprawl refers to the rapid expansion and scattering of data without a cohesive management strategy. It is the accumulation of vast amounts of data to the point where organizations no longer know what data they have or what is happening with that data. Organizations often struggle to get a clear picture of who is storing what, how much space it’s taking up, and whether certain data remains accessed or has become redundant. This can lead to inefficient use of storage resources, increased costs, and potential security risks as outdated or unnecessary information piles up. The lack of sophisticated tools within cloud drive platforms for analyzing and understanding storage usage can significantly complicate data governance and compliance efforts. 

The Economic Hurdles of Cloud Drive Pricing

The pricing structure of cloud drive solutions present a significant barrier to achieving both cost efficiency and operational flexibility. The sticker price is only the tip of the iceberg, especially for sprawling organizations like higher education institutions or large enterprises with unique challenges that make the standard pricing models of many cloud drive services less than ideal. Some of the main challenges are: 

  1. User-Based Pricing: Cloud drive platforms base their pricing on the number of users, an approach that quickly becomes problematic for large institutions and businesses. With staff and end user turnover, predicting the number of active users at any given time can be a challenge. This leads to overpaying for unused accounts or constantly adjusting pricing tiers to match the current headcount, both of which are administrative headaches. 
  2. The High Cost of Scaling: The initial promise of free storage tiers or low-cost entry points fades quickly as institutions hit their storage limits. Beyond these thresholds, prices can escalate dramatically, making budget planning a nightmare. This pricing model is particularly problematic for businesses where data is continually growing. As these data sets expand, the cost to store them grows exponentially, straining already tight budgets. 
  3. Limitations of Storage and Users: Most cloud drive platforms come with limits on storage capacity and a cap on the number of users. Upgrading to higher tier plans to accommodate more users or additional storage can be expensive. This often forces organizations into a cycle of constant renegotiation and plan adjustments. 

We’re Partial to an Alternative: Backblaze

While cloud drives excel in collaboration and file sharing, they often fall short in delivering the comprehensive data security and backup that businesses and organizations need. However, you are not without options. Cloud storage platforms like Backblaze B2 Cloud Storage secure business and educational data and budgets with immutable, set-and-forget, off-site backups and archives at a fraction of the cost of legacy providers. And, with Universal Data Migration, you can move large amounts of data from cloud drives or any other source to B2 Cloud Storage at no cost to you. 

For those who appreciate the user-friendly interfaces of services like Dropbox or Google Drive, Backblaze provides integrations that deliver comparable front-end experiences for ease of use without compromising on security. However, if your priority lies in securing data against threats like ransomware, you can integrate Backblaze B2 with popular backup tools including Veeam, Rubrik, and Commvault, for immutable, virtually air-gapped backups to defend against cyber threats. Backblaze also offers  free egress for up to three times your data stored—or unlimited free egress between many of our compute or CDN partners—which means you don’t have to worry about the costs of downloading data from the cloud when necessary. 

Beyond Cloud Drives: A Secure, Cost-Effective Approach to Data Storage

In summary, cloud drives offer robust file sharing and collaboration tools, yet businesses and organizations looking for a more secure, reliable, and cost-effective data storage solution have options. By recognizing the limitations of cloud drives and by leveraging the advanced capabilities of cloud backup services, organizations can not only safeguard their data against emerging threats but also ensure it remains accessible and within budget. 

The post What’s Wrong With Google Drive, Dropbox, and OneDrive? More Than You Think appeared first on Backblaze Blog | Cloud Storage & Cloud Backup.

Фрагмент 356

Post Syndicated from Тоест original https://www.toest.bg/fragment-356/

Фрагмент 356

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

Анакреонт
Превод от старогръцки Доротея Табакова


Може ли Анакреонт (VI–V в.пр.Хр.) да употреби думите „натрясквам се“, „гюрултия“ и израза „да го ударя на живот“? Възможно ли е този поет, роден в Теос (в Мала Азия) и живял известно време при двора на тирана Хипарх в Атина, да се нарече придворен поет? Може ли, най-сетне, поезията на Анакреонт да намери паралел в днешните кръчмарски песни?

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

За да изровим под тези пластове автентичния Анакреонт, трябва преди всичко да се смирим с невъзможностите. Достигналите до нас фрагменти не само са малко, но повечето от тях са песни, на които имаме само текста. Как бихме възприели класическата опера, ако разполагаме само с либретото?…

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

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


Според Екатерина Йосифова „четящият стихотворение сутрин… добре понася другите часове“ от деня. Убедени, че поезията държи умовете ни будни, а сърцата – отворени, в края на всеки месец ви предлагаме по едно стихотворение. Защото и в най-смутни времена доброто стихотворение е добра новина.

Modern web application authentication and authorization with Amazon VPC Lattice

Post Syndicated from Nigel Brittain original https://aws.amazon.com/blogs/security/modern-web-application-authentication-and-authorization-with-amazon-vpc-lattice/

When building API-based web applications in the cloud, there are two main types of communication flow in which identity is an integral consideration:

  • User-to-Service communication: Authenticate and authorize users to communicate with application services and APIs
  • Service-to-Service communication: Authenticate and authorize application services to talk to each other

To design an authentication and authorization solution for these flows, you need to add an extra dimension to each flow:

  • Authentication: What identity you will use and how it’s verified
  • Authorization: How to determine which identity can perform which task

In each flow, a user or a service must present some kind of credential to the application service so that it can determine whether the flow should be permitted. The credentials are often accompanied with other metadata that can then be used to make further access control decisions.

In this blog post, I show you two ways that you can use Amazon VPC Lattice to implement both communication flows. I also show you how to build a simple and clean architecture for securing your web applications with scalable authentication, providing authentication metadata to make coarse-grained access control decisions.

The example solution is based around a standard API-based application with multiple API components serving HTTP data over TLS. With this solution, I show that VPC Lattice can be used to deliver authentication and authorization features to an application without requiring application builders to create this logic themselves. In this solution, the example application doesn’t implement its own authentication or authorization, so you will use VPC Lattice and some additional proxying with Envoy, an open source, high performance, and highly configurable proxy product, to provide these features with minimal application change. The solution uses Amazon Elastic Container Service (Amazon ECS) as a container environment to run the API endpoints and OAuth proxy, however Amazon ECS and containers aren’t a prerequisite for VPC Lattice integration.

If your application already has client authentication, such as a web application using OpenID Connect (OIDC), you can still use the sample code to see how implementation of secure service-to-service flows can be implemented with VPC Lattice.

VPC Lattice configuration

VPC Lattice is an application networking service that connects, monitors, and secures communications between your services, helping to improve productivity so that your developers can focus on building features that matter to your business. You can define policies for network traffic management, access, and monitoring to connect compute services in a simplified and consistent way across instances, containers, and serverless applications.

For a web application, particularly those that are API based and comprised of multiple components, VPC Lattice is a great fit. With VPC Lattice, you can use native AWS identity features for credential distribution and access control, without the operational overhead that many application security solutions require.

This solution uses a single VPC Lattice service network, with each of the application components represented as individual services. VPC Lattice auth policies are AWS Identity and Access Management (IAM) policy documents that you attach to service networks or services to control whether a specified principal has access to a group of services or specific service. In this solution we use an auth policy on the service network, as well as more granular policies on the services themselves.

User-to-service communication flow

For this example, the web application is constructed from multiple API endpoints. These are typical REST APIs, which provide API connectivity to various application components.

The most common method for securing REST APIs is by using OAuth2. OAuth2 allows a client (on behalf of a user) to interact with an authorization server and retrieve an access token. The access token is intended to be presented to a REST API and contains enough information to determine that the user identified in the access token has given their consent for the REST API to operate on their data on their behalf.

Access tokens use OAuth2 scopes to indicate user consent. Defining how OAuth2 scopes work is outside the scope of this post. You can learn about scopes in Permissions, Privileges, and Scopes in the AuthO blog.

VPC Lattice doesn’t support OAuth2 client or inspection functionality, however it can verify HTTP header contents. This means you can use header matching within a VPC Lattice service policy to grant access to a VPC Lattice service only if the correct header is included. By generating the header based on validation occurring prior to entering the service network, we can use context about the user at the service network or service to make access control decisions.

Figure 1: User-to-service flow

Figure 1: User-to-service flow

The solution uses Envoy, to terminate the HTTP request from an OAuth 2.0 client. This is shown in Figure 1: User-to-service flow.

Envoy (shown as (1) in Figure 2) can validate access tokens (presented as a JSON Web Token (JWT) embedded in an Authorization: Bearer header). If the access token can be validated, then the scopes from this token are unpacked (2) and placed into X-JWT-Scope-<scopename> headers, using a simple inline Lua script. The Envoy documentation provides examples of how to use inline Lua in Envoy. Figure 2 – JWT Scope to HTTP shows how this process works at a high level.

Figure 2: JWT Scope to HTTP headers

Figure 2: JWT Scope to HTTP headers

Following this, Envoy uses Signature Version 4 (SigV4) to sign the request (3) and pass it to the VPC Lattice service. SigV4 signing is a native Envoy capability, but it requires the underlying compute that Envoy is running on to have access to AWS credentials. When you use AWS compute, assigning a role to that compute verifies that the instance can provide credentials to processes running on that compute, in this case Envoy.

By adding an authorization policy that permits access only from Envoy (through validating the Envoy SigV4 signature) and only with the correct scopes provided in HTTP headers, you can effectively lock down a VPC Lattice service to specific verified users coming from Envoy who are presenting specific OAuth2 scopes in their bearer token.

To answer the original question of where the identity comes from, the identity is provided by the user when communicating with their identity provider (IdP). In addition to this, Envoy is presenting its own identity from its underlying compute to enter the VPC Lattice service network. From a configuration perspective this means your user-to-service communication flow doesn’t require understanding of the user, or the storage of user or machine credentials.

The sample code provided shows a full Envoy configuration for VPC Lattice, including SigV4 signing, access token validation, and extraction of JWT contents to headers. This reference architecture supports various clients including server-side web applications, thick Java clients, and even command line interface-based clients calling the APIs directly. I don’t cover OAuth clients in detail in this post, however the optional sample code allows you to use an OAuth client and flow to talk to the APIs through Envoy.

Service-to-service communication flow

In the service-to-service flow, you need a way to provide AWS credentials to your applications and configure them to use SigV4 to sign their HTTP requests to the destination VPC Lattice services. Your application components can have their own identities (IAM roles), which allows you to uniquely identify application components and make access control decisions based on the particular flow required. For example, application component 1 might need to communicate with application component 2, but not application component 3.

If you have full control of your application code and have a clean method for locating the destination services, then this might be something you can implement directly in your server code. This is the configuration that’s implemented in the AWS Cloud Development Kit (AWS CDK) solution that accompanies this blog post, the app1, app2, and app3 web servers are capable of making SigV4 signed requests to the VPC Lattice services they need to communicate with. The sample code demonstrates how to perform VPC Lattice SigV4 requests in node.js using the aws-crt node bindings. Figure 3 depicts the use of SigV4 authentication between services and VPC Lattice.

Figure 3: Service-to-service flow

Figure 3: Service-to-service flow

To answer the question of where the identity comes from in this flow, you use the native SigV4 signing support from VPC Lattice to validate the application identity. The credentials come from AWS STS, again through the native underlying compute environment. Providing credentials transparently to your applications is one of the biggest advantages of the VPC Lattice solution when comparing this to other types of application security solutions such as service meshes. This implementation requires no provisioning of credentials, no management of identity stores, and automatically rotates credentials as required. This means low overhead to deploy and maintain the security of this solution and benefits from the reliability and scalability of IAM and the AWS Security Token Service (AWS STS) — a very slick solution to securing service-to-service communication flows!

VPC Lattice policy configuration

VPC Lattice provides two levels of auth policy configuration — at the VPC Lattice service network and on individual VPC Lattice services. This allows your cloud operations and development teams to work independently of each other by removing the dependency on a single team to implement access controls. This model enables both agility and separation of duties. More information about VPC Lattice policy configuration can be found in Control access to services using auth policies.

Service network auth policy

This design uses a service network auth policy that permits access to the service network by specific IAM principals. This can be used as a guardrail to provide overall access control over the service network and underlying services. Removal of an individual service auth policy will still enforce the service network policy first, so you can have confidence that you can identify sources of network traffic into the service network and block traffic that doesn’t come from a previously defined AWS principal.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/ app2TaskRole",
                    "arn:aws:iam::111122223333:role/ app3TaskRole",
                    "arn:aws:iam::111122223333:role/ EnvoyFrontendTaskRole",
                    "arn:aws:iam::111122223333:role/app1TaskRole"
                ]
            },
            "Action": "vpc-lattice-svcs:Invoke",
            "Resource": "*"
        }
    ]
}

The preceding auth policy example grants permissions to any authenticated request that uses one of the IAM roles app1TaskRole, app2TaskRole, app3TaskRole or EnvoyFrontendTaskRole to make requests to the services attached to the service network. You will see in the next section how service auth policies can be used in conjunction with service network auth policies.

Service auth policies

Individual VPC Lattice services can have their own policies defined and implemented independently of the service network policy. This design uses a service policy to demonstrate both user-to-service and service-to-service access control.

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "UserToService",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/ EnvoyFrontendTaskRole",
                ]
            },
            "Action": "vpc-lattice-svcs:Invoke",
            "Resource": "arn:aws:vpc-lattice:ap-southeast-2:111122223333:service/svc-123456789/*",
            "Condition": {
                "StringEquals": {
                    "vpc-lattice-svcs:RequestHeader/x-jwt-scope-test.all": "true"
                }
            }
        },
        {
            "Sid": "ServiceToService",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/ app2TaskRole"
                ]
            },
            "Action": "vpc-lattice-svcs:Invoke",
            "Resource": "arn:aws:vpc-lattice:ap-southeast-2:111122223333:service/svc-123456789/*"
        }
    ]
}

The preceding auth policy is an example that could be attached to the app1 VPC Lattice service. The policy contains two statements:

  • The first (labelled “Sid”: “UserToService”) provides user-to-service authorization and requires requiring the caller principal to be EnvoyFrontendTaskRole and the request headers to contain the header x-jwt-scope-test.all: true when calling the app1 VPC Lattice service.
  • The second (labelled “Sid”: “ServiceToService”) provides service-to-service authorization and requires the caller principal to be app2TaskRole when calling the app1 VPC Lattice service.

As with a standard IAM policy, there is an implicit deny, meaning no other principals will be permitted access.

The caller principals are identified by VPC Lattice through the SigV4 signing process. This means by using the identities provisioned to the underlying compute the network flow can be associated with a service identity, which can then be authorized by VPC Lattice service access policies.

Distributed development

This model of access control supports a distributed development and operational model. Because the service network auth policy is decoupled from the service auth policies, the service auth policies can be iterated upon by a development team without impacting the overall policy controls set by an operations team for the entire service network.

Solution overview

I’ve provided an aws-samples AWS CDK solution that you can deploy to implement the preceding design.

Figure 4: CDK deployable solution

Figure 4: CDK deployable solution

The AWS CDK solution deploys four Amazon ECS services, one for the frontend Envoy server for the client-to-service flow, and the remaining three for the backend application components. Figure 4 shows the solution when deployed with the internal domain parameter application.internal.

Backend application components are a simple node.js express server, which will print the contents of your request in JSON format and perform service-to-service calls.

A number of other infrastructure components are deployed to support the solution:

  • A VPC with associated subnets, NAT gateways and an internet gateway. Internet access is required for the solution to retrieve JSON Web Key Set (JWKS) details from your OAuth provider.
  • An Amazon Route53 hosted zone for handling traffic routing to the configured domain and VPC Lattice services.
  • An Amazon ECS cluster (two container hosts by default) to run the ECS tasks.
  • Four Application Load Balancers, one for frontend Envoy routing and one for each application component.
    • All application load balancers are internally facing.
    • Application component load balancers are configured to only accept traffic from the VPC Lattice managed prefix List.
    • The frontend Envoy load balancer is configured to accept traffic from any host.
  • Three VPC Lattice services and one VPC Lattice network.

The code for Envoy and the application components can be found in the lattice_soln/containers directory.

AWS CDK code for all other deployable infrastructure can be found in lattice_soln/lattice_soln_stack.py.

Prerequisites

Before you begin, you must have the following prerequisites in place:

  • An AWS account to deploy solution resources into. AWS credentials should be available to the AWS CDK in the environment or configuration files for the CDK deploy to function.
  • Python 3.9.6 or higher
  • Docker or Finch for building containers. If using Finch, ensure the Finch executable is in your path and instruct the CDK to use it with the command export CDK_DOCKER=finch
  • Enable elastic network interface (ENI) trunking in your account to allow more containers to run in VPC networking mode:
    aws ecs put-account-setting-default \
          --name awsvpcTrunking \
          --value enabled

[Optional] OAuth provider configuration

This solution has been tested using Okta, however any OAuth compatible provider will work if it can issue access tokens and you can retrieve them from the command line.

The following instructions describe the configuration process for Okta using the Okta web UI. This allows you to use the device code flow to retrieve access tokens, which can then be validated by the Envoy frontend deployment.

Create a new app integration

  1. In the Okta web UI, select Applications and then choose Create App Integration.
  2. For Sign-in method, select OpenID Connect.
  3. For Application type, select Native Application.
  4. For Grant Type, select both Refresh Token and Device Authorization.
  5. Note the client ID for use in the device code flow.

Create a new API integration

  1. Still in the Okta web UI, select Security, and then choose API.
  2. Choose Add authorization server.
  3. Enter a name and audience. Note the audience for use during CDK installation, then choose Save.
  4. Select the authorization server you just created. Choose the Metadata URI link to open the metadata contents in a new tab or browser window. Note the jwks_uri and issuer fields for use during CDK installation.
  5. Return to the Okta web UI, select Scopes and then Add scope.
  6. For the scope name, enter test.all. Use the scope name for the display phrase and description. Leave User consent as implicit. Choose Save.
  7. Under Access Policies, choose Add New Access Policy.
  8. For Assign to, select The following clients and select the client you created above.
  9. Choose Add rule.
  10. In Rule name, enter a rule name, such as Allow test.all access
  11. Under If Grant Type Is uncheck all but Device Authorization. Under And Scopes Requested choose The following scopes. Select OIDC default scopes to add the default scopes to the scopes box, then also manually add the test.all scope you created above.

During the API Integration step, you should have collected the audience, JWKS URI, and issuer. These fields are used on the command line when installing the CDK project with OAuth support.

You can then use the process described in configure the smart device to retrieve an access token using the device code flow. Make sure you modify scope to include test.allscope=openid profile offline_access test.all — so your token matches the policy deployed by the solution.

Installation

You can download the deployable solution from GitHub.

Deploy without OAuth functionality

If you only want to deploy the solution with service-to-service flows, you can deploy with a CDK command similar to the following:

(.venv)$ cdk deploy -c app_domain=<application domain>

Deploy with OAuth functionality

To deploy the solution with OAuth functionality, you must provide the following parameters:

  • jwt_jwks: The URL for retrieving JWKS details from your OAuth provider. This would look something like https://dev-123456.okta.com/oauth2/ausa1234567/v1/keys
  • jwt_issuer: The issuer for your OAuth access tokens. This would look something like https://dev-123456.okta.com/oauth2/ausa1234567
  • jwt_audience: The audience configured for your OAuth protected APIs. This is a text string configured in your OAuth provider.
  • app_domain: The domain to be configured in Route53 for all URLs provided for this application. This domain is local to the VPC created for the solution. For example application.internal.

The solution can be deployed with a CDK command as follows:

$ cdk deploy -c enable_oauth=True -c jwt_jwks=<URL for retrieving JWKS details> \
-c jwt_issuer=<URL of the issuer for your OAuth access tokens> \
-c jwt_audience=<OAuth audience string> \
-c app_domain=<application domain>

Security model

For this solution, network access to the web application is secured through two main controls:

  • Entry into the service network requires SigV4 authentication, enforced by the service network policy. No other mechanisms are provided to allow access to the services, either through their load balancers or directly to the containers.
  • Service policies restrict access to either user- or service-based communication based on the identity of the caller and OAuth subject and scopes.

The Envoy configuration strips any x- headers coming from user clients and replaces them with x-jwt-subject and x-jwt-scope headers based on successful JWT validation. You are then able to match these x-jwt-* headers in VPC Lattice policy conditions.

Solution caveats

This solution implements TLS endpoints on VPC Lattice and Application Load Balancers. The container instances do not implement TLS in order to reduce cost for this example. As such, traffic is in cleartext between the Application Load Balancers and container instances, and can be implemented separately if required.

How to use the solution

Now for the interesting part! As part of solution deployment, you’ve deployed a number of Amazon Elastic Compute Cloud (Amazon EC2) hosts to act as the container environment. You can use these hosts to test some of the flows and you can use the AWS Systems Manager connect function from the AWS Management console to access the command line interface on any of the container hosts.

In these examples, I’ve configured the domain during the CDK installation as application.internal, which will be used for communicating with the application as a client. If you change this, adjust your command lines to match.

[Optional] For examples 3 and 4, you need an access token from your OAuth provider. In each of the examples, I’ve embedded the access token in the AT environment variable for brevity.

Example 1: Service-to-service calls (permitted)

For these first two examples, you must sign in to the container host and run a command in your container. This is because the VPC Lattice policies allow traffic from the containers. I’ve assigned IAM task roles to each container, which are used to uniquely identify them to VPC Lattice when making service-to-service calls.

To set up service-to service calls (permitted):

  1. Sign in to the Amazon ECS console. You should see at least three ECS services running.
    Figure 5: Cluster console

    Figure 5: Cluster console

  2. Select the app2 service LatticeSolnStack-app2service…, then select the Tasks tab.
    Under the Container Instances heading select the container instance that’s running the app2 service.
    Figure 6: Container instances

    Figure 6: Container instances

  3. You will see the instance ID listed at the top left of the page.
    Figure 7: Single container instance

    Figure 7: Single container instance

  4. Select the instance ID (this will open a new window) and choose Connect. Select the Session Manager tab and choose Connect again. This will open a shell to your container instance.

The policy statements permit app2 to call app1. By using the path app2/call-to-app1, you can force this call to occur.

Test this with the following commands:

sh-4.2$ sudo bash
# docker ps --filter "label=webserver=app2"
CONTAINER ID   IMAGE                                                                                                                                                                           COMMAND                  CREATED         STATUS         PORTS     NAMES
<containerid>  111122223333.dkr.ecr.ap-southeast-2.amazonaws.com/cdk-hnb659fds-container-assets-111122223333-ap-southeast-2:5b5d138c3abd6cfc4a90aee4474a03af305e2dae6bbbea70bcc30ffd068b8403   "sh /app/launch_expr…"   9 minutes ago   Up 9minutes             ecs-LatticeSolnStackapp2task4A06C2E4-22-app2-container-b68cb2ffd8e4e0819901
# docker exec -it <containerid> curl localhost:80/app2/call-to-app1

You should see the following output:

sh-4.2$ sudo bash
root@ip-10-0-152-46 bin]# docker ps --filter "label=webserver=app2"
CONTAINER ID   IMAGE                                                                                                                                                                           COMMAND                  CREATED         STATUS         PORTS     NAMES
cd8420221dcb   111122223333.dkr.ecr.ap-southeast-2.amazonaws.com/cdk-hnb659fds-container-assets-111122223333-ap-southeast-2:5b5d138c3abd6cfc4a90aee4474a03af305e2dae6bbbea70bcc30ffd068b8403   "sh /app/launch_expr…"   9 minutes ago   Up 9minutes             ecs-LatticeSolnStackapp2task4A06C2E4-22-app2-container-b68cb2ffd8e4e0819901
[root@ip-10-0-152-46 bin]# docker exec -it cd8420221dcb curl localhost:80/app2/call-to-app1
{
  "path": "/",
  "method": "GET",
  "body": "",
  "hostname": "app1.application.internal",
  "ip": "10.0.159.20",
  "ips": [
    "10.0.159.20",
    "169.254.171.192"
  ],
  "protocol": "http",
  "webserver": "app1",
  "query": {},
  "xhr": false,
  "os": {
    "hostname": "ip-10-0-243-145.ap-southeast-2.compute.internal"
  },
  "connection": {},
  "jwt_subject": "** No user identity present **",
  "headers": {
    "x-forwarded-for": "10.0.159.20, 169.254.171.192",
    "x-forwarded-proto": "http",
    "x-forwarded-port": "80",
    "host": "app1.application.internal",
    "x-amzn-trace-id": "Root=1-65499327-274c2d6640d10af4711aab09",
    "x-amzn-lattice-identity": "Principal=arn:aws:sts::111122223333:assumed-role/LatticeSolnStack-app2TaskRoleA1BE533B-3K7AJnCr8kTj/ddaf2e517afb4d818178f9e0fef8f841; SessionName=ddaf2e517afb4d818178f9e0fef8f841; Type=AWS_IAM",
    "x-amzn-lattice-network": "SourceVpcArn=arn:aws:ec2:ap-southeast-2:111122223333:vpc/vpc-01e7a1c93b2ea405d",
    "x-amzn-lattice-target": "ServiceArn=arn:aws:vpc-lattice:ap-southeast-2:111122223333:service/svc-0b4f63f746140f48e; ServiceNetworkArn=arn:aws:vpc-lattice:ap-southeast-2:111122223333:servicenetwork/sn-0ae554a9bc634c4ec; TargetGroupArn=arn:aws:vpc-lattice:ap-southeast-2:111122223333:targetgroup/tg-05644f55316d4869f",
    "x-amzn-source-vpc": "vpc-01e7a1c93b2ea405d"
  }

Example 2: Service-to-service calls (denied)

The policy statements don’t permit app2 to call app3. You can simulate this in the same way and verify that the access isn’t permitted by VPC Lattice.

To set up service-to-service calls (denied)

You can change the curl command from Example 1 to test app2 calling app3.

# docker exec -it cd8420221dcb curl localhost:80/app2/call-to-app3
{
  "upstreamResponse": "AccessDeniedException: User: arn:aws:sts::111122223333:assumed-role/LatticeSolnStack-app2TaskRoleA1BE533B-3K7AJnCr8kTj/ddaf2e517afb4d818178f9e0fef8f841 is not authorized to perform: vpc-lattice-svcs:Invoke on resource: arn:aws:vpc-lattice:ap-southeast-2:111122223333:service/svc-08873e50553c375cd/ with an explicit deny in a service-based policy"
}

[Optional] Example 3: OAuth – Invalid access token

If you’ve deployed using OAuth functionality, you can test from the shell in Example 1 that you’re unable to access the frontend Envoy server (application.internal) without a valid access token, and that you’re also unable to access the backend VPC Lattice services (app1.application.internal, app2.application.internal, app3.application.internal) directly.

You can also verify that you cannot bypass the VPC Lattice service and connect to the load balancer or web server container directly.

sh-4.2$ curl -v https://application.internal
Jwt is missing

sh-4.2$ curl https://app1.application.internal
AccessDeniedException: User: anonymous is not authorized to perform: vpc-lattice-svcs:Invoke on resource: arn:aws:vpc-lattice:ap-southeast-2:111122223333:service/svc-03edffc09406f7e58/ because no network-based policy allows the vpc-lattice-svcs:Invoke action

sh-4.2$ curl https://internal-Lattic-app1s-C6ovEZzwdTqb-1882558159.ap-southeast-2.elb.amazonaws.com
^C

sh-4.2$ curl https://10.0.209.127
^C

[Optional] Example 4: Client access

If you’ve deployed using OAuth functionality, you can test from the shell in Example 1 to access the application with a valid access token. A client can reach each application component by using application.internal/<componentname>. For example, application.internal/app2. If no component name is specified, it will default to app1.

sh-4.2$ curl -v https://application.internal/app2 -H "Authorization: Bearer $AT"

  "path": "/app2",
  "method": "GET",
  "body": "",
  "hostname": "app2.applicatino.internal",
  "ip": "10.0.128.231",
  "ips": [
    "10.0.128.231",
    "169.254.171.195"
  ],
  "protocol": "https",
  "webserver": "app2",
  "query": {},
  "xhr": false,
  "os": {
    "hostname": "ip-10-0-151-56.ap-southeast-2.compute.internal"
  },
  "connection": {},
  "jwt_subject": "Call made from user identity [email protected]",
  "headers": {
    "x-forwarded-for": "10.0.128.231, 169.254.171.195",
    "x-forwarded-proto": "https",
    "x-forwarded-port": "443",
    "host": "app2.applicatino.internal",
    "x-amzn-trace-id": "Root=1-65c431b7-1efd8282275397b44ac31d49",
    "user-agent": "curl/8.5.0",
    "accept": "*/*",
    "x-request-id": "7bfa509c-734e-496f-b8d4-df6e08384f2a",
    "x-jwt-subject": "[email protected]",
    "x-jwt-scope-profile": "true",
    "x-jwt-scope-offline_access": "true",
    "x-jwt-scope-openid": "true",
    "x-jwt-scope-test.all": "true",
    "x-envoy-expected-rq-timeout-ms": "15000",
    "x-amzn-lattice-identity": "Principal=arn:aws:sts::111122223333:assumed-role/LatticeSolnStack-EnvoyFrontendTaskRoleA297DB4D-OwD8arbEnYoP/827dc1716e3a49ad8da3fd1dd52af34c; PrincipalOrgID=o-123456; SessionName=827dc1716e3a49ad8da3fd1dd52af34c; Type=AWS_IAM",
    "x-amzn-lattice-network": "SourceVpcArn=arn:aws:ec2:ap-southeast-2:111122223333:vpc/vpc-0be57ee3f411a91c7",
    "x-amzn-lattice-target": "ServiceArn=arn:aws:vpc-lattice:ap-southeast-2:111122223333:service/svc-024e7362a8617145c; ServiceNetworkArn=arn:aws:vpc-lattice:ap-southeast-2:111122223333:servicenetwork/sn-0cbe1c113be4ae54a; TargetGroupArn=arn:aws:vpc-lattice:ap-southeast-2:111122223333:targetgroup/tg-09caa566d66b2a35b",
    "x-amzn-source-vpc": "vpc-0be57ee3f411a91c7"
  }
}

This will fail when attempting to connect to app3 using Envoy, as we’ve denied user to service calls on the VPC Lattice Service policy

sh-4.2$ https://application.internal/app3 -H "Authorization: Bearer $AT"

AccessDeniedException: User: arn:aws:sts::111122223333:assumed-role/LatticeSolnStack-EnvoyFrontendTaskRoleA297DB4D-OwD8arbEnYoP/827dc1716e3a49ad8da3fd1dd52af34c is not authorized to perform: vpc-lattice-svcs:Invoke on resource: arn:aws:vpc-lattice:ap-southeast-2:111122223333:service/svc-06987d9ab4a1f815f/app3 with an explicit deny in a service-based policy

Summary

You’ve seen how you can use VPC Lattice to provide authentication and authorization to both user-to-service and service-to-service flows. I’ve shown you how to implement some novel and reusable solution components:

  • JWT authorization and translation of scopes to headers, integrating an external IdP into your solution for user authentication.
  • SigV4 signing from an Envoy proxy running in a container.
  • Service-to-service flows using SigV4 signing in node.js and container-based credentials.
  • Integration of VPC Lattice with ECS containers, using the CDK.

All of this is created almost entirely with managed AWS services, meaning you can focus more on security policy creation and validation and less on managing components such as service identities, service meshes, and other self-managed infrastructure.

Some ways you can extend upon this solution include:

  • Implementing different service policies taking into consideration different OAuth scopes for your user and client combinations
  • Implementing multiple issuers on Envoy to allow different OAuth providers to use the same infrastructure
  • Deploying the VPC Lattice services and ECS tasks independently of the service network, to allow your builders to manage task deployment themselves

I look forward to hearing about how you use this solution and VPC Lattice to secure your own applications!

Additional references

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

Nigel Brittain

Nigel Brittain

Nigel is a Security, Risk, and Compliance consultant for AWS ProServe. He’s an identity nerd who enjoys solving tricky security and identity problems for some of our biggest customers in the Asia Pacific Region. He has two cavoodles, Rocky and Chai, who love to interrupt his work calls, and he also spends his free time carving cool things on his CNC machine.

По буквите: Музил, Улф, Ни Гриъфа

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

„Лутанията на възпитаника Тьорлес“ от Роберт Музил

По буквите: Музил, Улф, Ни Гриъфа

превод от немски Любомир Илиев, София: изд. „Атлантис“, 2023

Смятате ли, че думата „личност“ е старомодна?
Ако да, защо?
Ако не, кога за последен път я използвахте в изречение?

Думата bildungsroman се превежда на български като „образователен роман“,

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

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

В билдунгсромана често се разглеждат теми от морално естество,

четем в речника „Мериам-Уебстър“. Не е много лесно за филмиране – какъв наглед имаме на човек, който стои и разсъждава? Старомоден жанр.
В най-хубавия смисъл на думата.

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

Възпитаникът Тьорлес от едноименния роман на Музил обаче има точно такъв проблем. Той има в себе си нещо, което не може да си обясни – нещо, което не би трябвало да съществува, както не би трябвало да съществуват имагинерните числа в математиката, корен квадратен от отрицателно число. Докато учи в интернат за синовете на аристокрацията (също като своя автор), той се оказва замесен в ситуация на човешко падение. И въпреки че много добре знае как да постъпи, той не го прави, а се оставя да бъде отначало свидетел, а после съучастник в едно издевателство, защото…

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

Става за секунди.
И ти би направил същото.

И ето тук е онова, с което романът става болезнено актуален. Защото Музил пита

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

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

Колко време „аз“ ще бъда „аз“?

Или картината просто ще се смачка, дойде ли време да пасне на оставащото ѝ пространство? И когато това се случи, ще имаме ли езика, с който да го изразим сами пред себе си?

По буквите: Музил, Улф, Ни Гриъфа

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

„Мигове от живота“ от Вирджиния Улф

превод от английски Иглика Василева, София: изд. „Кръг“, 2023

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

Събраните в „Мигове от живота“ мемоарни текстове на Вирджиния Улф започват през 1907-ма, когато писателката е на 21 години, и свършват в края на кариерата ѝ; те са автобиографични не само в прекия смисъл – като регистрират определени събития от детството в Кенсингтън до средата в Блумсбъри, но и

лутанията на перото, изковаването на стила, възпитанието на езика. И на погледа.

Какво дели ранните мемоари на Вирджиния Улф в „Спомени“ от късните рефлексии в „Щрихи от миналото“? Първо, разбира се, възрастта и опитността на авторката – Спомените са ранен, а Щрихите – късен текст. Второ, адресатът – Спомените са писани за сина на сестра ѝ Ванеса, Щрихите имат за цел съхраняването на личната памет.

Впрочем интересно е, че и първите ѝ мемоари също не се появяват сами по себе си – на места те се оттласкват от мемоарите на баща ѝ Лесли Стивън от неговата „Мавзолейна книга“, която според Вирджиния никак не улавя образа на майка ѝ. Може би затова тя се захваща да рисува портрет, да обобщава, да окръгля, да осмисля. Прави го все още с езика на класическия роман от ХIХ век – език, особено подходящ за вместване на широката карта на опита в ограниченото пространство на съзнанието, както би казал Тьорлес.

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

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

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

„Щрихи от миналото“ е съвсем друга история. И не е само защото зрялата писателка вече владее цялата си писмовна мощ. Защото езикът, в който се отлага това минало, е по-близък до мисълта, до вътрешния монолог, отколкото до разказването на глас; трептящ, изпълнен с движение, импресионистичен в опитите си да улови мимолетното в целия му неочакван размах, емоционалната сила на случайното, което съставя тъканта на образа – десена на майчината рокля, играта на светлината, масичката… Масичката.

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

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

страхувам се да пусна аналитици и коментатори на движението Me too в нейната „собствена стая“…

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

По буквите: Музил, Улф, Ни Гриъфа

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

Ето една от причините повечето мемоарни книги да са неуспешни, казва Вирджиния Улф.

Те изпускат човека, на когото са се случили нещата.

И ето какъв урок крие тази книга – не просто за мемоаристите, защото всеки е мемоарист, макар и наум. Как да разказваме живота си, без да изпускаме човека, на когото са се случили нещата?

„Призрак в гърлото“ от Дерън Ни Гриъфа

превод от английски Мария Змийчарова, София: изд. „Аквариус“, 2024

Дерън Ни Гриъфа като че ли си е поставила обратната цел – ако може, да разкаже история за себе си така, сякаш самата тя изобщо, ама изобщо не присъства там.

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

Тя изглежда изличена от нуждата, от принудата; но в същото време отказва помощ и сама създава свръхзаетостта, която ѝ позволява да отсъства от себе си. А когато заявява своята неутилитарна страст, тя се хвърля да разучава живота на поетесата от ХVIII век Айлийн Дъв – сякаш отново се крие зад друг, не заявява значимост за себе си, а за жените по принцип, за тази конкретна жена. Тя изтрива себе си дори в моментите, когато се бунтува срещу изтриването на женските имена от историята; дори в моментите, в които се опитва да възстанови справедливостта, като остави в историята само тях. Майката на Айлийн, сестра ѝ, самата нея.

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

Присъствието и отсъствието тук имат много особен, телесен аспект. Както и всичко останало в тази книга.

Разказвачката може привидно да отсъства от собствената си история, но тялото ѝ е там: то ражда, гледа деца, отмята задачи и произвежда кърма, за да я превърне в карма – като я изпрати на млечни банки в помощ на чужди бебета в нужда. Докато самата героиня не ражда дете, което за малко не губи, докато не ѝ се налага да изцежда кърма за своето бебе в кувьоз. Заедно с други жени – в стая, наречена от самите тях „доилнята“.

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

По буквите: Музил, Улф, Ни Гриъфа

Дерън Ни Гриъфа обаче вижда тялото като носител на историята.

Тя казва, че поемата, по чиито следи е тръгнала героинята ѝ, е била записана в женски тела (докато в скрипториумите се е пазела само литературата, писана от мъже). Завещавайки тялото си на същия медицински университет, където някога е учила, тя планира да татуира на него поемата на Айлийн Дъв – да я татуира в бяло, сякаш е изписана с мляко.

С други думи, тази история е много по-сложна, отколкото изглежда. Героинята на Дерън Ни Гриъфа уж иронизира свещения статус на „майчиното мляко“, но все се връща към него; уж се самоизличава в името на семейството, но всъщност едва споменава мъжа и децата си; уж намира време за себе си, но всъщност и там не застава в центъра на това време, а поставя на свое място поетесата, от която се възхищава. Уж отвоюва от ежедневието си време за дух, а отново се връща към тялото.

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


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

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

Миграция на хостинга

Post Syndicated from Боян Юруков original https://yurukov.net/blog/2024/hosting/

Поради редица причини се налага да мигрирам сървъра си. Оставам отново на Superhosting, но трябва да променя структурата на сайтовете си и да пресъздам някои като част от миграция. За последно направих това преди 12 години когато Superhosting ме подпомогнаха. Това означава, че блогът, всички сайтове с визуализации и отворени данни, сайтът за безследно изчезналите и други ще претърпят спиране за известно време. Ще оставя GovAlert за последен, тъй като е най-сложен.

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

The post Миграция на хостинга first appeared on Блогът на Юруков.

AIs Hacking Websites

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2024/02/ais-hacking-websites.html

New research:

LLM Agents can Autonomously Hack Websites

Abstract: In recent years, large language models (LLMs) have become increasingly capable and can now interact with tools (i.e., call functions), read documents, and recursively call themselves. As a result, these LLMs can now function autonomously as agents. With the rise in capabilities of these agents, recent work has speculated on how LLM agents would affect cybersecurity. However, not much is known about the offensive capabilities of LLM agents.

In this work, we show that LLM agents can autonomously hack websites, performing tasks as complex as blind database schema extraction and SQL injections without human feedback. Importantly, the agent does not need to know the vulnerability beforehand. This capability is uniquely enabled by frontier models that are highly capable of tool use and leveraging extended context. Namely, we show that GPT-4 is capable of such hacks, but existing open-source models are not. Finally, we show that GPT-4 is capable of autonomously finding vulnerabilities in websites in the wild. Our findings raise questions about the widespread deployment of LLMs.

Научни новини: генетични редакции, светещи цветя и пътешествия из Слънчевата система

Post Syndicated from Михаил Ангелов original https://www.toest.bg/nauchni-novini-genetichni-redaktsii-sveteshti-tsvetya/

Европа открехва врата за генетичните редакции

Научни новини: генетични редакции, светещи цветя и пътешествия из Слънчевата система

В средата на миналата година в Европа се завъртя на по-високи обороти дебатът за генетичните редакции с помощта на новите геномни техники (НГТ) и в началото на този месец той най-накрая стигна до Европейския парламент. С 307 гласа за (нито един от представител на България), 263 против и 41 въздържали се беше прието предложението да се въведат две категории генетично модифицирани организми. В първата категория ще попадат растенията, при които промените могат да се получат по естествен път в природата или чрез методите на традиционната селекция, и за тях ще отпаднат тежките процедури за регистрация, прилагани в момента. Потребителите ще бъдат осведомявани чрез поставяне на информация върху продуктите, които ги съдържат – промяна в сравнение с първоначалното предложение от 2019 г., в което бе заложено да се обозначават само семената. Също така растенията няма да могат да бъдат сертифицирани като „органични“. Във втората категория ще бъдат оставени растения с по-сложни редакции, както и създадени с предишното поколение методи за генетични манипулации.

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

Депутатите смятат, че патентите върху растенията, получени чрез НГТ, трябва да бъдат забранени, за да се избегнат правни диспути и да се улесни достъпът до тях както на биотехнологичния, така и на земеделския сектор. Също така се изисква отчет за влиянието на новите правила още през 2025 г. За съжаление, не е ясно дали тази забрана може да бъде въведена лесно. В момента всички сортове, получени чрез традиционните методи за селекция (дефинирани като „биологични процеси“), не могат да бъдат патентовани, но генетично манипулираните могат, тъй като са резултат от технологичен процес. Това означава, че за да отпаднат патентите, ще трябва да се променя и съществуващото законодателство в тази област. Към средата на миналата година в Европейското патентно ведомство са били регистрирани около 3100 патента за генетично модифицирани растения. Според организацията успеваемостта за получаване на такъв патент е около 35%, а средната достига почти 60%.

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

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

Генетично манипулирани организми в ръцете на потребителите

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

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

Иновацията идва от екип руски учени, които разгадават биосинтетичния път в гъбата Neonothopanus nambi в края на 2018 г. Те установяват, че той е тясно свързан с кафеената киселина, намираща се и в растенията, и че за прехвърляне на процеса в тях са нужни само четири гена. Подходът се оказва значително по-ефективен – растенията светят по-ярко, а освен това е безвреден за приемните организми, тъй като се вписва в съществуващи биохимични пътища. Година по-късно учените оповестяват успешното създаване на светещ тютюн, а в началото на годината излиза и публикация, представяща оптимизация, която увеличава силата на светлината до два пъти.

Разработката може да се използва за изучаването на различни биологични процеси като биосензор – светлината може да се индуцира само в определени случаи и така да се проследяват биологични пътища. Работата им има и комерсиален резултат – биолуминесцентна петуния, наречена Светулка (Firefly Petunia) и предлагана от компанията LightBio. След като бе одобрена за продажба и отглеждане в САЩ в края на миналата година, тя вече е достъпна за предварителна поръчка.

Другата иновация е по-практична и е под формата на лилав домат. Тъмнолилавите домати не са новост – с помощта на класическата селекция са създадени редица такива сортове, но при повечето от тях наситеният цвят е само по повърхността, а месестата им част е в оттенък на червеното. Лилавите домати, предлагани от Norfolk Healthy Produce, са изцяло оцветени и са единственият такъв сорт, тъй като технологията за създаването им е патентована.

Научната основа е публикувана през 2008 г. и се базира на вмъкването на два гена от декоративното растение кученце (Antirrhinum majus), които отговарят за синтеза на лилав пигмент – антоциан. С изключение на тези два гена доматите не се различават по нищо от конвенционалните си роднини и сортът дори не е хибриден. Това означава, че от него може да се събират семена, които да се засяват на следващата година, и не е нужно да се купуват нови. Разработката е резултат от сътрудничеството на няколко европейски екипа (от Англия, Италия, Нидерландия и Германия) и е получила европейско финансиране, но към момента семената не са достъпни на нашия пазар поради съществуващите регулации.

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

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

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

Грешка в превода

При изстрелването на „Вояджър 1“ през 1977 г. учените от НАСА не подозират, че мисията му ще продължи повече от 40 години. Основната програма е планирана до края на 1980 г., когато той трябва да премине покрай Сатурн и някои от луните му. Благодарение на шеметната си скорост от 17 км/сек в началото на 1998 г. той стана най-отдалечената от Земята космическа сонда, изпреварвайки по-рано изстреляния „Пионер 10“.

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

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

Според НАСА повредата е в един от бордовите компютри. Една от неговите задачи е да изпраща телеметрия към Земята, което в момента не може да се осъществи, а това прави откриването на проблема изключително трудно, но има редица хипотези какъв може да е той. Една от тях е, че се касае за грешка в паметта на компютъра, която води до объркване на записаните в нея данни; друга възможност е просто да има механична повреда в някоя от частите. По-интересна (но и по-малко вероятна) е възможността за „обръщане на бит“ – това може да бъде причинено от заредена космическа частица, която удря паметта в точно определено място, карайки 0 да премине в 1 или обратното. Допълнителна трудност за установяване на случващото се е и разстоянието до апарата – 22 часа и 34 светлинни минути. За достигането на всяка команда до апарата е необходимо това време и съответно още толкова за получаване на обратната информация. Разбира се, вече е опитан добрият стар трик с рестартирането, но това не е помогнало.

Въпреки че опитите за възстановяване на комуникацията с „Вояджър 1“ продължават, скоро може да се наложи да приемем, че повторна връзка с него няма да има. Добрата новина е, че той има апарат близнак („Вояджър 2“), който също прекоси хелиопаузата, но шест години по-късно, въпреки че е изстрелян с две седмици по-рано от „брат“ си. Причината е в различните орбити, по които се движат двете сонди. Комуникацията с него все още е възможна и това е известно успокоение за учените, които могат да продължат да изучават междузвездното пространство.

По следите на пътешествениците

„Нови хоризонти“ (New Horizons) може да се нарече съвременният последовател на апаратите „Вояджър“. Изстрелян през 2006 г., след 9-годишно пътешествие, преминало покрай Юпитер и Сатурн, той прелита близо до планетата джудже Плутон и луната ѝ Харон, давайки ни първите детайлни снимки на тяхната повърхност. Заснети са и по-малките спътници на Плутон – Стикс, Никс, Керберос и Хидра.

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

Нови данни, получени от инструмент, броящ и измерващ частиците прах, сочат, че поясът на Кайпер всъщност е много по-обширен. До момента се предполагаше, че той се простира до около 50 AU (AU – астрономически единици, средното разстояние между Земята и Слънцето, или приблизително 150 млн. км). Но изглежда, че той достига 80 AU или дори още по-далеч. За да подкрепят данните, получени от апарата, астрономите използват и телескопски наблюдения, за да търсят обекти, чийто сблъсък може да е причина за образуването на този прах. Сред предложените хипотези е частиците да са от лед, който все още не се е разсеял, или пък този прах да е избутан от слънчевия вятър по-далеч, отколкото се смята за възможно.

Учените са развълнувани от откритието, тъй като това може да доведе до установяването на нова група обекти в Слънчевата система. Към момента мисията е удължена до напускането на Пояса на Кайпер, което се очаква между 2028 и 2029 г. Но най-вероятно научната работа с апарата ще продължи и ще започнат наблюдения на района около хелиопаузата, а може би и след нея. Според данните в момента наличната енергия ще е достатъчна за нормалната му работа за още поне 15 години, така че, ако не стане нещо непредвидено, апаратът ще продължи да ни съобщава какво се случва в периферията на Слънчевата система.

Security updates for Friday

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

Security updates have been issued by Debian (chromium, imagemagick, and iwd), Fedora (chromium, firefox, and pdns-recursor), Mageia (nodejs and yarnpkg), Red Hat (firefox, postgresql, and postgresql:15), and SUSE (bind, mozilla-nss, openssh, php-composer2, python-pycryptodome, python-uamqp, python310, and tiff).

Stenberg: DISPUTED, not REJECTED

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

The Curl project has previously had problems with
CVEs issued for things that are not security issues. On February 21,
Daniel Stenberg
wrote
about the Curl project’s most recent issue with the CVE system, saying:

I keep insisting that the CVE system is broken and that the database of
existing CVEs hosted by MITRE (and imported into lots of other
databases) is full of questionable content and plenty of downright
lies. A primary explanation for us being in this ugly situation is that
it is simply next to impossible to get rid of invalid CVEs.