Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Hexyflexy
Sep 2, 2011

asymptotically approaching one
Most stupid: Keylogger I wrote in about 500 bytes that I stuck into the bss of the Netware drivers (they hosed up and didn't declare that section as a true bss so you had about 1k of stsic zeros that the virus scanners didn't look at) that loaded before anything else on the systems. It spread around by dumping a Word template file in the users home directory which back then was auto-loaded every time you started Word. This then dumped the modified network driver on a new machine. Thankfully while I was a mad destructive teenager I also didn't do anything with it. Code was loving sweet though.

Funniest: Whatever we had as Net Nanny back in 1997, the regexes on the URLs were case sensitive.

Adbot
ADBOT LOVES YOU

Hexyflexy
Sep 2, 2011

asymptotically approaching one

in band communication is a hell of a thing. also, now rewriting many .vimrc, I don't even use the bloody thing any more.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Shaggar posted:

anything that uses javascript should be considered insecure.

It's fine, I'm sure one of the many machine local databases that are accessible by a website are totally isolated from any other sites code touching it. Or that I couldn't paste a link here that'd email me your entire html5 web storage. That has never happened.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

D. Ebdrup posted:

Linus has managed to piss a lot of people off in very short order:
https://twitter.com/FiloSottile/status/1174352754413846529

What are you meant to do if getrandom returns an error. I mean, in what case in any reasonable program can you recover from that, apart from calling it again.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Farmer Crack-rear end posted:

i think it's less about needing a specifically non-secure random number and more about being assured that a random number will be delivered regardless of whether it is secure or not, because if i'm understanding correctly there are scenarios in which the current secure random number generator may fail, timeout, or otherwise be unable to deliver a secure random number.

That's Linus' point "do we just kill your process if this call doesn't work - that's stupid, lots of stuff relies on this even though as designed it isn't determinate what it should actually do". And.. I'm kind of in the kill the process camp, that isn't going to make me particularly popular and is a reason I'd be terrible at kernel dev.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

suffix posted:

python had to deal with this and tediously hashed out exactly what required blocking on entropy (anything that users in turn will be relying on to be secure) and what didn't (hash table randomization)

https://bugs.python.org/issue26839

note that they spotted hangs of 90 seconds in the wild
in all that time /dev/urandom on linux would have been happily pouring out faux randomness, which is why relying on secure numbers from /dev/urandom any time other people will be running your code in unpredictable circumstances is computer malpractice

I'm still amazed we haven't built timing issues into our system programming languages. I should rephrase that, we have timing issues in our system programming languages on real systems but ignore them. More Pi calculus required.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Half-wit posted:

Maybe I'm loving dumb, but why not just make a Linux kernel compile flag to toggle /dev/urandom behavior between "don't start launching non-kernel code until '/dev/urandom' is seeded" (ALA BSD) and the more traditional "just boot that poo poo up and gently caress userspace, make userspace deal with it". Y'know, let people decide whether they want their OS boots to take longer in order to secure their god-drat entropy pool.

Like everything I ever read about Linux Torvalds technical decisions is him basically saying "this is someone else's problem".

Because a whole load of your user space will fail horribly and unpredictably. I’m paranoid enough that tests for code I’ve written do statistical tests on things that should be pseudo random, most of the code your’re relying on doesn’t.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

yoloer420 posted:

You and me both. It's two years since I finished my PhD. I still can't put a dent in a novel. I really hope this gets better.

Takes about a decade after you leave uni.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

they finally managed to give everyone vxd

Hexyflexy
Sep 2, 2011

asymptotically approaching one

I think I still have a magazine article about it from like 1992 that I cut out and put on my bedroom wall. I miss you boot sector viruses, you were crapper than the 30 byte Bulgarian file infectors but easier to reverse engineer.

And now I've just remembered Sarah Gordon.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Potato Salad posted:

when you discover bits of a client's HVAC infra via shodan, there's work to be done

adiabatic thinking, number one

Hexyflexy
Sep 2, 2011

asymptotically approaching one

You missed my favourite bit:

quote:

