Scale and deliver game streaming experiences with Amazon GameLift Streams

Since 2016, game developers have been using Amazon GameLift to power games with dedicated, scalable server hosting capable of supporting 100M concurrent users (CCU) in a single game. Responding to customer requests for additional managed compute capabilities beyond game servers, we’re announcing Amazon GameLift Streams — a new capability in Amazon GameLift to help game publishers build and deliver global, direct-to-player game streaming experiences. As part of this announcement, existing capabilities in Amazon GameLift are now known as Amazon Gamelift Servers, continuing to serve hundreds of developers including industry leaders Ubisoft, Zynga, WB Games, and Meta.

Amazon GameLift Streams helps you deliver game streaming experiences at up to 1080p resolution and 60 frames per second across devices including iOS, Android, and PCs. In just a few clicks, you can deploy games built with a variety of 3D engines, without modifications, onto fully-managed cloud-based GPU instances and stream games through the AWS Network Backbone directly to any device with a web browser.

Amazon GameLift Streams helps you distribute your games direct-to-players, without having to invest millions of dollars in infrastructure and software development to build your own service. Players can start gaming in just a few seconds, without waiting for downloads or installs.

Here’s a quick look at Amazon GameLift Streams:

You can use the Amazon GameLift Streams SDK to integrate with your existing identity services, storefronts, game launchers, websites, or newly created experiences such as playable demos, and begin streaming to players. You can monitor active streams and usage from within the AWS console, and seamlessly scale your streaming infrastructure across multiple regions on the AWS global network to reach more players around the world with low-latency gameplay. Amazon GameLift Streams is the only solution that enables you to upload your game content onto fully-managed GPU instances in the cloud and start streaming in minutes, with little or no modification of your code.

Players can access AAA, AA, and indie games on PCs, phones, tablets, smart TVs, or any device with a WebRTC-enabled browser. Amazon GameLift Streams allows you to dynamically scale streaming capacity to match player demand, ensuring you only pay for what you need. You can choose from a selection of GPU instances that offer a range of price performance, and rely on the built-in security of AWS to protect your intellectual property.

Let’s get started
To begin using Amazon GameLift Streams, I need an existing Amazon GameLift Streams implementation. I prepare my game files by following the Amazon GameLift Streams documentation.

Then, I’ll upload my files to Amazon Simple Storage Service (Amazon S3). I can use the AWS Management Console or this AWS Command Line Interface (AWS CLI) command to upload my game files:

aws s3 sync my-game-folder s3://my-bucket/my-game-path

The next step is to create an Amazon GameLift Streams application. I navigate to the Amazon GameLift Streams console. This is how the new AWS GameLift Streams console looks:

On the Amazon GameLift Streams console, I choose Create application.

In the Runtime settings, I select the runtime environment for my game application.

Then, I need to select my S3 bucket and folder from the previous step, then set the path to my game’s main executable.

I also have the option to configure the automatic transfer of application-generated log files into a S3 bucket. After I’m done with this configuration, I choose Create application.

After my application setup is completed, I need to create a stream group, a collection of compute resources to run and stream the application. I navigate to Stream groups in the left navigation pane of the Amazon GameLift Streams console.

On this page, I define a description for my new stream group.

Here, I select the capabilities and pricing of my stream group. Since my application is using Microsoft Windows Server 2022 Base, I make sure to select one of the compatible stream classes.

Next, I need to link with the application I created in the previous step.

On the Configure stream settings page, I can configure additional locations for my stream group, bringing in additional capacity from other AWS Regions. There are two capacity options that I can choose, always-on capacity and on-demand capacity. The default capacity setting provides one streaming slot, which is sufficient for initial testing.

Then, I need to review my configuration and choose Create stream group.

With stream groups configured, I can test my game streaming. I navigate to the Test stream page on the console to launch my application as a stream. I select this stream group and select Choose.

On the next page, I can configure any command line arguments or environment variables to run my application. I don’t need any extra configurations and choose Test stream.

Then, I can see that my application is running as expected. I can also interact with my game. This test helps me verify that my game works properly in streaming mode and serves as an initial proof of concept.

After I’ve confirmed everything works, I can integrate the Web SDK into my own website. The Web SDK and AWS Software Development Kit (AWS SDK) with Amazon GameLift Streams APIs help me to embed game streams, similar to what I tested in the console, into any web page I manage.

Additional things to know

  • Availability – Amazon GameLift Streams is currently available in the following AWS Regions: US East (Ohio), US West (Oregon), Asia Pacific (Tokyo), Europe (Frankfurt). Additional streaming capacity can also be configured in US East (N. Virginia) and Europe (Ireland).
  • Supported operating systems – Amazon GameLift Streams supports games running on Windows, Linux, or Proton, offering easy onboarding and compatibility with game binaries. Learn more on Choosing a configuration in Amazon GameLift Streams documentation page.
  • Programmatic access – This new capability provides comprehensive tools including service APIs, client streaming SDKs, and AWS CLI for content packaging.

Now available
Explore how to streamline your game distribution using Amazon GameLift Streams. Learn more about getting started on the Amazon GameLift Streams page.

Happy streaming!

Donnie

How is the News Blog doing? Take this 1 minute survey!

(This survey is hosted by an external company. AWS handles your information as described in the AWS Privacy Notice. AWS will own the data gathered via this survey and will not share the information collected with survey respondents.)

from AWS News Blog https://ift.tt/yX2Yjxi
via IFTTT

Silk Typhoon shifted to specifically targeting IT management companies

The Chinese state-backed threat group Silk Typhoon shifted tactics in late 2024 to broaden access and enable follow-on attacks against downstream customers of its initial targets, Microsoft Threat Intelligence said in a blog released Wednesday. 

The Chinese espionage group, which is also known as APT27, has abused stolen API keys and credentials for privileged access management, cloud-based application providers and data management companies to intrude networks operated by state and local governments and organizations in the IT sector.

“After successfully compromising a victim, Silk Typhoon uses the stolen keys and credentials to infiltrate customer networks where they can then abuse a variety of deployed applications, including Microsoft services and others, to achieve their espionage objectives,” Ann Johnson, corporate vice president at Microsoft Security, said in a LinkedIn post.

Silk Typhoon has performed reconnaissance aided by using stolen API keys and leaked corporate passwords found on publicly-accessible sites like GitHub. This has allowed them to access administrative accounts and steal data from edge devices.

