Dell’s RedDrum: a Python Redfish API Service with Simulator and OpenBMC backends


From a March 2018 Dell blog post:

[…]Our latest contribution to the open source community is related to our work on Redfish. It is RedDrum, an open source, python-based implementation of a Redfish service, and includes a recipe for backend integration with OpenBMC. RedDrum allows client system management software to use standard Redfish APIs to access the capabilities provided by OpenBMC. RedDrum is derived from the currently shipping Dell EMC DSS 9000 Rack Manager Redfish service and shows our continued leadership and commitment to improve developer and interoperability tools to enable the Redfish eco-system. Our open source RedDrum contribution includes two important components: A high-fidelity Redfish Service Simulator for developers, and Integration with a real OpenBMC platform (Power9 server). Both the simulator implementation and the platform integration implementation are structured with a “front-end” protocol engine and a “back-end” for data gathering/processing. The front-end protocol engine for both is exactly the same, but the back-end capabilities are what distinguish them.[…]

https://github.com/RedDrum-Redfish-Project

https://www.dell.com/support/article/us/en/19/sln313941/extreme-scale-infrastructure-esi-architects-pov-series-dell-emc-contributes-open-source-redfish-service?lang=en

LinuxBoot’s u-bmc project: U-Root/Go-centric Linux BMC distro


u-bmc is a Linux OS distribution that is fully open-source for baseboard management controllers, or BMCs. u-bmc uses u-root to create a Linux OS distribution that is fully open-source. u-bmc borrows and contributes to OpenBMC which has similar high-level goals. The main difference is that u-bmc chooses to challenge the industry status quo. E.g. where OpenBMC uses IPMI, u-bmc uses gRPC. […] Historically BMCs have been considered insecure by nature and have received little to no attention – not unlike BIOSes. While LinuxBoot’s mission is to uplift BIOS firmware for existing servers, u-bmc’s is to uplift BMC firmware. The implementations differ, some things are shared, but the goal is the same. u-bmc, like LinuxBoot, sacrifices classical industry compatibility in order to offer a solution that is genuinely tailored for the mission. By close collaboration between LinuxBoot and u-bmc, the hope is to one day have servers that ship with both free and open BMC as well as BIOS.

https://github.com/u-root/u-bmc

https://u-bmc.readthedocs.io/en/latest/

https://asciinema.org/a/202889

Booking.com’s BMC-Toolbox, including BMClib

I thought OpenBMC was the only attempt at BMC library implementation. There’s also bmclib from the BMC-Toolbox project, by Booking.com.

BMC-Toolbox projects:

  • bmcldap: A LDAP proxy to authenticate BMCs
  • bmcbutler: BMC configuration management tool
  • bmclogin: A small helper library to login to BMCs.
  • dora: Tool to discover, collect data from multiple types of Servers and Chassis BMCs
  • actor: Api to carry out actions to BMCs
  • gin-go-metrics: gin-gonic/gin middleware to gather and store metrics using rcrowley/go-metrics
  • bmclib: Library to interact with bmcs from different vendors
  • redgopher: An attempt to generate a redfish 2018.3 openAPI client
  • bmcfwupd: BMC firmware management tool

There was a talk about bmclib at the last FOSDEM:

This talk is about bmclib, a library written to perform asset lifecycle management, across a fleet of bare metal servers, it leverages existing (mostly undocumented) APIs on Baseboard Management Controllers, and exposes a consistent API interface to: Inventorize bare metal hardware, Manage BMC/BIOS configuration, Reliably Power cycle/PXE boot bare metal, Update firmware on BMCs. […]

https://github.com/bmc-toolbox/bmclib

https://fosdem.org/2019/schedule/event/baseboard_management/

Click to access bmclib.pdf

Deral Heiland: Extracting Firmware from Microcontrollers’ Onboard Flash Memory, parts 1-3

This blog is part three in a four-part series on hardware hacking for the security professional and researcher. Be sure to check out part one, which covers Atmel microcontrollers, and part two, which discusses Nordic RF microcontrollers. In this blog, we will conduct further firmware extraction exercises and cover the Microchip PIC microcontroller (PIC32MX695F512H). To be able to gain access to the firmware on PIC microcontrollers, we will need to read directly from the controller over the in-circuit serial programmer (ICSP).[…]

https://blog.rapid7.com/2019/04/30/extracting-firmware-from-microcontrollers-onboard-flash-memory-part-3-microchip-pic-microcontrollers/

https://blog.rapid7.com/2019/04/23/extracting-firmware-from-microcontrollers-onboard-flash-memory-part-2-nordic-rf-microcontrollers/

https://blog.rapid7.com/2019/04/16/extracting-firmware-from-microcontrollers-onboard-flash-memory-part-1-atmel-microcontrollers/