This Week In Security: Symbiote Research And Detection, Routing Hijacks, Bruggling, And More

Last week we covered the Symbiote Rootkit, based on the excellent work by Blackberry, Intezer, and Cyber Geeks. This particular piece of malware takes some particularly clever and devious steps to hide. It uses an LD_PRELOAD to interfere with system libraries on-the-fly, hiding certain files, processes, ports, and even traffic from users and detection tools. Read last week’s column and the source articles linked there for the details.

There is a general technique for detecting rootkits, where a tool creates a file or process that mimics the elements of the rootkit, and then checks whether any of the fakes mysteriously disappear. In reading about Symbiote, I looked for tooling that we could recommend, that uses this technique to check for infections. Coming up short, I dusted my security researcher hat off, and got to work. A very helpful pointer from Intezer led me to MalwareBazaar’s page on Symbiote. Do note, that page hosts live malware samples. Don’t download lightly.

This brings us to the first big problem we need to address. How do you handle malware without getting your machine and wider network infected? Virtualization can be a big part of the answer here. It’s a really big leap for malware to infect a virtual machine, and then jump the gap to infect the host. A bit of careful setup can make that even safer. First, use a different OS or distro for your VM host and research client. Sophisticated malware tends to be very targeted, and it’s unlikely that a given sample will have support for two different distros baked in. The bare-metal host is an up-to-date install for best security, but what about the victim?

While we want a bulletproof foundation, our research VM needs to be vulnerable. If the malware is targeted at a specific kernel version or library, we need that exact version to even get started. Unfortunately the samples at MalwareBazaar don’t include details on the machine where they were found, but they do come with links off to other analysis tools, like Intezer Analyze. One particular embedded string caught my eye: GCC: (GNU) 4.4.7 20120313 (Red Hat 4.4.7-17) That’s likely from the machine where this particular Symbiote sample was compiled, and it seems like a good starting point. GCC 4.4.7-17 shipped with Red Hat Enterprise Linux version 6.8. So we grab a CentOS 6.8 live DVD ISO, and get it booting on our VM host.

The next step is to download the malware samples directly from MalwareBazaar. They come in encrypted zips, just to make it harder to accidentally infect yourself. We don’t want those to land anywhere but the intended target. I went a step further and disconnected both the virtual network adapter and physical network cable, to truly air gap my research environment. I had my malware and likely target, and it was time to test my theory that Symbiote was trying too hard to be sneaky, and would sound the alarm on itself if I poked it just right.

Success! We’re using touch to create a file named java.h, and using ls to verify that it’s really there. Then, add the LD_PRELOAD and run ls again, and java.h is mysteriously missing. A similar trick works for detecting process hiding. We turn java.h into a script by writing while true; do sleep 1; done into it. Run the script in the background, and see if it’s listed in ps -A -caf. For a filename on Symbiote’s hide list, it too disappears. The best part is that we can script this detection. I give you, sym-test.sh. It creates and runs a simple script for each of the known Symbiote files, then uses ls and ps to look for the scripts. A Symbiote variant that works like the samples we’ve seen in the wild will give away its presence and be detected. If you find Symbiote on your machine via this script, be sure to let us know!

BGP Hijack — Maybe

There was a bit of BGP weirdness last week, where the Russian telecom company, Rostelecom, announced routing for 17.70.96.0/19. This block of IPs is owned by Apple, and all signs point to this being an unauthorized announce. BGP, the Border Gateway Protocol, is one of the most important network protocols you may not have heard of, and essentially carries the instructions on how to route internet traffic around the world. It’s also historically not had any security protocols baked-in, simply relying on good behavior from all the players. There is RPKI, a new standard for cryptographic signatures for routing updates, but it’s not a hard requirement and not widely deployed yet.

BGP, without any of the security enhancement schemes, works by honoring the most specific route available. Apple announces routes for 17.0.0.0/9, a network of over 8,000,000 IPs. Rostelecom started announcing 17.70.96.0/19, a much smaller subnet containing just over 8,000 IPs. The more specific route wins, and Rostelecom has a valid ASN, so the Internet made the routing shift. Someone at Apple was paying attention, and pushed a routing update for 17.70.96.0/21, moving what is presumably the most important 2,046 IPs back to their proper destination. After about 12 hours, Rostelecom dropped the bogus routes. Neither Apple nor Rostelecom have released statements about the incident.