Microsoft Threat Intelligence said it observed Silk Typhoon gained access through password-spray attacks, zero-day exploits, and unpatched third-party services. Recently, the threat group exploited a critical, zero-day vulnerability — CVE-2025-0282 — in Ivanti Pulse Connect VPN.

Silk Typhoon has primarily set its sights on gaining access to IT providers, identity management platforms, privileged access management and remote monitoring and management tools, researchers said. 

The group moves from on-premises to cloud environments by stealing Active Directory credentials, accessing passwords in key vaults, and targeting Entra Connect servers, a tool organizations use to synchronize on-premises Active Directory databases with Entra ID, to escalate privileges. 

Microsoft Threat Intelligence also observed Silk Typhoon abusing OAuth applications with administrative permissions to steal email, OneDrive and SharePoint data via MSGraph. 

The threat group’s technical prowess, displayed by its ability to pivot quickly and exploit vulnerabilities with efficiency, gives it “one of the largest targeting footprints among Chinese threat actors,” Microsoft Threat Intelligence said in the blog.

Researchers link Silk Typhoon to attacks targeting IT services, managed service providers, and organizations in the energy, healthcare, higher education, legal, defense and government sectors.

Microsoft released its latest research on Silk Typhoon as a flurry of unsealed indictments charged 12 Chinese nationals for their alleged involvement in a vast espionage campaign, including multiple attacks on U.S. government agencies. Two alleged members of Silk Typhoon, Yin Kecheng and Zhou Shuai, were among those indicted by federal prosecutors on Wednesday.

The post Silk Typhoon shifted to specifically targeting IT management companies appeared first on CyberScoop.

from CyberScoop https://ift.tt/c1zZwxI
via IFTTT

Broadcom issues VMware patch alert and Microsoft Silk Typhoon Cyber Threat

Broadcom Urges VMware Customers to Address Zero-Day Vulnerabilities

Broadcom, a leading American semiconductor company and now the owner of VMware, has issued a critical alert to all virtualization software customers, urging them to take immediate action against discovered zero-day vulnerabilities affecting VMware’s Fusion, Workstation, and ESXi products. These security flaws have the potential to be exploited by cybercriminals, posing a significant risk to systems across the globe.

The alert comes after Microsoft’s Threat Intelligence Center (MSTIC) flagged the vulnerabilities, which could allow attackers to gain administrative privileges and exploit sensitive applications within VMware environments. This breach could potentially provide hackers with full access to vital systems, putting businesses and their data at considerable risk.

VMware has faced its share of challenges in recent years, with various security flaws and data breaches making headlines. While the company has consistently worked to patch these vulnerabilities and mitigate risks, the repeated news coverage about such issues could harm its reputation, particularly in the highly competitive virtualization market.

Despite these setbacks, VMware has remained committed to releasing timely security fixes, which help maintain customer trust and address concerns about product security and privacy. As the company continues to strive for better security practices, stakeholders will be hoping that VMware can avoid making headlines for the wrong reasons in the future.

Microsoft Issues Critical Update on Silk Typhoon Cyber Threat

In a major cybersecurity development, Microsoft has issued an important update regarding the cyber-espionage group known as Silk Typhoon and not Salt Typhoon. This group, believed to be based in China, has been actively targeting the U.S. treasury and telecommunications sectors, successfully infiltrating multiple major telecom companies in North America.

Reports suggest that the group has now expanded its focus, targeting small to mid-sized IT firms that offer cloud applications and IT management tools. Silk Typhoon cyber threat is also shifting its tactics to focus on supply chain vulnerabilities, which could allow it to compromise additional victims through interconnected systems.

The Microsoft Threat Intelligence teams were the first to detect these intrusions and have issued multiple warnings to the public regarding the group’s methods. The attack strategies employed by Silk Typhoon include stealing access keys and credentials, which enable the group to infiltrate networks and launch further exploits. These attacks primarily target applications within the Microsoft ecosystem, including Microsoft Office and other related services, allowing attackers to leverage these tools for malicious purposes.

The group’s targets have largely consisted of IT businesses, especially those providing cloud services, remote monitoring tools, and managed service providers. These organizations are critical to large-scale industries, such as manufacturing, where IT systems control essential machinery. As the cyber-espionage group continues to broaden its scope, businesses across multiple sectors must remain vigilant to the growing threats posed by Silk Typhoon and similar actors.

The post Broadcom issues VMware patch alert and Microsoft Silk Typhoon Cyber Threat appeared first on Cybersecurity Insiders.

from Cybersecurity Insiders https://ift.tt/e12RIjv
via IFTTT

Cybercriminals picked up the pace on attacks last year

Threat actors became increasingly efficient last year, rapidly achieving lateral movement and swiftly stealing data at a faster clip than ever before, according to multiple threat intelligence firms. 

The reduced time frame is a clear indicator that cybercriminals are constantly improving their ability to be successful. With the abuse of legitimate system tools to help them avoid detection, a heightened concentration on obtaining authorized administrative credentials, and employing automated processes, defenders often remain unaware of malicious activity until it is too late.

Adam Meyers, senior vice president of counter adversary operations at CrowdStrike, reported that in the past year the average breakout time from a lateral movement perspective was 48 minutes. Remarkably, the fastest breakout time recorded was just 51 seconds, as he noted in a recent media briefing. In comparison, the average breakout time for interactive cybercrime intrusions in 2023 was 62 minutes, according to CrowdStrike.

“Not only are these adversaries using different techniques, different capabilities, they’re doing it faster, and they’re iterating faster than many of the enterprises that they’re targeting,” Meyers said.

CrowdStrike’s research on breakout times isn’t unique. ReliaQuest also observed attackers moving at unprecedented speeds, achieving lateral movement after gaining initial access in an average of 48 minutes last year. 

The breakout speeds observed by CrowdStrike and ReliaQuest underscore a broader effort by cybercriminals to hit targets quickly, achieve their objectives and ultimately leverage ill-gotten gains for extortion. Some cybercrime groups still tend to move slower but, on average, ransomware attacks have become a race against time — for offenders and defenders alike.

Data exfiltration, one of the primary and most pressing aims of cybercriminals, occurred at the fastest speed on record last year, according to Palo Alto Networks’ threat intelligence firm Unit 42.

“A few years ago, the median time was about nine or 10 days from point of intrusion to exfiltration. Median time in 2024 was about two days,” said Sam Rubin, SVP of consulting and threat intelligence at Unit 42.

