Pull to refresh

All streams

Show first
Period
Level of difficulty

Legacy Outage

Reading time3 min
Views2.6K
Two days ago, May 5 of the year 2019 we saw a peculiar BGP outage, affecting autonomous systems in the customer cone of one very specific AS with the number 721.

Right at the beginning, we need to outline a couple of details for our readers:

  1. All Autonomous System Numbers under 1000 are called “lower ASNs,” as they are the first autonomous systems on the Internet, registered by IANA in the early days (the late 80’s) of the global network. Today they mostly represent government departments and organizations, that were somehow involved in Internet research and creation in 70-90s.
  2. Our readers should remember, that the Internet became public only after the United States’ Department of Defense, which funded the initial ARPANET, handed it over to the Defense Communication Agency and, later in 1981, connected it to the CSNET with the TCP (RFC675)/IP (RFC791) over X.25. A couple of years later, in 1986, NSF swapped the CSNET in favor of NSFNET, which grew so fast it made possible ARPANET decommission by 1990.
  3. IANA was established in 1988, and supposedly at that time, existing ASNs were registered by the RIRs. It is no surprise that the organization that funded the initial research and creation of the ARPANET, further transferring it to another department because of its operational size and growth, only after diversifying it into 4 different networks (Wiki mentions MILNET, NIPRNET, SIPRNET and JWICS, above which the military-only NIPRNET did not have controlled security gateways to the public Internet).
Read more →

NodeMCU simple driver model (SDM) showcase: dynamic user interface

Reading time8 min
Views2.5K

image


NodeMCU is an interactive firmware, which allows running Lua interpreter on the ESP8266 microcontroller (ESP32 support is in development). Alongside with all the regular hardware interfaces, it has WiFi module and SPIFFS file system.


This article describes the new module for the NodeMCU — sdm. SDM stands for simple driver model and it provides device-driver model abstraction for the system. In the first part of this article we will discuss the model itself and in the second part will be a showcase of dynamically created web user interface using sdm with some commentaries.

Read more →

The most common OAuth 2.0 Hacks

Reading time6 min
Views41K

OAuth 2 overview


This article assumes that readers are familiar with OAuth 2. However, below a brief description of it is presented below.



  1. The application requests authorization to access service resources from the user. The application needs to provide the client ID, client secret, redirect URI and the required scopes.
  2. If the user authorizes the request, the application receives an authorization grant
  3. The application requests an access token from the authorization server by presenting authentication of its own identity, and the authorization grant
  4. If the application identity is authenticated and the authorization grant is valid, the authorization server issues the access and refresh (if required) token to the application. Authorization is complete.
  5. The application requests the resource from the resource server and presents the access token for authentication
  6. If the access token is valid, the resource server serves the resource to the application

The are some main Pros and Cons in OAuth 2.0


  • OAuth 2.0 is easier to use and implement (compared to OAuth 1.0)
  • Wide spread and continuing growing
  • Short lived Tokens
  • Encapsulated Tokens

— No signature (relies solely on SSL/TLS ), Bearer Tokens
— No built-in security
— Can be dangerous if used from not experienced people
— Too many compromises. Working group did not make clear decisions
— Mobile integration (web views)
— Oauth 2.0 spec is not a protocol, it is rather a framework — RFC 6749

Read more →

Disposable pattern (Disposable Design Principle) pt.1

Reading time9 min
Views3.4K


Disposable pattern (Disposable Design Principle)


I guess almost any programmer who uses .NET will now say this pattern is a piece of cake. That it is the best-known pattern used on the platform. However, even the simplest and well-known problem domain will have secret areas which you have never looked at. So, let’s describe the whole thing from the beginning for the first-timers and all the rest (so that each of you could remember the basics). Don’t skip these paragraphs — I am watching you!


If I ask what is IDisposable, you will surely say that it is


public interface IDisposable
{
    void Dispose();
}

What is the purpose of the interface? I mean, why do we need to clear up memory at all if we have a smart Garbage Collector that clears the memory instead of us, so we even don’t have to think about it. However, there are some small details.


