terça-feira, 30 de abril de 2019

Botnet Electrum de crescimento rápido infecta mais de 152.000 usuários; Rouba US $ 4,6 milhões

Mohit Kumar em 30/04/2019 no site The Hacker News - Tradução Google Translate


botnet da carteira do bitcoin do electrum

Um ataque contra as carteiras eletrônicas da Bitcoin cresceu e se tornou mais forte, com os atacantes mirando toda a infraestrutura da bolsa com uma botnet de mais de 152.000 usuários infectados, elevando a quantidade de fundos de usuários roubados para US $ 4,6 milhões.


A Electrum vem enfrentando ataques cibernéticos desde dezembro do ano passado, quando uma equipe de cibercriminosos explorou uma fraqueza na infraestrutura da Electrum para enganar os usuários de carteiras a fazerem o download das versões maliciosas do software.


Resumidamente, os invasores adicionaram alguns servidores maliciosos à rede de pares Electrum, que foram projetados para exibir um erro de propósito para legitimar os aplicativos da carteira Electrum, instando-os a baixar uma atualização de software de carteira maliciosa de um repositório não oficial do GitHub.


O ataque de phishing eventualmente permitiu que os atacantes roubassem fundos da carteira (quase 250 Bitcoins, o equivalente a cerca de US $ 937.000 na época) e assumissem o controle total sobre os sistemas infectados.


Para combater isso, os desenvolvedores por trás da Electrum exploraram a mesma técnica que os invasores, a fim de incentivar os usuários a fazer o download da última versão corrigida do aplicativo de carteira.



"Clientes da Electrum com mais de 3,3 não podem mais se conectar a servidores públicos. Nós começamos a explorar a vulnerabilidade do DOS nesses clientes, para forçar seus usuários a atualizar e evitar a exposição a mensagens de phishing. Usuários do Linux Tail devem baixar nosso Appimage". Os desenvolvedores da Electrum twittaram em março.

download de carteira de bitcoin electrum

Em resposta a isso, os invasores iniciaram os servidores legítimos DDoSing Electrum na tentativa de enganar os clientes mais antigos para que se conectassem aos nós maliciosos, enquanto os nós legítimos se tornavam sobrecarregados.


De acordo com um post publicado pela equipe de pesquisa do Malwarebytes Labs, o número de máquinas infectadas que baixaram o software malicioso do cliente e participam de forma contrária nos ataques DDoS chegou a 152.000, menos de 100.000 na semana passada.


Os invasores por trás dessas campanhas basicamente distribuem um malware de botnet, apelidado de " ElectrumDoSMiner ", aproveitando principalmente o kit de exploração RIG, o Smoke Loader e um novo carregador BeamWinHTTP, antes não documentado.



"Existem centenas de binários maliciosos que recuperam o ElectrumDoSMiner", observam os pesquisadores. "Supomos que provavelmente existem muito mais vetores de infecção além dos três que descobrimos até agora."

De acordo com os pesquisadores, a maior concentração dos bots DDoS da Electrum está supostamente localizada na região Ásia-Pacífico (APAC), Brasil e Peru, com a rede de bots crescendo continuamente.

carteira do bitcoin do electrum


"O número de vítimas que fazem parte deste botnet está em constante mudança. Acreditamos que algumas máquinas são limpas, novas são infectadas e se juntam a outras para executar ataques DoS. O Malwarebytes detecta e remove infecções do ElectrumDoSMiner em mais de 2.000 terminais diariamente ", dizem os pesquisadores.

Como as versões atualizadas do Electrum não são vulneráveis ​​aos ataques de phishing, os usuários são aconselhados a atualizar seus aplicativos de carteira para a versão mais recente ( 3.3.4 ) fazendo o download do site oficial do electrum.org.


Enquanto isso, os usuários de aplicativos de carteira Electrum são aconselhados a desativar o recurso de conexão automática e selecionar seu servidor manualmente para evitar ataques DDoS.

segunda-feira, 29 de abril de 2019

Previdência Gráfico feito em R

JEPAlayon em 29/04/2019

Seguindo o testo e código do site Análise Macro usando linguagem R e o RStudio postado por .

Este gráfico mostra o absurdo dos gastos com previdência social no Brasil.





CÓDIGO

data = read.csv2('Economist_pensions.csv', header=TRUE, sep=',', dec='.')
data = data[-c(36:38),]
colnames(data) = c('country', 'population', 'pension')
library(ggplot2)ggplot(data, aes(x=population, y=pension))+
+     geom_point()
ggplot(data, aes(x=population, y=pension))+
+     geom_point()+
+     geom_text(aes(label=country))
library(ggrepel)
ggplot(data, aes(x=population, y=pension))+
+     geom_point()+
+     geom_text_repel(aes(label=country))
library(ggthemes)
ggplot(data, aes(x=population, y=pension))+
+     geom_point(size=6, colour=ifelse(data$pension>=11.8, '#014d64',
+                                      '#76c0c1'),
+                alpha=ifelse(data$pension>=11.8&data$population<8, 1,.6))+
+     geom_text_repel(aes(label=country),
+                     colour='black',
+                     alpha=c(.4,1,rep(.4,5)),
+                     box.padding = .2,
+                     point.padding = .3,
+                     data=subset(data, pension>=11.8))+
+     theme_economist()+
+     xlab('População acima de 65 anos (% do Total)')+
+     ylab('Gastos com Previdência Social (% PIB)')+
+     labs(title='Brasil: uma aberração no gasto previdenciário',
+          caption='Fonte: OCDE, Banco Mundial e Previdência Social')+
+     theme(plot.title = element_text(size=15))+
+     geom_smooth(method='lm', colour='black', linetype='dashed', se=FALSE)

Docker Hub Suffers a Data Breach, Asks Users to Reset Password

Por Wang Wei em 24 de abril de 2019 no site The Hacker News.


docker hub data breach






Docker Hub, one of the largest cloud-based library of Docker container images, has suffered a data breach after an unknown attacker gained access to the company's single Hub database.


Docker Hub is an online repository service where users and partners can create, test, store and distribute Docker container images, both publicly and privately.


The breach reportedly exposed sensitive information for nearly 190,000 Hub users (that's less than 5 percent of total users), including usernames and hashed passwords for a small percentage of the affected users, as well as Github and Bitbucket tokens for Docker repositories.


Docker Hub started notifying affected users via emails informing them about the security incident and asking them to change their passwords for Docker Hub, as well as any online account using the same password.


docker
"On Thursday, April 25th, 2019, we discovered unauthorized access to a single Hub database storing a subset of non-financial user data. Upon discovery, we acted quickly to intervene and secure the site."

"For users with autobuilds that may have been impacted, we have revoked GitHub tokens and access keys, and ask that you reconnect to your repositories and check security logs to see if any unexpected actions have taken place."


The company has not revealed any further details about the security incident or how the unknown attackers gained access to its database.


docker security

Docker says the company is continuing to investigate the security breach and will share more information as it becomes available.


The company is also working to enhance its overall security processes and reviewing its policies following the breach.


Inteligência Artificial: Como fazer análise de sentimentos com python? (Parte 1)

Por  em 29/04/2019 no site Lambda3



Resultado de imagem para inteligencia artificial interpretação de texto
Medium

Um dos desafios do ramo da inteligência artificial é a análise e compreensão de texto, visto que até pouco tempo, esta era uma competência que apenas humanos conseguiam realizar de forma efetiva.
Existem diversas técnicas no mercado para realizar análise de texto, vamos utilizar aqui algumas técnicas de vetorização e processamento de dados para poder classificar como positiva ou negativa as avaliações do IMDB sobre filmes.
Neste post, iremos utilizar python 3 para fazer a análise e o google colaboratory para rodar nossos códigos o/.
Inicialmente vamos importar algumas bibliotecas e carregar nosso dataset:
import pandas as pd
df = pd.read_csv('https://s3.amazonaws.com/sergio-prates-blog/imdb-reviews-pt-br.csv').sample(1000, random_state=42)
df.sentiment.value_counts()
df.head()
Acima importamos a biblioteca pandas que nos auxilia a trabalhar com dataframes ou tabelas no python.
Esses comandos terão a saída conforme abaixo:


Veja que carregamos o dataset com 1000 registros, entretanto esse dataset possui aproximadamente 50k registros!!
Como modelos de machine learning trabalham melhor com valores numéricos, vamos modificar a coluna sentimento para 0=negativo e 1=positivo:
df.sentiment = df['sentiment'].map({'pos': 1, 'neg': 0})
df.head()


Apenas alguns conceitos antes, para processamento de linguagem natural, temos o conceito de n-grama, que consiste no agrupamento de palavras, então temos que um n-grama de tamanho um é um unigrama, de tamanho dois é um bigrama e assim por diante.
Esses n-gramas não são nada mais do que combinações de palavras. Para a frase: “Hoje é dia de sol” temos os unigramas:
Hoje, é, dia, de, sol
Neste caso cada palavra é um unigrama, para bigramas teríamos combinações de duas palavras e assim por diante.
Agora, para que possamos passar nossos dados para o modelo de machine learning, vamos vetorizar nossos dados, afinal como dito anteriormente, algoritmos de machine learning trabalham muito bem com números.
Para isso vamos utilizar a classe CountVectorizer da biblioteca scikit-learn. O scikit-learn é a biblioteca mais famosa para trabalhar com machine learning, recomendo que você veja a documentação aqui.
Perceba que aqui temos o parâmetro ngram_range onde passamos o range de n-gramas que queremos criar, para este exemplo vamos utilizar o unigrama.
from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer(ngram_range=(1, 1))
vect.fit(df.text_pt)
text_vect = vect.transform(df.text_pt)
Este código tem a função de criar um vetorizador com a representação numérica das palavras do nosso dataset, a variável “vect” é responsável por armazenar esse de-para das palavras para a representação numérica e a variável text_vect armazena uma matriz que representa nossos dados de avaliações do imdb já vetorizados.
Já temos nossos dados vetorizados, agora como gostamos de boas práticas, vamos separar nossa base em conjunto de treino e testes na proporção 70/30.
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(
text_vect,
df.sentiment,
test_size = 0.3,
random_state = 42
)
No código acima, importamos a função “train_test_split” do scikit-learn para separar os dados em treino e teste, veja que passamos a variável criada anteriormente “text_vect” que se trata dos nossos dados vetorizados, passamos a coluna “sentimento” que é o que queremos classificar e a variável “test_size” com o valor 0.3 que significa que queremos 30% dos dados como testes.
Agora que temos nossos dados de treino e testes, vamos partir para o modelo de machine learning, para este post, vamos utilizar o LogisticRegression do sklearn.
No código abaixo, importamos a classe LogisticRegression do scikit-learn para realizar o ajuste do modelo, instanciamos na variável clf e logo em seguida chamamos o método “fit” que é onde o treinamento do modelo acontece, perceba que passamos o X_train que são nossos dados de treino que utilizaremos para prever o y_train que são os sentimentos positivo e negativo.
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(random_state=0, solver='newton-cg')
clf = clf.fit(X_train, y_train)
Após rodar esse comando, podemos chamar o método “predict” para predizer nossos dados de teste e verificar a partir da métrica f1_score qual a porcentagem de acerto do nosso modelo:
from sklearn.metrics import f1_score
y_prediction = clf.predict(X_test)
f1 = f1_score(y_prediction, y_test, average='weighted')
print(f1)



Veja que obtivemos um score de 73%, nada mal hum? Com isso você conseguiu fazer um classificador de textos com técnicas simples de processamento de linguagem natural!! 😎
Apenas um detalhe, é que essa precisão pode variar devido ao método sample, utilizado no início, pois ele pega registros aleatórios, o que pode modificar o resultado final.
Nos próximos posts vamos explorar outros modelos e tentar melhorar esse score!