DRAM rowhammer is a very strange hardware vulnerability which, in turn, opens the door to software vulnerabilities. In short, it allows an attacker to change a flip bits in a physical memory address, without accessing that address. Instead, the attacker writes one or more neighboring addresses in a DRAM, and, in some cases, the bits in another address will flip.
Successful attacks from user mode using this vulnerability can:
elevate user privileges
break security sandboxes
forge new private keys
“NUMA also allows for greater opportunities to exploit Rowhammer”.
Note that this is a hardware failure, most software, even some security-oriented one, are not able to cope with this type of hardware-based attack. The vulnerability has been introduced in recent years due to the growing use of smaller memory cells, to enable memory-chips with more capacity.
Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors
BFT-SMaRt is a high-performance Byzantine fault-tolerant state machine replication library developed in Java with simplicity and robustness as primary requirements. Our main objective is to provide a code base that can be used to build dependable services and also extended to create new protocols.
peaks and valleys – mapping the emotional highs and lows of experience. example of pizza ordering and delivery with domino’s. building your own, pizza tracker – themed “progress” page, making the wait into a fun and enjoyable process.
Cage Match: Mobile Web vs. Native App (Josh Clark)
Source Code documentation is an often neglected aspect of Software Engineering. In most software projects, an overview of the code structure is useful both for new developers looking at the code for the first time, as well as a reference for all developers interacting with this code.
Fortunately, there are many useful tools to help us with this issue, namely, Code Documentation Generators. These tools pick up the code’s structure through syntactic parsing and typically augment it with information supplied by the developers directly in the source code. In the last step, a nice HTML-based reference manual is typically exported.
The following sections present some interesting examples of this type of tool.
“Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D.”
if a tracker response has a key failure reason that maps to a human readable string which explains why the query failed
the response contains two typical keys:
number of seconds the downloader should wait between regular rerequests
a list of peers, each peer containing
HTTP/1.1 200 OK
URLs for this protocol use the form udp://tracker:port. This type of tracker was created to improve on the overhead caused by the HTTP protocol usage. The URLs can be obtained in the metadata file for the torrent.
Possible requests supported by a UDP Tracker:
Before announcing, the client must obtain a connection ID (to avoid IP spoofing problems).
Choose a (random) transaction ID, Fill the connect input structure, Send the packet.
Here I present some examples of BitTorrent protocol interactions.
Wireshark can be used to analyze BitTorrent protocol interactions in TCP/IP.
Remember that BitTorrent’s peer protocol operates over TCP or uTP. At the time of writing, Wireshark could identify correctly a uTP connection, but unfortunately would not decode its contents as a BitTorrent protocol session. It decodes it fine for TCP/IP connections.
The Handshake message flows in both directions, this means that each peer sends an handshake message to the other.
“Extended” message examples
In these messages we can see which extensions are supported by a peer / downloader.
Port, Interested, Unchoke example
A request for a piece of a file:
The reply with the piece’s data contents:
Not Interested example
Downloader Peers screenshots
Usually, when a peer is connected to another one, the remote peer appears in the “Peers” tab for a torrent.
Most virtualization platforms provide some sort of mechanism of communication between the the hypervisor and its guest virtual machines. “Open VM Tools” is a set of tools that implements such communication mechanisms for VMware™ virtual machines and hypervisors. In this book we analyze each of these these tools and APIs, from high-level usage to low-level communication details, between the guest and the host. This information can be used for a better understating of what actually happens when using a guest machine with these tools. It can also be used as inspiration for using and extending guest-hypervisor communication and penetration testing.
Mitigate i.e. singling out all the illegitimate IP packets, while allowing legitimate ones to pass through
“To detect the attack, we use the netflow sent by the routers and analysed by the Arbor Peakflow boxes. Each router sends a summary of 1/2000 of the traffic that is actually passing through it. The Arbor Peakflow boxes analyse this and compare it to the attack signatures. If the comparison is positive, mitigation is activated within seconds.
The signatures analysed are based on traffic thresholds of
“packets per second” (pps, Kpps, Mpps, Gpps) or
“bits per second” (bps, Kbps, Mbps, Gbps) on certain packet types”
DDoS attack types
For example, Guard-Host acknowledges the following DDoS attack types:
DDoS Attack Types
In the following diagram, the packets in the red area are flagged as belonging to a DDoS attack and are thus discarded and not sent to the server under attack.