Using certificate-based authentication for iOS applications with Amazon SNS

Post Syndicated from Sam Dengler original https://aws.amazon.com/blogs/compute/using-certificate-based-authentication-for-ios-applications-with-amazon-sns/

This blog post is written by Yashlin Naidoo, Arnav Thakur, Kim Read, Guilherme Silva.

Amazon SNS enables you to send notifications to a mobile push endpoint using a platform application endpoint by dispatching the notification on your application’s behalf. Push notifications for iOS apps are sent using Apple Push Notification Service (APNs).

To send push notifications using SNS for APNS certificate-based authentication, you must provide a set of credentials for connecting to the Apple Push Notification Service (see prerequisites for push). SNS supports using certificate-based authentication (.p12), in addition to the new token-based authentication (.p8).

Certificate-based authentication uses a provider certificate to establish a secure connection between your provider and APNs. These certificates are tied to a single application and are used to send notifications to this application. This approach can be useful when you haven’t migrated to the new token-based authentication.

For new applications, we recommend using token-based authentication as it provides improved security. It removes the need for yearly renewal of the certificates and can also be shared amongst multiple applications. To learn about how to use token-based authentication, visit Token-Based authentication for iOS applications with Amazon SNS in the AWS Compute Blog.

This blog shows step-by-step instructions on how to build an iOS application. You learn how to create a new certificate from your Apple developer account, and set up a platform application and endpoint in the SNS console. Next, you will learn how to test your application by sending a push notification via SNS to your device. Finally, you view the push notification delivered to your device.

Setting up your iOS application

This section will go over:

  • Creating an iOS application.
  • Creating a .p12 certificate to upload to SNS.

Prerequisites:

Creating an iOS application

  1. Create a new XCode project. Select iOS as the platform.

    New XCode project

    New XCode project

  2. Select your Apple Developer Account team and organization identifier.

    Select your Apple Developer Account team

    Select your Apple Developer Account team

  3. In your project, go to Signing & Capabilities. Under signing, ensure that “Automatically manage signing” is checked and your team is selected.

    Signing & Capabilities

    Signing & Capabilities

  4. To add the push notification capability to your application, select “+” and select Push Notifications.
    Add push notification capability

    Add push notification capability

    This step creates resources on your Apple Developer Account (the App ID and adds Push notification capability to it). You can also verify this in your Apple Developer Account.

  5. Add the following code to AppDelegate.swift:
        import UIKit
        import UserNotifications
    
        @main
        class AppDelegate: UIResponder, UIApplicationDelegate {
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch
    
        //Call to register for push notifications when launched
        registerForPushNotifications()
    
        return true
        }
    
        // MARK: UISceneSession Lifecycle
    
        func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        // Called when a new scene session is being created.
        // Use this method to select a configuration to create the new scene with.
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
        }
    
        func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
        // Called when the user discards a scene session.
        // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
        // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
        }
    
        func getNotificationSettings() {
        UNUserNotificationCenter.current().getNotificationSettings { settings in
        print("Notification settings: \(settings)")
    
        guard settings.authorizationStatus == .authorized else { return }
        DispatchQueue.main.async {
        UIApplication.shared.registerForRemoteNotifications()
        }
    
        }
        }
    
        func registerForPushNotifications() {
        //1 this handles all notification-related activities in the app including push notifications
        UNUserNotificationCenter.current()
    
        //2 this requests authorization to send the types of notifications specifies in the options
        .requestAuthorization(
        options: [.alert, .sound, .badge]) { [weak self] granted, _ in
        print("Permission granted: \(granted)")
        guard granted else { return }
        self?.getNotificationSettings()
        }
    
        }
    
        func application(
        _ application: UIApplication,
        didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
        ) {
        let tokenParts = deviceToken.map { data in String(format: "%02.2hhx", data) }
        let token = tokenParts.joined()
        print("Device Token: \(token)")
        }
    
        func application(
        _ application: UIApplication,
        didFailToRegisterForRemoteNotificationsWithError error: Error
        ) {
        print("Failed to register: \(error)")
        }
    
        }
  6. Build and run the application on an iPhone. Note that the push notification feature does not work with a simulator.
  7. On your phone, select “Allow” when prompted to allow push notifications.

    Allow push notifications

    Allow push notifications

  8. The debugger prints “Permission granted: true” if successful and returns the Device Token.

    Device token

    Device token

You have now configured an iOS application that can receive push notifications. Next, use the application to test sending push notifications with SNS using certificate-based authentication.

Creating a .p12 certificate to upload to SNS

After completing the previous step, you need:

  • An app identifier
  • A certificate signing request (CSR)
  • An SSL certificate

Create an identifier

  1. Log in to your Apple Developer Account.
  2. Choose Certificates, Identifiers & Profiles.
  3. In the Identifiers section, choose the Add button (+).
  4. In the Register a new identifier section, choose App IDs and select Continue.
  5. In the Select a type section, choose App, and select Continue.
  6. For Description, type the application description.
  7. For Bundle ID, use the Bundle ID assigned to your application. You can find this ID under Signing & Capabilities of your application in XCode (see step 3 under “Creating an application”).
  8. Under Capabilities, choose Push Notifications.
  9. Select Continue. In the Confirm your App ID panel, check that all values were entered correctly. The identifier should match your app ID and bundle ID.
  10. Select Register to register the new app ID.

Create a certificate signing request (CSR)

  1. Open Keychain Access located in /Applications/Utilities or search for it on Finder.
  2. Once opened, choose the tab Keychain Access Tab (next to the Apple icon). Navigate to Certificate Assistant and choose Request a Certificate from a Certificate Authority.
  3. Enter the Username, Email Address, Common Name and leave CA Email Address empty.
  4. Choose Saved to disk and choose Continue.

Create a certificate

  1. Log in to your Apple Developer Account.
  2. Choose Certificates, Identifiers & Profiles.
  3. In the Certificate section, select Create new certificate.
  4. Under services, choose your certificate: Apple Push Notification service SSL (Sandbox)/Apple Push Notification service SSL (Sandbox & Production).
  5. Keep Platform as iOS and choose App ID (Identifier) created previously.
  6. Upload the Certificate Signing Request created in the previous step and Download your certificate.

Create .p12 certificate to upload to SNS

  1. Once your certificate.cer file is downloaded (for example, “aps_development.cer”), open it to show in keychain access. Find Apple Development iOS Push Services: (Your Identifier Name/App ID Name) and ensure that the file is placed in the “Login” folder.
  2. Right-click and choose Export as file format .p12 and choose Save. Optionally, set a password.

Creating a new platform application using APNs certificate-based authentication

Prerequisites

To implement APNs certificate-based authentication from SNS, you must have:

  • An Apple Developer Account
  • An iOS mobile application

For creating a new SNS Platform Application that is used to store Push Notification Platform credentials, configurations and related configurations:

  1. Navigate to the SNS Console. Expand the Mobile menu and choose Create platform application.
  2. For the Application name field, enter an application name such as “myfirstiOSapp”. For Push Notification Platform, select Apple iOS/ VoIP/ macOS.

    Create platform application

    Create platform application

  3. Under the Apple Credentials section:
    1. If your application is in development, select the radio button for Used for development in sandbox. If your application is in production, uncheck Used for development in sandbox.
    2. For Push service, choose iOS and for Authentication method, choose Certificate.
    3. Under Certificate, select Choose file to upload the .p12 certificate file.
    4. If you configured a password while creating the certificate, enter this in the Certificate Password field.
    5. Choose Load Credentials from File to extract the Certificate and private key components.
  4. Event Notifications, Delivery Status Logging – Optional: Refer to the guide for enabling Delivery Status logs and the guide to set up Mobile Event related Notifications. More on this step can also be found in the best practices guide.

    Enter Apple credentials

    Enter Apple credentials

  5. Choose Create Platform Application. This creates a certificate-based authentication APNs Platform Application for iOS.

    Create platform application

    Create platform application

