11 ms·
Twitter Client for UEFI
- nih0 5y agothis is the bloat free software that i need in my life
- sva_ 5y agoThis made me wonder if somebody got Doom to run under UEFI, and sure enough: https://github.com/Cacodemon345/uefidoom/ https://github.com/Cacodemon345/uefidoom/
- bonzini 5y agoUEFI is like the ugly son of MS-DOS and Windows. Anything that can run under MS-DOS with a DOS extender can run under UEFI. A friend of mine ported QEMU in order to run x86 boot ROMs on ARM systems.
- hackmiester 5y agoThat's... so absurd but so genius.
- MaceOutWindu 5y agowas about to comment this. Now I have to find ridiculous things to run on uefi.
- secondcoming 5y agoTIL: It's possible for UEFI code to access the internet. What could possibly go wrong?
- p_l 5y agoHow did you think netbooting support works? UEFI made it quite simpler by making it so that network cards only have to bring a driver in OPROM instead of whole stack as before, and this allowed important improvements into boot process (like HTTPS instead of TFTP)
- secondcoming 5y agoI thought that was the Intel ME thing. I've actually never used netboot.
- rvz 5y ago> TIL: It's possible for UEFI code to access the internet. Quite surprising to see lots of tech-oriented users here finally discovering UEFI having access to the internet after years of even the basics like "Internet Recovery" being used on Apple Macs or even sysadmins using netbooting on diskless systems. There is always a IP/Net stack section in the UEFI menu on nearly every modern PC which gives you this hint, but it isn't useful for the 95% of users, except for sysadmins, recovery, security and even malware writers. > What could possibly go wrong? Indeed. A lot can go wrong. I bet someone will do a Wordle clone in UEFI next.
- dheera 5y agoWasn't it always possible? If it can boot a full-blown OS that can access the internet, it has to be able to access the internet on its own.
- smw 5y agoI think your logic is faulty here. There were BIOSes with no ip stack for many years that could boot OSes that did have the ability to access the internet. Also, it's possible to remove the ip stack from most UEFI implementations? Now, it does need a network stack if it's going to _boot_ the other OS from the network.
- deleted 5y ago[deleted]
- selfhoster11 5y agoPXE boot has been supported since before UEFI was a thing.
- base20 5y agoHow about this heap overflow bug in the UEFI bitmap (BMP) library: https://nvd.nist.gov/vuln/detail/CVE-2021-38577 https://nvd.nist.gov/vuln/detail/CVE-2021-38577 Exploitable via network, no user interaction and no special privileges required. Scores 9.8 on a scale of 10 for severity from NIST. That's what happens when this stuff is done in such a highly privileged environment - simple bugs become security nightmares. For comparison, Heartbleed scored a 7.5: https://nvd.nist.gov/vuln/detail/CVE-2014-0160 https://nvd.nist.gov/vuln/detail/CVE-2014-0160 Secure boot and signed firmware won't save you, and in fact it could make things worse since it means even well-informed and capable users won't be able to fix it on their own. They're utterly helpless until their vendor fixes it and publishes an update.
- lizardactivist 5y agoI get the feeling UEFI can never be entirely secure with the set of functionality it offers and thus huge surface it is exposing. Call me crazy, but security means doing only what is necessary and no more, in particular in this early part of starting up a computer system.
- ______-_-______ 5y agoUEFI needs ~complete access to the machine so it can initialize hardware devices and pass control to the OS (which also has ~complete control of the hardware). How do you think sandboxing it would work, practically?
- profile53 5y agoWhat’s scary about UEFI is that it has both direct hardware access and a massive attack surface: GUI, Ethernet stack, occasionally an 802.11 stack, etc.
- blibble 5y agocustomers want to be able to boot their machines off the network this would be difficult without a network stack if you're so inclined: you can remove unneeded modules from your UEFI firmware
- bayindirh 5y ago> this would be difficult without a network stack This was possible with Ethernet cards with boot ROMs for more than two decades. Network booting via UEFI is nothing new, nothing revolutionary. I've been installing fleets of servers with PCI ethernet cards w/ boot ROMs a decade before. Token ring systems were booting from network two decades before.
- blibble 5y agowhat's the difference between having the code running in ring0 in a ROM vs the code running in ring0 from UEFI?
- nine_k 5y agoNow imagine a whole working set of software, and some encrypted storage, running in UEFI, while the "real OS" with some games and office apps is only loaded to plausibly deny the real use.
- shabier 5y agoMy only question is; why? Don't get me wrong, it is cool, but do people actually use it?
- cpach 5y agoAs for why: Probably because it’s a cool hack. Does anyone actually use it? Probably not.
- loloquwowndueo 5y agoIf this allows me to use “latest tweets” chronological view as default instead of the brain dead “home” view I’m totally setting up a laptop with this. The official twitter clients are more atrocious each day (spaces? Home by default? 95% promoted tweets in my timeline? List suggestions I don’t care about?)
- ctxc 5y agoDidn't know what UEFI was, so here it is: " UEFI and BIOS are low-level software that starts when you boot your PC before booting your operating system, but UEFI is a more modern solution, supporting larger hard drives, faster boot times, more security features, and—conveniently—graphics and mouse cursors. The UEFI/BIOS loads when your computer starts up, and the BIOS is responsible for waking up your computer’s hardware components, ensures they’re functioning properly, and then runs the bootloader that boots Windows or whatever other operating system you have installed. You can configure various settings in the BIOS setup screen. Settings like your computer’s hardware configuration, system time, and boot order are located here. The BIOS goes through a POST, or Power-On Self Test, before booting your operating system. It checks to ensure your hardware configuration is valid and working properly." Source: https://www.howtogeek.com/56958/htg-explains-how-uefi-will-replace-the-bios/ https://www.howtogeek.com/56958/htg-explains-how-uefi-will-r...
- diego_sandoval 5y agoFor anyone wanting to know how UEFI actually works, I always recommend this article: https://www.happyassassin.net/posts/2014/01/25/uefi-boot-how-does-that-actually-work-then/ https://www.happyassassin.net/posts/2014/01/25/uefi-boot-how...
- silisili 5y agoThanks for this. I had a generally good idea about this, but despite seeing the word for many years, never actually knew what POST stood for before this comment. I'm not even sure I knew that it was an acronym...
- saghm 5y agoYeah, I always assumed it meant "post" as in "after", and it meant "after starting up" or something
- ComputerGuru 5y agoIf you're interested in learning further, I wrote up everything in the "regular" (pre-UEFI) boot process here and have been told it's a very good crash course on how your PC boots up: https://neosmart.net/wiki/mbr-boot-process/ https://neosmart.net/wiki/mbr-boot-process/
- hackettma 5y agoThis sounds like a perfect command and control setup for malware.
- belkarx 5y agoExactly. My first thought was bootkit as standalone C2 would not be that useful
- p_l 5y agoIt's not really a good option, however SMM mode could be (you'd need to figure how to do network calls, though). The only thing changed by UEFI in this case is unified interface to register SMM components (You can have UEFI system with no SMM).
- amelius 5y agoI'm impressed when they have VirtualBox or qemu running in UEFI, sandboxing my real OS.
- masklinn 5y agoWhy would you want qemu running in UEFI, rather than have qemu booted from UEFI? (more specifically run qemu on xen booted from UEFI, I think is what you'd want).
- jakogut 5y agoPractically speaking, QEMU needs a lot of OS functionality, such as scheduling, threading, virtual memory, and network, disk, and filesystem drivers, to be able to function. Xen does have these, but so does Linux, and KVM just exposes hardware virtualization as a module from Linux.
- ranger_danger 5y agohttps://news.ycombinator.com/item?id=30652652 https://news.ycombinator.com/item?id=30652652
- mwcampbell 5y agoHas anyone implemented audio output on a modern x64 machine under UEFI, e.g. using the typical Realtek on-board audio? If so, I'd like to get a GUI with a screen reader working under UEFI sometime, both for the challenge of getting into bare-metal programming, and because as far as I know, nobody has made a PC boot process and firmware setup UI (what we used to call BIOS setup) accessible to blind people.
- p_l 5y agoIt would be very interesting project, because UEFI also puts emphasis on unified UI stack - yes, you can do stupid bling setup interface still, but there's somewhat unified UI toolkit available + standardised ways to create configuration options for devices. This way, a screenreader could hook into the UI toolkit and provide a good interface.
- poisonborz 5y agoSee this project: https://github.com/Goldfish64/AudioPkg https://github.com/Goldfish64/AudioPkg
- WaitWaitWha 5y ago/s Gather around children. Let me tell you a story from long long time ago. Two one eyed giants, Intel and Microsoft got together and decided that they should be in control of your machine, not the other half giants, like AMI, Award,Phoenix, DTK, and even a full giant but nobody cared about her, IBM. So they convinced everyone there was no space on the BIOS any more, and they had to shift much of the code outside onto a boot device, usually an HDD. 'Think about all the speed and ability to update quickly' they said to the peasants, and the local magistrates in the form of media gobbled it up, and continue to spread this news. There were some peasants that freaked out, pointed out the problem, but quickly were shouted down and jeered at by the crowd. 'We want faster! Stop spreading misinformation.' And, the two giant indeed forced the development of EFI then UEFI. There is nothing Unified about it. But, guess what? That was not good enough either, because some peasants figured it out how to manipulate the UEFI, and the two giant didn't like that. So they went back to the half giants and discussed what to do. And, lo they came up with an brand new idea! What if we put all this information into a chip, and make it hard to read! We will call it, BIOS! For good measure, for peasants that want more power, we will even throw in another one, and we will call it Baseboard Management Controller, but we will let you call that all kinds of different names! To make it even more entertaining, in larger cities where peasants are promoted to the rank of "enterprise", some host board adapters will also run OSes themselves for the fun of it. And this is how we got to today. When your computer runs, the BIOS with a full OS can be running, next to it, the BMC with a full OS could be running, on top of the BIOS you can have UEFI running, the HBA OSes running, and finally your very safe and secure OS running. /story I have taken artistic liberty (like UEFI most often runs on the same CPU,while BMC & HBA run on their own, and such), but the gist is true. An enterprise class host can be running many fully functional OSes, potentially with full network stack. This is why "zero trust" network implementation is so important.
- Sophira 5y ago> and finally your very safe and secure OS running. That's the one running on the Intel Management Engine, right? Or at least Intel would like to believe that's the case. Jokes aside, I may be missing something. The BIOS came way before UEFI did. What am I missing here?
- BitLit 5y agoFile this project under: the engineers were so preoccupied with whether or not they could, they didn’t stop to think about if they should.
- eatonphil 5y agoAnyone have a favorite guide/blog post/whatever for getting started with UEFI applications?
- aesh2Xa1 5y agohttps://wiki.osdev.org/UEFI https://wiki.osdev.org/UEFI There are several pages here under the UEFI tag. There are also some application guides and a few polished bootloader documents.
- stjohnswarts 5y agoNot a tutorial but good info and keywords https://www.intel.com/content/dam/develop/external/us/en/documents/open-source-uefi-firmware-for-intel-platforms-825417.pdf https://www.intel.com/content/dam/develop/external/us/en/doc... Also this might be helpful: https://pete.akeo.ie/2015/01/easily-create-uefi-applications-using.html https://pete.akeo.ie/2015/01/easily-create-uefi-applications... and if you choose edk2: https://www.tianocore.org/ https://www.tianocore.org/
- _HMCB_ 5y agoWhat would be the purpose of this? A no-GUI client that’s loaded before the OS?
- stjohnswarts 5y agoYour scientists were so preoccupied with whether or not they could, they didn’t stop to think if they should.
- mjg59 5y agoA few thoughts: yes, UEFI is a large attack surface. Secure Boot mitigates a lot of that - if it's turned on, the vast majority of UEFI functionality is only accessible to signed binaries. If you're running untrustworthy code in your boot environment then it's already in a position to just overwrite the firmware, there's no memory protection here. But UEFI doesn't entirely go away after the OS boots, there's some number of runtime services left that the OS depends on. http://blog.frizk.net/2017/01/attacking-uefi-and-linux.html http://blog.frizk.net/2017/01/attacking-uefi-and-linux.html is a demonstration that if you're able to modify those then you can compromise the OS. There's also, of course, all the code in SMM which can just do whatever and may have been audited but possibly hasn't been. But honestly overall BIOS was a bigger concern than UEFI. It's easy to forget, but a lot of the BIOS hooks are still available at runtime - https://github.com/mqudsi/lrmi https://github.com/mqudsi/lrmi is an interface that lets you call them from Linux. It's reasonable to worry about the attack surface exposed by UEFI runtime services, but BIOS software interrupts are frankly even weirder. The reason we largely didn't worry about them is that you normally have to be root to call them, which is also the case for UEFI runtime services and most SMM interfaces. And SMM definitely predates UEFI, so getting away from UEFI complexity wouldn't save us there. And there's been plenty of meaningful security work done in the UEFI space lately. There's support for proper IOMMU setup so that you can boot off Thunderbolt without any Thunderbolt device just being able to DMA all over your firmware. The NX bit is supported. There's support for stack canaries. There are best practices for SMM behaviour. https://uefi.org/sites/default/files/resources/UEFI%20Firmware%20-%20Security%20Concerns%20and%20Best%20Practices.pdf https://uefi.org/sites/default/files/resources/UEFI%20Firmwa... covers a bunch of this. If we were designing firmware for maximum security then I don't think anyone would argue we'd come up with UEFI. That doesn't mean that we should be nostalgic about BIOS, which was a smaller attack surface but provided no meaningful security.
- rageandchaos 5y agoWould it be possible to run light weight apps/containers based on Wasm/Wasi? What are the limitations of UEFI?
- pabs3 5y ago> You need to enable "HTTP Protocol Stack Support" in your UEFI. This is potentially not the best idea in the world...
- KSPAtlas 5y agoDoom for UEFI, twitter for UEFI, what's next? A video player for UEFI?
- base20 5y agoYa'll ain't seen nothing yet. For a time the leading UEFI vendor, Phoenix Technologies, had a web browser in their UEFI BIOS. Some photos from WinHEC 2005 can be seen here: https://www.anandtech.com/show/1670/8 https://www.anandtech.com/show/1670/8 This was part of their "eBetween" UEFI BIOS that enabled them to show ads during boot-up (seriously) and also install software to Windows with what they called "Virtual Bundling Technology": https://indexarticles.com/business/business-wire/phoenix-technologies-launches-ebetween-internet-subsidiary-in-partnership-with-softbank-holdings/ https://indexarticles.com/business/business-wire/phoenix-tec... and https://www.cnet.com/tech/tech-industry/phoenix-jumps-on-web-plans-softbank-investment/ https://www.cnet.com/tech/tech-industry/phoenix-jumps-on-web... tl;dr version: UEFI can download software from the internet, copy it to the Windows partition, edit the registry, and even add desktop icons and IE bookmarks. Phoenix sought to productize this. If you've ever seen a Windows PC where you just couldn't get rid of certain pieces of software or icons, it may have been eBetween at work. This is effectively the same thing as the persistent malware attacks described in numerous security blogs. Phoenix has since rebranded their UEFI codebase to (irony alert!) SecureCore.