Were this the first incident involving Rostelecom, it would be natural to conclude this was an honest mistake. Rostelecom has demonstrated bad behavior in the past, so the element of plausible deniability is waning. Could this have been part of a targeted operation against someone’s iPhone or Apple account? It’s hard to say whether we’ll be privy to the details any time soon. At the very least, you can watch a replay of the network carnage.

Email Routing Hijack

Cloudflare is expanding into email routing, and researcher [Albert Pedersen] was a bit miffed not to get invited into the closed Beta. (The Beta is open now, if you need virtual email addresses for your domains.) Turns out, you can use something like the Burp Suite to “opt in” to the beta on the sly — just intercept the Cloudflare API response on loading the dashboard, and set "beta": true. The backend doesn’t check after the initial dashboard load. While access to a temporarily closed beta isn’t a huge security issue, it suggests that there might be some similar bugs to find. Spoilers: there were.

When setting up a domain on your Cloudflare account, you first add the domain, and then go through the steps to verify ownership. Until that is completed, it is an unverified domain, a limbo state where you shouldn’t be able to do anything other than complete verification or drop the domain. Even if a domain is fully active in an account, you can attempt to add it to a different account, and it will show up as one of these pending domains. Our intrepid hacker had to check, was there a similar missing check here? What happens if you add email routing to an unverified domain? Turns out, at the time, it worked without complaint. A domain had to already be using Cloudflare for email, but this trick allowed intercepting all emails going to such a domain. [Albert] informed Cloudflare via HackerOne, and scored a handy $6,000 for the find. Nice!

Post-Quantum, But Still Busted

The National Institute of Standards and Technology, NIST, is running an ongoing competition to select the next generation of cryptography algorithms, with the goal of a set of standards that are immune to quantum computers. There was recently a rather stark reminder that in addition to resistance to quantum algorithms, a cryptographic scheme needs to be secure against classical attacks as well.

SIKE was one of the algorithms making its way through the selection process, and a paper was just recently published that demonstrated a technique to crack the algorithm in about an hour. The technique used has been known for a while, but is extremely high-level mathematics, which is why it took so long for the exact attack to be demonstrated. While cryptographers are mathematicians, they don’t generally work in the realm of bleeding-edge math, so these unanticipated interactions do show up from time to time. If nothing else, it’s great that the flaw was discovered now, and not after ratification and widespread use of the new technique.

Bits and Bruggling Bytes

A portmanteau of Browser and Smuggling, Bruggling is a new data exfiltration technique that is just silly enough to work. Some corporate networks try very hard to limit the ways users and malicious applications can get data off the network and out to a bad actor over the Internet. This is something of a hopeless quest, and Bruggling is yet another example. So what is it? Bruggling is stuffing data into the names and contents of bookmarks, and letting the browser sync those bookmarks. As this looks like normal traffic, albeit potentially a *lot* of traffic, it generally won’t trigger any IDS systems the way odd DNS requests might. So far Bruggling is just an academic idea, and hasn’t been observed in the wild, but just may be coming to malware near you.

LibreOffice just patched a handful of issues, and two of them are particularly noteworthy. First is CVE-2022-26305, a flaw in how macros are signed and verified. The signature of the macro itself wasn’t properly checked, and by cloning the serial number and issuer string of a trusted macro, a malicious one could bypass the normal filter. And CVE-2022-26306 is a cryptographic weakness in how LibreOffice stores passwords. The Initialization Vector used for encryption was a static value rather than randomly created for each install. This sort of flaw usually allows a pre-computation attack, where a lookup table can be compiled that enables quickly cracking an arbitrary encrypted data set. In up-to-date versions of LibreOffice, if using this feature, the user will be prompted for a new password to re-encrypt their configuration more securely.

Samba has also fixed a handful of problems, one of which sounds like a great plot point for a Hollywood hacking movie. First is CVE-2022-32744, a logic flaw where any valid password is accepted for a password change request, rather than only accepting the valid password for the account being changed. And CVE-2022-32742 is the fun one, where an SMB1 connection can trigger a buffer underflow. Essentially a client tells the server it wants to print 10 megabytes, and sends along the 15 bytes to print (numbers are fabricated for making the point). The server copies the data from the way-too-small buffer, and uses the size value set by the attacker, a la Heartbleed. I want to see the caper movie where data is stolen by using this sort of bug to print it out to the long-forgotten line-feed printer.