While the median measurement of attack tempo from access to exfiltration is distressing, the speedy outliers are even more alarming. 

In a quarter of the cases Unit 42 responded to last year, the time from compromise to data theft was less than five hours, three times faster than speeds the firm observed in 2021. In 1 in 5 cases, attackers exfiltrated data from victim environments in less than an hour, according to Unit 42.

RansomHub, a ransomware group Unit 42 tracks as Spoiled Scorpius, accessed a municipal government’s network through a VPN lacking multi-factor authentication last year and exfiltrated 500 GB of data within seven hours.

The speed at which ransomware groups are operating is akin to a bank robbery, Rubin said. 

“Maybe someone hit the silent alarm and the cops are coming, and they know they’ve got to get in and get something quickly,” he said. 

Cybercriminals are rapidly escalating privileges and using persistence mechanisms to maintain access for extended periods, enabling them to carry out further actions after initially compromising a system. 

Muddled Libra, a group more commonly known as Scattered Spider which is also affiliated with “the Com,” social engineered a service provider’s help desk last year to gain access to a contracted IT worker’s privileged access manager account, according to Unit 42. Once the threat group gained access, it retrieved stored credentials and compromised a domain-privileged account within 40 minutes. 

In this particular incident, Scattered Spider then broke into a password management vault and created  a secondary server for its own multi-factor authentication. This enabled another way for them to keep access and steal more data. 

“Then they’re operating in the cloud, they’re operating on the security telemetry tooling. They disabled some logging in the SIEM (security information and event management),” Rubin said. 

The technical expertise of ransomware groups vary, but Scattered Spider showcased “IT, DevOps, security operations and sort of business savvy all coming in at once, which candidly does demonstrate that sophistication,” Rubin said. 

ReliaQuest drew similar conclusions as other threat intel companies, finding the fastest data exfiltration time last year was 4 hours and 29 minutes.

“The time required for an adversary to progress from initial access to executing data exfiltration is 34% faster than the time needed for encryption,” ReliaQuest said in its annual threat report. “Our data reveals a major shift in ransomware tactics: Of all breaches we observed in 2024, 80% involved data exfiltration, while only 20% included encryption.”

The post Cybercriminals picked up the pace on attacks last year appeared first on CyberScoop.

from CyberScoop https://ift.tt/JtjYg4K
via IFTTT

Identity: The New Cybersecurity Battleground

The rapid adoption of cloud services, SaaS applications, and the shift to remote work have fundamentally reshaped how enterprises operate. These technological advances have created a world of opportunity but also brought about complexities that pose significant security threats. At the core of these vulnerabilities lies Identity—the gateway to enterprise security and the number one attack vector

from The Hacker News https://ift.tt/VO4N9yU
via IFTTT

New year, new Heroes – March 2025

As we dive into 2025, we’re thrilled to announce our latest group of AWS Heroes! These exceptional individuals have demonstrated outstanding expertise and innovation, and are committed to sharing knowledge. Their contributions to the AWS community are greatly appreciated, and today we’re excited to celebrate them.

Ahmed Bebars – New Jersey, USA

Container Hero Ahmed Bebars is a Principal Engineer at The New York Times, where he leads the design and delivery of scalable developer platforms that enhance productivity and empower engineering teams. With deep expertise in containers, Kubernetes, and cloud-native technologies, Ahmed builds robust infrastructure solutions that streamline development workflows and support innovation. As an active member of the AWS and Cloud Native communities, he frequently shares his expertise at events like KubeCon, AWS re:Invent, AWS Community Days, and Kubernetes Community Days. Through his initiative, “Level Up with Ahmed,” he shares practical insights and resources to help engineers grow their skills and stay ahead in the evolving tech landscape.

Badri Narayanan Kesavan – Singapore

Community Hero Badri Narayanan Kesavan is an Engineering Lead and Solutions Architect with over a decade of professional experience, specializing in AWS Cloud solutions, platform engineering, and DevOps automation. Badri’s passion lies in learning and sharing with the community. He has delivered several talks at AWS Singapore Summit, AWS Summit ASEAN 2023, AWS Community Days, and various user group meetups. As an active AWS community leader, he organizes meetups and workshops under the AWS Singapore User Group where he regularly conducts sessions on diverse AWS topics, engaging a wide audience to foster innovation and collaboration. He has also authored the book “Mastering Amazon EC2)” which is a comprehensive guide to building robust and resilient applications on Amazon Elastic Compute Cloud (Amazon EC2).

Marcelo Paiva – Goiânia, Brazil

Community Hero Marcelo Paiva has over 30 years of experience in technology and is the CTO at Softprime Soluções, leading product development and research in digital biometrics, facial recognition, and artificial intelligence (AI). With more than a decade working with cloud computing, he specializes in building scalable and innovative solutions using AWS. Passionate about tech communities, Marcelo founded the AWS User Group in Goiânia in 2018, helping grow the local community. Today, he organizes events such as JoinCommunity and Cloud Summit Cerrado, fostering learning and networking in the Cerrado region.

Raphael Jambalos – Quezon City, Philippines

Community Hero Raphael Jambalos manages the Cloud Native development team at eCloudValley Philippines. His team has implemented dozens of cloud-native applications across multiple industries for customers in the Philippines. He is active in helping the AWS User Groups grow in the Philippines, and is passionate about connecting with the community beyond Manila. In his free time, he loves to read books and write about cloud technologies on his Dev.to blog.

Stav Ochakovski – Tel Aviv, Israel

Container Hero Stav Ochakovski is a DevOps Engineer at Beacon and a cybersecurity expert, managing highly scalable multi-cloud environments. With a background in DevOps engineering and instruction, Stav seamlessly transitioned into the dynamic cybersecurity start-up scene. A champion of container technologies and Amazon Elastic Kubernetes Service (Amazon EKS), she brings deep expertise in Kubernetes, CI/CD pipelines, and logging solutions to the AWS community. Stav actively shares her expertise by speaking at AWS community events, as well as security and container conferences. She is also a leader of the Israel AWS User Group and is a pastry-chef school graduate and licensed skipper.

Learn More

Visit the AWS Heroes website if you’d like to learn more about the AWS Heroes program, or to connect with a Hero near you.

Taylor

from AWS News Blog https://ift.tt/HVs7cBt
via IFTTT

How to Prevent a Second Cyber Attack After the First: A Guide to Strengthening Your Cybersecurity Post-Breach