In the first version of the software, there were 70 full copies of 4 different
OpenSSL versions, ranging from 0.9.8 to 1.0.2k (including one from a vendor SDK)
with partial copies of 14 versions, ranging from 0.9.7d to 1.0.2k, those partial copies
numbering 304. Fragments of 10 versions, ranging from 0.9.6 to 1.0.2k, were also
found across the codebase, with these normally being small sets of files that had been
copied to import some particular functionality.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

rjmccall posted:

avoiding ret would be a total disaster, the return-branch predictor is absolutely critical for performance

The last time I tested any code that avoided rets and did everything by self modifying jumps (etc) was on a pentium II, and you could get away with it if you were rewriting the instructions about 2000 machine cycles in front of you. I'm pretty sure that any processor since 1999 is performance hosed if you lose the branch predictor.

Pipeline PTSD.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Oh, something about ubuntu I can actually know about for once. Been working on an embedded box for visualisation stuff that is based on ubuntu, specifically nvidia embedded boxes, but it works on other embedded linux stuff too.

gdm3. Oh. God. The race conditions. I'm not a long time linux coder, so my only long term linux debugging experience is on this. I've done MacOS/Windows kernel/graphics stuff for a long time but this is weirdo.

Question, have you ever switched the window manager to say, openbox (for speed on a very slow box), and then tried to get gdm3 to restart it in a way where it always comes up when a monitor is plugged in, or two monitors are? 3 months later and 2 new system monitoring processes I can! Things I learned; btw, if you use ubuntu and the default window manager, these work by fluke, they haven't been engineered in any way at all:

gdm3 doesn't know how to talk to the security subsystem really, like it's feeble. There is sometimes a cascade of timeouts if your window manager starts up too fast where gdm'll be trying to get pam auth but already need to have it and core dump. Repeatedly. This can actually blow up a monitor through rapid mode changes. The default window manager works because it starts up too slow to cause a problem.

gdm3 doesn't know how to shut down a session it started, especially so if you've punted off graphics into its own limited user. I mean, it looks like it does, but if you start it up and start it up again (because you have no way to know it actually did start correctly), or start it up and it hangs, it'll keep trying and panic the box - all by itself, because they'll be 3 of it. Because it has zero locks on any of its internal processes so, good luck, you need to write the locks yourself externally.

If you think this is just me and not the (fairly broken in other ways) nvidia dev boxes, look at any ubuntu forum for people trying to use alternate window managers and trying to get them to restart/recognise monitor plugins and failing with endless screen resets and panics.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

redleader posted:

mitigation: abandon technology, return to the wild

mitigation: get entire internet on dvd via subscription.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Pardot posted:

because of DeCSS?

:yosnice:

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Achmed Jones posted:

i just kind of assume that any website i go to can uniquely identify me if it wants, even if it doesn't directly have access to my name or whatever. i have yet to see any indication that i am incorrect

im glad that smart people are working on mitigation, but im also not expecting them to succeed

If you access site one when you wake up, site two every time you go for a poo poo, and site three when you have dinner and site four when you're going to bed, chances are that's pretty unique and regular. Give up, everyone knows you go to the kitchen electricals fetish site.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

BlankSystemDaemon posted:

Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical. PoC.

Make rdtsc privileged, and I say that as someone that's spent a huge amount of time writing soft real-time code where it's been super useful.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Wiggly Wayne DDS posted:

why exactly is this incredibly specific line in a policy doc?

security by eula is npm's only hope.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Shifty Pony posted:

so it is pretty drat likely that it is taking so long to revert the changes because whatever procedure they have in place to allow authentication and access into the systems which hosed up got taken down by the fuckup, right?

just lol if there's this one dude in a data center repeatedly hanging up on increasingly desperate Facebook admins because that's what the flowchart says to do to anyone who can't pass authentication.

It's very funny, I'm going to guess any kind of backup manual code/key based system for access to the info they need to sort it is locked behind their single signon stuff.

It's always DNS!

Hexyflexy
Sep 2, 2011

asymptotically approaching one

hobbesmaster posted:

except for when its bgp

lol, someone's got a lot of phone calls to make.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Penisface posted:

why does this functionality even exist in a logging library?

enterprise

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Lain Iwakura posted:

