Posts

eMudhras long tail - even the latest Mac OSX (Tahoe 26.7.2 (25G332)) is still vulnerable to CLI tools using the wrong certificates

Update: it seems that Apple changed their mind - they write:  The latest version of macOS contains the strongest security protections. Starting in macOS 27.2.1, these command-line tools stop accepting these certificates. For Mac computers that use macOS 26 or macOS 15, macOS 26.7.3 and macOS 15.8.3 also include this protection. It seems that Apple is not planning to update the file /etc/ssl/cert.pem so that the compromised intermediate certificates by eMudhra are removed any time soon. Instead, users (mostly developers that use the Terminal aka command line interface (CLI)) must clean up the file themselves. Here is the approach (as of 2026-11-04 - use at your own risk): Check if you are vulnerable. If this command yields no output, you do not need to proceed. openssl crl2pkcs7 -nocrl -certfile /etc/ssl/cert.pem | openssl pkcs7 -print_certs -noout | grep -E 'emSign ECC Root CA - G3|AAA Certificate Services' Backup the file (only works if you do not yet have a backup) [ ...

Exporting Binary CLCL Export to JSON via Python

 I have been a long-time user of the wonderful CLCL Clipboard manager on Windows (I use it since about 20 years). This tool allows you to organize objects you copied to the Clipboard in a folder Structure. CLCL then offers a feature to export this structure in a binary file so that it may be transferred to another computer or just backed up. Since the source of the tool is available, we see that the export happens in File.c   I then used Claude Haiku (the lowest tier model by Anthropic) to generate a Python script that is able to convert such a binary file to a JSON. It came up with the script  clcl_dump_to_json.py  which works like a charm!

Recycling in the US and elsewhere

Image
 I recently saw this video on Youtube:   Since I am a Environmental Engineer by training (with one of my three specializations being waste management), I found the video very interesting. However, it struck me that apparently, the US is quite a bit behind concerning recycling. I did some research and found that the US recycles only about 32% of its waste, while the EU recycles about 50%. This is quite a significant difference, and it made me wonder why this is the case. Contrast this to Germany, which has a recycling rate of about 66%. Germany has implemented a comprehensive waste management system that includes strict regulations, public awareness campaigns, and incentives for recycling. The country has also invested in advanced recycling technologies and infrastructure, which has helped to increase the recycling rate. Also Switzerland, which has a recycling rate of about 53%, has implemented a similar approach to waste management. The country has strict regulations on wast...

Does your AI show signs of the Stockholm syndrome?

Different analogies for AI have been proposed - the   Helpful Labrador   or   Pigeons   (proposed in the Podcast "The AI fix" by Mark Stockley and formerly Graham Cluley) Recently I came across the idea of an   Abducted Person   proposed by (James Wilson in his podcast episode "MCP is dead" that I summarized here ). The last analogy seems to be rather interesting and ueful as it helps to explain certain behavior: desperation and the total willingness to obey the abductor (you, the user) under any circumstance. Why are such analogies helpful? In security there is a concept of   threat modeling   which means that you try to create a conceptual model of the system in question to assess the associated risks and compare this to your risk appetite. So if for example, you assume that the system behaves like a helpful Labrador, this means that you do not see it as particularly dangerous. If however, you see it as a person that is under  stres...

MCP is dead !?

 Recently, I listened to the excellent Episode "MCP is dead"   of the Risky Business Features Podcast. In it, James Wilson makes the observation that it is disadvantageous for an AI Agent to use the MCP protocol. Here are the key takeaway messages: MCP (Model Context Protocol) is losing relevance as the default integration model for AI agents. The reason: LLMs often prefer CLI/shell access or direct API calls over structured MCP tool usage. This is not because MCP is useless — it was a critical transitional technology — but because the shell is more flexible and token-efficient for models. The main issues of MCP are: Pollution of the context window Too much noise (similar to the issues of XML)  It is hard to compose MCP Servers like you can compose Linux commands in the shell WhyAI Agents prefer the shell Already present on the system Huge built-in tool surface Highly composable ( | , redirection, chaining) No need to defin...

Manifesto for Software Craftsmanship

I just signed the Manifesto for Software Craftsmanship : As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value: Not only working software,      but also well-crafted software Not only responding to change,      but also steadily adding value Not only individuals and interactions,      but also a community of pro fessionals Not only customer collaboration,      but also productive partnerships That is, in pursuit of the items on the left we have found the items on the right (indented) to ...

Great interview with The Grugq on "Herrasmieshakkerit" (The Gentlemen Hackers)

 As mentioned in the once-again great episode 80 (!) of "Between two Nerds" Ransomware and the state - Risky Business , the Grugq gave a very nice interview on the " The Gentlemen Hackers " podcast. Normally, this podcast by Mikko Hyppönen & Tomi Tuominen is in Finnish (any my Finnish is as rusty as the Grugqs), but this special episode, where old friends met, is in English and very nice to listen to: The Gentlemen Hackers interview: The Grugq

Meltdown / Spectre

OK, I am late to the party. In fact, I started the first draft of this post on January 25, 2018 🙈 Since then, a lot has happened, but it is safe to say that the whole bug class that was introduced with Meltdown and Spectre is still going strong even more than 6 years later. On the plus side, such side-channel-attacks typically have a very low bandwidth. In other words, it takes a long time to exfiltrate reasonable amounts of data. In my opinion, the press poorly explained what is behind the Metdown and Spectre attacks. This was the Original Publication   Red Hat provided this excellent analogy : the baristas at your coffee shop optimize in that they prepare the usual beverage for frequent customers and they even write the names of the customers to the cup. When the customers switch places, they have to throw away the cups with the coffee inside. However: the onlooker is able to get a glimpse of the names on the cups. An early question was if Intel SGX Eclaves be used to conceal th...

Accidentially Turing Complete

In the (German) Podcast "INNOQ Security Podcast", Episode " Parsen statt Validieren " I discovered a funny concept: "Accidentally Turing complete Software".  This means that a piece of Software, often a parser, by chance provides everything a computer provides (or in other words, allows to calculate everything that can be calculated). In other words, if you control the input to this parser (for example a JPEG Parser), you can basically write arbitrary programs that the parser will then happily execute. Depending on the privileges the parsers process has, this can have annoying to devastating effects. That is one of the reasons why the principle of least privilege is so important: never give a part of your system higher privileges than required. Matt Rickhard has compiled a small list of accidentially Turing complete Software . Andreas Zwinkau compiled an even larger list . The probably most impressive abuse of this was the specially created PDF that NSO u...

My take on "Recall" by Microsoft

Microsoft has announced a new Feature called " Recall " that essentially takes a continuous stream of screenshots and announced it in the same press release where they announced new DLP controls in Edge Enterprise (see Risky Business #750 -- Why Microsoft's Recall is an attacker's best friend ). Kevin Beaumont has a nice analysis on X . So apparently, this data is being stored in a good old SQLite   (nothing against SQLite - it is a nice DB). However, if this DB gets into the wrong hands (like the hacker that wants to find out how you run your business) this can be devastating. How well this correlates to "we take security seriously" is beyond me.

Getting back the "lost" partition of a USB Stick after the installation of Tails

 If you install the secure Linux Distribution Tails on a modern USB stick using Windows, you will likely no longer see the USB stick in Explorer. That is nor suprising, as Tails removes all partitions (yes, all your data will be gone!) and then creates a 1.37 Gb primary partition where Tails will reside. The rest will remain free (without partition). (Totally use this info on your own risk - you have been warned ) To fix this, just run good old diskpart (see also here ) as an administrator. In my example, the USB Drive is regonised as Disk 1: DISKPART> LIST DISK DISKPART>  SELECT DISK 1 DISKPART> CREATE PRIMARY PARTITION   This creates a new Primary Partition in the remaining free space. As soon as this is done, you may format this partition, typically extFAT is used for USB Sticks as FAT32 is too inefficient due to the limit on the number of blocks which would result in huge block sizes for large drives.

Fortran is back in the top 10 of TIOBE Index

 Wow - after more than 20 years, Fortran is back in the top 10 of the TIOBE Index. That is quite surprising for me and it seems for many others. (The other thing I found surprising is that I learned 7 of the Top 10 languages - that's good enough I would say 😊) Fortran has dramatically evolved since its inception in 1957 (funny: this language is the same age as my parents!) and is the go to language when it comes to numerical computing. (Probably also because many very powerful libraries already exist in Fortran).  I wonder if this trend continues or if other languages like for example Julia will one day overtake Fortran in this area.

How I backup my Synology NAS using rsync

I might be a bit oldfashioned, but I prefer to use my onw backup solution on my NAS rather than relying on a tool by the supplier. I use two external Harddrives, which I exchange in intervals. To backup my content on it, I use good old rsync . Note that for this approach to work, you should turn on the " User-Home-Service ", otherwise, there is no home directory for admin. To install the script, ssh to the NAS with the admin user: ssh admin@yoursyno.domain Then change to root using sudo -i . The backupscript is simple. Note that it just creates an archive on the disk. Since my target disk currently is on NTFS, I use raw rsync. At a later stage, I will change to rsnapshot . (Which requires you to install perl on the NAS first.) Without further ado, here is my script: I added this in /etc/crontab to start the backup daily. Note how I use the flock command to ensure that only a single instance of the backup is running. It is important to put the lockfile in a location ...

Service Now Script Includes: Make sure to convert object references to values

Because I want to have a clean design, I try to use  System properties . This gives me flexibility and clarity over strange literals like var group_sys_id = "690acf664fc51200d4a679a18110c746" ; Instead I write var group_sys_id = gs.getProperty("inc.assignment.group.default") ; Even if you have never seen one of my instances, it will be clear from the code above that the property defines the sys_id of the default assignment group. Sometimes, you have to deal with a list of properties and you might not know initially how many there are. An example we encountered: the customer wants to send out notifications for expiring firewall rules. Currently, there are notifications to send 30, 14 and zero days prior to expiry. The worst solution for this would be to add 3 columns to the table where said firewall rules are stored and put the actual notification dates there. This is bad on many levels: It is a violation of good database design practise (Violation of...

Book review - The Peter principle by Laurence J Peter and Raymond Hull

This is the first installment of a new section of my blog - the review of vintage books. “The Peter Principle” is known by many, but few have taken the time to actually look at the book that defines the principle. This volume, written in 1969 by journalist Raymund Hull as a popular account of the work of Laurence J. Peter is a fascinating piece of work. Much to my surprise, this book is very tongue-in-cheek and full of self-criticism. On the surface, the book is based on this idea: Every employee tends to be promoted until the individual level of incompetence is reached. Starting from this statement, a wohle new science (the so-called “hierarchology”) is developed and many interesting “real-life” examples are presented. Great examples include the “flying T-Formation”, where 23 vice presidents lead 3 divisions, the “free floating apex” where “a director is in charge of a non-existing department” or the most...

Code to check if your Email Adresses where compromised

Yesterday, the Swiss Governmental CERT has published a press release stating that more than 6000 Email Accounts where compromised. They offer a tool to check if your address is compromised, which is, in my option very well designed. (Some people asked why the site is hosted at Cloudflare - the CERT claims thy did that for DDoS prevention. The Databse supposedly is based in Switzerland). To check an Email-Address is contained in the database, the site creates a SHA-265 Hash of the lowercase Emailadress and transfers this. This ensures that no real Emailadresses are transferred. The downside is that this way, it is not so simple to check a lot of Emailadresses (like all of your company). Below, I provide a simple Powershell script to check a list of Emailadresses. As an input, it requires a simple CSV of the format Email me@email.com I throttled the script quite a bit to be nice. What to do if an address of yours was compromised? This could mean two things: either the act...

Moving Contents of subdirectories in a Windows batch or on the command line

Image
Imagine you encounter a directory scruture like this: In each of these yearly folders, there are many subfolders. My goal was to flatten this structure so that all of these subfolders are in th current folder (in other words, one level higher that they are now). It turns out that this is not so easy in Windows because the command move does not intepret * to include folders. Superuser.com to the rescue! User Rik proposed this nifty solution that works like a charm: @echo off for /d %%d in ("*") do ( for /d %%e in ("%%d\*") do ( move "%%e" . ) ) Note: this code only works for subdirectories. If the yearly folders directly contain files, they will not be copied. In this case, use this code: @echo off for /d %%d in ("*") do ( for /d %%e in ("%%d\*") do ( move "%%e" . ) move "%%d\*" . ) Thanks a lot, Rik!

Open Access gains momentum

In a recent publication , Lib4RI , the joint library of the Research Institutes within the ETH Domain, has compiled evidence to show that Open Access is gaining momentum. To recap, here is what Open Access is all about: Open access (OA) means unrestricted online access to peer-reviewed scholarly research. Open access is primarily intended for scholarly journal articles, but is also provided for a growing number of theses, book chapters, and scholarly monographs. Open access comes in two degrees: gratis open access, which is free online access, and libre open access, which is free online access plus some additional usage rights. These additional usage rights are often granted through the use of various specific Creative Commons licenses. Only libre open access is fully compliant with definitions of open access such as the Berlin Declaration on Open Access to Knowledge in the Sciences and Humanities. (Open access. (2015, January 6). In Wikipedia, The Free Encyclopedia. Retrieved 10:...

A completely new approach to where we come from

We learn in modern school that apes and human being share a common ancestor. (Many people misquote this as "human beings are descendants of the apes"). It turns out that this notion  recently got competition by a revolutionary new hypothesis which at first sounds quite strange, but then is really compelling. As Eugene M. McCarthy explains comprehensively on his page , he proposes the hypothesis that humans are a so-called backcrossed hybrid. So rather than slowly evolving from a single species, according to this hypothesis, human beings might be a cross of two completely different species which then repeatedly mated with one of the ancestors. One of these ancestors he calls chimpanzees (however he states " here, I use the term chimpanzee loosely to refer to either the common chimpanzee or to the bonobo, also known as the pygmy chimpanzee; the specific roles of these two rather similar apes within the context of the present hypothesis will be explained in a subseque...

How can you live without a car?

In this little interview with advocatus diaboli, I. Zlobredo, I would like to discuss the implications of a life of a family without a car. I. Zlobredo: Hi Daniel, how did you get here? D. Oderbolz: As usual, I came by bike (as in bicycle) - currently, I am here with my Grace E-Bike. I. Zlobredo: Ahh, that's why you are sweating! D. Oderbolz: I have to admit, contrary to common belief, an E-bike also makes you sweat, if you drive at top speed. That is also my major reason to do it: I want to keep fit. I.: But you and your wife have two kids - how does this work out without a car? D.: It is surprisingly easy. I commute almost exclusively by bike, that makes 30 km each day. To bring our younger one to daycare, I use a bike trailer. In case the older also needs a ride, the trailer is spacious enough for both kids. My wife commutes by train. She owns a GA (with this annual subscription, you can use all public transports in Switzerland). I.: But what about winter? D.: W...

Goosebumps: Sherlock is back!

Image
Finally, after a much too long waiting time, BBC has released the first episode of the third season of Sherlock. All we had so far was this picture: The following episodes have been produced: The empty hearse The sign of three His last vow

How to tar subdirs

After having finished my Phd Thesis, I needed to archive more than 1 Tb on our Tape archive. To make this manageable, I decided to split the data according to subdirectory. Here is a small snippet to automate this:

Script to create text files from Outlook appointments

We have a system that reads certain csv files to create HTML Lists of Appointments. So far this CSV was created manually. I wanted to replace this by a script that is able to read this information directly from Outlook. The script I came up with supports a mustache -like syntax to build templates which are then filled by the program. This allows to generate almost arbitrary text files. Here is an example of such a template: "{{FormatDateTime(currentday,2)}}, {{oAppt.Subject}}"

Test of the Grace Easy S-Pedelec

Image
Thanks to the nice guys at Stromvelo.ch , I can test a Grace Easy S-Pedelec for the next few days. First of all, the bike looks marvelous. As you can see in the nice shot above, there is no ordinary chain on this E-Bike, rather you find a belt as a means of transmission. This means no greasing and reduced maintenance. This is further accentuated by the bionx-motor that directly encapsulates a 3-shift S-RAM hub. First Ride (From Shop Home, Urban-Suburban) My initial reaction to the bike was that it feels really sturdy and stable. The double kick stand folds easily and keeps the bike steady when parked. The support by the motor can be adjusted using a total of nine positions, four of them "negative" (varying degrees of recuperation), a neutral setting and four "positive" settings to control the amount of support given. The support comes smoothly and without overpowering the driver. My biggest concern was that there are only three gears available. M...

Office 2010: Headache with Alfresco 4.2c Community Edition over CIFS

If you open a Excel or Word 2010 document that is stored on Alfresco 4.2c (the problem does not occur with Powerpoint) via CIFS, you get a message that the file is already open by "another user", even if it isnt. This bug has been seen in many Alfresco versions, but also in the latest community release 4.2c ( CIFS/Office 2010 - File locked after creation ). The reason for this seems that Office 2010 acquired more than one lock per open file and forgets to close at least one of them. Since Office 2010 allows webdav Links to be used directly in File dialogs (open/save), and webdav does not seem to produce these issues, this is a viable workaround. Also, under Windows 7 and later, webdav can be mounted just like a normal CIFS drive, which also avoids these problems. (This has the nive side-effects that the server is only about half as busy as with CIFS, also if you serve the data via HTTPS, the data is encrypted which it isn't via CIFS).

Statistical Processing of EVI and NDVI from MODIS in ArrcGIS 10 using Python

OK, ArcGIS got much better with version 10. I did not even mind having to re-write all of my scripts, since now, Python is really integrated. The only thing worrying me now is the performance and some file name issues (see below). With this script, I can batch-process a number of Nasa HDF files. First, the data of the NDVI (Normalized Difference Vegetation Index) and the EVI (Enhanced Vegetation Index) band is extracted. Then we re-scale it (for storage, the data was multiplied by 1E4). Finally, I create a zonal statistic for a 320 km buffer around Zurich. You notice that I replace all dots by underscores in line 48. This is needed because ArcGis otherwise has trouble identifying the datatype (which is done by extension). Have fun!

Running SQLite on Andrew File System (AFS)

For my project CAMxRunner , I needed fast and reliable storage for runtime data. I started out with simple files, but it became cumbersome. SQLite is a nice alternative, especially because it supports standard SQL and beyond. However, there are a number of things to keep in mind when running it on AFS , because AFS has no support for byte-range locks currently. This means that SQLite needs to be compiled in such a way that file locks (flock) are used: Scary (and wrong) error message When SQLite was compiled as shown, it has the nasty habit of issuing the error "I/O error" instead of "Database locked". If you are data-sensitive like me, this error may scare you somewhat, but my tests so far have shown that it is just the wrong text being issued. Maintenance tasks Like any database, SQLite needs a bit of maintenance (of course, considerable less than, say, Oracle). What I do in my application at every startup: Issue PRAGMA integrity_check;   Rebuild of in...