From 6a321759f6f75e7e14a29fde7cd0fa359d14215e Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Wed, 21 Jul 2021 19:37:15 +0200 Subject: final tweaks to documentations, added intro and final presentation slides --- documentation/slides-final/slides.md | 253 +++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 documentation/slides-final/slides.md (limited to 'documentation/slides-final/slides.md') diff --git a/documentation/slides-final/slides.md b/documentation/slides-final/slides.md new file mode 100644 index 0000000..54b1fa8 --- /dev/null +++ b/documentation/slides-final/slides.md @@ -0,0 +1,253 @@ +title: STLDoctor +output: index.html +controls: false + +-- + + + +-- + + + +# STLDoctor 💉 + +-- + +### Index 🗄️ + +- Service recap +- Optimization +- ENOWARS 5 +- Reflection + +-- + +### Refreshing Memories 💾 + +- Plaintext service written in C +- Users upload STL files for parsing +- Private and public storage (2 flagstores) +- 1. Vuln: Deserialization +- 2. Vuln: Hash preimage + + + +-- + +### Since Last Meeting ⏩ + + + +- Performance improvements +- Added service fluff + + + + + + + +-- + +### Issues 😒 + + + +- Slow search / list operations +- Enochecker memory leak without patch +- Engine error on worker restart with patch +- Logs not showing up in ELK + +-- + +### Solutions 💡 + +- Index files with locks for directory listing +- Refactored checker for asyncio +- Condensed checker functionality +- Increase docker-compose log size + +-- + +# ENOWARS 5 + +-- + +### OSError 💢 + +- Checker throws `INTERNAL_ERROR` on bad connection +- Fixed in c97789ad.. of enochecker3 + + + +-- + +### Checker Overload 💥 + + + +- Checker tasks being aborted for every team + + + +-- + +### Checker Overload 💥 + + + + +-- + +### Anomaly 👽 + + + + + +-- + +### Feedback 🤔 + +- 1. flagstore exploited after ~4h (R190) +- 2. flagstore not exploited + + + + + +-- + +### Conclusion 🎉 + +- Relatively good uptime +- Not too easy / hard +- Users found vulns interesting +- No (known) unintended vuln +- Had a lot of fun + +-- + +-- + +### Slow IO 🐌 + + + +- Enumerating files in a directory is expensive +- Index file per directory containing file names +- File locks to ensure exclusive writes + + + +-- + +### Investigating `readdir(..)` 🔍 + + + +`__readdir(..)`: + + + +-- + +### Investigating `readdir(..)` 🔍 + +`__get_dir_entries(..)`: + + + +-- + +### Checker Overload + + + +-- + +### Checker Overload + + + +-- + + + + + + -- cgit v1.2.3-71-gd317