well actually, you see, regular expressions can solve everything and in this essay...

lol, so even if you write a regex to block this family of strings I'm still going to be able to DOS your logging server outside of spacetime by sending a string that makes the backtracking engine go O( n^many ).

Good luck.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Chris Knight posted:

he keeps spawning child processes, i'd assume so

orphaned child processes if some stories I've been told about a few of his kids are true. Fucker doesn't pay child support.

Hexyflexy
Sep 2, 2011

asymptotically approaching one
Oh dear, why has this binary in my mactex installation got the string "org.apache.logging.log4j" in it. Thanks java, it's 2am, now I have to work out what the gently caress that is.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

bleeding kansas posted:

im trying to make shadowrun real

well I know who to call the next time I spot a lol bug.

cinci zoo sniper posted:

not quite. denuvo (go-to gaming drm vendor since like 2015) under the hood is a custom vmprotect fork hardened against attaching debuggers

Took the crackers ~6 months to reverse engineer that the first go around, it's substantially faster now to the point where the tools are open source.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Quackles posted:

Shoulda done what Chris Crawford did, and deliberately abuse the memory allocation patterns of the C compiler to leave the list of valid copy-protection passwords in unallocated memory, then allocating space around it later to sneak the password list past debuggers.

(Seriously, go DRM-free, people. You'll sleep better. There's a lot you can get out of politely asking people not to do a piracy.)

That kind of thing never works btw, if it's something totally degenerate you single step all the through with some guesses (fast tapping fingers useful!), but mainly you just do a break somewhere nearby where you think something's checked (on windows, the msgbox api when computer says no). Then reverse, work out where that came from, go from start with a new breakpoint again.

It's really hard to win unless you do the VM approach which is loving pain to deal with unless you're a student with loads of free time, I couldn't RE anything like that anymore.

e: For this reason I'm somewhat interested in libtriton and dynamic symbolic execution.

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Ulf posted:

hi yossec! clicking here will make all your dreams come true:

https://quic.ulfheim.net

Thanks for this!

Hexyflexy
Sep 2, 2011

asymptotically approaching one

Chris Knight posted:

𝐁𝐌𝐎𝐀𝐋𝐄𝐑𝐓

𝐘𝐨𝐮𝐫 𝐚𝐜𝐜𝐨𝐮𝐧𝐭 𝐡𝐚𝐬 𝐛𝐞𝐞𝐧 𝐩𝐮𝐭 𝐨𝐧 𝐟𝐫𝐨𝐳𝐞𝐧 .

𝐑𝐞𝐩𝐥𝐲 𝐘 𝐭𝐨 𝐯𝐞𝐫𝐢𝐟𝐲 𝐲𝐨𝐮𝐫 𝐢𝐧𝐟𝐫𝐦𝐚𝐭𝐢𝐨𝐧


k.

Jesus! My loving BMOs!

Hexyflexy
Sep 2, 2011

asymptotically approaching one

well-read undead posted:

or worse, github copilot or whatever other godforsaken ai services there are plugins for

The redhat ansible extension for vs code really really wanted to talk to a remote AI code assisstant service when I installed it. I then uninstalled it.

Adbot
ADBOT LOVES YOU

Hexyflexy
Sep 2, 2011

asymptotically approaching one

SIGSEGV posted:

now this may strike people as an odd question but why does the UEFI spec allow image handling libs instead of mandating a bitmap at most?

I just grabbed a copy of the UEFI spec and you've got PNG and JPEG availble for general bitmaps and font glyphs - we never find any bugs in those decoders ever.

Then there's this, which I want to look at now, because it's always the easiest way to get something running inside firmware that you shouldn't. The wonderful vendor extension (please never allow your spec to have these). Never checked, never debugged, always written by the lowest bidder. Section 34.6:

"The image decoder protocol can publish the support for additional image decoder names other than the ones defined in this specification. This allows the image decoder to support additional image formats that are not defined by the HII image block types. In that case, callers can send the image raw data to the image decoder protocol instance to retrieve the image information or decode the image."

So likely buggy PNG/JPEG in there by specification decoders, but you never know, your firmware vendor may have put in an extension library for something else.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply