BFT-SMaRt is: Byzantine fault-tolerant state machine replication

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.

Check it out here:


My new e-book “Deep VMware™ Guest Tools and Guest-Hypervisor communication” at Amazon

Just published my new e-book “Deep VMware™ Guest Tools and Guest-Hypervisor communication” at Amazon.

Check it out.

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.

Screen Shot 10-05-17 at 12.44 PM


User Experience (UX) References

Here are some interesting references on User Experience / User Interfaces, which I personally recomend:

Traveling Ruby (multi-platform portable Ruby binaries)

Traveling Ruby consists of a set of multi-platform portable Ruby binaries, which can be used to distribute Ruby-based products and run them even in machines where Ruby is not installed. It’s very useful, as you can also use it to pack multi-platform applications.

You can check the project’s home page here:

Traveling Ruby is a project which supplies self-contained, “portable” Ruby binaries: Ruby binaries that can run on any Linux distribution and any OS X machine. It also has Windows support (with some caveats). This allows Ruby app developers to bundle these binaries with their Ruby app, so that they can distribute a single package to end users, without needing end users to first install Ruby or gems.

It can run on

  • Linux x86.
  • Linux x86_64.
  • OS X
  • Windows





VMware Cloud Products Survey (Slides)

Regarding VMware vCloud Suite components, VMware terminology can be confusing

This presentation tries to clarify some VMware component names and analyse VMware vRealize
Operations in-depth

The vCloud suite includes almost all VMware products, including:
○ Hypervisor: vSphere (ESXi + vCenter )
ESXi: Single-machine Hypervisor 
vCenter : Handles multiple ESXi’s
● Handles vMotion, High Availalability, Load Balancing
○ vCenter Site Recovery Manager 
■ Policy-based disaster recovery and testing for all virtualized applications
Full presentation at:


Screen Shot 08-25-16 at 06.25 PM.PNG

Anomaly & Intrusion Detection+Prevention – Overview and Survey

Anomaly Detection is an scientific subject focused on detecting “unusual” and “interesting” patterns on system events (a.k.a. “outliers”).

Screen Shot 07-15-16 at 06.47 PM.PNG

Just published a new slide presentation on focused on:

  • Anomaly Detection,
  • Anomaly Detection vs Intrusion Detection,
  • Intrusion Detection and Prevention Systems (IDPS),
  • Open Source IDPS systems

You can check it here:


Fundamental References

  1. Intrusion prevention system –
  2. Guide to Intrusion Detection and Prevention Systems –
  3. Network Intrusion Detection Signatures, Part Five –
  4. Network Intrusion Detection Systems –
  5. Intrusion detection system evasion techniques –
  6. An Overview of Intrusion Detection Systems Technology and Research –
  7. An intrusion-detection model (DE Denning) –
  8. Intrusion Detection using Sequences of System Calls –
  9. Anomaly Detection : A Survey –
  10. Learning Nonstationary Models of Normal Network Traffic for Detecting Novel Attacks –
  11. Learning Rules for Anomaly Detection of Hostile Network Traffic –
  12. Open source intrusion detection tools (a quick overview) –
  13. Security Onion –
  14. Snort –
  15. Snorby –
  16. Squert –
  17. BRO –
  18. Network Taps –
  19. vSphere 5 Networking : Port Mirroring –
  20. OSSEC –

TOR: introduction

TOR stands for “The Onion Router”.

It is a network designed to protect its users anonymity by routing the user’s TCP/IP traffic through multiple layers of encryption and multiple proxy nodes, obfuscating the user’s real IP address.

The proxy nodes are contributed by network volunteers,  mostly in a distributed and decentralized fashion.

Web servers are normally unable to detect the user’s real IP, as traffic seems to originate from the last proxy node in the user’s TOR proxy chain (a.k.a. TOR circuit).

A TOR circuit is typically composed by:

  • the user’s real IP
  • 3 TOR nodes
    • 1 Entry node
    • 1 intermediate node
    • 1 Exit node

Traffic is encrypted using several “onion layers”, for TCP/IP connections (UDP is not supported), as follows (simplified):

  • A data packet (DP1) is encrypted with the Exit Node’s public key
    • P1 = PKexit(DP1)
  • The encrypted packet is again encrypted with the Intermediate  Node’s public key:
    • P2 = PKiterm( PKexit(DP1) )
  • The encrypted packet is again encrypted with the Entry Node’s public key:
    • P3 = PKentry ( PKiterm( PKexit(DP1) ) )

Each node only knows the preceding and following node. No node gets to “know” the complete circuit.

TOR can be useful in a number of situations, for example:

  • protect whistle blowers identity
  • circumvent network censorship in censored regions
  • NGOs communicating with its volunteers in a foreign country
  • users can publish web sites without needing to reveal the location of the site (using TOR’s hidden services)

Nevertheless, TOR must be used carefully, so that no “real IP” address leaks or other identity leaks occur (more info here (TOR Overview) ). Attention must also be paid to the risk of possible attacks from powerful adversaries, such as governments and agencies.

Usually a “TOR Browser” is used in combination with TOR. The TOR Browser is a modified version of the official Mozilla Firefox web browser. It usually disables dangerous features for anonymity, such as javascript, cookies and direct TCP/IP connections (it always routes all connection through the TOR network).

TOR Browser

To connect to the TOR network, a user usually has to install the “TOR Client” in its device or network. You can download it at here (TOR project official site)

I’ll be exploring “TOR Client” low-level features in future posts.

[UPDATED with the new posts:]



Anonymity tools: “whonix”(first impressions)

Just started trying “whonix”, an anonymity-hardened Linux distribution.

“whonix” is based on Debian Linux and uses TOR for all external connections.

Interestingly, it consists of two separate virtual machines, “whonix workstation” and “whonix gateway”. That machine where the user can perform anonymous tasks  (“whonix workstation”) is isolated from the external physical network and can only communicate with the internet via the “whonix gateway”, which relays TOR traffic to the TOR network and the internet.

The main design decision for “whonix” is that the user’s physical IP should not be disclosed even if the “whonix workstation” is compromised with some types of malware. Indeed, the “whonix workstation” does not have access to the external network, which is a very interesting concept.

I’ll be writing more about “whonix”, TOR and Anonymity soon.

Why Anonymity Matters (quoted from

Tor protects you by bouncing your communications around a distributed network of relays run by volunteers all around the world: it prevents somebody watching your Internet connection from learning what sites you visit, and it prevents the sites you visit from learning your physical location.

Screen Shot 06-30-16 at 07.26 PM.PNG

Screen Shot 06-30-16 at 07.33 PM


Gamification of Education

Gamification is a very interesting concept for motivating individuals and teams for business objectives, by using concepts usualy found in games, and more specificaly in computer games. For example, I have been involved in the development of a tool for motivating contact center agents using leaderboards and KPIs.

I have stumbled upon this interesting video/lesson where these concepts are explored for educational purposes:

The following advantages over conventional education are interesting to think about:

  • faster failure feedback
  • retrying tests (faster learning with multiple oportunities to take tests)
  • more frequent tests

Fear of failure could be reduced with multiple chances to take a test, don’t you think ?