This chapter was translated from Russian jointly by author and by professional translators. You can help us with translation from Russian or English into any other language, primarily into Chinese or German.

Also, if you want thank us, the best way you can do that is to give us a star on github or to fork repository github/sidristij/dotnetbook.
Read more →

Following in the Footsteps of Calculators: Qalculate

Reading time7 min
Views1.4K

Previously we did code reviews of large mathematical packages, for example, Scilab and Octave, whereby calculators remained aloof as small utilities, in which it is difficult to make errors due to their small codebase. We were wrong that we haven't paid attention to them. The case with posting the source code of the Windows calculator showed that actually everyone was interested in discussing types of errors hiding in it. Moreover, the number of errors there was more than enough to write an article about that. My colleagues and I, we decided to explore the code of a number of popular calculators, and it turned out that the code of the Windows calculator was not that bad (spoiler).
Read more →

Writing a wasm loader for Ghidra. Part 1: Problem statement and setting up environment

Reading time7 min
Views12K

This week, NSA (National Security Agency) all of a sudden made a gift to humanity, opening sources of their software reverse engineering framework. Community of the reverse engineers and security experts with great enthusiasm started to explore the new toy. According to the feedback, it’s really amazing tool, able to compete with existing solutions, such as IDA Pro, R2 and JEB. The tool is called Ghidra and professional resources are full of impressions from researchers. Actually, they had a good reason: not every day government organizations provide access to their internal tools. Myself as a professional reverse engineer and malware analyst couldn’t pass by as well. I decided to spend a weekend or two and get a first impression of the tool. I had played a bit with disassembly and decided to check extensibility of the tool. In this series of articles, I'll explain the development of Ghidra add-on, which loads custom format, used to solve CTF task. As it’s a large framework and I've chosen quite complicated task, I’ll break the article into several parts.

By the end of this part I hope to setup development environment and build minimal module, which will be able to recognize format of the WebAssembly file and will suggest the right disassembler to process it.
Read more →

How to Discover MongoDB and Elasticsearch Open Databases

Reading time3 min
Views17K

Some time ago among security researchers, it was very “fashionable” to find improperly configured AWS cloud storages with various kinds of confidential information. At that time, I even published a small note about how Amazon S3 open cloud storage is discovered.


However, time passes and the focus in research has shifted to the search for unsecured and exposed public domain databases. More than half of the known cases of large data leaks over the past year are leaks from open databases.



Today we will try to figure out how such databases are discovered by security researchers...

Read more →

Most common misconceptions in popular physics

Reading time5 min
Views3.3K
Somewhere in an alternative Universe, based on MWI, I became a genius in physics. But in our Universe, I just read professional publications in physics, trying to keep myself up to date, meanwhile working as pizza delivery guy as DBA. Because of a slightly deeper knowledge of the subject it is almost impossible for me to watch the Discovery channel and other popular TV shows and the YouTube videos. I see nothing but oversimplifications, lies, and half-truths and can’t enjoy the shows.

I decided to compile a list of the most popular misconceptions. And the winner is...., or course, this one:

The Big Bang


Usually it is pictured like this:

image
Read more →

Submit to the Applied F# Challenge

Reading time2 min
Views891

This post was written by Lena Hall, a Senior Cloud Developer Advocate at Microsoft.


F# Software Foundation has recently announced their new initiative — Applied F# Challenge! We encourage you to participate and send your submissions about F# on Azure through the participation form.


Applied F# Challenge is a new initiative to encourage in-depth educational submissions to reveal more of the interesting, unique, and advanced applications of F#.

Read more →

Vue, Storybook, TypeScript—starting a new project with the best practices in mind

Reading time12 min
Views23K


(originally published on Medium)


I like writing React code. This might be an odd introduction to a story about Vue, but you need to understand my background to understand why I’m here discussing Vue.


I like writing React code and I hate reading it. JSX is a neat idea for assembling the pieces together fast, Material-UI is amazing solution for bootstrapping your next startup’s UI, computing CSS from JS constants allows you to be very flexible. Yet reading your old JSXs feels awful – even with scrupulous code review practices you might scratch your head not once as you try to figure the intricate nesting of the components.