Cyberattacks have become an unfortunate reality for businesses and individuals alike. The devastation caused by a cyberattack can be overwhelming, especially when it results in data breaches, financial losses, or a compromised reputation. However, one of the most dangerous consequences of a first cyberattack is the risk of a second cyberattack. Hackers often target organizations or individuals that have already been breached, as they may be more vulnerable or distracted in the recovery process. To prevent this from happening, it’s crucial to take swift action after a breach and implement comprehensive cybersecurity measures.

Here’s a detailed guide on how to protect yourself and your organization from a second cyberattack after the first:

1. Assess the Damage and Root Cause of the First Attack

The first step after a cyberattack is to understand the nature and extent of the breach. This is crucial to prevent further exploitation.

• Conduct a thorough forensic investigation: Bring in cybersecurity experts or your internal IT team to analyze the breach. What vulnerabilities were exploited? Was it a result of phishing, weak passwords, malware, or unpatched software?

• Identify the attack vector: Understanding how the attackers gained access will allow you to eliminate that point of entry and prevent future incidents.

• Review logs and alerts: Analyze system logs and set up an alert system to track any unusual behavior or potential threats during the recovery phase.

Once you’ve assessed the breach, you can work on remediating the vulnerabilities that were exploited.

2. Strengthen Passwords and User Access Control

Weak or reused passwords are one of the leading causes of successful cyberattacks. After the first breach, it’s essential to implement stronger access controls to safeguard against a second attack.

•  Enforce strong passwords: Ensure that employees or users create passwords that are complex and unique, using a combination of upper- and lowercase letters, numbers, and special characters.

• Implement Multi-Factor Authentication (MFA): Enabling MFA adds an extra layer of security, requiring users to verify their identity with more than just a password (e.g., a text message or authentication app).

• Review user privileges: Limit user access based on roles. Remove access to unnecessary systems or files, especially for those who no longer need them.

By tightening password policies and improving user authentication, you create a more secure environment, reducing the chances of a second cyberattack.

3. Update and Patch Software Regularly

After a cyberattack, attackers often exploit known vulnerabilities in outdated software. To prevent further breaches, it is crucial to patch all systems and keep software up to date.

• Apply security patches immediately: Always stay on top of software updates and install patches as soon as they are released. This includes operating systems, applications, firewalls, and any security software you use.

• Automate updates where possible: Configure systems to automatically apply updates to minimize the window of vulnerability.

•  Upgrade outdated systems: If certain software or hardware can no longer be secured with patches or updates, it may be time to consider upgrading.

Regular software updates and patch management play a critical role in minimizing your vulnerability to future cyberattacks.

4. Enhance Network and Endpoint Security

After an initial attack, your network and endpoint security should be tightened to avoid any further infiltration.

• Implement robust firewalls and intrusion detection systems (IDS): These can help detect and block unauthorized traffic from accessing your network.

• Use anti-malware software: Ensure all devices—both personal and company-issued—are equipped with reliable anti-virus and anti-malware software.

• Encrypt sensitive data: Encrypt data both in transit and at rest to make it harder for attackers to access and exploit valuable information.

• Segment your network: Isolate critical systems from less sensitive ones so that if a breach occurs in one segment, it doesn’t provide access to the entire network.

By enhancing your network and endpoint security, you make it significantly more difficult for attackers to infiltrate your systems again.

5. Monitor and Detect Suspicious Activities

Continuous monitoring is one of the best ways to prevent a second cyberattack. It allows you to identify potential threats early and respond swiftly.

• Set up continuous network monitoring: Employ advanced monitoring tools that can detect unusual traffic patterns or signs of suspicious activity.

• Create security logs: Maintain logs of all activities within your network. This can help you trace any unusual behavior back to its source.

• Conduct regular vulnerability assessments: Regular scans and penetration testing will help you identify any remaining weaknesses before they can be exploited again.

Early detection is key to stopping a second attack before it gains any traction.

6. Educate and Train Employees

Human error is often a significant factor in a successful cyberattack. After experiencing a breach, it’s essential to ensure that all employees understand the risks and follow best practices to prevent another attack.

• Conduct cybersecurity awareness training: Teach employees how to recognize phishing attempts, suspicious links, and other social engineering tactics used by cybercriminals.

• Reinforce best practices: Ensure that employees know how to create strong passwords, use MFA, and avoid risky online behaviors.

•  Simulate attacks: Conduct regular phishing simulations or mock cyberattack drills to prepare your team for real-world scenarios.

The more knowledgeable and aware your employees are, the less likely they are to fall victim to an attack in the future.

7. Develop an Incident Response Plan (IRP)

Having a detailed incident response plan (IRP) is critical to quickly and efficiently addressing any future breaches. This plan should outline the steps to take in the event of another attack.

• Define roles and responsibilities: Ensure that every member of the organization knows their role during a cyberattack and the steps they need to take.

• Establish communication protocols: Clear communication is vital during a crisis. Make sure you have internal and external communication strategies in place, including with customers, partners, and law enforcement if needed.

•  Test the plan regularly: Conduct regular drills to ensure that your team is prepared to respond swiftly and effectively.

Having a well-defined incident response plan can help your organization recover quickly from a cyberattack, minimizing the impact of a second breach.

8. Backup Your Data

Data backup is a crucial part of any cybersecurity strategy. After an attack, ensure that you have up-to-date backups of critical data, stored securely in case you need to restore lost or corrupted files.

•  Regularly back up important files: Schedule automatic backups to secure storage, whether on-premise or cloud-based.

• Test backup restoration: Periodically test your ability to restore data from backups to ensure the process works effectively.

By maintaining reliable backups, you can reduce the downtime caused by a breach and ensure that your business can recover quickly.

Conclusion: A Proactive Approach to Cybersecurity

After experiencing a cyberattack, the last thing you want is for the same attackers to strike again. To minimize the risk of a second attack, it’s essential to learn from the breach and implement measures that address the vulnerabilities exploited. By strengthening passwords, updating software, enhancing security, and fostering a culture of awareness and preparedness, you can protect your organization and ensure that your systems are fortified against future threats.

A proactive, multi-layered approach to cybersecurity, combined with continuous monitoring and an incident response plan, is key to preventing not only the second attack but also any future breaches.

The post How to Prevent a Second Cyber Attack After the First: A Guide to Strengthening Your Cybersecurity Post-Breach appeared first on Cybersecurity Insiders.