Creating a new platform endpoint using APNs token-based authentication

To send Push Notifications using SNS, a platform endpoint resource is created to store the destination address of the corresponding iOS application that is associated with the SNS platform application.

A destination address of a user’s device with the iOS application installed is identified by an unique device token. It is obtained once the app has registered successfully with APNs to receive push notifications. The details of the device token captured in the Platform Endpoint resource along with the configurations in the SNS Platform application are used in conjunction by the service to deliver a push notification message.

In the following steps, you create a new platform endpoint for a destination device that has the iOS application installed and is capable of receiving push notifications.

  1. Open your Platform Application. Choose Create Application Endpoint.

    Application endpoints list

    Application endpoints list

  2. Locate the Device token in the application logs of the iOS app provisioned earlier. Enter it in the Device Token Field.
  3. To store any additional arbitrary data for the endpoint, you can include in the User data field and choose Create application endpoint.

    Create application endpoint

    Create application endpoint

  4. Choose Create application endpoint and the details are shown on the console.

    Application endpoint detail

    Application endpoint detail

Testing a push notification from your device

In this section, you test sending a push notification to your device.

  1. From the SNS console, navigate to your platform endpoint and choose Publish message.
  2. Enter a message to send. This example uses a custom payload that allows you to provide additional APNs headers.

    Publish message

    Publish message

  3. Choose Publish message.
  4. The push notification is delivered to your device.

    Notification

    Notification

Conclusion

Developers send mobile push notifications for APNs certificate-based authentication by using a .p12 certificate to authenticate an Apple device endpoint. Certificate-based authentication ensures a secure connection through TLS (Transport Layer Security). The provider (SNS) initiates the request to APNs and validation from the provider and APNS is required to complete the secure connection.

Certificates expire annually and must be renewed to ensure that SNS can continue to deliver to the endpoint. In this post, you learn how to create an iOS application for APNs certificate-based authentication and integrate it with SNS to send push notifications to your device using a .p12 certificate to authenticate your application with the mobile endpoint.

To learn more about APNs certificate-based authentication with Amazon SNS, visit the Amazon SNS Developer Guide.

For more serverless learning resources, visit Serverless Land.

Security updates for Monday

Post Syndicated from original https://lwn.net/Articles/903455/

Security updates have been issued by Debian (booth, libpgjava, and thunderbird), Fedora (3mux, act, age, antlr4-project, apache-cloudstack-cloudmonkey, apptainer, aquatone, aron, asnip, assetfinder, astral, bettercap, buildah, butane, caddy, cadvisor, cheat, chisel, clash, clipman, commit-stream, containerd, cri-o, darkman, deepin-gir-generator, direnv, dnscrypt-proxy, dnsx, docker-distribution, doctl, douceur, duf, ffuf, fzf, geoipupdate, git-lfs, git-octopus, git-time-metric, glide, gmailctl, gnutls, go-bindata, goaltdns, gobuster, godep, godoctor, godotenv, gojq, golist, goloris, gomtree, google-guest-agent, gotags, gotun, grafana, gron, grpcurl, hakrevdns, hcloud, htmltest, httprobe, hulk, ignition, jid, kata-containers, kiln, kompose, kubernetes, libldb, manifest-tool, mass3, meg, meshbird, micro, mingw-harfbuzz, mingw-poppler, moby-engine, mqttcli, nats-server, nebula, netscanner, oci-seccomp-bpf-hook, ohmybackup, onionscan, open-policy-agent, origin, osbuild-composer, podman-tui, popub, powerline-go, reposurgeon, restic, runc, samba, shellz, shhgit, skopeo, snapd, snowcrash, source-to-image, subfinder, syncthing, sysutil, terrier, thunderbird, tiedot, toolbox, vgrep, vultr, vultr-cli, webanalyze, webkit2gtk3, weldr-client, wgctrl, xe-guest-utilities-latest, xen, xq, yggdrasil, yubihsm-connector, and a vast number of golang packages), Mageia (chromium-browser-stable, firefox, gdk-pixbuf2.0, python-ujson, and webmin), Red Hat (firefox and thunderbird), Slackware (gnutls), and SUSE (chromium, firefox, mozilla-nss, rubygem-tzinfo, samba, and xen).

Ring Gives Videos to Police without a Warrant or User Consent

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2022/08/ring-gives-videos-to-police-without-a-warrant-or-user-consent.html

Amazon has revealed that it gives police videos from its Ring doorbells without a warrant and without user consent.

Ring recently revealed how often the answer to that question has been yes. The Amazon company responded to an inquiry from US Senator Ed Markey (D-Mass.), confirming that there have been 11 cases in 2022 where Ring complied with police “emergency” requests. In each case, Ring handed over private recordings, including video and audio, without letting users know that police had access to—and potentially downloaded—their data. This raises many concerns about increased police reliance on private surveillance, a practice that has long gone unregulated.

EFF writes:

Police are not the customers for Ring; the people who buy the devices are the customers. But Amazon’s long-standing relationships with police blur that line. For example, in the past Amazon has given coaching to police to tell residents to install the Ring app and purchase cameras for their homes—­an arrangement that made salespeople out of the police force. The LAPD launched an investigation into how Ring provided free devices to officers when people used their discount codes to purchase cameras.

Ring, like other surveillance companies that sell directly to the general public, continues to provide free services to the police, even though they don’t have to. Ring could build a device, sold straight to residents, that ensures police come to the user’s door if they are interested in footage—­but Ring instead has decided it would rather continue making money from residents while providing services to police.

CNet has a good explainer.

Slashdot thread.

The 5.19 kernel is out

Post Syndicated from original https://lwn.net/Articles/903023/

Linus has released the 5.19 kernel.

On a personal note, the most interesting part here is that I did
the release (and am writing this) on an arm64 laptop. It’s
something I’ve been waiting for for a _loong_ time, and it’s
finally reality, thanks to the Asahi team. We’ve had arm64 hardware
around running Linux for a long time, but none of it has really
been usable as a development platform until now.

He also notes that the next kernel is likely to be 6.0.

Significant features in 5.19 include
Arm Scalable
Matrix Extension
support,
a number of io_uring improvements,
BIG TCP support,
numerous random-number
generator improvements
,
support for AMD’s Secure
Nested Paging
and Intel’s Trusted
Domain Extensions
mechanisms,
support for the Loongson “LoongArch” CPU architecture,
a new proactive
reclaim mechanism
,
and more. See the LWN merge-window summaries
(part 1,
part 2) and the KernelNewbies 5.19 page
for more information.

Kicinski: TLS 1.3 Rx improvements in Linux 5.20

Post Syndicated from original https://lwn.net/Articles/903026/

Jakub Kicinski provides
an overview
of some changes to the in-kernel TLS implementation coming
in the next development cycle:

The first implementation of kTLS was designed in the good old days
of TLS 1.2. When TLS 1.3 came into the picture the interest in kTLS
had slightly diminished and the implementation, although
functional, was rather simple and did not retain all the
benefits. This post covers developments in the Linux 5.20
implementation of TLS which claws back the performance lost moving
to TLS 1.3.