And finally, Atlassian Confluence installs are under active attack, as a result of a handful of exploits. There were hard-coded credentials left behind in the on-premise Confluence solution, and those credentials were released online. A pair of critical vulnerabilities in Servlet Filters are exploitable without valid credentials. If you’re still running unpatched, unmitigated Confluence installs, it may be time to jump straight to containment and cleanup. Ouch!

Reduced Sulfur Emissions Could Cause Climate Shock

When we talk about emissions these days, we typically talk about cutting them back for the good of the environment. However, the climate system is a complex beast, and one we’re still learning to understand.

As it turns out, cutting back on emissions may have unexpected or undesirable effects. Some scientists are concerned that cuts to human-induced sulfur emissions may actually be warming the Earth.

Continue reading “Reduced Sulfur Emissions Could Cause Climate Shock” →

The Hackaday Summer Camp Survival Guide

It’s a feature of summer for us, the round of hacker camps in which members of our community gather in fields and spend a few days relaxing and doing what we do best. This summer I’ll have been to four of them by September, one of which was unexpected because a last-minute ticket came my way. For Hackaday they’re a chance to connect with our readers and maybe see come of the coolest stuff in person.

If you consult the wiki for your hacker camp of choice then you’ll usually find a page of tips about what to bring. Starting with a tent and a sleeping bag and probably going on to sunscreen, a hat, and maybe how to avoid dehydration. I’d probably add spare toilet paper and disinfectant spray in case the toilets are nightmarish. All very practical stuff, but expressed in a dry list format that doesn’t really tell you what to expect. A hacker camp can be overwhelming if you’ve not been to one before, so how do you get the best out of it? Here are a few tips based on our experience. Continue reading “The Hackaday Summer Camp Survival Guide” →

An illuminated MCH2022 sign composed of large LED letters

Mutually Crafted Happiness: How MCH2022 Happened

Just a few days ago, MCH2022, a six day long hacker camp in Netherlands, has concluded – bringing about three thousand hackers together to hang out. It was my first trip to a large hacker camp like this, as I’ve only been to smaller ones, and this story is coming from someone who’s only now encountering the complexity and intricacy of one. This is the story of how it’s run on the inside.

MCH2022 is the successor of a hacker camp series in the Netherlands – you might’ve heard of the the previous one, SHA, organized in 2017. The “MCH” part officially stands for May Contain Hackers – and those, it absolutely did contain. An event for hackers of all kinds to rest, meet each other, and hang out – long overdue, and in fact, delayed for a year due to the everpresent pandemic. This wasn’t a conference-like event where you’d expect a schedule, catering and entertainment – a lot of what made MCH cool was each hacker’s unique input.

Just like many other camps similar to this, it was a volunteer-organized event – there’s no company standing behind it, save for a few sponsors with no influence on decisionmaking; it’s an event by hackers, for hackers. The Netherlands has a healthy culture of hackerspaces, with plenty of cooperation between them, and forming a self-organized network of volunteers, that cooperation works magic. Continue reading “Mutually Crafted Happiness: How MCH2022 Happened” →

Ask Hackaday: What Was Your First Electronics Win?

Back in high school, I joined the stage crew — because of course I did. As student theater groups go, it was pretty active, and with two shows to produce each year, there was always a lot of work to do. I gravitated to the lighting crew, which was a natural fit for me. Besides the electrical part of the job, there was also a lot of monkeying around on scaffolding and rickety ladders to hang the lights, which was great fun for the young and immortal. Plus there was the lighting console to run during performances, a job I eventually took over for my last two years.

Unfortunately, the lighting system was a bit pathetic. The console was mounted in the stage right wings, rather than out in the front of the house where a sensible person would put it. And despite being only about ten years old, the dimmers were already starting to fail. The board had about 20 channels, but you could always count on one of the channels failing, sometimes during a show, requiring some heroics to repatch the lights into one of the dimmers we always left as a spare, just for the purpose.

Continue reading “Ask Hackaday: What Was Your First Electronics Win?” →

Hackaday Links Column Banner

Hackaday Links: July 31, 2022