I’ve heard many things about Vue—the not so new kid on the block—and I finally decided to get my feet wet; bringing in all my mental luggage of React and Polymer (and Angular, but let’s not talk about that).

Read more →

Starting point

Reading time3 min
Views1.1K
For a point of reference in the economy for a long time understood «the Wealth of Nations» by Adam Smith. In modern science, this point was transformed into GDP — Gross Domestic Product.

On the other hand, the benchmark in monetarism (Milton Friedman) and the Austrian School of Economics (Ludwig Heinrich Edler von Mises, Friedrich August von Hayek) is freedom. Economic and political freedom.

The third fashionable point at present is the concept of “The Happy Planet Index”.

Thus, there is no single point of reference.

Nevertheless, this point is easy enough to detect if you understand the basic principles of building a modern post-industrial democratic society. If you understand what is common in these models. Where is their common starting point.

The modern economic system, as well as the modern democratic system, were not created for themselves. They are made for people. And that means not a person for the state, but a state for a person. Laws are not to limit human freedoms, but to ensure respect for the rights and freedoms of each person, laws to increase the happiness and wealth of a person. Not GDP, but the wealth of each individual.

States are made up of people. No people — no state. Poor people are a poor state.

image

Wealth, happiness, human freedom — is the area of respect for his rights.

Thus, a common unifying point in economic and political reasoning and theories is in the field of human rights.
Read more →

Test me if you can. Do YML developers Dream of testing ansible?

Reading time3 min
Views3.6K

kitchen-ci schema


It is text version of the presentation 2018-04-25 at Saint-Petersburg Linux User Group. Configuration example locates at https://github.com/ultral/ansible-role-testing


I suppose that that you make configuration management, not bash. It means that you have to test it some how. Have you ever tested ansible roles? How do you do it?

Read more →

Android Robotics up to 2019: The real story; in 5 parts; part 1

Reading time23 min
Views4.8K
image

Quite a long time ago, seven years ago to be precise, i wrote a series of posts describing the state of android robotics in the world. At the time i was a high school student, with a keen interest in android robotics, who absorbed a bit of knowledge from English, Japanese, Chinese, Korean and Russian internetz and wanted to spill it somewhere.

While the posts were not too professional, and not to my standards of today, they were worthy enough to get stolen and even get translated by unapproved English Habrahabr mirrors, and to this day, appear in searches.

After those posts were written, Habrahabr got split. Removal of everyone outside of pure coding who were considered «not cake enough» to Geektimes felt like an insult and so i left the platform. Yet, the website was reunited last year, and much to a personal surprise, fairly recently an English version of Habrahabr was released.

During all these years i managed to be kicked from one university, finished another with a thick thesis on «Usage of Robotics in Disaster Conditions», lived in the Republic of Korea for half a year, and most importantly, not only expanded my knowledge of android robotics in such ways that the Robotics folder on the main hard drive is now more than 300GB in size, but also expanded the knowledge via journeying and personally meeting projects of the past and present, creating quite a decent archive on Youtube and met not only with the robots, but the engineers and scientists as well.

While i am still nowhere to be a robotics engineer, (and in the daily life i attempt to be a traditional slice-of-life artist), i feel that my tiny gigabytes of knowledge might be worthy of sharing, and today on Habr i'm publishing the real story of Android Robotics from the beginning up to 2019.

ML.NET Tutorial — Get started in 10 minutes

Reading time3 min
Views5.5K
Last year we announced ML.NET, cross-platform and open ML system for .NET developers. During this time, it has evolved greatly and has gone through many versions. Today we are sharing a guide on how to create your first ml.net application in 10 minutes.

Читать дальше →

How to Painlessly Unite Art with Java, JavaScript, and Graphs or The Story Behind Creating an Interactive Theatre Produc

Reading time9 min
Views1.4K
Last year 2018, a theatre production series called Tale of the Century was launched in Estonia. Throughout the year, 22 local theatres presented their interpretations of the past hundred years of Estonian history to the audiences. In the draw, the Russian Theatre was assigned the topic of the future of Estonia.