За странните неща

Post Syndicated from original http://www.gatchev.info/blog/?p=2477

Убиецът на клошари

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

Разпитвате човека. Той заявява, че клошарите петнят прекрасния град и затова той ги разчиства по описания от свидетелите начин. Арестувате го и го предавате на следствието.

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

Нещо странно? Е, странното започва тук. След произнасянето на присъдата осъденият и свидетелите заявяват, че те са екип психолози. Че всичко, което са разказали, е измислица – защото е опит. И че целта на опита – която той бил постигнал блестящо – е да докаже, че правосъдието е ненадеждна институция. Че то не може да различи истински престъпник от мним, и затова е самоволно и опасно и не трябва да съществува.

А психиатрията?

Дивотии на търкалета ли е тяхното „доказателство“? Естествено. Извън експеримента тази ситуация би била толкова надеждно доказателство за вината на осъдения, колкото каквото и да е може да е надеждно в реалния свят. Някой да се съмнява?

Но точно такова нещо, и с аналогични мотиви, твърди проф. Дейвид Розенхан за психиатрията.

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

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

Как работи науката

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

Науката обаче и пресява налудничавите твърдения, за да открие кои от тях са верни. На края на месеца споменатият лорд записва в дневника си: „Експериментът беше успешен – доказа се, че цветята не се влияят от концерти.“ При по-трудни проблеми подробно описаната опитна постановка се повтаря многократно от други учени, проверява се за несъвършенства и проблеми, следи се дали дава същите резултати, и т.н. До практически консенсус се стига след дълго доуточняване на опитните условия, чистене на проблеми, сравняване на данни, анализ на резултатите и т.н. Затова обикновено този консенсус е верен.

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

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

(Затова хора, които казват за нещо „Това е само теория“, всъщност казват „Аз съм идиот, който не знае разликата между хипотеза и теория“. Оттам нататък да ги слушате е така безсмислено, както ако казват за нещо със същата пренебрежителност „А, това е само факт“.

Важи още повече за хора, които казват „Всеки си има свои истини / факти / реалност“. Те имат нужда да ги биете, докато им обяснявате, че ги биете само в тяхната реалност, а във вашата не ги пипвате с пръст, така че няма как да спрете. Да не ви занимават с претенциите си, вие не сте виновни, проблемът им е в тяхната си реалност. И най-вече да не охкат и да не се съпротивляват, защото правят собствените си твърдения за смях пред околните…)

А ежедневието?

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

А кое е в крайна сметка странното, и защо го има?

Добре, а защо тогава толкова хора наоколо не са наясно с тези неща? Защо непрекъснато ще видите хора, убедени че всеки си има своя истина, свои факти и своя реалност?

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

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

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

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

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

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

Иначе рискувате тук те да се погрижат за вас както смятат, че ви е нужно.

Use SQL queries to define Amazon Redshift datasets in AWS Glue DataBrew

Post Syndicated from Suraj Shivananda original https://aws.amazon.com/blogs/big-data/use-sql-queries-to-define-amazon-redshift-datasets-in-aws-glue-databrew/

In the post Data preparation using Amazon Redshift with AWS Glue DataBrew, we saw how to create an AWS Glue DataBrew job using a JDBC connection for Amazon Redshift. In this post, we show you how to create a DataBrew profile job and a recipe job using an Amazon Redshift connection with custom SQL.

DataBrew is a visual data preparation tool that can help you simplify your extract, transform, and load (ETL) process. You can now define a dataset from Amazon Redshift by applying custom SQL statements. Applying a custom SQL statement to a large source table allows you to select, join, and filter the data before cleaning, normalizing, and transforming it in a DataBrew project. Filtering and joining the data from your data source and only bringing in the data you want to transform simplifies the ETL process.

In this post, we demonstrate how to use custom SQL queries to define your Amazon Redshift datasets in DataBrew.

Solution overview

To implement this solution, you complete the following high-level steps:

  1. Create an Amazon Redshift connection.
  2. Create your dataset and use SQL queries to define your Amazon Redshift source datasets.
  3. Create a DataBrew profile job to profile the source data.
  4. Create a DataBrew project and recipe job to transform the data and load it to Amazon Simple Storage Service (Amazon S3).

The following diagram illustrates the architecture for our solution.

Prerequisites

To use this solution, complete the following prerequisite steps:

  1. Have an AWS account.
  2. Create an Amazon Redshift cluster in a private subnet within a VPC as a security best practice.
  3. Because DataBrew commands require that the cluster has access to Amazon S3, make sure you create a gateway VPC endpoint to Amazon S3. The gateway endpoint provides reliable connectivity to Amazon S3 without requiring an internet gateway or NAT device from your VPC.
  4. Enable the enhanced VPC routing in the Amazon Redshift cluster. Enhanced VPC routing forces all Amazon Redshift commands to use the connectivity to the gateway VPC endpoint to Amazon S3 in the same AWS Region as your cluster.
  5. Create a database and tables, and load the sample data in the Amazon Redshift cluster.
  6. Prepare a SQL query to extract the source dataset. You use this SQL query later in this post to create an Amazon Redshift source dataset in DataBrew.
  7. Create an S3 bucket to store data from the profile and recipe jobs. The DataBrew connection temporarily stores intermediate data in Amazon S3.
  8. For our use case, we use a mock dataset. You can download the DDL and data files from GitHub.

Security best practices

Consider the following best practices in order to mitigate security threats:

  • Review the shared responsibility model when using DataBrew.
  • Restrict network access for inbound and outbound traffic to least privilege. Take advantage of the routing traffic within the VPC by using an Amazon S3 gateway endpoint and enhanced VPC routing in Amazon Redshift.
  • Enable the lifecycle policy in Amazon S3 to retain only necessary data, and delete unnecessary data.
  • Enable Amazon S3 versioning and cross-Region replication for critical datasets to protect against accidental deletes.
  • Enable server-side encryption using AWS KMS (SSE-KMS) or Amazon S3 (SSE-S3).
  • DataBrew uses Amazon CloudWatch for logging, so you should update your log retention period to retain logs for the appropriate length of time.

Create an Amazon Redshift connection

In this section, you create a connection in DataBrew to connect to your Amazon Redshift cluster.

  1. On the DataBrew console, choose Datasets in the navigation pane.
  2. On the Connections tab, choose Create connection.
  3. For Connection name, enter a name, such as order-db-connection.
  4. For Connection type, select Amazon Redshift.
  5. Under Connection access, provide the Amazon Redshift cluster name, database name, database user, and database password.
  6. Choose Create connection.

Create your dataset by applying a custom SQL statement to filter the source data

In this section, you create a Amazon Redshift connection, add your custom SQL statement, and validate it. You can also validate your SQL statement directly in your Amazon Redshift cluster by using the Amazon Redshift query editor v2. The purpose of validating the SQL statement is to help you avoid failure in loading your dataset into a project or job. Also, checking the query runtime ensures that it runs in under 3 minutes, avoiding timeouts during project loading. To analyze and improve query performance in Amazon Redshift, see Tuning query performance.

  1. On the DataBrew console, choose Datasets in the navigation pane.
  2. On the Datasets tab, choose Connect new dataset.
  3. For Dataset name, enter a name, such as order-data.
  4. In the left pane, choose Amazon Redshift under Database connections.
  5. Add your Amazon Redshift connection and select Enter custom SQL.
  6. Enter the SQL query and choose Validate SQL.
  7. Under Additional configurations, for Enter S3 destination, provide an S3 destination to temporarily store the intermediate results.
  8. Choose Create dataset.