Don’t look up! As of the time of this writing, there’s a decent chance that a Chinese Long March 5B booster has already completed its uncontrolled return to Earth, hopefully safely. The reentry prediction was continually tweaked over the last week or so, until the consensus closed in on 30 Jul 2022 at 17:08 UTC, give or take an hour either way. That two-hour window makes for a LOT of uncertainty about where the 25-ton piece of space debris will end up. Given the last prediction by The Aerospace Corporation, the likely surface paths cover a lot of open ocean, with only parts of Mexico and South America potentially in the crosshairs, along with parts of Indonesia. It’s expected that most of the material in the massive booster will burn up in the atmosphere, but with the size of the thing, even 20% making it to the ground could be catastrophic, as it nearly was in 2020.

[Update: US Space Command confirms that the booster splashed down in the Indian Ocean region at 16:45 UTC. No word yet on how much debris survived, or if any populated areas were impacted.]

Good news, everyone — thanks to 3D printing, we now know the maximum height of a dive into water that the average human can perform without injury. And it’s surprisingly small — 8 meters for head first, 12 meters if you break the water with your hands first, and 15 meters feet first. Bear in mind this is for the average person; the record for surviving a foot-first dive is almost 60 meters, but that was by a trained diver. Researchers from Cornell came up with these numbers by printing models of human divers in various poses, fitting them with accelerometers, and comparing the readings they got with known figures for deceleration injuries. There was no mention of the maximum survivable belly flop, but based on first-hand anecdotal experience, we’d say it’s not much more than a meter.

Humans have done a lot of spacefaring in the last sixty years or so, but almost all of it has been either in low Earth orbit or as flybys of our neighbors in the Sol system. Sure we’ve landed plenty of probes, but mostly on the Moon, Mars, and a few lucky asteroids. And Venus, which is sometimes easy to forget. We were reminded of that fact by this cool video of the 1982 Soviet landing of Venera 14, one of only a few attempts to land on our so-called sister planet. The video shows the few photographs Venera 14 managed to take before being destroyed by the heat and pressure on Venus, but the real treat is the sound recording the probe managed to make. Venera 14 captured the sounds of its own operations on the Venusian surface, including what sounds like a pneumatic drill being used to sample the regolith. It also captured, as the narrator put it, “the gentle blow of the Venusian wind” — as gentle as ultra-dense carbon dioxide hot enough to melt lead can be, anyway.

Continue reading “Hackaday Links: July 31, 2022” →

Demonstrate Danger, Safely

Dan Maloney and I were talking about the chess robot arm that broke a child’s finger during the podcast, and it turns out that we both have extreme respect for robot arms in particular. Dan had a story of a broken encoder wheel that lead to out-of-control behavior that almost hit him, and I won’t even get within striking distance of the things unless I know they’re powered off after seeing what programming errors in a perfectly functioning machine can do to two-by-fours.

This made me think of all the dangerous things I’ve done, but moreover about all the intensely simple precautions you can to render them non-risky, and I think that’s extremely important to talk about. Tops of my list are the aforementioned industrial robot arm and high powered lasers.

Staying safe with an industrial robot arm is as easy as staying out of reach when it’s powered. Our procedure was to draw a line on the floor that traced the arm’s maximum radius, and you stay always outside that line when the light is on. It’s not foolproof, because you could hand the ’bot a golf club or something, but it’s a good minimum precaution. And when you need to get within the line, which you do, you power the thing down. There’s a good reason that many industrial robots live in cages with interlocks on the doors.

Laser safety is similar. You need to know where the beam is going, make sure it’s adequately terminated, and never take one in the eye. This can be as simple as putting the device in a box: laser stays in box, nobody goes blind. If you need to see inside, a webcam is marvelous. But sometimes you need to focus or align the laser, and then you put on the laser safety glasses and think really hard about where the beam is going. And then you close the box again when you’re done.

None of these safety measures are particularly challenging to implement, or conceptually hard: draw a line on the floor, put it in a box. There were a recent series of videos on making Lichtenberg figures safely, and as a general rule with high voltage projects, a great precaution is a two-button deadman’s switch box. This at least ensures that both of your hands are nowhere near the high voltage when it goes on, at the cost of two switches.

If all of the safety precautions are simple once you’ve heard them, they were nothing I would have come up with myself. I learned them all from other hackers. Same goes with the table saw in my workshop, or driving a car even. But since the more hackery endeavors are less common, the “common-sense” safety precautions in oddball fields are simply less commonly known. It’s our jobs as the folks who do know the secrets of safety to share them with others. When you do something dangerous, show off your safety hacks!