Microsoft Killed My Favorite Keyboard, And I’m Mad About It

As a professional writer, I rack up thousands of words a day. Too many in fact, to the point where it hurts my brain. To ease this burden, I choose my tools carefully to minimize obstructions as the words pour from my mind, spilling through my fingers on their way to the screen.

That’s a long-winded way of saying I’m pretty persnickety about my keyboard. Now, I’ve found out my favorite model has been discontinued, and I’ll never again know the pleasure of typing on its delicate keys. And I’m mad about it. Real mad. Because I shouldn’t be in this position to begin with!

Continue reading “Microsoft Killed My Favorite Keyboard, And I’m Mad About It”

This Week In Security: BatBadBut, DLink, And Your TV Too

So first up, we have BatBadBut, a pun based on the vulnerability being “about batch files and bad, but not the worst.” It’s a weird interaction between how Windows uses cmd.exe to execute batch files and how argument splitting and character escaping normally works. And what is apparently a documentation flaw in the Windows API.

When starting a process, even on Windows, the new executable is handed a set of arguments to parse. In Linux and friends, that is a pre-split list of arguments, the argv array. On Windows, it’s a single string, left up to the program to handle. The convention is to follow the same behavior as Linux, but the cmd.exe binary is a bit different. It uses the carrot ^ symbol instead of the backslash \ to escape special symbols, among other differences. The Rust devs took a look and decided that there are some cases where a given string just can’t be made safe for cmd.exe, and opted to just throw an error when a string met this criteria.

And that brings us to the big questions. Who’s fault is it, and how bad is it? I think there’s some shared blame here. The Microsoft documentation on CreateProcess() strongly suggests that it won’t execute a batch file without cmd.exe being explicitly called. On the other hand, This is established behavior, and scripting languages on Windows have to play the game by Microsoft’s rules. And the possible problem space is fairly narrow: Calling a batch file with untrusted arguments.

Almost all of the languages with this quirk have either released patches or documentation updates about the issue. There is a notable outlier, as the Java language will not receive a fix, not deeming it a vulnerability. It’s rather ironic, given that Java is probably the most likely language to actually find this problem in the wild. Continue reading “This Week In Security: BatBadBut, DLink, And Your TV Too”

Linux Fu: Getting Started With Systemd

I will confess. I started writing this post about some stupid systemd tricks. However, I wanted to explain a little about systemd first, and that wound up being longer than the tricks. So this Linux Fu will be some very fundamental systemd information. The next one will have some examples, including how to automount a Raspberry Pi Pico. Of course, by the end of this post, you’ll have only scratched the surface of systemd, but I did want to give you some context for reading through the rest of it.

Like many long-time Unix users, I’m not a big fan of systemd. Then again, I’m also waiting for the whole “windows, icon, mouse, pointer” fad to die down. Like it or not, systemd is here and probably here to stay for the foreseeable future. I don’t want to get into a flame war over systemd. Love it or hate it, it is a fact of life. I will say that it does have some interesting features. I will also say that the documentation has gotten better over time. But I will also say that it made many changes that perhaps didn’t need to be made and made some simple things more complicated than they needed to be.

In the old days, we used “init scripts,” and you can still do so if you are really motivated. They weren’t well documented either, but it was pretty easy to puzzle out the shell scripts that would run, and we all know how to write shell scripts. The systemd way is to use services that are not defined by shell scripts. However, systemd tries to do lots of other things, too. It can replace cron and run things periodically. It can replace inetd, syslog, and many other traditional services. This is a benefit or a drawback, depending on your point of view.

(Editor’s note: And this logging functionality was exactly what was abused in last week’s insane liblzma / ssh backdoor.)

Configuring systemd requires you to create files in one of several locations. In systemd lingo, they are “units.” For the purpose of this Linux Fu, we’ll look at only a few kinds of units: services, mounts, and timers. Services let you run programs in response to something like system start-up. You can require that certain other services are already running or are not running and many other options. If the service dies, you can ask systemd to automatically restart it, or not. Timers can trigger a service at a particular time, much like cron does. Another unit you’ll run into are sockets that represent — you guessed it — a network socket.

Continue reading “Linux Fu: Getting Started With Systemd”

Hackaday Podcast Episode 265: Behind The Epic SSH Hack, 1980s Cyber Butler, The Story Of Season 7

This week, Editor-in-Chief Elliot Williams and Kristina Panos convened once again to give the lowdown on this week’s best hacks. First up in the news — it’s giga-sunset time for Gigaset IoT devices, which simultaneously became paperweights on March 29th. And all that Flipper Zero panic? It has spread to Australia, but still remains exactly that: panic.