Create a DataBrew profile job

In this section, you use the newly created Amazon Redshift dataset to create a profile job. Data profiling helps you understand your dataset and plan the data preparation steps needed in running your recipe jobs.

  1. On the DataBrew console, choose Jobs in the navigation pane.
  2. On the Profile jobs tab, choose Create job.
  3. For Job name, enter a name, such as order-data-profile-job.
  4. For Job type¸ select Create a profile job.
  5. Under Job input, choose Browse datasets and choose the dataset you created earlier (order-data).
  6. For Data sample, select Full dataset.
  7. Under Job output settings¸ for S3 location, enter the S3 bucket for the job output files.
  8. For Role name, choose an AWS Identity and Access Management (IAM) role with permission for DataBrew to connect to the data on your behalf. For more information, refer to Adding an IAM role with data resource permissions.
  9. Choose Create and run job.

Check the status of your profile job. A profile output file is created and stored in Amazon S3 upon completion. You can choose View data profile to see more information.

In addition to an output file, DataBrew also provides visualizations. On the Dataset profile overview tab, you can see data visualizations that can help you understand your data better. Next, you can see detailed statistics about your data on the Column statistics tab, illustrated with graphics and charts. You can define data quality rules on the Data quality rules tab, and then see the results from the data quality ruleset that applies to this dataset.

For example, in the following screenshot, the amount column has 2% missing values, as shown on the Column statistics tab. You can provide rules that avoid triggering a recipe job in case of an anomaly. You can also notify the source teams to handle or acknowledge the missing values. DataBrew users can also add steps in the recipe job to handle the anomalies and missing values.

Create a DataBrew project and recipe job

In this section, you start analyzing and transforming your Amazon Redshift dataset in a DataBrew project. The custom SQL statement runs in Amazon Redshift when the project is loaded. Databrew performs read-only access to your source data.

Create a project

To create your project, complete the following steps:

  1. On the DataBrew console, choose Projects in the navigation pane.
  2. Choose Create project.
  3. For Project name, enter a name, such as order-data-proj.
  4. Under Recipe details¸ choose Create new recipe and enter a recipe name, such as order-data-proj-recipe.
  5. For Select a dataset, select My datasets.
  6. Select the dataset you created earlier (order-data).
  7. Under Permissions, for Role name, choose your DataBrew role.
  8. Choose Create project.

DataBrew starts a session, constructs a DataFrame, extracts sample data, infers basic statistics, and displays the sample data in a grid view. You can add steps to build a transformation recipe. As of this writing, DataBrew offers over 350 transformations, with more on the way.

For our example use case, Company ABC has set a target to ship all orders within 7 days after the order date (internal SLA). They want a list of orders that didn’t meet the 7-day SLA for additional investigation. The following sample recipe contains steps to handle the missing values, filter the values by amount, change the date format, calculate the date difference, and filter the values by shipping days. The detailed steps are as follows:

  1. Fill missing values with 0 for the amount column.
  2. Filter values by amount greater than 0.
  3. Change the format of order_timestamp to align with ship_date.
  4. Create a new column called days_for_shipping using the dateTime function DATEDIFF to show the difference between order_timestamp and ship_date in days.
  5. Filter the values by days_for_shipping greater than 7.

Create a recipe job

To create your DataBrew recipe job, complete the following steps:

  1. On the DataBrew console, choose Jobs in the navigation pane.
  2. Choose Create job.
  3. For Job name¸ enter a name, such as SHIPPING-SLA-MISS.
  4. Under Job output settings, configure your Amazon S3 output settings.
  5. For S3 location, enter the location of your output bucket.
  6. For Role name, choose the IAM role that contains permissions for DataBrew to connect on your behalf.
  7. Choose Create and run job.

You can check the status of your job on the Jobs page.

The output file is in Amazon S3 as specified, and your data transformation is now complete.

Clean up

To avoid incurring future charges, we recommend deleting the resources you created during this walkthrough.

Conclusion

In this post, we walked through applying custom SQL statements to an Amazon Redshift data source in your dataset, which you can use in profiling and transformation jobs. You can now focus on building your data transformation steps knowing that you’re working on only the needed data.

To learn more about the various supported data sources for DataBrew, see Connecting to data with AWS Glue DataBrew.


About the authors

Suraj Shivananda is a Solutions Architect at AWS. He has over a decade of experience in Software Engineering, Data and Analytics, DevOps specifically for data solutions, automating and optimizing cloud based solutions. He’s a trusted technical advisor and helps customers build Well Architected solutions on the AWS platform.

Marie Yap is a Principal Solutions Architect for Amazon Web Services based in Hawaii. In this role, she helps various organizations begin their journey to the cloud. She also specializes in analytics and modern data architectures.

Dhiraj Thakur is a Solutions Architect with Amazon Web Services. He works with AWS customers and partners to provide guidance on enterprise cloud adoption, migration, and strategy. He is passionate about technology and enjoys building and experimenting in the analytics and AI/ML space.

Седмицата (25–30 юли)

Post Syndicated from Йовко Ламбрев original https://toest.bg/editorial-25-30-july-2022/

Наближава краят на месец юли, което означава, че четете последното резюме на седмицата, преди „Тоест“ да излезе в обичайната лятна ваканция. Факт: предстои поредното горещо политическо лято в България, но това ще са така или иначе поредните предсрочни избори и особени изненади от родния политически елит през август сякаш не се очакват.

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

Все пак трябва да се признаят усилията на този кабинет, ефектите от които тепърва ще се усещат и ще носят полза. Например свършеното от новосформираното Министерство на електронното управление начело с Божидар Божанов. Правителството прекъсна далаверите с фитосанитарния контрол на плодовете и зеленчуците на ГКПП Капитан Андреево и опитите за износ на зърно в критичен момент. Имаше куража да се противопостави на игричките на „Газпром“ и да устои на натиска от страна на Русия. Довърши интерконектора с Гърция. Върна Българската банка за развитие към ролята, която има по замисъл – да подкрепя малкия бизнес. Еманципира се от токсичната гравитация на президента Радев. По време на това управление се намери приемливо решение за казуса със Северна Македония. И най-важното – олигархичният модел в България не беше демонтиран, но беше сериозно разклатен.

Емилия Милчева

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

И като казахме „грешки“, не би било справедливо те да се премълчат. В обзорния си анализ „Мементото на Промяната“ Емилия Милчева разглежда списъка от добри идеи, намерения и обещания, които останаха нереализирани. За част от тях беше категорично ясно, че няма как да се осъществят при разпределението на силите в този парламент. Но все пак – с какво ще бъде запомнено 47-мото Народно събрание? И с какво предстои да се справя служебното правителство (четвъртото поред на президента Радев) за двата месеца до новите избори?

Тоест

„История, която трябваше да свърши през 2010 г.“ e заглавието на първата част от обзорен материал за ТЕЦ „Брикел“, подготвен от екип на „Тоест“. Важно е темата да бъде проследена хронологично, защото е образец на порочен модел – как с нарочно бездействие институциите отлагат решения на болезнени проблеми в полза на забогатяването на малцина и в ущърб на всички ни. Модел, който се повтаря в една или друга степен и е симптом на тежкото заболяване „институционална корупция“ в държавата ни.

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

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

Станислав Додов

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