from Cybersecurity Insiders https://ift.tt/PLKNyY0
via IFTTT

DDoS attacks by 30k botnets and IBM n Vodafone safe internet from quantum computing attacks

DDoS Attack Fueled by Over 30,000 Hacked CCTV Cameras and NVRs

A recent discovery by security experts from Nokia Deepfield and GreyNoise has revealed a botnet consisting of over 30,000 compromised security cameras and Network Video Recorders (NVRs). This botnet has been actively involved in launching Distributed Denial of Service (DDoS) attacks against critical telecom infrastructure and gaming websites.

A DDoS attack involves overwhelming a target server with massive amounts of fake web traffic, generated through compromised devices, thereby rendering the server inaccessible to legitimate users. These attacks are increasingly common and can cause significant disruptions, especially for online services that rely on consistent uptime.

GreyNoise researchers have identified the botnet, named Eleven11bot, which is being used to carry out brute force attacks on login pages. In these attacks, weak or reused passwords are exploited, allowing cybercriminals to take control of vulnerable devices and use them for further malicious activities. Upon investigating the IP addresses involved, it was found that most of the compromised devices were CCTV cameras and NVRs, many of which were operating in Iran—a country that has recently been placed on a high-priority sanctions list by the incoming Donald Trump Administration.

Experts advise that regular updates to device firmware, frequent password changes, and disabling remote access on connected devices can significantly reduce the risk of such cybersecurity breaches and mitigate the potential for botnet-driven DDoS attacks.

Vodafone and IBM Partner to Develop Secure Net with Quantum-Safe Cryptography

Telecommunications giant Vodafone has partnered with IBM to introduce a groundbreaking Quantum Safe Cryptography technology in their new Secure Net platform. This initiative is designed to provide enhanced security for customers’ online activities, safeguarding them from potential quantum computing threats in the future.

The Secure Net system is equipped to protect users from common cybersecurity threats such as phishing, malware, and identity theft—all of which have been on the rise in recent years. Cybercriminals often use phishing tactics to lure victims into downloading malicious apps or visiting fake websites to steal sensitive information, including banking credentials and personal details.

Looking ahead, Vodafone plans to implement cutting-edge cryptographic algorithms by 2026 to further bolster their network security and defend against quantum threats. This strategic move aims to ensure that their customers enjoy a safe and secure online experience, free from the growing menace of cyberattacks.

Space Pirates Cyber Threat: A Rising APT Group Using LuckStrike Malware

A notorious group of cybercriminals, suspected of being linked to an Advanced Persistent Threat (APT) group known as Space Pirates, has been identified as the culprits behind the deployment of LuckStrike malware. This malware is being used to infiltrate both government and IT organizations, with the primary goal of stealing sensitive information.

Security experts suggest that the Space Pirates group has been active since 2017 and has evolved in sophistication over time. Their tactics include using Microsoft OneDrive as a Command and Control (C2C) server, allowing them to efficiently conceal their operations and remain undetected. This method has made it difficult for authorities and cybersecurity experts to trace their activities.

The LuckStrike malware is particularly dangerous because it allows the attackers to bypass traditional security measures, making detection more challenging. Over the years, Space Pirates have successfully victimized more than 20 federal organizations, including government agencies and private entities, making them a significant threat in the cybersecurity landscape.

The post DDoS attacks by 30k botnets and IBM n Vodafone safe internet from quantum computing attacks appeared first on Cybersecurity Insiders.

from Cybersecurity Insiders https://ift.tt/6Eg1TaF
via IFTTT

Get insights from multimodal content with Amazon Bedrock Data Automation, now generally available

Many applications need to interact with content available through different modalities. Some of these applications process complex documents, such as insurance claims and medical bills. Mobile apps need to analyze user-generated media. Organizations need to build a semantic index on top of their digital assets that include documents, images, audio, and video files. However, getting insights from unstructured multimodal content is not easy to set up: you have to implement processing pipelines for the different data formats and go through multiple steps to get the information you need. That usually means having multiple models in production for which you have to handle cost optimizations (through fine-tuning and prompt engineering), safeguards (for example, against hallucinations), integrations with the target applications (including data formats), and model updates.

To make this process easier, we introduced in preview during AWS re:Invent Amazon Bedrock Data Automation, a capability of Amazon Bedrock that streamlines the generation of valuable insights from unstructured, multimodal content such as documents, images, audio, and videos. With Bedrock Data Automation, you can reduce the development time and effort to build intelligent document processing, media analysis, and other multimodal data-centric automation solutions.

You can use Bedrock Data Automation as a standalone feature or as a parser for Amazon Bedrock Knowledge Bases to index insights from multimodal content and provide more relevant responses for Retrieval-Augmented Generation (RAG).

Today, Bedrock Data Automation is now generally available with support for cross-region inference endpoints to be available in more AWS Regions and seamlessly use compute across different locations. Based on your feedback during the preview, we also improved accuracy and added support for logo recognition for images and videos.

Let’s have a look at how this works in practice.

Using Amazon Bedrock Data Automation with cross-region inference endpoints
The blog post published for the Bedrock Data Automation preview shows how to use the visual demo in the Amazon Bedrock console to extract information from documents and videos. I recommend you go through the console demo experience to understand how this capability works and what you can do to customize it. For this post, I focus more on how Bedrock Data Automation works in your applications, starting with a few steps in the console and following with code samples.

The Data Automation section of the Amazon Bedrock console now asks for confirmation to enable cross-region support the first time you access it. For example:

Console screenshot.

From an API perspective, the InvokeDataAutomationAsync operation now requires an additional parameter (dataAutomationProfileArn) to specify the data automation profile to use. The value for this parameter depends on the Region and your AWS account ID:

arn:aws:bedrock:<REGION>:<ACCOUNT_ID>:data-automation-profile/us.data-automation-v1

Also, the dataAutomationArn parameter has been renamed to dataAutomationProjectArn to better reflect that it contains the project Amazon Resource Name (ARN). When invoking Bedrock Data Automation, you now need to specify a project or a blueprint to use. If you pass in blueprints, you will get custom output. To continue to get standard default output, configure the parameter DataAutomationProjectArn to use arn:aws:bedrock:<REGION>:aws:data-automation-project/public-default.

As the name suggests, the InvokeDataAutomationAsync operation is asynchronous. You pass the input and output configuration and, when the result is ready, it’s written on an Amazon Simple Storage Service (Amazon S3) bucket as specified in the output configuration. You can receive an Amazon EventBridge notification from Bedrock Data Automation using the notificationConfiguration parameter.