Then it’s on to What’s That Sound. Kristina failed again, although she was in the right neighborhood. Can you get it? Can you figure it out? Can you guess what’s making that sound? If you can, and your number comes up, you get a special Hackaday Podcast t-shirt.

Then it’s on to the hacks, beginning with the terrifying news of an xz backdoor. From there, we marvel at a 1980s ‘butler in a box’ — a voice-activated home automation system — and at the idea of LoRa transmissions without a radio. Finally, we discuss why you don’t want to piss off Trekkies, and whether AI has any place in tech support.

Check out the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!

Download and savor at your leisure.

Continue reading “Hackaday Podcast Episode 265: Behind The Epic SSH Hack, 1980s Cyber Butler, The Story Of Season 7”

This Week In Security: XZ, ATT, And Letters Of Marque

The xz backdoor is naturally still the top story of the week. If you need a refresher, see our previous coverage. As expected, some very talented reverse engineers have gone to work on the code, and we have a much better idea of what the injected payload does.

One of the first findings to note is that the backdoor doesn’t allow a user to log in over SSH. Instead, when an SSH request is signed with the right authentication key, one of the certificate fields is decoded and executed via a system() call. And this makes perfect sense. An SSH login leaves an audit trail, while this backdoor is obviously intended to be silent and secret.

It’s interesting to note that this code made use of both autotools macros, and the GNU ifunc, or Indirect FUNCtions. That’s the nifty feature where a binary can include different versions of a function, each optimized for a different processor instruction set. The right version of the function gets called at runtime. Or in this case, the malicious version of that function gets hooked in to execution by a malicious library. Continue reading “This Week In Security: XZ, ATT, And Letters Of Marque”

Space Mirrors: Dreams Of Turning The Night Into Day Around The Clock

Recently, a company by former SpaceX employee Ben Nowack – called Reflect Orbital – announced that it is now ready to put gigantic mirrors in space to reflect sunshine at ground-based solar farms. This is an idea that’s been around for a hundred years already, both for purposes of defeating the night through reflecting sunshine onto the surface, as well as to reject the same sunshine and reduce the surface temperature. The central question here is perhaps what the effect would be of adding or subtracting (or both) of solar irradiation on such a large scale as suggested?

We know the effect of light pollution from e.g. cities and street lighting already, which suggests that light pollution is a strongly negative factor for the survival of many species. Meanwhile a reduction in sunshine is already a part of the seasons of Autumn and Winter. Undeniable is that the Sun’s rays are essential to life on Earth, while the day-night cycle (as well as the seasons) created by the Earth’s rotation form an integral part of everything from sleep- and hibernation cycles, to the reproduction of countless species of plants, insects, mammals and everyone’s favorite feathered theropods.

With these effects and the gigantic financial investments required in mind, is there any point to space-based mirrors?

Continue reading “Space Mirrors: Dreams Of Turning The Night Into Day Around The Clock”

The PhotonPower Zero board laying on a desk surface

PhotonPower Zero For Effortless Solar Pi Zero Projects

A Pi Zero doesn’t need much to sustain itself, and it’s projects like the PhotonPower Zero that remind us of it its low appetite when we need this reminder most. The PhotonPower Zero board lets you power a Pi Zero board from a solar cell, with a LiIon backup, and a microcontroller for power management. Created by [David Murray], this board’s been a perfect solution for quite a few projects of his, and now he is sharing the design so that we can create outdoor-suited devices as easily as he’s been able to.

Tested for months in Australian summer and winter conditions alike, the design pulls no punches and has everything you might need. Like any self-respecting power addon, it has a management microcontroller for going as low-power as you’d like, communicating the battery data to the Pi Zero, and being able to safely shut it down when needed. If you fancy what this board does, [David Murray] tells you all, both in the video and in the associated posts!

One of the best parts about this board is that it’s fully open-source – schematics, KiCad PCB source files, and even 3D designs are available in the GitHub repo. You could source all the parts right now and build a fleet of solar-powered Zeros, and if you want the hard parts to be done for you, there’s a Kickstarter campaign that lets you get a PhotonPower Zero board without self-assembly. We’ve covered similar boards before – powering a Pi Zero isn’t lost art, and, there’s a lot to learn from this project specifically. Such boards are especially tempting, given that the latest Pi Zero W 2 is the most efficient Pi Zero to date – outdoor-capable 24/7 powered devices with a fair bit of CPU have never been this close!

Continue reading “PhotonPower Zero For Effortless Solar Pi Zero Projects”