И накрая една препоръка от мен – ако сте в Пловдив през август и обичате джаз. За първи път Plovdiv Jazz Fest ще има свое лятно издание. Даже в две части.

Приятно четене, хубава музика и весело лято!

Източник

ТЕЦ „Брикел“ и пушекът на всеобщата безотговорност 

Post Syndicated from Тоест original https://toest.bg/brikel-part2/

<< Към част първа

ТЕЦ „Брикел“ пуши отвсякъде.

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

решението на Министерския съвет да затвори ТЕЦ „Брикел“ заради установени „умопомрачаващи“ нарушения

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

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

По думите му, службата за пожарна безопасност е установила повече от 15 нарушения, включително „наличието на бензиностанция в рамките на комплекса, която не е регламентирана и се намира на отстояния, твърде близки до други обекти“. Министърът отбеляза, че авария в подобен тип обекти може да доведе до екологична катастрофа. При проверките са открити сериозни нарушения на разрешителното за работа на централата, както и системни нарушения назад във времето. Те са основанието за принудителното затваряне на теца.

Министърът потвърди също, че измерените при проверката нива на замърсяване със серен диоксид и фини прахови частици в пъти над нормите са били

не просто моментни данни, а устойчиви стойности

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

Докато институциите пишат докладите си от извънредната проверка, ТЕЦ „Брикел“ продължава да пуши. Снимка от граждански сигнал до „Грийнпийс – България“, предоставена на „Тоест“

Облаци сив, кафяв и черен дим и тежък тъмен прах, завихрен от равнинните ветрове, периодично обгръщат осемхилядното градче в Югоизточна България. Мрачната му уникалност буквално витае във въздуха – това е едно от двете последни места в Европейския съюз, които страдат от хронично замърсяване със серен диоксид: безцветен газ с остра задушлива миризма, който се отделя при горенето на въглища за производство на енергия. Другото място е Димитровград след възобновяването на дейността на ТЕЦ „Марица 3“.

През май 2022 г. Съдът на Европейския съюз осъди България заради системния провал на държавните институции да спазят задълженията на страната да осигурява добро качество на въздуха в Югоизточния район, където се намират Гълъбово и Димитровград. Данните от годишните доклади, представени пред Съда от Република България, показват, че и дневната, и почасовата пределно допустима стойност за серен диоксид редовно са били превишавани в периода 2007–2018 г. (Вж. параграфи 65–67 от Решението на Съда на ЕС и обобщената таблица по-долу.)

Тоест измерените при проверката на Петков и Сандов стойности на площадката на ТЕЦ „Брикел“

не са нито извънредни, нито безпрецедентни.

В съдебния процес България се оправдава със „завареното положение“: опасното замърсяване със серен диоксид се дължи на факта, че в сравнително малък регион около тази община са разположени четирите най-големи топлоелектрически централи в България, които работят с лигнитни въглища, а именно „Брикел“ в самата община Гълъбово, „Марица-изток 2“ в село Ковачево, община Раднево (съседна на община Гълъбово), „Контур Глобал Марица-изток 3“ в с. Медникарово, община Гълъбово, и „Ей И Ес – 3С Марица-изток 1“ – също в община Гълъбово (пар. 29 от Решението).

Макар да признава, че проверките на компетентните органи са установили нерегламентирани изпускания на такива димни газове от ТЕЦ „Брикел“, държавата поддържа аргумента, че разположението на четирите инсталации на относително малка площ „затруднява значително определянето както на конкретния причинител на замърсяването, така и на степента, в която всяка централа влияе върху качеството на въздуха в община Гълъбово“.

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

Вицепремиерът в оставка Борислав Сандов съобщи и данни за потенциален конфликт на интереси, който предстои да бъде установен:

поне няколко служители на РИОСВ – Стара Загора, контролиращия орган за ТЕЦ „Брикел“, вече работят в централата.

Сред тях е настоящият главен еколог на предприятието, бивш директор на екоинспекцията в период, в който централата е оперирала в същия режим.

„Много ясно се вижда всичко, което излиза от сградата. Това не е прах, а емисии. Сградата е надупчена, излизат от прозорците, от тавана, от покрива, отвсякъде“, разказа Сандов пред bTV, показвайки снимка на централата с термокамера на Изпълнителната агенция по околна среда, но практически описвайки всяка снимка от сигнали на граждани от последните години.

ТЕЦ „Брикел“ посипва района с фин въглищен прах, 11 юли 2021 г. © Стефан Николов

Тази, както и всяка друга въглищна централа в България има условие да пречиства димните газове, които са резултат от горенето на въглища за производство на енергия, и да ги изпуска през комин, в който са монтирани измервателни устройства за следене дали отделяните емисии са в законовите норми. ТЕЦ „Брикел“ много често използва 150-метровия комин на инсталацията си. В пика на тази индустрия комините са били строени толкова високи, за да изпускат димните газове от производството високо в атмосферата, които да бъдат отнесени и разредени във въздуха възможно по-далеч от площадката и от близки населени места. Днес, когато вредите за здравето на хората и за околната среда от замърсяването са добре известни, в Европейския съюз важат правила за очистването на димните газове.

Високият комин на „Брикел“ обаче не разполага със съоръжения нито за измерване на димните газове и съдържанието им, нито за очистване.

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

„ТЕЦ „Брикел“ има пет котела, през няколко часа декларират авария, за да работят само на този комин“, обясни Сандов. Подобна ситуация е описана при проверка в началото на юли, за която министърът пише в отговора си до четирима депутати в Народното събрание. На сигнал на екологични организации РИОСВ – Стара Загора отговаря на 26 май 2021 г., че енергийните котли са силно амортизирани, възникването на чести аварии налага почти ежеседмично погасяне и разпалване, има пропуски по енергийните котли, което води до неорганизирано изпускане на емисии на вредни вещества през покрива на котелния цех, отвори (прозорци) и газоходи. И допълва:

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

Въпреки тези заключения Изпълнителната агенция по околна среда издава ново разрешително за работа на ТЕЦ „Брикел“ само няколко месеца след констатираното от РИОСВ – Стара Загора. И въпреки че към самото разрешително са прикачени мотивите на Агенцията да не даде на централата изключение от законовите норми за серни оксиди заради системно неизпълнение на условията на предишното разрешително.

Наред с вече известните нарушения е и

изгарянето на отпадъци и биомаса без законово разрешение.

Тази сага се разгръща през 2018 г., когато няколко въглищни централи, свързвани с Христо Ковачки, правят постъпки за разнообразяване на горивата с отпадъци, биомаса и нефтошисти, които представляват нискокачествени въглища. ТЕЦ „Брикел“ също планира да се превърне в инсинератор, а РИОСВ – Стара Загора ѝ дава зелена светлина, без да настоява за предварителен анализ на влиянието върху здравето на хората и околната среда на такава промяна в инсталация в подобно състояние. Община Гълъбово дори се ангажира да съдейства на централата да изгаря 500 000 тона отпадъци годишно, както показва разкрито в медиите тайно споразумение.

След бурна обществена реакция ТЕЦ „Брикел“ и други централи публично се отказаха от намерението да горят отпадъци. На дневен ред обаче остана горенето на биомаса.

Отпадъци и биомаса, съхранявани на площадка на Брикетната фабрика (намираща се срещу ТЕЦ „Брикел“) в началото на 2021 г. © „Грийнпийс – България“

Интересът на въглищните централи към алтернативни горива е чисто икономически – изгарянето на въглищата изисква закупуване на квоти въглеродни емисии, което става все по-съществен разход за старите и неефективни инсталации, горящи нискокалорични лигнитни въглища. Горенето на отпадъци намалява разходите за емисии, от една страна, и носи допълнителни приходи за „услугата“ по оползотворяване, от друга. Биомасата пък се смята за гориво с нулеви въглеродни емисии в Европейската директива за възобновяемата енергия – практически счетоводен трик, критикуван от екологични организации заради пропуска да се отчете като фактор времето за възстановяване на растенията, изгорени за гориво.

Въпреки че няма разрешение да изгаря биомаса, в годишните си доклади ТЕЦ „Брикел“ декларира изгарянето на над 220 000 тона през 2018 г., 276 000 тона през 2019 г., 386 000 тона през 2020 г. и близо 370 000 тона през 2021 г. Централата получава разрешително да гори биомаса едва през октомври 2021 г. Дотогава ТЕЦ „Брикел“ на два пъти е санкционирана от РИОСВ – Стара Загора за използването на неразрешено гориво – през 2018 г. и 2020 г. са ѝ наложени глоби от по

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

През последните две години в годишните отчети на ТЕЦ „Брикел“ дори се отбелязва, че „данните за използваните в инсталацията горива са докладвани и във верифицирания доклад за емисии на парникови газове“. Разследване на международната журналистическа организация OCCRP миналата година разкри, че заради отчитане на по-ниски от реалните емисии „Брикел“ и „Бобов дол“ (също свързвана с Христо Ковачки) са избегнали плащането на между 26,6 и 32,2 млн. евро за емисии на парникови газове. Годишните доклади на „Брикел“ са верифицирани от „Джи Ем Ай Верифай“ – компания, която журналистите от OCCRP и природозащитната организация „Грийнпийс – България“ обвързват с въглищната империя на Ковачки, тъй като клиентите ѝ са дружества, свързани с енергийния консултант.

Това обяснява готовността на ТЕЦ „Брикел“ да работи в нарушение години наред, като плаща символични глоби. Не обяснява обаче

откъде идват колосалните количества биомаса, която според екоинспекцията е слама.

Според доклад на отдел „Агростатистика“ към Министерството на земеделието за 2018 г., за която са най-актуалните публикувани данни, в България са произведени общо 83 000 тона слама от житни култури – или над 2,5 пъти по-малко от количеството, което ТЕЦ „Брикел“ декларира, че е изгорила за същата година. Специалисти в бранша смятат, че централата гори слама само по документи, за да осчетоводи по-ниски разходи за емисии. Остават много въпроси около законността на този подход в продължение на години и ролята на редица институции за осъществяването му в завиден институционален комфорт, който министър Сандов нарича „чадър“.

„Това, че е недобре изглеждащо предприятие, според мен не би следвало да бъде затворено“, заяви изпълнителният директор на дружеството Янилин Павлов пред bTV дни след извънредната проверка. При предприятия като ТЕЦ „Брикел“ обаче външният вид е показателен за всичко, което стои зад него.

Заглавна снимка: Стопкадър от видеоклип на „Грийнпийс – България“, заснет с дрон над ТЕЦ „Брикел“

Източник

Кога и защо се разпространява манипулативното съдържание? 

Post Syndicated from Йоанна Елми original https://toest.bg/koga-i-zashto-se-razprostranyava-manipulativnoto-sudurzhanie/

Facebook групата „Строго секретно НЛО извънземни конспирации Бог Вселена тайни и загадки“ е една от най-старите конспиративни общности в българското онлайн пространство. Създадена на 13 юли 2013 г., в момента групата наброява близо 100 000 членове и има по над 100 публикации дневно. В нея системно се споделят материали от сайтове с дезинформация и манипулативно съдържание.

Разискваните теми са добре обобщени от името на групата, но не се изчерпват с тях: през годините в нея се публикува манипулативно съдържание за Истанбулската конвенция, Стратегията за детето, здравната криза, а днес – и за войната на Русия срещу Украйна. Така освен изобилие от рекламен спам на руски език, групата предлага и нагледни примери за тенденциите в манипулативното съдържание и как те се променят през годините. Голяма част от информацията се споделя чрез изображения с малко текст, който се превежда от руски или английски, а понякога едни и същи графични елементи се рециклират – апокалиптична снимка, която намеква, че пандемията е заговор за подчиняване на човечеството, е използвана и за конфликта в Донбас, а сега – и за руската инвазия в Украйна.

Хронологията на манипулативното съдържание е проследима и в лични профили, като този на Константин Петков, собственик на сайта за конспирации bultimes.bg, за когото ви разказахме в предишния материал от поредицата. През 2011 г. Петков публикува антисемитско съдържание, конспирации за намаляване на населението и за НЛО, както и публикации, свързващи американското семейство Буш със сатанистите. През 2012 г. постовете му се въртят около края на света според календара на маите, а от 2013 г. нататък е активен по темата за Сирия. По същото време (съвпадащо с Евромайдана в Украйна) Петков започва активно да публикува съдържание, свързано със Сорос, „еврофашизма“, „нелегалните мигранти“, сравнения на ЕС с СССР, предсказания на Ванга за Русия, пропутински постове.

Двата примера илюстрират добре позната тенденция: конспиративното или манипулативното съдържание никога не идва само̀ и е трудно да му се припише злонамереност. Но макар мотивите за разпространение да са различни, съдържанието е по-скоро хомогенно, а опорните точки, които третират наболели проблеми, са сходни.

Пример за мрежа за манипулация

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

На 28 юни 2022 г. в анонимния сайт novinitebg.eu се появява материал със заглавие „Лавров: Ето заповедта на СЗО към България, дадена на 20 юни“, подписан от автор без снимка, на име Николай Димитров. В публикацията се твърди, че Русия предупреждава „народа на България“, че Световната здравна организация е издала заповед на страната ни „да се стартира пандемията отново“ и „медиите и специалистите да започнат да създават почва за нова вълна“. Като източник се посочва руската правителствена служба „РИА новости“. През следващите няколко седмици статията е споделена в множество групи във Facebook, сред които споменатата по-горе „Строго секретно…“, но и „Аз подкрепям доцент Мангъров“, „Ние не искаме война с Русия“, „Приятели на Россия“ и пр.

Към момента достъпът до сайта novinitebg.eu, в т.ч. до самия материал, е ограничен, но на 9 юли потребител във Facebook публикува скрийншот на статията, който впоследствие е споделен над 1200 пъти.

Подобна „новина“ не се открива при търсене по ключови думи на руски около датата на българския материал в novinitebg.eu. Във Facebook и Telegram същата информация е публикувана около 7 юли, но без посочването на „РИА новости“ като първоизточник. Същевременно „новината“ продължава да се разпространява във Facebook под формата на коментари, постове и техни скрийншотове.

Заповед на СЗО от 20 юни за „създаване на почва за нова вълна“, разбира се, не съществува, нито е разкрита от Русия. Статии в медиите относно нова лятна вълна на коронавируса съществуват отпреди въпросната дата, а към 18 юли експерти прогнозират, че вълната ще достигне пика си до няколко седмици.

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

За разлика от други сайтове, чието съдържание се споделя системно в много групи от един потребител, материалите от маргиналния novinitebg.eu се разпространяват много повече и от множество потребители, сред които има както автентични профили, така и фалшиви. Като например Jessica Rae, в чийто публичен Facebook акаунт откриваме само профилна снимка, която всъщност принадлежи на… калифорнийската инфлуенсърка Джули Сариняна. Акаунтът е администратор на Facebook групата „Ние не искаме война с Русия“ и освен статии от novinitebg.eu споделя в същата група и статии от сайта vsekidenbg.eu, който също вече не е активен в момента. Jessica Rae публикува материалите ежедневно  в групата, наброяваща малко над 14 000 души.

