Dearest C++, Let Me Count the Ways I Love/Hate Thee
My first encounter with C++ was way back in the 1990s, when it was one of the Real Programming Languages that I sometimes heard about as I was still splashing about in the kiddie pool with Visual Basic, PHP and JavaScript. The first formally standardized version of C++ is the ISO 1998 standard, but it had been making headways as a ‘better C’ for decades at that point since Bjarne Stroustrup added that increment operator to C in 1979 and released C++ to the public in 1985.
Why did I pick C++ as my primary programming language? Mainly because it was well supported and with free tooling: a free Borland compiler or g++ on the GCC side. Alternatives like VB, Java, and D felt far too niche compared to established languages, while C++ gave you access to the lingua franca of C while adding many modern features like OOP and a more streamlined syntax in addition to the Standard Template Library (STL) with gobs of useful building blocks.
Years later, as a grizzled senior C++ developer, I have come to embrace the notion that being good at a programming language also means having strong opinions on all that is wrong with the language. True to form, while C++ has many good points, there are still major warts and many heavily neglected aspects that get me and other C++ developers riled up.
Why We Fell In Love
Cover of the third edition of The C++ Programming Language by Bjarne Stroustrup.
What frightened me about C++ initially was just how big and scary it seemed, with gargantuan IDEs like Microsoft’s Visual Studio, complex build systems, and graphical user interface that seemed to require black magic far beyond my tiny brain’s comprehension. Although using the pure C-based Win32 API does indeed require ritual virgin sacrifices, and Windows developers only talk about MFC when put under extreme duress, the truth is that C++ itself is rather simple, and writing complex applications is easy once you break it down into steps. For me the breakthrough came after buying a copy of Stroustrup’s The C++ Programming Language, specifically the third edition that covered the C++98 standard.
More than just a reference, it laid out clearly for me not only how to write basic C++ programs, but also how to structure my code and projects, as well as the reasonings behind each of these aspects. For many years this book was my go-to resource, as I developed my rudimentary, scripting language-afflicted skills into something more robust.
Probably the best part about C++ is its flexibility. It never limits you to a single programming paradigm, while it gives you the freedom to pick the desire path of your choice. Although an astounding number of poor choices can be made here, with a modicum of care and research you do not have to end up hoisted with your own petard. Straying into the C-compatibility part of C++ is especially fraught with hazards, but that’s why we have the C++ bits so that we don’t have to touch those.
Reflecting With C++11
It would take until 2011 for the first major update to the C++ standard, by which time I had been using C++ mostly for increasingly more elaborate hobby projects. But then I got tossed into a number of commercial C and C++ projects that would put my burgeoning skills to the test. Around this time I found the first major items in C++ that are truly vexing.
Common issues like header-include order and link order, which can lead to circular dependencies, are some of such truly delightful aspects. The former is mostly caused by the rather simplistic way that header files are just slapped straight into the source code by the preprocessor. Like in C, the preprocessor simply looks at your #include "widget/foo.h"
and replaces it with the contents of foo.h
with absolutely no consideration for side effects and cases of spontaneous combustion.
Along the way, further preprocessor statements further mangle the code in happy-fun ways, which is why the GCC g++ and compatible compilers like Clang have the -E
flag to only run the preprocessor so that you can inspect the preprocessed barf that was going to be sent to the compiler prior to it violently exploding. The trauma suffered here is why I heartily agree with Mr. Stroustrup that the preprocessor is basically evil and should only be used for the most basic stuff like includes, very simple constants and selective compilation. Never try to be cute or smart with the preprocessor or whoever inherits your codebase will find you.
If you got your code’s architectural issues and header includes sorted out, you’ll find that C++’s linker is just as dumb as that of C. After being handed the compiled object files and looking at the needed symbols, it’ll waddle into the list of libraries, look at each one in order and happily ignore previously seen symbols if they’re needed later. You’ll suffer for this with tools like ldd and readelf as you try to determine whether you are just dense, the linker is dense or both are having buoyancy issues.
These points alone are pretty traumatic, but you learn to cope with them like you cope with a gaggle of definitely teething babies a few rows behind you on that transatlantic flight. The worst part is probably that neither C++11 nor subsequent standards have addressed either to any noticeable degree, with a shift from C-style compile units to Ada-like modules probably never going to happen.
The ‘modules at home‘ feature introduced with C++20 are effectively just limited C-style headers without the preprocessor baggage, without the dependency analysis and other features that make languages like Ada such a joy to build code with.
Non-Deterministic Initialization
Although C++ and C++11 in particular removes a lot of undefined behavior that C is infamous for, there are still many parts where expected behavior is effectively random or at least platform-specific. One such example is that of static
initialization, officially known as the Static initialization order fiasco. Essentially what it means is that you cannot count on a variable declared static
to be initialized during general initialization between different compile units.
This also affects the same compile units when you are initializing a static std::map
instance with data during initialization, as I learned the hard way during a project when I saw random segmentation faults on start-up related to the static data structure instance. The executive summary here is that you should not assume that anything has been implicitly initialized during application startup, and instead you should do explicit initialization for such static structures.
An example of this can be found in my NymphRPC project, in which I used this same solution to prevent initialization crashes. This involves explicitly creating the static map rather than praying that it gets created in time:
static map<UInt32, NymphMethod*> &methodsIdsStatic = NymphRemoteClient::methodsIds();
With the methodsIds()
function:
map<UInt32, NymphMethod*>& NymphRemoteClient::methodsIds() {
static map<UInt32, NymphMethod*>* methodsIdsStatic = new map<UInt32, NymphMethod*>();
return *methodsIdsStatic;
}
It are these kind of niggles along with the earlier covered build-time issues that tend to sap a lot of time during development until you learn to recognize them in advance along with fixes.
Fading Love
Don’t get me wrong, I still think that C++ is a good programming language at its core, it is just that it has those rough spots and sharp edges that you wish weren’t there. There is also the lack of improvements to some rather fundamental aspects in the STL, such as the unloved C++ string library. Compared to Ada standard library strings, the C++ STL string API is very barebones, with a lot of string manipulation requiring writing the same tedious code over and over as convenience functions are apparently on nobody’s wish list.
One good thing that C++11 brought to the STL was multi-tasking support, with threads, mutexes and so on finally natively available. It’s just a shame that its condition variables are plagued by spurious wake-ups and a more complicated syntax than necessary. This gets even worse with the Filesystem library that got added in C++17. Although it’s nice to have more than just basic file I/O in C++ by default, it is based on the library in Boost, which uses a coding style, type encapsulation obsession, and abuse of namespaces that you apparently either love or hate.
I personally have found the POCO C++ libraries to be infinitely easier to use, with a relatively easy to follow implementation. I even used the POCO libraries for the NPoco project, which adapts the code to microcontroller use and adds FreeRTOS support.
Finally, there are some core language changes that I fundamentally disagree with, such as the addition of type inference with the auto
keyword outside of templates, which is a weakly typed feature. As if it wasn’t bad enough to have the chaos of mixed explicit and implicit type casting, now we fully put our faith into the compiler, pray nobody updates code elsewhere that may cause explosions later on, and remove any type-related cues that could be useful to a developer reading the code.
But at least we got [url=https://en.cppreference.com/w/cpp/language/constexpr.html]constexpr[/url]
, which is probably incredibly useful to people who use C++ for academic dissertations rather than actual programming.
Hope For The Future
I’ll probably keep using C++ for the foreseeable future, while grumbling about all of ’em whippersnappers adding useless things that nobody was asking for. Since the general take on adding new features to C++ is that you need to do all the legwork yourself – like getting into the C++ working groups to promote your feature(s) – it’s very likely that few actually needed features will make it into new C++ standards, as those of us who are actually using the language are too busy doing things like writing production code in it, while simultaneously being completely disinterested in working group politics.
Fortunately there is excellent backward compatibility in C++, so those of us in the trenches can keep using the language any way we like along with all the patches we wrote to ease the pains. It’s just sad that there’s now such a split forming between C++ developers and C++ academics.
It’s one of the reasons why I have felt increasingly motivated over the past years to seek out other languages, with Ada being one of my favorites. Unlike C++, it doesn’t have the aforementioned build-time issues, and while its super-strong type system makes getting started with writing the business logic slower, it prevents so many issues later on, along with its universal runtime bounds checking. It’s not often that using a programming language makes me feel something approaching joy.
Giving up on a programming language with which you quite literally grew up is hard, but as in any relationship you have to be honest about any issues, no matter whether it’s you or the programming language. That said, maybe some relationship counseling will patch things up again in the future, with us developers are once again involved in the language’s development.
Deterrenza nucleare, cosa significa il nuovo accordo franco-britannico per l’Europa
@Notizie dall'Italia e dal mondo
La Northwood Declaration, siglata dal primo ministro britannico Keir Starmer e dal presidente francese Emmanuel Macron, segna un avanzamento significativo nella cooperazione nucleare bilaterale tra le due principali potenze militari europee. Un’intesa che, pur restando
Notizie dall'Italia e dal mondo reshared this.
Quando chi denuncia i crimini è il colpevole
@Giornalismo e disordine informativo
articolo21.org/2025/07/quando-…
Siamo al paradosso. Francesca Albanese, da relatrice Onu, denuncia le aziende che attivamente collaborano al genocidio di Israele a Gaza. Gli Stati Uniti, per bocca del Sottosegretario di Stato Marco Rubio, annunciano sanzioni nei suoi
Giornalismo e disordine informativo reshared this.
Hackaday Podcast Episode 328: Benchies, Beanies, and Back to the Future
This week, Hackaday’s Elliot Williams and Kristina Panos joined forces to bring you the latest news, mystery sound, and of course, a big bunch of hacks from the previous week.
In Hackaday news, the One Hertz Challenge ticks on. You have until Tuesday, August 19th to show us what you’ve got, so head over to Hackaday.IO and get started now! In other news, we’ve just wrapped the call for Supercon proposals, so you can probably expect to see tickets for sale fairly soon.
On What’s That Sound, Kristina actually got this one with some prodding. Congratulations to [Alex] who knew exactly what it was and wins a limited edition Hackaday Podcast t-shirt!
After that, it’s on to the hacks and such, beginning with a ridiculously fast Benchy. We take a look at a bunch of awesome 3D prints a PEZ blaster and a cowbell that rings true. Then we explore chisanbop, which is not actually K-Pop for toddlers, as well as a couple of clocks. Finally, we talk a bit about dithering before taking a look at the top tech of 1985 as shown in Back to the Future (1985).
Check out the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!
html5-player.libsyn.com/embed/…
Download in DRM-free MP3 and savor at your leisure.
Where to Follow Hackaday Podcast
Places to follow Hackaday podcasts:
Episode 328 Show Notes:
News:
What’s that Sound?
- Congratulations to [Alex] for knowing it was the Scientist NPC from Half-Life.
Interesting Hacks of the Week:
- Managing Temperatures For Ultrafast Benchy Printing
- When Is A Synth A Woodwind? When It’s A Pneumatone
- Budget Brilliance: DHO800 Function Generator
- I Gotta Print More Cowbell
- Kids Vs Computers: Chisanbop Remembered
- Pez Blaster Shoots Candy Dangerously Fast
Quick Hacks:
- Elliot’s Picks:
- IR Point And Shoot Has A Raspberry Heart In A 35mm Body
- Turning PET Plastic Into Paracetamol With This One Bacterial Trick
- Five-minute(ish) Beanie Is The Fastest We’ve Seen Yet
- Kristina’s Picks:
- CIS-4 Is A Monkish Clock Inside A Ceiling Lamp
- 3D Printer Turbo-Charges A Vintage Vehicle
- Shadow Clock Shows The Time On The Wall
Can’t-Miss Articles:
- Dithering With Quantization To Smooth Things Over
- Back To The Future, 40 Years Old, Looks Like The Past
hackaday.com/2025/07/11/hackad…
Vulnerabilità critiche nella tecnologia eSIM: un attacco può compromettere la rete di qualsiasi operatore
Il laboratorio di ricerca Security Explorations ha presentatoi risultati di mesi di lavoro volti a svelarevulnerabilità nel cuore della tecnologia eSIM. L’attenzione si è concentrata sulla scheda eUICC di Kigen, certificata secondo gli standard GSMA e basata su un’implementazione proprietaria della macchina virtuale Java Card.
Nonostante i meccanismi di sicurezza multistrato dichiarati, tra cui la certificazione EAL4+, l’isolamento della memoria integrato e la resistenza agli attacchi di terze parti, il prodotto era suscettibile a un attacco riuscito che non solo consentiva il controllo dell’eSIM, ma dimostrava anche un crollo completo del modello di sicurezza affidabile nell’ecosistema eUICC.
La ricerca ha dimostrato che le vulnerabilità segnalate da Security Explorations nel 2019, ma all’epoca ignorate, non sono solo reali, ma anche potenzialmente devastanti. All’epoca, Oracle definì questi problemi “preoccupanti” e si rifiutò di riconoscerne la criticità. Oggi è chiaro: i bug ignorati nell’implementazione del bytecode di Java Card, come il type confusion tra oggetti e array, non sono stati risolti né nell’implementazione di riferimento di Oracle né in prodotti di terze parti come Kigen eUICC.
Security Explorations ha compromesso con successo una scheda eUICC Kigen, incluso il profilo di test TS.48, simulando l’installazione di un’applicazione Java dannosa sul canale SMS-PP. L’attacco ha estratto la chiave privata ECC che identifica la scheda GSMA, consentendo all’attaccante di scaricare e decriptare senza problemi i profili eSIM di diversi operatori di telefonia mobile, tra cui AT&T, Vodafone, Orange, T-Mobile e altri. Questi profili contenevano non solo impostazioni di rete, ma anche chiavi OTA sensibili, ID abbonato, applicazioni Java e parametri di servizio. In alcuni casi, le applicazioni estratte potevano essere modificate e reinstallate senza essere rilevate dall’operatore.
Uno dei test più significativi è stato un attacco alla rete Orange. I ricercatori hanno dimostrato la possibilità di clonazione di eSIM: un profilo duplicato installato su un altro dispositivo ha permesso l’intercettazione di chiamate e SMS in arrivo. Mentre il dispositivo malevolo era acceso, l’utente legittimo non ha ricevuto alcun messaggio, che la rete ha considerato recapitato. Tale comportamento minaccia non solo la privacy, ma anche l’affidabilità dei servizi di autenticazione a due fattori utilizzati da banche, servizi postali e altri sistemi critici.
Kigen ha riconosciuto la vulnerabilità e ha iniziato a collaborare con i ricercatori. L’azienda ha pagato una ricompensa di 30.000 dollari per un rapporto tecnico dettagliato e ha accettato un periodo di riservatezza di 90 giorni prima della pubblicazione. In seguito all’analisi, sono stati effettuati tentativi di eliminare la vulnerabilità implementando il controllo dei tipi in tutti i bytecode di Java Card. Tuttavia, Security Explorations ha osservato che il tentativo era formale e inefficace: il sistema controllava solo la parte superiore dello stack senza tracciare il flusso di controllo, il che lasciava decine di scenari vulnerabili. In altre parole, il “controllo universale” introdotto si è rivelato non funzionale, lasciando oltre 100 potenziali punti per gli attacchi.
In risposta alle vulnerabilità, la GSMA ha rivisto la specifica TS.48 per disabilitare la possibilità di installare applicazioni Java nei profili di test. Ha inoltre pubblicato un documento speciale con raccomandazioni per gli operatori del settore, che sottolinea la necessità di controllare le chiavi di gestione remota delle applicazioni. Tuttavia, i ricercatori ritengono che questi passaggi siano poco convincenti e non risolvano la radice del problema: una debolezza architetturale nella macchina virtuale Java Card, su cui è basato l’intero ecosistema eSIM.
È interessante notare che Kigen, nonostante la sua dichiarata indipendenza da Oracle, ha creato una propria implementazione della macchina virtuale, che tuttavia riproduceva gli stessi errori concettuali riscontrati nella Java Card Reference Implementation di Oracle. Allo stesso tempo, l’azienda ha dichiarato di non essere a conoscenza delle vulnerabilità segnalate da Security Explorations nel 2019. Tuttavia, secondo i ricercatori, un tentativo di contattare Kigen è stato effettuato già a novembre 2020 tramite un modulo di feedback dopo il webinar congiunto dell’azienda con Orange.
Uno dei risultati più allarmanti è stato che i server di Remote SIM Provisioning, inclusi quelli di IDEMIA e Thales, non riconoscevano i certificati eUICC compromessi. Ciò indica una mancanza sistemica di convalida e monitoraggio, che consente attacchi su larga scala senza essere rilevati. Inoltre, l’analisi ha mostrato che molte eSIM non implementano la verifica completa del bytecode Java Card, nonostante le raccomandazioni in tal senso contenute nella specifica SGP.25.
Il set di strumenti utilizzato dagli esperti ha permesso non solo di hackerare le schede ed estrarne il contenuto, ma anche di verificare la presenza di problemi di sicurezza tipici delle Java Card. È in grado di controllare automaticamente memoria, stack, variabili locali ed eseguire analisi del bytecode. Questi strumenti sono stati utilizzati sia per l’analisi eUICC di Kigen che per test su reti reali.
Gli autori dello studio sottolineano che il loro lavoro è stato svolto a proprie spese, senza finanziamenti esterni e, con un adeguato supporto, sarebbero pronti a fornire i risultati gratuitamente a tutti i membri GSMA. L’obiettivo dello studio è dimostrare il valore dell’analisi di sicurezza indipendente e l’importanza di prestare attenzione a dettagli sistematicamente ignorati dal settore per molti anni.
L'articolo Vulnerabilità critiche nella tecnologia eSIM: un attacco può compromettere la rete di qualsiasi operatore proviene da il blog della sicurezza informatica.
PlayStation Case Mod Hides Gamer Shame
[Zac] of Zac Builds has a shameful secret: he, a fully grown man, plays video games. Shocking, we know, but such people do exist in our society. After being rightfully laughed out of the family living room, [Zac] relocated his indecent activities to his office, but he knew that was not enough. Someone might enter, might see his secret shame: his PlayStation 5. He decided the only solution was to tear the game console apart, and rebuild it inside of his desk.
All sarcasm aside, it’s hard to argue that [Zac]’s handmade wooden desk doesn’t look better than the stock PS5, even if you’re not one of the people who disliked Sony’s styling this generation. The desk also contains his PC, a project we seem to have somehow missed; the two machines live in adjacent drawers.
While aesthetics are a big motivator behind this case mod, [Zac] also takes the time to improve on Sony’s work: the noisy stock fan is replaced by three silent-running Noctua case fans; the easy-to-confuse power and eject buttons are relocated and differentiated; and the Blu-ray drive gets a proper affordance so he’ll never miss the slot again. An NVMe SSD finishes off the upgrades.
Aside from the woodworking to create the drawer, this project relies mostly on 3D printing for custom mounts and baffles to hold the PS5’s parts and direct airflow where it needs to go. This was made much, much easier for [Zac] via the use of a 3D scanner. If you haven’t used one, this project demonstrates how handy they can be — and also some of the limitations, as the structured-light device (a Creality Raptor) had trouble with the shinier parts of the build. Dealing with that trouble still saved [Zac] a lot of time and effort compared to measuring everything.
While we missed [Zac]’s desk build, we’ve seen his work before: everything from a modernized iPod to woodensound diffusion panels.
youtube.com/embed/aSUcNWWdg8Y?…
Milioni di veicoli a rischio di attacchi RCE tramite il bug Bluetooth PerfektBlue
Quattro vulnerabilità, denominate PerfektBlue, interessano lo stack Bluetooth BlueSDK di OpenSynergy. Le vulnerabilità consentono l’esecuzione remota di codice arbitrario e potrebbero contribuire all’accesso a componenti critici nei veicoli di produttori come Mercedes-Benz AG, Volkswagen e Škoda. OpenSynergy ha confermato i problemi a giugno 2024 e ha rilasciato le patch a settembre. Tuttavia, molte case automobilistiche non hanno ancora implementato gli aggiornamenti nel loro firmware.
Le vulnerabilità sono state scoperte dagli specialisti di PCA Cyber Security, un’azienda specializzata in sicurezza automobilistica. È importante sottolineare che l’azienda partecipa regolarmente alla competizione Pwn2Own Automotive e ha scoperto più di 50 bug in diversi sistemi automobilistici dall’anno scorso. Secondo i ricercatori, i problemi di PerfektBlue riguardano “milioni di dispositivi nel settore automobilistico e non solo”. Tuttavia, gli esperti hanno studiato il binario compilato di BlueSDK, poiché semplicemente non disponevano del codice sorgente.
Le vulnerabilità variano in gravità e possono consentire l’accesso ai componenti interni di diversi veicoli tramite il sistema di infotainment.
- CVE-2024-45434 – utilizzo dopo la liberazione nel servizio AVRCP responsabile della gestione dei profili multimediali tramite Bluetooth;
- CVE-2024-45431 – Validazione errata dell’identificativo del canale CID in L2CAP (Logical Link Control and Adaptation Protocol);
- CVE-2024-45433 – Errore di terminazione della funzione del protocollo RFCOMM (Radio Frequency Communication);
- CVE-2024-45432 – Parametro non valido passato durante la chiamata della funzione RFCOMM.
Sebbene i ricercatori non rendano noti tutti i dettagli tecnici, scrivono che un aggressore connesso a un dispositivo vulnerabile ha la capacità di manipolare il sistema, aumentare i privilegi e passare ad altri componenti. PerfektBlue è un attacco RCE a 1 clic, perché l’attaccante deve solo convincere l’utente ad accettare la richiesta di associazione con il proprio dispositivo. Alcune case automobilistiche configurano i loro sistemi in modo tale che l’associazione sia possibile anche senza conferma.
PCA Cyber Security ha dimostrato che PerfektBlue funziona con le unità principali di Volkswagen ID.4 (sistema ICSA3), Mercedes-Benz (NTG6) e Skoda Superb (MIB3).
Guscio posteriore per Mercedes-Benz NTG6
Si sottolinea che dopo l’esecuzione di codice remoto nel contesto del sistema di infotainment dell’auto, un aggressore può tracciare le coordinate GPS, origliare le conversazioni in auto, accedere ai contatti telefonici del proprietario e anche eseguire movimenti laterali e raggiungere sottosistemi critici dell’auto. BlueSDK di OpenSynergy è ampiamente utilizzato al di fuori del settore automobilistico, ma è difficile individuare chi altro lo utilizzi nei propri prodotti (a causa della personalizzazione, del rebranding e della mancanza di trasparenza).
I ricercatori hanno informato Volkswagen, Mercedes-Benz e Škoda dei problemi riscontrati, concedendo loro tempo sufficiente per implementare le soluzioni. Tuttavia, gli esperti non hanno mai ricevuto risposta dalle case automobilistiche. I rappresentanti della Mercedes-Benz non hanno risposto alle richieste dei giornalisti e la Volkswagen ha affermato di aver avviato un’indagine subito dopo aver ricevuto informazioni sulle vulnerabilità. “L’indagine ha dimostrato che in determinate condizioni è possibile connettersi al sistema di infotainment del veicolo tramite Bluetooth senza autorizzazione”, ha affermato la Volkswagen.
Ma l’azienda ha sottolineato che l’exploit funzionerà solo se saranno soddisfatte alcune condizioni:
- l’aggressore si trova entro un raggio di 5-7 metri dall’auto;
- il quadro dell’auto è acceso;
- il sistema di infotainment è in modalità di associazione (l’utente ha avviato manualmente l’aggiunta del dispositivo);
- l’utente conferma sullo schermo la connessione di un dispositivo Bluetooth esterno.
Anche se queste condizioni sono soddisfatte, durante l’attacco l’aggressore deve rimanere entro un raggio di 5-7 metri dall’auto per mantenere l’accesso. L’azienda ha fatto notare separatamente che, anche in caso di compromissione riuscita, un hacker non sarà in grado di compromettere le funzioni critiche dell’auto, tra cui lo sterzo, i sistemi di assistenza alla guida, il funzionamento del motore e l’impianto frenante (che sono controllati da un’unità separata con meccanismi di protezione propri).
L'articolo Milioni di veicoli a rischio di attacchi RCE tramite il bug Bluetooth PerfektBlue proviene da il blog della sicurezza informatica.
Sviluppatori nel mirino di ZuRu: il malware si nasconde nelle app legittime per macOS
@Informatica (Italy e non Italy 😁)
I ricercatori di SentinelOne hanno dichiarato di aver osservato la nuova variante del malware ZuRu mascherata da client SSH multipiattaforma e strumento di gestione server Termius alla fine di maggio scorso. Ecco cos'è ZuRu e perché è
Informatica (Italy e non Italy 😁) reshared this.
Arriva il battesimo del fuoco (simulato) per i carri M1A2 Abrams di Taiwan
@Notizie dall'Italia e dal mondo
I carri americani M1A2 Abrams hanno fatto la loro comparsa pubblica durante le esercitazioni militari annuali, mettendo in scena manovre e tiri a fuoco vivo nel fango del campo di addestramento di Hsinchu. Il presidente taiwanese Lai Ching-te, che ha assistito alle manovre
Notizie dall'Italia e dal mondo reshared this.
Supply chain: più sicurezza oggi, meno scuse per domani
@Informatica (Italy e non Italy 😁)
Mettere in sicurezza la supply chain è un passaggio indispensabile per mantenere una corretta postura di sicurezza cyber, altrimenti le vulnerabilità contribuiranno a realizzare le minacce emergenti le cui conseguenze negative si riverberano sull'intera filiera. A prescindere dal rientrare
Informatica (Italy e non Italy 😁) reshared this.
Il Green Deal è vivo e vegeto: una pessima notizia per l’industria europea
@Politica interna, europea e internazionale
Lo scorso maggio, la Commissione europea ha tagliato le stime di crescita per il 2025 al +0,9% per l’eurozona e al +1,1% per l’Europa a 27 membri. Si conferma, così, uno scenario di perdurante crescita flebile, prossima alla stagnazione. Parimenti, l’Eurostat
Politica interna, europea e internazionale reshared this.
Meteo Valle d'Aosta del 11/07/2025 ore 14:00
Meteo Valle d'Aosta. Le ultime notizie della regione Valle d'Aosta aggiornate in tempo reale. - Edizione del 11/07/2025 - 14:00
Digitale Gemeingüter: EU unterstützt Initiative für Unabhängigkeit von Big Tech
TGR Valle d'Aosta del 11/07/2025 ore 14:00
TGR Valle d'Aosta. Le ultime notizie della regione Valle d'Aosta aggiornate in tempo reale. - Edizione del 11/07/2025 - 14:00
This Week in Security: Bitchat, CitrixBleed Part 2, Opossum, and TSAs
@jack is back with a weekend project. Yes, that Jack. [Jack Dorsey] spent last weekend learning about Bluetooth meshing, and built Bitchat, a BLE mesh encrypted messaging application. It uses X25519 for key exchange, and AES-GCM for message encryption. [Alex Radocea] took a look at the current state of the project, suspects it was vibe coded, and points out a glaring problem with the cryptography.
So let’s take a quick look at the authentication and encryption layer of Bitchat. The whitepaper is useful, but still leaves out some of the important details, like how the identity key is tied to the encryption keys. The problem here is that it isn’t.
Bitchat has, by necessity, a trust-on-first-use authentication model. There is intentionally no authentication central authority to verify the keys of any given user, and the application hasn’t yet added an out-of-band authentication method, like scanning QR codes. Instead, it has a favorites system, where the user can mark a remote user as a favorite, and the app saves those keys forever. There isn’t necessarily anything wrong with this approach, especially if users understand the limitations.
The other quirk is that Bitchat uses ephemeral keys for each chat session, in an effort to have some forward secrecy. In modern protocols, it’s desirable to have some protection against a single compromised encryption key exposing all the messages in the chain. It appears that Bitchat accomplishes this by generating dedicated encryption keys for each new chat session. But those ephemeral keys aren’t properly verified. In fact, they aren’t verified by a user’s identity key at all!
The attack then, is to send a private message to another user, present the public key of whoever your’re trying to impersonate, and include new ephemeral encryption keys. Even if your target has this remote user marked as a favorite, the new encryption keys are trusted. So the victim thinks this is a conversation with a trusted person, and it’s actually a conversation with an attacker. Not great.
Now when you read the write-up, you’ll notice it ends with [Alex] opening an issue on the Bitchat GitHub repository, asking how to do security reports. The issue was closed without comment, and that’s about the end of the write-up. It is worth pointing out that the issue has been re-opened, and updated with some guidance on how to report flaws.
Post-Quantum Scanning
There’s a deadline coming. Depending on where you land on the quantum computing skepticism scale, it’s either the end of cryptography as we know it, or a pipe dream that’s always going to be about 10 years away. My suspicion happens to be that keeping qubits in sync is a hard problem in much the same way that factoring large numbers is a hard problem. But I don’t recommend basing your cryptography on that hunch.
Governments around the world are less skeptical of the quantum computer future, and have set specific deadlines to migrate away from quantum-vulnerable algorithms. The issue here is that finding all those uses of “vulnerable” algorithms is quite the challenge. TLS, SSH, and many more protocols support a wide range of cryptography schemes, and only a few are considered Post Quantum Cryptography (PQC).
Anvil Secure has seen this issue, and released an Open Source tool to help. Pqcscan is a simple idea: Scan a list of targets and collect their supported cryptography via an SSH and TLS scan. At the end, the tool generates a simple report of how many of the endpoints support PQC. This sort of compliance is usually no fun, but having some decent tools certainly helps.
Citrixbleed 2
Citrix devices have a problem. Again. The nickname for this particular issue is CitrixBleed 2, which hearkens all the way back to Heartbleed. The “bleed” here refers to an attack that leaks little bits of memory to attackers. We know that it’s related to an endpoint called doAuthentication.do
.
The folks at Horizon3 have a bit more detail, and it’s a memory management issue, where structures are left pointing to arbitrary memory locations. The important thing is that an incomplete login message is received, the code leaks 127 bytes of memory at a time.
What makes this vulnerability particularly bad is that Citrix didn’t share any signs of attempted exploitation. Researchers have evidence of this vulnerability being used in the wild back to July 1st. That’s particularly a problem because the memory leak is capable of revealing session keys, allowing for further exploitation. Amazingly, in an email with Ars Technica, Citrix still refused to admit that the flaw was being used in the wild.
Opossum
We have a new TLS attack, and it’s a really interesting approach. The Opossum Attack is a Man in the Middle (MitM) attack that takes advantage of of opportunistic TLS. This TLS upgrade approach isn’t widely seen outside of something like email protocols, where the StartTLS command is used. The important point here is that these connections allow a connection to be initiated using the plaintext protocol, and then upgrade to a TLS protocol.
The Opossum attack happens when an attacker in a MitM position intercepts a new TCP connection bound for a TLS-only port. The attacker then initiates a plaintext connection to that remote resource, using the opportunistic port. The attacker can then issue the command to start a TLS upgrade, and like an old-time telephone operator, patch the victim through to the opportunistic port with the session already in progress.
The good news is that this attack doesn’t result in encryption compromise. The basic guarantees of TLS remain. The problem is that there is now a mismatch between exactly how the server and client expect the connection to behave. There is also some opportunity for the attacker to poison that connection before the TLS upgrade takes place.
TSAs
AMD has announced yet another new Transient Execution attack, the Transient Scheduler Attack. The AMD PDF has a bit of information about this new approach. The newly discovered leak primitive is the timing of CPU instructions, as instruction load timings may be affected by speculative execution.
The mitigation for this attack is similar to others. AMD recommends running the VERW instruction when transitioning between Kernel and user code. The information leakage is not between threads, and so far appears to be inaccessible from within a web browser, cutting down the real-world exploitability of this new speculative execution attack significantly.
Bits and Bytes
The majority of McDonald’s franchises uses the McHire platform for hiring employees, because of course it’s called “McHire”. This platform uses AI to help applicants work through the application process, but the issues found weren’t prompt injection or anything to do with AI. In this case, it was a simple default username and password 123456:123456
that gave access to a test instance of the platform. No real personal data, but plenty of clues to how the system worked: an accessible API used a simple incrementing ID, and no authentication to protect data. So step backwards through all 64 million applications, and all that entered data was available to peruse. Yikes! The test credentials were pulled less than two hours after disclosure, which is an impressive turn-around to fix.
When you’ve been hit by a ransomware attack, it may seem like the criminals on the other side are untouchable. But once again, international law enforcement have made arrests of high-profile ransomeware gangs. This time it’s members of Scattered Spider that were arrested in the UK.
And finally, the MCP protocol is once again making security news. As quickly as the world of AI is changing, it’s not terribly surprising that bugs and vulnerabilities are being discovered in this very new code. This time it’s mcp-remote, which can be coerced to run arbitrary code when connecting to a malicious MCP server. Connect to server, pop calc.exe. Done.
Wissenschaftlicher Dienst des EU-Parlaments: KI in Asylverfahren birgt erhebliche Risiken
Milioni di auto furono in pericolo per colpa del Bluetooth: PerfektBlue
I ricercatori di PCA Cyber Security scoprirono vulnerabilità critiche nello stack Bluetooth BlueSDK che avrebbero potuto trasformare milioni di auto in giocattoli telecomandati.
Le patch sono state create e distribuite ai clienti a partire da settembre 2024, ma PCA Cyber Security ha aspettato fino ad ora a divulgarle per assicurarsi che le correzioni fossero ampiamente diffuse.
Le falle permettevano l'esecuzione remota di codice bypassando le sicurezze: una volta infiltrati nel sistema di infotainment, gli hacker potevano tracciare la posizione, registrare audio, rubare la rubrica e potenzialmente controllare sterzo, clacson e tergicristalli.
L'attacco PerfektBlue richiedeva che l'hacker si trovasse nel raggio Bluetooth e accoppiasse il laptop con l'infotainment target, necessitando al massimo 1 click dall'utente per essere sfruttato. BlueSDK è presente in milioni di dispositivi e l'attacco è stato testato su Mercedes-Benz, Skoda e Volkswagen.
Informatica (Italy e non Italy 😁) reshared this.
La nuova identità digitale in Cina: una svolta radicale nella sorveglianza
@Informatica (Italy e non Italy 😁)
Con oltre 1,1 miliardi di utenti online, la Cina intende ora accentrare il controllo sulla verifica delle identità digitali, finora affidata ai grandi attori del web, per contrastare le frodi. Cosa comporta il passaggio della gestione all’apparato statale, sia
reshared this
Fedinews.it ha cambiato veste e ora include anche le categorie di citiverse.it
Grazie a @Ska de @Le Alternative abbiamo rinnovato la veste grafica di #fedinews che oggi può integrare non più soltanto i feed dell'istanza #Lemmy feddit.it ma anche i contributi pubblicati su citiverse.it e potenzialmente di qualsiasi altra istanza del #Forumverso (Lemmy, Piefed, Mbin, NodeBB, etc)
like this
reshared this
This Homebrew CPU Got Its Start in the 1990s
[Sylvain Fortin] recently wrote in to tell us about his Homebrew CPU Project, and the story behind this one is truly remarkable.
He began working on this toy CPU back in 1994, over thirty years ago. After learning about the 74LS181 ALU in college he decided to build his own CPU. He made considerable progress back in the 90s and then shelved the project until the pandemic hit when he picked it back up again and started adding some new features. A little later on, a board house approached him with an offer to cover the production cost if he’d like to redo the wire-wrapped project on a PCB. The resulting KiCad files are in the GitHub repository for anyone who wants to play along at home.An early prototype on breadboard
The ALU on [Sylvain]’s CPU is a 1-bit ALU which he describes as essentially a selectable gate: OR, XOR, AND, NOT. It requires more clock steps to compute something like an addition, but, he tells us, it’s much more challenging and interesting to manage at the microcode level. On his project page you will find various support software written in C#, such as an op-code assembler and a microcode assembler, among other things.
For debugging [Sylvain] started out with das blinkin LEDs but found them too limiting in short order. He was able to upgrade to a 136 channel Agilent 1670G Benchtop Logic Analyzer which he was fortunate to score for cheap on eBay. You can tell this thing is old from the floppy drive on the front panel but it is rocking 136 channels which is seriously OP.
The PCB version is a great improvement but we were interested in the initial wire-wrapped version too. We asked [Sylvain] for photos of the wire-wrapping and he obliged. There’s just something awesome about a wire-wrapped project, don’t you think? If you’re interested in wire-wrapping check out Wire Wrap 101.
MA reshared this.
Il Ministero degli Esteri italiano preso di mira in una campagna di spionaggio da Gruppo DoNot APT
Secondo Trellix, il gruppo DoNot APT ha recentemente condotto una campagna di spionaggio informatico in più fasi, prendendo di mira il Ministero degli Affari Esteri italiano. Il gruppo, attribuito da diverse società di intelligence sulle minacce informatiche all’India, si è spacciato per funzionari della difesa europei, menzionando la loro visita in Bangladesh, e ha indotto le sue vittime a cliccare su un link dannoso di Google Drive.
DoNot APT, noto anche come APT-C-35, Mint Tempest, Origami Elephant, SECTOR02 e Viceroy Tiger, è attivo almeno dal 2016. Il gruppo si concentra tradizionalmente su campagne di spionaggio informatico con interessi geopolitici nell’Asia meridionale. Le sue operazioni sono caratterizzate da sorveglianza persistente, esfiltrazione di dati e accesso a lungo termine. Il gruppo è noto per l’utilizzo dimalware Windows personalizzati, tra cui backdoor come YTY e GEdit, spesso diffusi tramite e-mail di spear-phishing o documenti dannosi.
L’obiettivo finale dell’attacco era quello di stabilire un punto d’appoggio nell’infrastruttura del bersaglio e sottrarre informazioni sensibili. L’analisi del payload ha rivelato la sua associazione con il malware LoptikMod, uno strumento utilizzato esclusivamente dal gruppo APT DoNot dal 2018.
“Sebbene storicamente focalizzato sull’Asia meridionale, questo incidente che ha preso di mira le ambasciate dell’Asia meridionale in Europa indica una chiara espansione dei loro interessi verso le comunicazioni diplomatiche e l’intelligence europea”, hanno affermato i ricercatori di Tellix in un rapporto dell’8 luglio .
Catena di infezione (Fonte Trellix)
L’ultimo attacco DoNot APT identificato da Trellix è iniziato con un’email di spear-phishing proveniente da un indirizzo Gmail, int.dte.afd.1@gmail[.]com, che impersonava corrispondenza diplomatica ufficiale. Il bersaglio era un ente governativo italiano operante nel settore diplomatico. L’e-mail ha fatto leva su temi diplomatici legati al coordinamento degli addetti alla difesa tra Italia e Bangladesh.
Sebbene il contenuto esatto del messaggio non sia stato raccolto nei risultati, l’oggetto “Visita dell’addetto alla Difesa italiano a Dhaka, Bangladesh” suggerisce un’esca studiata per apparire come legittima corrispondenza diplomatica, che ragionevolmente conterrebbe allegati o link a documenti. L’e-mail conteneva un collegamento a Google Drive che indirizzava il destinatario a un archivio RAR dannoso denominato SyClrLtr.rar.
“Il recente attacco a un ministero degli esteri europeo evidenzia la portata crescente di DoNot APT e il suo persistente interesse nel raccogliere informazioni sensibili, sottolineando la necessità di una maggiore vigilanza e di solide misure di sicurezza informatica”, ha concluso il rapporto Trellix.
L'articolo Il Ministero degli Esteri italiano preso di mira in una campagna di spionaggio da Gruppo DoNot APT proviene da il blog della sicurezza informatica.
Rischi invisibili: le estensioni del browser
@Privacy Pride
Il post completo di Christian Bernieri è sul suo blog: garantepiracy.it/blog/stension…
Un caso di cronaca, una tragedia per milioni di persone, una nuova e scioccante consapevolezza per tutti: il web fa schifo, è una giungla e non ci si può navigare pensando di essere nel giardino dell'eden. Vero, le questioni tecniche sono ostiche, chiunque viene
Privacy Pride reshared this.
Attacco TapTrap: come farti cliccare cose che nemmeno tua madre approverebbe
TapTrap sfrutta le animazioni dell’interfaccia utente per aggirare il sistema di autorizzazioni di Android, consentendo di accedere a dati sensibili o di indurre l’utente a compiere azioni distruttive, come il ripristino delle impostazioni di fabbrica del dispositivo. L’attacco TapTrap è un tipo di tapjacking, l’equivalente mobile del clickjacking. In questi attacchi, l’aggressore induce l’utente a cliccare su un elemento apparentemente innocuo, ma che in realtà causa un’azione indesiderata in background.
Tuttavia, a differenza del tapjacking tradizionale con overlay, TapTrap può essere utilizzato anche da app con zero permessi, consentendo loro di avviare attività trasparenti apparentemente innocue su quelle dannose. Inoltre, questo metodo funziona anche su Android 15 e 16.
TapTrap è stato sviluppato da un team dell’Università Tecnica di Vienna (TU Wien) e dell’Università di Bayreuth. La nuova tecnica sarà presentata il mese prossimo al Simposio sulla Sicurezza USENIX. Tuttavia, i ricercatori hanno già pubblicato un white paper che descrive l’attacco e creato un sito web che ne illustra i dettagli principali.
TapTrap sfrutta la gestione delle transizioni tra le attività da parte di Android mediante animazioni personalizzate per creare un’incoerenza visiva tra ciò che l’utente vede e ciò che accade realmente sullo schermo del dispositivo. Un’app dannosa installata sul dispositivo di destinazione avvia una schermata di sistema con informazioni sensibili (ad esempio una richiesta di autorizzazione o impostazioni di sistema) per conto di un’altra app chiamando startActivity() ed eseguendo un’animazione personalizzata con quasi totale trasparenza.
“La chiave di TapTrap è l’uso di animazioni che rendono l’attività target praticamente invisibile”, spiegano i ricercatori. “Questo risultato si ottiene tramite un’animazione personalizzata con i valori alfa iniziale e finale impostati su valori molto bassi, come 0,01. Questo rende l’attività dannosa o rischiosa quasi completamente trasparente. Inoltre, un’animazione zoom può essere utilizzata per ingrandire un elemento specifico dell’interfaccia (come un pulsante di autorizzazione) e visualizzarlo a schermo intero, aumentando la probabilità che l’utente lo tocchi.”
Sebbene il prompt avviato accetti tutti i tocchi, l’utente vede solo l’interfaccia principale dell’applicazione, sopra la quale si trova un’attività praticamente trasparente con la quale interagisce realmente. Credendo di avere a che fare con un’applicazione innocua, l’utente potrebbe cliccare su determinate aree dello schermo, senza rendersi conto che sta premendo pulsanti come “Consenti” o “Autorizza” in una finestra quasi invisibile.
Un video pubblicato dai ricercatori dimostra come un’app di gioco può utilizzare TapTrap per accedere alla telecamera tramite il browser Chrome per conto di un sito web. Per scoprire se TapTrap funzionasse con le app del Google Play Store, l’app store ufficiale di Android, i ricercatori hanno analizzato quasi 100.000 app. È emerso che il 76% di esse era vulnerabile perché conteneva attività che soddisfacevano le seguenti condizioni:
- possono essere avviati da un’altra applicazione;
- vengono eseguiti nello stesso task dell’applicazione chiamante;
- non sovrascrivere l’animazione di transizione;
- iniziare a rispondere alle azioni dell’utente prima che l’animazione sia completata.
Secondo i ricercatori, nell’ultima versione di Android le animazioni sono abilitate di default. A meno che l’utente non le disattivi tramite le impostazioni sviluppatore o le opzioni di accessibilità, il dispositivo rimane vulnerabile a TapTrap.
Sebbene l’attacco fosse stato inizialmente creato per Android 15 (la versione corrente all’epoca), in seguito, con il rilascio di Android 16, gli esperti hanno testato TapTrap anche su di esso. Il team ha quindi testato TapTrap su Google Pixel 8a con Android 16, e il problema si è riscontrato anche nell’ultima versione del sistema operativo. I rappresentanti di Google hanno dichiarato ai media che TapTrap verrà risolto in un futuro aggiornamento.
L'articolo Attacco TapTrap: come farti cliccare cose che nemmeno tua madre approverebbe proviene da il blog della sicurezza informatica.