logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git
commit: 0d1fe6e052ab857a15a4e479526a535bfb46df16
parent 2a92c4a75ee9aff33bf2fe1b89f6f120654f69b1
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sun, 18 Apr 2021 21:09:03 +0200

notes/computing-truths: DoSing an operating system

Diffstat:

Mnotes/computing-truths.txt3+++
1 file changed, 3 insertions(+), 0 deletions(-)

diff --git a/notes/computing-truths.txt b/notes/computing-truths.txt @@ -8,6 +8,9 @@ I would love to be proved wrong or shown doubts on any of this, thanks a lot if - You can sometimes detect after parsing if a program will or will not end (finite-automata / loop with no end condition) - You cannot detect for all programs if they will or will not end ("The halting problem") - Most programs can be made to crash (and under most Operating Systems it's All) +- You can render an operating system unusable (Denial-of-Service) probably more easily than you think, even with some restrictions: + - Easy to fix: Ping of Death, … + - Hard to fix: Forkbomb, using up all memory, using up all of a filesystem (be careful with logs), eating the limit of file descriptors/PIDs/… of the current user or root, … - Cryptography isn't some magic fairy dust to make something secure (it can actually make it worse) - There is no magic solutions to make something secure, but there is good practices - You will need actual debugging tools (gdb/lldb, dtrace, ping, tcpdump/wireshark, …), learn them