Повечето постове в тази група съдържат дезинформация – изфабрикувани твърдения за пандемията и инвазията в Украйна. Други публикации приканват потребителите да се присъединят към нови проруски групи, например „Подкрепа за Русия“ и „Искаме махане на санкциите срещу Русия“. Първата група е създадена през април тази година, а втората – през юни. „Подкрепа за Русия“ споделя част от администраторите на „Ние не искаме война с Русия“, а „Искаме махане на санкциите срещу Русия“ е администрирана от страницата „Антимедия“, която на свой ред е създадена през януари. „Антимедия“ управлява мрежа от Facebook групи с проруска и антиваксърска насоченост, в които членуват близо 45 000 потребители. Освен на войната и пандемията, групите разчитат и на антисистемни емоции: срещу ДПС, правителството на Кирил Петков, Румен Радев и демократичната система като цяло.

История на манипулацията

Подчертано проруското и антизападно съдържание, което се приспособява към различни теми, си има история. В проучване от 2017 г. на Фондацията за хуманитарни и социални изследвания (ФХСИ) се посочва, че публикациите, обявяващи „залеза на Европа“ нарастват от диапазон 0–20 поста месечно през 2013 г. до 50–300 месечно към 2015 и 2016 г. Същото се отнася за наративи, които промотират Русия: „Ако през 2013 г. общата възхвала на Русия върви с под 10 статии месечно, през 2014 г. тя на два пъти (около анексирането на Крим и след въвеждането на санкциите през есента) бележи рязък ръст с натрупване, за да стигне стабилни стойности от над 50 публикации месечно през следващите две години, с изявени нови пикове от над 250 публикации през март 2015 г. (годишнината от анексирането на Крим) и дори над 400 статии месечно през септември–октомври 2015 г. (влизането на руски войски в Сирия).“

Подобни тенденции в същия период се наблюдават в повечето наративи, които виждаме в описаните групи с манипулативно съдържание: посочване на враговете на Русия, обявяване против санкциите срещу Русия, прокарване на пропагандни тези за Крим и Украйна, дискредитиране на гражданското общество и представяне на Запада като кукловод, който цели да навреди на България. Тези тенденции се променят и усилват след 2017 г. и кулминират с идването на пандемията и последвалата инвазия в Украйна. Наред с изброените наративи, ново изследване на ФХСИ сочи, че манипулативното съдържание си служи с ясен речников набор, който се адаптира към българския политически календар. Епитети като „соросоиди“, „грантаджии“, „джендъри“, „либерасти“, „платени анализатори и политици“, „жълтопаветни протестъри“ се прикачват към политици, граждански организации и личности, както е видно и от примерите в групите, управлявани от „Антимедия“.

Съществуват ли контранаративи? В изследването от 2017 г. на ФХСИ са разглеждани материали, в които Русия, Кремъл, КГБ поемат ролята на „големия злодей“, местещ марионетките си – „рубладжиите“, които „причиняват всички беди на „българския народ“, като му „отнемат суверенитета“. Според изследователите противопоставянето „русофилия–русофобия“ по отношение на манипулативното съдържание е погрешно и е част от методите за манипулация, тъй като и двата разказа са антилиберални и силно националистически настроени.

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

Кое е пропаганда и кое – не?

„Не всяка системна защита на ценности (да речем, европейските ценности) или на политически принципи (на либералната демокрация) могат и следва да бъдат определяни като пропаганда. Никоя система от ценности и принципи, дори и да е целенасочено тиражирана, не може да бъде определяна като пропаганда, ако тя позволява интерпретативна свобода и конкуренция и ако насърчава внимателната и публично защитима детайлизация и модализация на твърденията. Напротив, пропаганда е всяко целенасочено опростяване на картината на света, работещо чрез опорки: с готови разкази, със специално изработен речник от общи епитети (нарицателни), позволяващи метонимично заместване, на казване на едно вместо друго, в квазимитологичен режим на повторение“, категорични са експертите, съставили доклада.

Какво цели манипулацията?

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

Политическата мотивация често се припокрива с пропагандата и цели утвърждаването на определени идеи. Манипулацията на обществено мнение се осъществява чрез дезинформация и мисинформация, както и чрез мрежи от фалшиви акаунти. Ако пропагандата се контролира на държавно ниво, медии като телевизия и радио също могат да си служат с манипулативно съдържание.

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

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

Злоупотреба с кризи без предлагане на решения

Както е очевидно от примерите, манипулативното съдържание експлоатира наболели социални и политически проблеми: разочарование от институционалната система, военни конфликти, здравни кризи и културни противопоставяния. Манипулативното съдържание вирее в общества, където доверието в институциите и медиите е ниско, и на свой ред уронва още повече вярата на гражданите, създавайки порочен кръг. България и САЩ са два примера за подобна информационна криза. В България огромна роля играе тоталитарното наследство с традиционното му противопоставяне Изток–Запад, както и последвалата криза на Прехода, която доведе до своеобразна „пленена държава“ в институционално отношение и до силно обвързани с властта медии. В Щатите като проблем може да се посочи нарастващата политическа поляризация, която няма еквивалент в други западни държави и която води до две изолирани медийни сфери.

Част ли са журналистите от този проблем? Журналистите правят грешки, а някои медии заявяват открито политически уклон. Преувеличенията, предразсъдъците, неточностите и сензационността винаги са съществували като тенденции в новинарския занаят. Разликата отново е в намерението и в излагането на фактите, както и в прозрачността на журналистическите практики. Журналистът може да направи неволна грешка, но професионалната му етика и нормативна рамка изисква тя да бъде прозрачно отчетена и поправена. Задължението на журналиста е да направи заключение на основата на обективни факти – това не означава безкритично излагане на „всички гледни точки“, а анализ на информацията до достигане на логични, проверими заключения. Ако този процес и аргументи са ясни за читателя, не може да става дума за манипулация.

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

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

Инфографики и заглавна илюстрация: © Ива Тошкова / „Тоест“
В настоящата поредица Йоанна Елми подробно изследва темата за манипулативното съдържание и отговаря на пет въпроса – какво, къде, от кого, кога и защо се разпространява. Поредицата се осъществява с подкрепата на международната програма за научна журналистика Science+ на Free Press Unlimited и Free Press for Eastern Europe.

Източник

Клоуните Котън и Моп за радостта и силата да разобличаваш гадостите в света

Post Syndicated from Станислав Додов original https://toest.bg/cotton-and-mop/

Те са улични клоуни вече 20 години. „Буквално не знам как да бъда нещо друго, освен клоун“, казва Котън. Брат му Моп кима утвърдително с глава, докато слуша, но за пореден път връзката се губи и видеоразговорът ни отново за кратко е прекъснат.

Пътувам из страната, но съм решен на всяка цена да интервюирам двамата клоуни, така че търпя проблемите с връзката. Срещнах ги случайно край НДК на 19 юли и ги помолих за интервю още тогава. Нямаше как да знам, че нещо ще засили интереса ми до такава степен, та да прекъсна ваканцията си за интервю и за този текст. А това „нещо“ беше в новините на следващата сутрин…

„Колко полицаи са нужни, за да спреш двама клоуни?“