With Bedrock Data Automation, you can configure outputs in two ways:

  • Standard output delivers predefined insights relevant to a data type, such as document semantics, video chapter summaries, and audio transcripts. With standard outputs, you can set up your desired insights in just a few steps.
  • Custom output lets you specify extraction needs using blueprints for more tailored insights.

To see the new capabilities in action, I create a project and customize the standard output settings. For documents, I choose plain text instead of markdown. Note that you can automate these configuration steps using the Bedrock Data Automation API.

Console screenshot.

For videos, I want a full audio transcript and a summary of the entire video. I also ask for a summary of each chapter.

Console screenshot.

To configure a blueprint, I choose Custom output setup in the Data automation section of the Amazon Bedrock console navigation pane. There, I search for the US-Driver-License sample blueprint. You can browse other sample blueprints for more examples and ideas.

Sample blueprints can’t be edited, so I use the Actions menu to duplicate the blueprint and add it to my project. There, I can fine-tune the data to be extracted by modifying the blueprint and adding custom fields that can use generative AI to extract or compute data in the format I need.

Console screenshot.

I upload the image of a US driver’s license on an S3 bucket. Then, I use this sample Python script that uses Bedrock Data Automation through the AWS SDK for Python (Boto3) to extract text information from the image:

import json
import sys
import time

import boto3

DEBUG = False

AWS_REGION = '<REGION>'
BUCKET_NAME = '<BUCKET>'
INPUT_PATH = 'BDA/Input'
OUTPUT_PATH = 'BDA/Output'

PROJECT_ID = '<PROJECT_ID>'
BLUEPRINT_NAME = 'US-Driver-License-demo'

# Fields to display
BLUEPRINT_FIELDS = [
    'NAME_DETAILS/FIRST_NAME',
    'NAME_DETAILS/MIDDLE_NAME',
    'NAME_DETAILS/LAST_NAME',
    'DATE_OF_BIRTH',
    'DATE_OF_ISSUE',
    'EXPIRATION_DATE'
]

# AWS SDK for Python (Boto3) clients
bda = boto3.client('bedrock-data-automation-runtime', region_name=AWS_REGION)
s3 = boto3.client('s3', region_name=AWS_REGION)
sts = boto3.client('sts')


def log(data):
    if DEBUG:
        if type(data) is dict:
            text = json.dumps(data, indent=4)
        else:
            text = str(data)
        print(text)

def get_aws_account_id() -> str:
    return sts.get_caller_identity().get('Account')


def get_json_object_from_s3_uri(s3_uri) -> dict:
    s3_uri_split = s3_uri.split('/')
    bucket = s3_uri_split[2]
    key = '/'.join(s3_uri_split[3:])
    object_content = s3.get_object(Bucket=bucket, Key=key)['Body'].read()
    return json.loads(object_content)


def invoke_data_automation(input_s3_uri, output_s3_uri, data_automation_arn, aws_account_id) -> dict:
    params = {
        'inputConfiguration': {
            's3Uri': input_s3_uri
        },
        'outputConfiguration': {
            's3Uri': output_s3_uri
        },
        'dataAutomationConfiguration': {
            'dataAutomationProjectArn': data_automation_arn
        },
        'dataAutomationProfileArn': f"arn:aws:bedrock:{AWS_REGION}:{aws_account_id}:data-automation-profile/us.data-automation-v1"
    }

    response = bda.invoke_data_automation_async(**params)
    log(response)

    return response

def wait_for_data_automation_to_complete(invocation_arn, loop_time_in_seconds=1) -> dict:
    while True:
        response = bda.get_data_automation_status(
            invocationArn=invocation_arn
        )
        status = response['status']
        if status not in ['Created', 'InProgress']:
            print(f" {status}")
            return response
        print(".", end='', flush=True)
        time.sleep(loop_time_in_seconds)


def print_document_results(standard_output_result):
    print(f"Number of pages: {standard_output_result['metadata']['number_of_pages']}")
    for page in standard_output_result['pages']:
        print(f"- Page {page['page_index']}")
        if 'text' in page['representation']:
            print(f"{page['representation']['text']}")
        if 'markdown' in page['representation']:
            print(f"{page['representation']['markdown']}")


def print_video_results(standard_output_result):
    print(f"Duration: {standard_output_result['metadata']['duration_millis']} ms")
    print(f"Summary: {standard_output_result['video']['summary']}")
    statistics = standard_output_result['statistics']
    print("Statistics:")
    print(f"- Speaket count: {statistics['speaker_count']}")
    print(f"- Chapter count: {statistics['chapter_count']}")
    print(f"- Shot count: {statistics['shot_count']}")
    for chapter in standard_output_result['chapters']:
        print(f"Chapter {chapter['chapter_index']} {chapter['start_timecode_smpte']}-{chapter['end_timecode_smpte']} ({chapter['duration_millis']} ms)")
        if 'summary' in chapter:
            print(f"- Chapter summary: {chapter['summary']}")


def print_custom_results(custom_output_result):
    matched_blueprint_name = custom_output_result['matched_blueprint']['name']
    log(custom_output_result)
    print('\n- Custom output')
    print(f"Matched blueprint: {matched_blueprint_name}  Confidence: {custom_output_result['matched_blueprint']['confidence']}")
    print(f"Document class: {custom_output_result['document_class']['type']}")
    if matched_blueprint_name == BLUEPRINT_NAME:
        print('\n- Fields')
        for field_with_group in BLUEPRINT_FIELDS:
            print_field(field_with_group, custom_output_result)


def print_results(job_metadata_s3_uri) -> None:
    job_metadata = get_json_object_from_s3_uri(job_metadata_s3_uri)
    log(job_metadata)

    for segment in job_metadata['output_metadata']:
        asset_id = segment['asset_id']
        print(f'\nAsset ID: {asset_id}')

        for segment_metadata in segment['segment_metadata']:
            # Standard output
            standard_output_path = segment_metadata['standard_output_path']
            standard_output_result = get_json_object_from_s3_uri(standard_output_path)
            log(standard_output_result)
            print('\n- Standard output')
            semantic_modality = standard_output_result['metadata']['semantic_modality']
            print(f"Semantic modality: {semantic_modality}")
            match semantic_modality:
                case 'DOCUMENT':
                    print_document_results(standard_output_result)
                case 'VIDEO':
                    print_video_results(standard_output_result)
            # Custom output
            if 'custom_output_status' in segment_metadata and segment_metadata['custom_output_status'] == 'MATCH':
                custom_output_path = segment_metadata['custom_output_path']
                custom_output_result = get_json_object_from_s3_uri(custom_output_path)
                print_custom_results(custom_output_result)


def print_field(field_with_group, custom_output_result) -> None:
    inference_result = custom_output_result['inference_result']
    explainability_info = custom_output_result['explainability_info'][0]
    if '/' in field_with_group:
        # For fields part of a group
        (group, field) = field_with_group.split('/')
        inference_result = inference_result[group]
        explainability_info = explainability_info[group]
    else:
        field = field_with_group
    value = inference_result[field]
    confidence = explainability_info[field]['confidence']
    print(f'{field}: {value or '<EMPTY>'}  Confidence: {confidence}')


def main() -> None:
    if len(sys.argv) < 2:
        print("Please provide a filename as command line argument")
        sys.exit(1)
      
    file_name = sys.argv[1]
    
    aws_account_id = get_aws_account_id()
    input_s3_uri = f"s3://{BUCKET_NAME}/{INPUT_PATH}/{file_name}" # File
    output_s3_uri = f"s3://{BUCKET_NAME}/{OUTPUT_PATH}" # Folder
    data_automation_arn = f"arn:aws:bedrock:{AWS_REGION}:{aws_account_id}:data-automation-project/{PROJECT_ID}"

    print(f"Invoking Bedrock Data Automation for '{file_name}'", end='', flush=True)

    data_automation_response = invoke_data_automation(input_s3_uri, output_s3_uri, data_automation_arn, aws_account_id)
    data_automation_status = wait_for_data_automation_to_complete(data_automation_response['invocationArn'])

    if data_automation_status['status'] == 'Success':
        job_metadata_s3_uri = data_automation_status['outputConfiguration']['s3Uri']
        print_results(job_metadata_s3_uri)


if __name__ == "__main__":
    main()

The initial configuration in the script includes the name of the S3 bucket to use in input and output, the location of the input file in the bucket, the output path for the results, the project ID to use to get custom output from Bedrock Data Automation, and the blueprint fields to show in output.

I run the script passing the name of the input file. In output, I see the information extracted by Bedrock Data Automation. The US-Driver-License is a match and the name and dates in the driver’s license are printed in output.

python bda-ga.py bda-drivers-license.jpeg

Invoking Bedrock Data Automation for 'bda-drivers-license.jpeg'................ Success

Asset ID: 0

- Standard output
Semantic modality: DOCUMENT
Number of pages: 1
- Page 0
NEW JERSEY

Motor Vehicle
 Commission

AUTO DRIVER LICENSE

Could DL M6454 64774 51685                      CLASS D
        DOB 01-01-1968
ISS 03-19-2019          EXP     01-01-2023
        MONTOYA RENEE MARIA 321 GOTHAM AVENUE TRENTON, NJ 08666 OF
        END NONE
        RESTR NONE
        SEX F HGT 5'-08" EYES HZL               ORGAN DONOR
        CM ST201907800000019 CHG                11.00

[SIGNATURE]



- Custom output
Matched blueprint: US-Driver-License-copy  Confidence: 1
Document class: US-drivers-licenses

- Fields
FIRST_NAME: RENEE  Confidence: 0.859375
MIDDLE_NAME: MARIA  Confidence: 0.83203125
LAST_NAME: MONTOYA  Confidence: 0.875
DATE_OF_BIRTH: 1968-01-01  Confidence: 0.890625
DATE_OF_ISSUE: 2019-03-19  Confidence: 0.79296875
EXPIRATION_DATE: 2023-01-01  Confidence: 0.93359375

As expected, I see in output the information I selected from the blueprint associated with the Bedrock Data Automation project.

Similarly, I run the same script on a video file from my colleague Mike Chambers. To keep the output small, I don’t print the full audio transcript or the text displayed in the video.

python bda.py mike-video.mp4
Invoking Bedrock Data Automation for 'mike-video.mp4'.......................................................................................................................................................................................................................................................................... Success

Asset ID: 0

- Standard output
Semantic modality: VIDEO
Duration: 810476 ms
Summary: In this comprehensive demonstration, a technical expert explores the capabilities and limitations of Large Language Models (LLMs) while showcasing a practical application using AWS services. He begins by addressing a common misconception about LLMs, explaining that while they possess general world knowledge from their training data, they lack current, real-time information unless connected to external data sources.

To illustrate this concept, he demonstrates an "Outfit Planner" application that provides clothing recommendations based on location and weather conditions. Using Brisbane, Australia as an example, the application combines LLM capabilities with real-time weather data to suggest appropriate attire like lightweight linen shirts, shorts, and hats for the tropical climate.

The demonstration then shifts to the Amazon Bedrock platform, which enables users to build and scale generative AI applications using foundation models. The speaker showcases the "OutfitAssistantAgent," explaining how it accesses real-time weather data to make informed clothing recommendations. Through the platform's "Show Trace" feature, he reveals the agent's decision-making process and how it retrieves and processes location and weather information.

The technical implementation details are explored as the speaker configures the OutfitAssistant using Amazon Bedrock. The agent's workflow is designed to be fully serverless and managed within the Amazon Bedrock service.

Further diving into the technical aspects, the presentation covers the AWS Lambda console integration, showing how to create action group functions that connect to external services like the OpenWeatherMap API. The speaker emphasizes that LLMs become truly useful when connected to tools providing relevant data sources, whether databases, text files, or external APIs.

The presentation concludes with the speaker encouraging viewers to explore more AWS developer content and engage with the channel through likes and subscriptions, reinforcing the practical value of combining LLMs with external data sources for creating powerful, context-aware applications.
Statistics:
- Speaket count: 1
- Chapter count: 6
- Shot count: 48
Chapter 0 00:00:00:00-00:01:32:01 (92025 ms)
- Chapter summary: A man with a beard and glasses, wearing a gray hooded sweatshirt with various logos and text, is sitting at a desk in front of a colorful background. He discusses the frequent release of new large language models (LLMs) and how people often test these models by asking questions like "Who won the World Series?" The man explains that LLMs are trained on general data from the internet, so they may have information about past events but not current ones. He then poses the question of what he wants from an LLM, stating that he desires general world knowledge, such as understanding basic concepts like "up is up" and "down is down," but does not need specific factual knowledge. The man suggests that he can attach other systems to the LLM to access current factual data relevant to his needs. He emphasizes the importance of having general world knowledge and the ability to use tools and be linked into agentic workflows, which he refers to as "agentic workflows." The man encourages the audience to add this term to their spell checkers, as it will likely become commonly used.
Chapter 1 00:01:32:01-00:03:38:18 (126560 ms)
- Chapter summary: The video showcases a man with a beard and glasses demonstrating an "Outfit Planner" application on his laptop. The application allows users to input their location, such as Brisbane, Australia, and receive recommendations for appropriate outfits based on the weather conditions. The man explains that the application generates these recommendations using large language models, which can sometimes provide inaccurate or hallucinated information since they lack direct access to real-world data sources.

The man walks through the process of using the Outfit Planner, entering Brisbane as the location and receiving weather details like temperature, humidity, and cloud cover. He then shows how the application suggests outfit options, including a lightweight linen shirt, shorts, sandals, and a hat, along with an image of a woman wearing a similar outfit in a tropical setting.

Throughout the demonstration, the man points out the limitations of current language models in providing accurate and up-to-date information without external data connections. He also highlights the need to edit prompts and adjust settings within the application to refine the output and improve the accuracy of the generated recommendations.
Chapter 2 00:03:38:18-00:07:19:06 (220620 ms)
- Chapter summary: The video demonstrates the Amazon Bedrock platform, which allows users to build and scale generative AI applications using foundation models (FMs). [speaker_0] introduces the platform's overview, highlighting its key features like managing FMs from AWS, integrating with custom models, and providing access to leading AI startups. The video showcases the Amazon Bedrock console interface, where [speaker_0] navigates to the "Agents" section and selects the "OutfitAssistantAgent" agent. [speaker_0] tests the OutfitAssistantAgent by asking it for outfit recommendations in Brisbane, Australia. The agent provides a suggestion of wearing a light jacket or sweater due to cool, misty weather conditions. To verify the accuracy of the recommendation, [speaker_0] clicks on the "Show Trace" button, which reveals the agent's workflow and the steps it took to retrieve the current location details and weather information for Brisbane. The video explains that the agent uses an orchestration and knowledge base system to determine the appropriate response based on the user's query and the retrieved data. It highlights the agent's ability to access real-time information like location and weather data, which is crucial for generating accurate and relevant responses.
Chapter 3 00:07:19:06-00:11:26:13 (247214 ms)
- Chapter summary: The video demonstrates the process of configuring an AI assistant agent called "OutfitAssistant" using Amazon Bedrock. [speaker_0] introduces the agent's purpose, which is to provide outfit recommendations based on the current time and weather conditions. The configuration interface allows selecting a language model from Anthropic, in this case the Claud 3 Haiku model, and defining natural language instructions for the agent's behavior. [speaker_0] explains that action groups are groups of tools or actions that will interact with the outside world. The OutfitAssistant agent uses Lambda functions as its tools, making it fully serverless and managed within the Amazon Bedrock service. [speaker_0] defines two action groups: "get coordinates" to retrieve latitude and longitude coordinates from a place name, and "get current time" to determine the current time based on the location. The "get current weather" action requires calling the "get coordinates" action first to obtain the location coordinates, then using those coordinates to retrieve the current weather information. This demonstrates the agent's workflow and how it utilizes the defined actions to generate outfit recommendations. Throughout the video, [speaker_0] provides details on the agent's configuration, including its name, description, model selection, instructions, and action groups. The interface displays various options and settings related to these aspects, allowing [speaker_0] to customize the agent's behavior and functionality.
Chapter 4 00:11:26:13-00:13:00:17 (94160 ms)
- Chapter summary: The video showcases a presentation by [speaker_0] on the AWS Lambda console and its integration with machine learning models for building powerful agents. [speaker_0] demonstrates how to create an action group function using AWS Lambda, which can be used to generate text responses based on input parameters like location, time, and weather data. The Lambda function code is shown, utilizing external services like OpenWeatherMap API for fetching weather information. [speaker_0] explains that for a large language model to be useful, it needs to connect to tools providing relevant data sources, such as databases, text files, or external APIs. The presentation covers the process of defining actions, setting up Lambda functions, and leveraging various tools within the AWS environment to build intelligent agents capable of generating context-aware responses.
Chapter 5 00:13:00:17-00:13:28:10 (27761 ms)
- Chapter summary: A man with a beard and glasses, wearing a gray hoodie with various logos and text, is sitting at a desk in front of a colorful background. He is using a laptop computer that has stickers and logos on it, including the AWS logo. The man appears to be presenting or speaking about AWS (Amazon Web Services) and its services, such as Lambda functions and large language models. He mentions that if a Lambda function can do something, then it can be used to augment a large language model. The man concludes by expressing hope that the viewer found the video useful and insightful, and encourages them to check out other videos on the AWS developers channel. He also asks viewers to like the video, subscribe to the channel, and watch other videos.

Things to know
Amazon Bedrock Data Automation is now available via cross-region inference in the following two AWS Regions: US East (N. Virginia) and US West (Oregon). When using Bedrock Data Automation from those Regions, data can be processed using cross-region inference in any of these four Regions: US East (Ohio, N. Virginia) and US West (N. California, Oregon). All these Regions are in the US so that data is processed within the same geography. We’re working to add support for more Regions in Europe and Asia later in 2025.

There’s no change in pricing compared to the preview and when using cross-region inference. For more information, visit Amazon Bedrock pricing.

Bedrock Data Automation now also includes a number of security, governance and manageability related capabilities such as AWS Key Management Service (AWS KMS) customer managed keys support for granular encryption control, AWS PrivateLink to connect directly to the Bedrock Data Automation APIs in your virtual private cloud (VPC) instead of connecting over the internet, and tagging of Bedrock Data Automation resources and jobs to track costs and enforce tag-based access policies in AWS Identity and Access Management (IAM).

I used Python in this blog post but Bedrock Data Automation is available with any AWS SDKs. For example, you can use Java, .NET, or Rust for a backend document processing application; JavaScript for a web app that processes images, videos, or audio files; and Swift for a native mobile app that processes content provided by end users. It’s never been so easy to get insights from multimodal data.

Here are a few reading suggestions to learn more (including code samples):

Danilo

How are we doing? Take this 1 minute survey!

from AWS News Blog https://ift.tt/fyNJ6Id
via IFTTT