Такъв е надписът на видеото от арестуването им, което Котън и Моп са качили в своя TikTok. Действието се развива на ъгъла на една от пресечките в пешеходната част на Витошка. Видеото показва четирима от десетте пристигнали на „местопрестъплението“ униформени и една от трите патрулки. Понеже да се удари клоун, при това пред тълпа в центъра на столицата, не е съвсем приемливо, възпирането видимо не е лесно за органите на реда – както се вижда от последващото видео на двамата братя, озаглавено „История на един предизвестен арест“. Видеото е озвучено от песента Boss of Me, станала популярна от сериала Malcolm in the Middle с припев „Ти не си ми шеф“.

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

Полицаите обаче категорично не са искали да си играят. „Отначало ни правеха някакви знаци, но ние не ги разбирахме и продължихме с играта.“ Униформените разчитат това като провокация и случаят стига до белезници и 20 часа в ареста. Към последните дни на юли, когато пиша този текст, Котън и Моп очакват призовка за 15 август, когато вероятно ще им бъде наложена глоба за хулиганство.

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

Из дискусиите по случая на тяхната Facebook страница чета поучителен обмен на мнения. Потребител, автор на илюстрация, която братята са споделили, коментира:

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

Но братята отговарят:

Благодарим ти за страхотното изображение! Бихме желали обаче да не ни сравняваш с политици и полицаи – нашата работа е сериозна и уважавана.

В публикацията, под която се развива този разговор, те казват:

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

От Мексико през България

Котън и Моп, всъщност братя Нандаяпа, са основатели на компания, посветена на цирковото и уличното изкуство. Тази година те са гости на „Мини Арт Фест“ в Царево. Посетили са вече 25 страни по света. „И се надяваме да посетим всичките 200“, отвръщат те на въпрос как си представят следващите 20 години.

Родителите им са сред пионерите в занаята в родината им Мексико, и по-точно в столицата ѝ. „Правили са представления по улици, подлези, гари още преди 35 години.“ Всъщност се оказва, че уличното цирково изкуство има солидни традиции в централноамериканската страна.

У нас очевидно това съвсем не е така. Запитах се необходими ли бяха разправиите с полицията и целият публичен отзвук, за да проявя интерес към труда на тези хора? И възможно ли е в сблъсъка с органите на реда да има известна преднамереност от страна на артистите? Несъмнено отговорът е „да“ и на двата въпроса и това е част от задачата на изкуството.

„Усетихме добра енергия на улицата“, казва Моп. Същевременно „хората често ни помагат в такива ситуации, но не и тук – околните само снимаха с телефоните си“. Братята си го обясняват със значима разлика в културата: „Изглежда, тук културата е… някак тежка, докато в Мексико е весела“, обяснява Котън. Каквото и да влага в тези думи, не бих могъл да го оспоря.

Социалният цирк

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

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

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

Заглавна снимка: © Enid Hernández Fotografía

Източник

Metasploit Weekly Wrap-Up

Post Syndicated from Spencer McIntyre original https://blog.rapid7.com/2022/07/29/metasploit-weekly-wrap-up-169/

Roxy-WI Unauthenticated RCE

Metasploit Weekly Wrap-Up

This week, community member Nuri Çilengir added an unauthenticated RCE for Roxy-WI. Roxy-WI is an interface for managing HAProxy, Nginx and Keepalived servers. The vulnerability can be triggered by a specially crafted POST request to a Python script where the ipbackend parameter is vulnerable to OS command injection. The result is reliable code execution within the context of the web application user.

Fewer Meterpreter Scripts

Community member bcoles removed multiple Meterpreter scripts which have been deprecated for years. Metasploit’s documentation has omitted details on how to write them since 2014 and removing the existing ones in favor of their new post-module equivalents ensures users are using the most up-to-date code and workflows. Post modules have a number of advantages over Meterpreter scripts and Metasploit has equivalents for each of the Meterpreter scripts that were removed.

Helpful Suggestions

Msfconsole will now suggest datastore option names when an invalid option is specified. This should help users understand when they make a mistake and misspell an option name. The original behavior would just set the invalid option which may leave the user confused when they think they set one thing but the option did not actually change.

For example, prior to these changes setting LHSOT (instead of LHOST) the option would just be set, effectively not doing anything.

msf6 exploit(windows/smb/psexec) > set LHSOT 192.168.169.1
LHSOT => 192.168.169.1

Now the new behavior will identify that LHSOT is not valid in the current context and will suggest setting LHOST instead.

msf6 exploit(windows/smb/psexec) > set LHSOT 192.168.159.1
[-] Unknown datastore option: LHSOT. Did you mean LHOST?
msf6 exploit(windows/smb/psexec) >

New module content (1)

Enhancements and features (6)

  • #16774 from zeroSteiner – The set command has been updated so that if an invalid datastore option is provided, a suggestion will be made for a valid datastore option, where possible. Additionally, the behavior has been changed so that one can no longer set a datastore value that is not valid within the given content.
  • #16798 from bcoles – The deprecated scripts/meterpreter/pml_driver_config.rb script has been removed from Metasploit since Metasploit scripts have been deprecated for over 5 years now. Please use exploit/windows/local/service_permissions instead which contains a more modern implementation of the same principle this exploit utilized.
  • #16801 from bcoles – The deprecated scripts/meterpreter/schelevator.rb script has been removed in favor of exploit/windows/local/ms10_092_schelevator. Scripts were deprecated over 5 years ago and should no longer be used.
  • #16823 from bcoles – The deprecated scripts/meterpreter/prefetchtool.rb has been removed and replaced with the post/windows/gather/enum_prefetch.rb post module.
  • #16830 from bcoles – Remove deprecated scripts/meterpreter/getvncpw.rb script in favor of the post/windows/gather/credentials/vnc post module which is more modern and has more features.
  • #16831 from bcoles – Remove the deprecated scripts/meterpreter/get_env.rb in favor of the post/multi/gather/env post module.

Bugs fixed (6)

  • #16094 from 3V3RYONE – A bug has been fixed in the pg_ctl.rb helper whereby it was possible that initializing and starting databases using msfdb init might fail due to the pg_ctl.rb helper not properly setting unix_socket_directories to a path that a non-root user can write to. This code has now been updated so that it will set the unix_socket_directories setting to a path that the current user can write to or will error out if it cannot find a writeable directory to use for the socket file.
  • #16668 from sempervictus – A bug has been fixed in the HTTP crawler module and its associated library whereby the code expected an object to be populated when it may not be. This has been fixed with additional validation.
  • #16810 from entity0xfe – The host command has been updated to fix a bug whereby the -t flag was not properly accepting the <tag> parameter that it was supposed to accept and process. Additionally, the documentation for this option has been updated to be clearer.
  • #16817 from jmartin-r7 – Several modules and libraries were previously calling Msf::Config.get_config_root which did not properly account for changes to the configuration path that the user might make. These calls have been replaced with calls to Msf::Config.config_directory which will appropriately take the user’s configuration settings into account.
  • #16819 from adfoster-r7 – A bug has been fixed whereby running the hosts command with the -c flag to filter by columns would result in a stack trace. The command now correctly returns the output with only the columns specified to the -c flag.
  • #16824 from bcoles – A bug has been fixed in the is_admin? and is_system? post exploitation methods, which previously incorrectly reported the user as always being an administrator and a system user respectively when run on shell sessions.

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
binary installers (which also include the commercial edition).

The collective thoughts of the interwebz