Computerbeveiliging - Hoe je bad guys buiten de deur houdt

iOS QR-scanner: DHZ!

09-02-2024, 22:24 door Erik van Straten, 19 reacties
Laatst bijgewerkt: 09-02-2024, 23:21
Maak zelf een iOS/iPadOS QR-/barcodescanner!

Inleiding
In [1] schreef security.nl gisteren dat de Britse overheid waarschuwt: "installeer geen aparte app voor scannen qr-codes" - omdat je ronduid malafide apps, of apps die jou "slechts" bespioneren, uit de Apple App Store kunt downloaden.

[1] https://www.security.nl/posting/828748/Britse+overheid%3A+installeer+geen+aparte+app+voor+scannen+qr-codes

De EU verplicht Apple binnenkort om ook downloads uit app stores van derde partijen toe te staan: ik verwacht dat dit er vooral toe zal leiden dat meer iOS/iPadOS gebruikers foute apps (trojaanse paarden) downloaden, installeren en gaan gebruiken (de Apple App store is allesbehalve perfect, maar het kan nog veel erger).

Hieronder beschrijf ik, hoe je met "boordmiddelen" op iPhones en iPads, zelf een barcode/QR-code-scanner kunt maken - die, zonder meteen een andere app te openen, laat zien welke tekst er achter zo'n -voor mensen onleesbare- code schuilgaat.

Helaas heb ik, voor Android, geen vergelijkbaar alternatief gevonden zoals hieronder beschreven voor Apple apparaten. Op mijn Android smartphone gebruik ik overigens de (open source) "Privacy Friendly QR Scanner" app gemaakt door mensen van de universiteit van Karlsruhe in samenwerking met SECUSO: [2].

[2] https://play.google.com/store/apps/details?id=com.secuso.privacyFriendlyCodeScanner

DISCLAIMER
Deze introductie in Apple's "Opdrachten" is geen volledige handleiding, maar bedoeld om je op weg te helpen. Hoewel ik dit naar eer en geweten schrijf, garandeer ik niet de juistheid daarvan; veel is gebaseerd op eigen onderzoek en ervaringen, waarbij ik essentiële informatie over het hoofd kan hebben gezien.

Daarbij, zelf dingen uitzoeken is vaak leerzamer dan lappen tekst lezen, dus deze inleiding (deels) overslaan en zelf experimenteren is natuurlijk ook prima. Desgewenst kun je mij verderop in reacties vragen stellen, die ik zal proberen te beantwoorden - mits je eerst serieus hebt geprobeerd om er zelf uit te komen - en niet naar iets vraagt dat ik reeds ergens op deze pagina geschreven heb.

De "Opdrachten" app
Met iOS en iPadOS wordt een redelijk handige app meegeleverd, genaamd "Opdrachten" (in het Engels: "Shortcuts") waarmee je, grafisch, zelf een soort apps kunt "programmeren". Het leuke is dat je daar beslist geen (ervaren) programmeur voor hoeft te zijn, en ook hoef je geen aanvullende software te installeren.

Nb. Als ik mij niet vergis is zoiets ook beschikbaar op MacOS, maar de laatste jaren heb ik niets met MacOS gedaan. Als ik hieronder "iOS" of "iPhone" schrijf, bedoel ik daar ook iPadOS en iPad mee, en mogelijk geldt het e.e.a. dus ook voor MacOS.

Verrassend vond ik de zeer grote bibliotheek, de iOS "API" (Application Programming Interface), waar je standaard gebruik van kunt maken.

Helaas is de "Opdrachten" app, voor wat ingewikkelder zelfgeschreven "Opdrachten", niet al te gebruiksvriendelijk. Bovendien is hulp moeilijk te vinden (in de app zelf, maar ook op internet zoeken hielp mij vaak niet) - vooral niet als jouw iPhone op de Nederlandse taal staat ingesteld en je zoekt naar termen in die taal. Overigens kun je in een iPhone eenvoudig ondersteuning voor meerdere talen aanzetten (ik kan eenvoudig kiezen tussen Engels en Nederlands).

Nb. als jouw toestel op Nederlands is ingesteld, hebben ook alle bibliotheekfuncties Nederlandstalige namen. Als je jouw toestel omschakelt naar Engels, veranderen ook de functienamen in de sources (broncodes) van de zelfgemaakte "apps" (Opdrachten/Shortcuts) op jouw iPhone; dat kan zoeken op internet succesvoller maken.

Met deze, gezien het enorme aantal mogelijkheden, relatief korte beschrijving hoop ik dat ook beginners zelf "Opdrachten" kunnen gaan ontwikkelen (schrijven, programmeren).

WAARSCHUWING!
Met iOS "opdrachten" kan veel; je kunt er ook spyware of ronduit malware mee maken. Daarom is het ronduit onverstandig om "Opdrachten" gemaakt (of aangepast) door derden, "blind" te vertrouwen.

Ook niet van iemand die zich "Erik van Straten" noemt; mijn account of deze site kan gehacked worden, waardoor deze pagina kan zijn veranderd of door iemand anders kan zijn gepubliceerd.

Als je niet precies begrijpt wat elke "taak" (stap) in een opdracht (bijvoorbeeld afkomstig van internet of van een "vertrouwde" kennis) doet, gebruik deze dan niet (en verwijder hem). Dus: goed lezen en begrijpen wat ik hieronder schrijf. Bij twijfel niet inhalen!

Zelf "Opdrachten" maken
Wat ik hieronder beschrijf zou kunnen afschrikken vanwege de ogenschijnlijke complexiteit. Maar ik verwacht dat het voor de meeste mensen best mee zal vallen, zelfs als je nauwelijks of geen programmeerervaring hebt.

Een "Opdracht" kun je vergelijken met een recept voor een gerecht. Zo'n "Opdracht" bestaat uit één of meer "taken", vergelijkbaar met "voeg een snufje zout toe" uit een recept. Alle taken, in de juiste volgorde achter elkaar, zorgen voor een eindresultaat - vergelijkbaar met een gerecht.

Nb. door programmeurs worden "taken" meestal "functies" (of, soms, "procedures") genoemd.

N.b. je kunt een icoontje plus tekst, beide naar keuze, koppelen aan een "Opdracht" in de "Opdrachten" app, en dat icoontje (Apple noemt dit een bladwijzer, Microsoft een snelkoppeling of shortcut) kun je, naast bestaande apps, toevoegen op het thuisscherm. Daardoor lijkt het op een echte app, met het verschil dat er wat extra systeem-informatie op het scherm getoond wordt tijdens het "draaien" van zo'n "app" (ik heb niet gevonden hoe je dat uit kunt zetten).

Verderop beschrijf ik twee opdrachten met steeds meer details:

1) Vergrendel
Een zeer simpele maar m.i. nuttige "app" om de basis van Opdrachten te leren begrijpen;

2) QR-Scanner
Dit is een "app" waarmee je bar- en QR-codes kunt scannen, zonder dat meteen een app (browser, bank-app etc) opent indien de QR-code iets bevat dat iOS herkent, zoals een URL of een betaalopdracht.

"Listings"
Direct onder deze posting ga ik twee reacties toevoegen.

De eerste met de grafische "broncode" van de Vergrendel opdracht, zie https://security.nl/posting/829027.

En de tweede met de "broncode" van de QR-scanner opdracht, zie https://security.nl/posting/829028.

Nb. als je onderstaande toelichting en listings wilt gebruiken om genoemde apps zelf na te bouwen, is het mijn dringende advies om deze pagina op een ander apparaat te bekijken. Als je, op een iPad, of erger - een kleinere iPhone, steeds moet schakelen tussen deze pagina en de Opdrachten app, is dat frustrerend en foutgevoelig.

Vergrendel-"app": doel
Deze "app" gebruik ik zelf heel vaak omdat het aan/uit en tevens vergrendelknopje op mijn iPhone SE2 nogal klein is (en ik slijtage ervan wil minimaliseren). Vooral als je een wat langere tijdsduur van inactiviteit hebt ingesteld voordat het scherm van de iPhone automatisch vergrendelt, en je ook zo'n onhandig klein knopje op jouw iDevice hebt (mijn moeder kan dat knopje nauwelijks vinden op haar iPad Air), kan deze "app" van pas komen.

QR-scanner "app": doel
De QR-scanner "Opdracht" die ik hieronder beschrijf kan allerlei soorten codes scannen, waaronder QR- en barcodes. De app toont eerst de tekst die uit de code is afgeleid.

Indien de gevonden tekst begint met "http://", vraagt de app of je dit wilt wijzigen in "https://" - hetgeen vooral verstandig is als je buitenshuis van (onbetrouwbare) WiFi gebruik maakt; in Safari en Firefox op iOS kun je (voor zover ik weet), helaas, nog steeds niet instellen dat de browser uitsluitend via https verbindingen mag maken.

Daarna kun je kiezen wat je wilt doen, ofwel:
• Open als URL (in de default browser)
• Kopieer naar klembord
• Stoppen

Niet heel ingewikkeld, maar ondanks dat het scannen zelf met 1 taak gepiept is, had ik 21 regels met "broncode" nodig, vooral om die vragen te kunnen stellen en het juiste te doen met de door de gebruiker gegeven antwoorden.

Hoe maak je zo'n "Opdracht"
Na het starten van de "Opdrachten" app kun je rechtsboven op + drukken om een nieuwe "Opdracht", uiteindelijk een soort "app" dus, te maken. Zo'n opdracht bestaat uit 1 of meer "taken".

Taken
Enkele voorbeelden van de vele taken, die je in de "bibliotheek" kunt vinden, zijn:

• Bel
• Haal klembord op
• Bewaar bestand
• Scan QR- of streepjescode
• Spreek tekst uit
• Codeer Base64
• Stop deze opdracht

Die "bibliotheek" is bereikbaar vanuit de "Opdrachten" app. Er zijn zóveel taken dat je je suf kunt zoeken naar een taak die doet wat jij wilt; lastig is vaak dat je in je hoofd hebt dat je iets specifieks wilt doen, maar daar niet de naam van de taak bij kunt bedenken die Apple heeft bedacht.

Echter, als je de naam van een taak wel kent of vermoedt (zoals de namen van de taken in onderstaande QR-scanner), kun je daar naar zoeken met de zoekfunctie van de bibliotheek (zelfs die werkt niet altijd zoals verwacht, een beetje creativiteit door te bijvoorbeeld te zoeken naar het soort informatie dat zo'n taak verwerkt, zoals foto, helpt vaak).

Het kan ook flink helpen om eerst eens op je gemak "door de bibliotheek" te wandelen en in je op te nemen welke taken daar te vinden zijn (zo heb ik dat ook gedaan).

Als je op "Voeg taak toe" hebt gedrukt, kun je bovenin het zoekveld (met de lichtgrijze tekst "zoek naar apps en taken") beginnen met tikken. Als ik daarin "Scan" tik, wordt "Scan QR- of streepjescode" al zichtbaar. Als je daar op drukt wordt die taak toegevoegd onder de huidige taken in jouw opdracht.

Daaronder verschijnt dan een keuzemenu met "Suggesties voor volgende taken". Soms zit daar bij wat je zoekt; zo niet dan kun je onderaan het scherm weer zoeken naar taken in de bibliotheek, of de bibliotheek (of een categorie daarin) openen en zoeken naar iets van jouw gading.

Ook kun je het "schuifje" net boven dat zoekveld naar boven slepen om het "toegangsscherm" van de bibliotheek te tonen.

Variabelen
Nagenoeg alle programmeertalen maken gebruik van "variabelen". Een variabele kun je beschouwen als een doosje (of laatje) waar "iets", in computers "data" genoemd, in bewaard kan worden, en waar een naam op staat.

Die naam wordt gebruikt als handvat, een verwijzing, naar de betreffende variabele (vergelijkbaar met een huisadres, dat zegt an sich niets over wie daar woont, noch of het om een woning gaat of bijvoorbeeld een basisschool).

Op basis van die naam kun je iets in dat doosje stoppen (daarmee overschrijf je de "data" die er mogelijk nog in zat), én je kunt eerder daarin gestopte data "lezen".

Lezen moet je zien als "eruit kopiëren"; de inhoud van het doosje wijzigt hierdoor niet! Anders dan in de "echte wereld" wordt een variabele dus niet "leeg" (of "nul") door deze uit te lezen.

Je hebt een grote vrijheid m.b.t. welk type data je in een "doosje" (variabele) stopt, zoals tekst, een plaatje, een geluidsfragment en ga zo maar door. Een variabele kan, op elk moment, echter maar één soort data bevatten (tekst en een plaatje samen kan niet).

Let op: een naam van een variabele hoeft niets te zeggen over het type van de data. Niets belet je echter om een variabelenaam zoals "QR_Tekst" te gebruiken voor een variabele waar je tekst in opslaat; dit komt de leesbaarheid ten goede (vervolgens, evt. tijdelijk, een plaatje opslaan in een variabele met zo'n naam, zou strafbaar gesteld moeten worden ;-)

Met betrekking tot het aanmaken van die "doosjes" zijn er drie soorten variabelen:

1) Die je zelf maakt. Voor elke variabele kun je zelf een naam verzinnen.

2) Naamloze variabelen, feitelijk "constanten": dit zijn bijvoorbeeld stukjes tekst die je (evt. onder specifieke omstandigheden, zoals een foutmelding) op het scherm wilt tonen (deze teksten wijzigen zelf niet gedurende het uitvoeren van een Opdracht). Vaak kun je, in velden in de grafische programmeer-interface van een taak, kiezen of je daar "vaste tekst" invult, of de naam van een echte variabele.

3) Automatische variabelen: zie hieronder.

Automatische variabelen
Veel taken genereren "output", d.w.z. een eindresultaat van die taak, dat tekst kan zijn, maar ook allerlei andere soorten data. In Opdrachten maakt zo'n taak automatisch een "variabele" aan die altijd dezelfde naam krijgt. Als een specifieke taak meerdere keren gebruikt wordt, zal de laatste "run" van die taak de variabele overschrijven; dat kan onverwacht zijn en kan foutzoeken lastiger maken.

Precies om die reden, vooral bij langere Opdrachten (met veel taken), is het verstandig om zo'n output meteen naar een nieuwe, zelfgemaakte variabele te kopiëren (waar je, bij voorkeur een veelzeggende naam voor kiest en niet "tmp" o.i.d.) en daarmee verder te werken (in de QR-scanner doe ik dat met de variabele "QR_Tekst").

Zo vult de volgende taak:
Scan QR- of streepjescode
een "doosje", variabele dus, met de volgende naam:
QR-code/streepjescode
Effectief is dat een digitaal plaatje, een foto genomen door de camera - maar alleen als "die camera" (software "daarachter") het gefotografeerde object als QR-code, barcode of iets dergelijks heeft herkend.

Merk op dat je die naam niet ziet nadat je de taak hebt toegevoegd. Lastiger, de ingebouwde helpfunctie laat je op dit punt ook vaak in de steek. Bijvoorbeeld voor de volgende taak:
Vervang tekst
staat onderaan de helpfunctie daarvan:
Resultaat
Tekst
Dat is verwarrend, want dat is het type van het resultaat; de (nergens genoemde) automatische output variabele heet in dit geval:
Bijgewerkte tekst
Oftewel, deze taak vervangt niks in de variabele die je als input meegaf! (Zelf, kennelijk stommer dan een ezel, heb ik mij meermaals aan deze steen gestoten; bij "vervang in tekst" verwacht ik telkens dat er in die tekst wijzigingen worden doorgevoerd - niet dus).

Terug naar het resultaat van het scannen van een QR- (of andere) code:
QR-code/streepjescode
Met dat plaatje kun je zelf niet zoveel, maar een nieuwe taak kan daar wel wat mee. Die taak, genaamd:
Haal tekst op uit invoer
maakt een nieuwe automatische variabele aan met de naam:
tekst
Op het moment dat je laatstgenoemde taak achter de vorige zet, onstaat er een koppeling (overdracht) tussen die taken.

Sterker, het woord "invoer" in de naam van laatstgenoemde taak verandert in de naam van de vorige automatische variabele (hier tekst). Je ziet nu twee taken met een verticaal streepje daar tussen:
Scan QR- of streepjescode
|
Haal tekst op uit QR-code/streepjescode
Merk op dat (in de Opdrachten app) het woord "tekst" hetzelfde letterype en kleur heeft als wat ervoor en erachter staat. Dat is omdat de taak effectief "Haal tekst op uit" heet, gevolgd door de naam van een variabele met een naam naar keuze (hier: QR-code/streepjescode, de ouput van de taak daarboven).

Keuzes (wissels) en inspringen
Veel opdrachten (de Vergrendel-opdracht is een uitzondering) zullen gebruik maken van iets als volgt:
Als conditie
Doe_Deze_Taak
Anders
Doe_Andere_Taak
Einde als
In de meeste programmeertalen is het gebruikelijk om in te springen (Engels: indent, indentation) bij conditioneel uitgevoerde code; ook "Opdrachten" gebruikt dit mechanisme. Dat inspringen doet de Opdrachten app voor je, op basis van de taak.

Icoontjes
Elke taak heeft, helemaal links, een icoontje dat iets zegt over de taak. Die icoontjes kan ik, in dit op tekst gebaseerd forum, niet laten zien. Daarom heb ik daar tekstuele vervangers voor bedacht die de "broncode" hopelijk iets verder verduidelijken. In de legenda verderop licht ik deze toe.

Als je in de Opdrachten app wat langer op zo'n icoontje (links bovenaan een taak) drukt, verschijnt een popup menu. Speel daarmee om te zien wat je daaraan hebt.

Grafisch programmeren en slepen
Eenmaal geplaatste taken in een opdracht kun je verslepen, maar ook kopiëren en elders plakken. Dat is in elk geval nodig nadat je bijvoorbeeld de volgende taak hebt toegevoegd:
Als conditie
Anders
Einde als
De eerder genoemde conditioneel uit te voeren taak, zoals "Doe_Deze_Taak" (dat kunnen ook meerdere taken achter elkaar zijn) zul je onderaan (één voor één bij meerdere) moeten toevoegen en daarna moeten slepen naar boven of onder de regel "Anders".

Overigens, indien je geen taken hebt die moeten worden uitgevoerd indien de conditie n.v.t. is, kun je de hele regel "Anders" verwijderen (door rechts op het lichtgrijze (x) te drukken). Het wordt dan iets als volgt:
Als conditie
Doe_Deze_Taak
Einde als
Helaas gaat slepen niet altijd goed, vooral niet naar of vanuit 2x of meer ingesprongen delen van de broncode. Als je zelf opdrachten gaat maken, raad ik aan om regelmatig back-ups te maken, bijvoorbeeld door steeds een hele opdracht naar een nieuwe te kopiëeren en in de naam een versienumner op te nemen dat je ophoogt.

Maak de Vergrendel-"app"
Als je alles hierboven gelezen hebt, zou dat niet moeilijk moeten zijn: begin een nieuwe opdracht en zet de drie taken genoemd in de eerstvolgende "listing" onder elkaar!

De eerste is wel meteen gedoe: als ik zoek naar "Vergrendel" zie ik alleen "Toegangsscherm" als gevonden taak. Ik begrijp niet hoe Apple ervoor kon kiezen om één taak twee verschillende namen te geven, maar die taak is wel degene die je zoekt; druk maar rechts op (i) voor hulp.

De tweede taak kun je overigens weglaten, ik vond deze wel aardig om te laten zien wat er mogelijk is.

Waarschijnlijk werkt deze app ook zonder de laatste taak, maar daarmee geef je de Opdrachten app duidelijkheid dat het afgelopen moet zijn, en het vergroot de leesbaarheid (vooral bij langere Opdrachten).

Meta-data van een Opdracht
Het is natuurlijk een goed idee om de naam en icoontje van jouw nieuwe opdracht aan te passen. Ik heb deze "Vergrendel" genoemd en voor het icoontje heb ik een wit hangslotje met een rode achtergrond gekozen.

Nadat je rechtsboven (in Opdrachten, met jouw opdracht open) op "Gereed" hebt gedrukt, ga je terug naar het openingsscherm van de Opdrachten-app.

Als je op een rechthoekig vlak (met afgeronde hoeken) drukt, wordt die opdracht uitgevoerd.

Als je echter rechtsboven in zo'n vlak wat langer op (•••) drukt, verschijnt een popup menu. Als je daarin drukt op:
Details (i)
kun je allerlei metadata configureren. Ook zie je daar onder andere:
Zet op beginscherm
(daarmee wordt het thuisscherm bedoeld, na ontgrendelen dus). Desgewenst kun je hierbij de naam getoond op het thuisscherm nog aanpassen (handig als jouw opdracht een lange naam met bijv. een versienummer erin heeft).

Advies: check al deze instellingen na het maken of wijzigen van elke opdracht (die, o.a. privacy-instellingen, lijken overigens niet toegankelijk als je de Opdracht zelf -in edit-mode- geopend hebt in de Opdrachten-app en bovenaan, naast de naam van de opdracht, op (v) drukt).

Opdracht exporteren/backuppen
In het eerder hierboven genoemde popup-menu zie je ook:
Deel [^]
Als je daarop drukt, en vervolgens bovenaan het nieuwe scherm drukt op
Opties >
kun je kiezen voor "Bestand" in plaats van "iCloud-link". Als je dat doet en daaronder kiest voor "Personen die mij kennen", dan verschijnt daaronder (bij mij) de volgende toelichting:
Alleen personen die jou in hun contactenlijst hebben staan, kunnen deze opdracht gebruiken. Je contactgegevens worden ter verificatie in het opdrachtbestand vermeld.

Je kunt deze optie ook gebruiken om een persoonlijke reservekopie van je opdrachten te maken.

Als je vervolgens op "Gereed" drukt kun je met
Bewaar in Bestanden
ervoor kiezen om een backup in een bestandsmap op te slaan.

Zo'n backup kun je restoren (terugzetten) door in de Bestanden-app op zo'n Opdracht op te drukken; dan kun je die Opdracht "afspelen" en/of (weer) toevoegen aan de Opdrachten-app.

Zelf heb ik nog niet geëxperimenteerd met anderen toegang geven tot mijn zelfgemaakte (kennelijk by default allemaal in de iCloud opgeslagen) Opdrachten (ik heb geen idee of en welke risico's ik daarmee op mijn hals haal). Ik houd de zaken liever zoveel mogelijk onder eigen beheer. Zie ook mijn waarschuwing bovenaan m.b.t. het gebruiken van Opdrachten gemaakt of (mogelijk) gewijzigd door derden.

Maak de QR-scanner-"app"
Dit zal ik vooral toelichten per "regelnummer" (een taak is niet hetzelfde als een regel in mijn voorbeeld, zodra je bijvoorbeeld een "Als" taak toevoegt, krijg je drie door mij genummerde regels).

Nb. ik laat in deze toelichting de "icoontjes" (beschreven in de legenda verderop, wel gebruikt in de listings) weg.

Begin met het maken van een nieuwe opdracht. Wijzig de naam in bijvoorbeeld "QR-scanner". Wijzig het icoontje: ik heb grijs gekozen als achtergrondkleur en een QR-code icoontje (dat staat bij mij helemaal onderaan in de keuzelijst).

[01] Druk op "Voeg taak toe". Tik "Scan q" in het zoekveld en kies
Scan QR- of streepjescode

[02] Voeg de volgende taak toe door te zoeken naar: "Haal tekst" en druk op:
Haal tekst op uit invoer
Merk op dat die "invoer" vervangen wordt door (met blauwe vette tekst) "QR-code/streepjescode". De taak ziet er daarna uit als volgt:
Haal tekst op uit QR-code/streepjescode
Nb. de naam van automatische variabele die deze nieuwe taak aanmaak luidt: "tekst".

[03] Voeg een nieuwe taak toe:
Stel variabele in
Na het toevoegen moet je de naam van een variabele invoeren, daar heb ik "QR_Tekst" (zonder die aanhalingstekens) voor gekozen. Voor het correcte eindresultaat van elke toegevoegde taak zie de tweede "listing" hieronder.

[04] Voeg taak toe: "Als". Hierdoor worden meteen 3 regels toegevoegd. Verwijder de middelste regel met "Anders". Indien achter "Stel variabele" niet "QR_Tekst" staat, moet je hierop drukken. Er verschijnt dan een popup-menu met o.a. variabelen (d.w.z. namen van) waar je uit kunt kiezen. Als de gewenste variabele er niet bij staat, kun je op "Selecteer variabele" (met toverstokje) drukken. Dan zie je van elke taak welke variabele daarna beschikbaar is; kies "QR_Tekst".

Druk vervolgens in het nog lege veld "Voorwaarde" en kies "Begint met". Er verschijnt een nieuw leeg veld; vul daar in "http://" (ook hier: zonder die aanhalingstekens). Let erop dat je begint met een kleine "h".

[05] Op dit moment is regel 05 nog "Einde als", die gaan we zo opschuiven.

Voeg toe:
Lijst
Onder "Einde als" verschijnt het volgende blok bestaande uit 4 regels:
Lijst
Eén
Twee
Voeg nieuw onderdeel toe
Druk rechts van "Lijst" een tijdje totdat je het blok kunt verslepen. Sleep het omhoog naar tussen "Als" en "Einde als". Merk op dat het vanzelf iets naar rechts inspringt. In de listing is dit goed te zien door het grijze vlak.

Nu we een Lijst op [05] hebben, ga je deze editten:

a) Vervang "Eén" door "Tekst uit QR-code".

b) Wis "Twee" zodat je een lege regel krijgt (waar in het lichtgrijs "Tekst" in staat, dat kun je negeren).

c) Druk op "Voeg nieuw onderdeel toe". Er verschijnt een nieuwe lege regel (met vooraan een rode cirkel met een wit minnetje erin).

Druk in die lege regel. Direct boven het toetsenbord zie je een regel die begint met "Selecteer variabele". Als je daarop blijft drukken kun je die regel van rechts naar links verschuiven; daarmee kun je elke gewenste variabele in beeld krijgen. Kies "QR_Tekst".

d) Voeg regels toe zoals vermeld in de listing verderop.

[06] Dit is nu nog "Einde als". Voeg onderaan toe:
Kies uit menu
(dus niet "Kies uit Lijst").

Sleep het nieuwe blok naar direct boven "Einde als".

Druk in het veld met lichtblauwe tekst "Instructie" en kies "Lijst". Vervang de tekst "Eén" door "Ja" en "Twee" door "Nee".

Merk op dat hierna de volgende regels onder het blok op regel [06] zijn toegevoegd:
[07] Ja
[08] Nee
[09] Einde menu
Net als onder "Als" is ook dit een soort "wissel" waarbij automatisch wordt ingesprongen zodra je taken tussenvoegt.

[08] Hier staat nu nog "Nee" maar die regel schuift straks naar beneden.
Voeg onderaan toe:
Vervang tekst

Sleep dat nieuwe blok naar tussen de regels "Ja" en "Nee".

LET OP: dit blok is nu 2 maal ingesprongen. Ik had dat graag een ander kleurtje dan hetzelfde grijs als 1x inspringen gegeven, maar dat kan ik niet op deze site.

In dat blok staat iets als volgt (de cursieve teksten hieronder, die je dient te vervangen, zijn in werkelijkheid lichtblauw in de Opdrachten app):
Vervang Hallo met Wereld in Tekst (>)

a) Vervang "Hallo" door "http://";

b) Vervang "Wereld" door "https://";

c) Vervang "Tekst" door de variabele "QR_Tekst";

d) Druk op "(>)". Dit verandert dan in "(v)" terwijl er twee optieregels onder verschijnen. Zet, voor alle zekerheid, "Hoofdlettergevoelig" uit.

Nb. deze taak verandert niets in "QR_Tekst"; de output komt in een nieuwe auto-variabele "Bijgewerkte tekst".

[09] Hier staat nu nog "Nee".
Zoek in de bibliotheek naar "Vari" en voeg onderaan toe:
Stel variabele in

Sleep dat nieuwe blok naar direct boven "Nee". Wijzig de lichtblauwe tekst in de variabelenaam "QR_Tekst" (maak hier geen tikfouten in, het moet om dezelfde variabele gaan als we eerder hebben gebruikt).

[10], [11] en [12]: hier staan nu resp. de regels "Nee", "Einde menu" en "Einde als". Hier doen we verder niets meer mee, prima zo (De Opdracht loopt gewoon "door" na "Nee" omdat daar niet direct een taak staat, terwijl "Einde menu" en "Einde als" zelf geen taken zijn, maar slechts voor de leesbaarheid van de broncode zijn toegevoegd).

[13] en [14]: voeg toe, net als bij wat nu [05] en [06] zijn, resp.
Kies uit menu
en
Lijst
Wijzig de velden zoals vermeld in de listing verderop.

[15] Hier staat nu "Open als URL", prima.

[16] Deze regel "Kopieer naar klembord" moet zo 1 omlaag. Zoek naar:
Open bladwijzer
Voeg deze toe en wijzig de lichtblauwe tekst "Bladwijzer" in de variabelenaam "QR_Tekst".

[17] luidt nu "Kopieer naar klembord" - okay.

[18] Deze regel "Stoppen" moet zo één regel omlaag.
Zoek naar "Klem", en voeg toe:
Kopieer naar klembord
Wijzig de lichtblauwe tekst "Materiaal" in de variabelenaam "QR_Tekst".

Druk daarna op (>) achter "Klembord". Ik heb geen ervaring met het iCloud keyboard en heb dat niet nodig, dus heb ik de schakelaar achter:
Alleen lokaal
uitgezet.

[19], [20] en [21] luiden nu resp. "Stoppen", "Einde menu" en "Stop deze opdracht".

Maak desgewenst een bladwijzer naar deze opdracht (hoe je dat doet lees je hierboven onder "Meta-data van een Opdracht").

KLAAR! Het lijkt veel en ingewikkeld, maar zodra je de kunstjes doorhebt valt het m.i. allemaal best mee.

Tot slot
Ik stel het zeer op prijs als mensen, die het lukt om op basis van mijn uitleg, zo'n iOS QR-scanner te maken, dat laten weten (ook als dat niet lukt).

Ook ben ik benieuwd naar door anderen gemaakte (vooral security- of privacy-gerelateerde) opdrachten-"apps".

Zelf heb ik er ook nog meer, o.a. voor het uitzetten en aanzetten van WiFi en Bluetooth, het onderzoeken waar verkorte URL's naar toe leiden, het analyseren van URL's etc. Bij voldoende belangstelling deel ik die wellicht (het is een hoop tikwerk en gedoe om alles een beetje uitgelijnd ts krijgen).

Nb. 1 uur na het plaatsen van postings op dit forum kan ik ze niet meer wijzigen. Mocht ik -onverhoopt- ergens een fout in gemaakt hebben, dan kan ik dat al heel snel niet meer inline corrigeren. Check a.u.b. mijn reacties verderop in deze pagina voor correcties! Recente reacties van mij kun je overigens vinden in de linkerkolom in https://security.nl/profile?alias=Erik+van+Straten.

Veel succes en programmeerplezier met Apple Opdrachten!

Legenda
Op deze site kan ik geen plaatjes (zoals screendumps) publiceren. In de "broncode listings" hieronder heb ik zoveel mogelijk gebruik gemaakt van de opmaakfuncties die wel in het forum op deze site beschikbaar zijn. Ik heb ook zaken toegevoegd die in de iOS/iPadOS "Opdrachten" (Engels: "Shortcuts") app niet worden getoond, zoals regelnummers, zodat ik duidelijker kan beschrijven wat precies waar gebeurt.

Algemeen
…      Scheiding tussen twee variabelen
         (onzichtbaar op Apple, je ziet spaties)
vet   (blauw op Apple): variabele
  |      (Tussen ––) Overdracht van
          automatische output variabele
[01]   Regelnummer: niet getoond door Apple!
(O  )  Schuifschakelaar (hier: uit-stand)

Mini-icoontjes
{@}   Hangslotje
{z}    Trillende/zoemende smartphone
{#}   QR-code
{t}     tekstregels, lijntjes boven elkaar
{?}   "Wissel": Als, Anders, Einde als
{=}    Lijst (1 of meer regels)
(–)   Minteken in rode cirkel: verwijder
(+)   Plusteken in groene cirkel: voeg toe
{m}  Menu-onderdeel (ook de keuzes)
(i)    Drukken erop toont opties in source
(>)   Drukken erop toont taak-opties
(v)   Taak-opties opengeklapt
{x}   Zelfgemaakte variabele (met naam)
{b}   Open browser

Direct hieronder volgen de twee listings voor resp. de "Vergrendel" en de "QR-Scanner" iOS/iPadOS Opdrachten.
Reacties (19)
09-02-2024, 22:24 door Erik van Straten - Bijgewerkt: 09-02-2024, 22:27
———————————————————————————————————————
[01] {@} Vergrendel het scherm
———————————————————————————————————————
[02] {z} Laat apparaat trillen
———————————————————————————————————————
[03] {s} Stop deze opdracht
———————————————————————————————————————
09-02-2024, 22:24 door Erik van Straten - Bijgewerkt: 09-02-2024, 22:27
———————————————————————————————————————
[01] {#} Scan QR- of streepjescode
—————————————————— | ——————————————————
[02] {t} Haal tekst op uit {#} QR-code/streepjescode
—————————————————— | ——————————————————
[03] {x} Stel variabele QR_Tekst in op {t} tekst
———————————————————————————————————————
[04] {?} Als {x} QR_Tekstbegint methttp://
———————————————————————————————————————
——————————————————————————————————————
[05] {=} Lijst
         (–) Tekst uit QR-code:
         (–)
         (–) {x} QR_Tekst
         (–)
         (–) Wilt u:
         (–)   http://
         (–) vervangen door:
         (–)   https://
         (–) ? Dat is veiliger (soms is een site alleen
                  via http te bereiken).
         (+) Voeg nieuw onderdeel toe
—————————————————— | —————————————————
[06] {m} Kies uit menu met {=} Lijst
         (–) Ja          (i)
         (–) Nee       (i)
         (+) Voeg nieuw onderdeel toe
——————————————————————————————————————
[07] {m} Ja
——————————————————————————————————————
 ————————————————————————————————————
  [08] {t} Vervang http:// met https://
             in {x} QR_Tekst                                         (v)
           Hoofdlettergevoelig                                 (O  )
           Reguliere expressie                                 (O  )
 ———————————————— | —————————————————
  [09]  {x} Stel variabele QR_Tekst in op
             {t} Bijgewerkte tekst
————————————————————————————————————
——————————————————————————————————————
[10] {m} Nee
——————————————————————————————————————
[11] {m} Einde menu
——————————————————————————————————————
———————————————————————————————————————
[12] {?} Einde als
———————————————————————————————————————
[13] {=} Lijst
         (–) Tekst uit QR-code:
         (–)
         (–) {x} QR_Tekst
         (–)
         (–) Voeg nieuw onderdeel toe
—————————————————— | ——————————————————
[14] {m} Kies uit menu met {=} Lijst
         (–) Open als URL                      (i)
         (–) Kopieer naar klembord     (i)
         (–) Stoppen                               (i)
         (+) Voeg nieuw onderdeel toe
———————————————————————————————————————
[15] {m} Open als URL
———————————————————————————————————————
——————————————————————————————————————
[16] {b} Open {x} QR_Tekst
——————————————————————————————————————
———————————————————————————————————————
[17] {m} Kopieer naar klembord
———————————————————————————————————————
——————————————————————————————————————
[18] {c} Kopieer {x} QR_Tekst naar klembord        (v)
         Alleen lokaal                                                 (  O)
         Verloopt  
——————————————————————————————————————
———————————————————————————————————————
[19] {m} Stoppen
———————————————————————————————————————
[20] {m} Einde menu
———————————————————————————————————————
[21] {s} Stop deze opdracht
———————————————————————————————————————
10-02-2024, 08:43 door Anoniem
Super Erik, wederom dank voor een mooie en leerzame post!!
10-02-2024, 10:06 door Anoniem
Erik, waarom gebruik je op jouw Adroid de Privacy Friendly QR Scanner? Zoals ik het begrijp geeft deze scanner alleen een advies door de url duidelijk te laten zien, maar kan deze scanner niet verbinden met een anti-malware database om de links verder te checken. Dat is dan toch nog steeds vrij beperkt qua extra veiligheid?

Er zijn ook een paar QR scanners van bekende anti-malware bedrijven die wel de url kunnen scannen:
https://play.google.com/store/apps/details?id=com.trendmicro.qrscan&hl=nl&gl=US

Dat is toch de meesrt veilige manier van QR codes scannen dan?

Overigens een erg indrukwekkende "gebruiksaanwijzing" die mij wel de pet te boven gaat :)
10-02-2024, 10:42 door Erik van Straten - Bijgewerkt: 10-02-2024, 11:05
Ik zie dat ik de (Nederlandstalige, met plaatjes met daarin Engels) vergeten ben te noemen: https://support.apple.com/nl-nl/guide/shortcuts/welcome/ios.

Overigens is soms sprake van "Siri Opdrachten", maar zelf heb en wil ik niets met Siri; de hierboven beschreven listings hebben dan ook niets met Siri te maken (althans, dat hoeft niet; liefhebbers kunnen wellicht iets als "Hey Siri, Vergrendel" willen roepen).

Als lezers andere handige informatiebronnen en/of slimme security/privacy-gerelateerde Opdrachten kennen, deel dat s.v.p.!

Aanvulling 11:05: een lange draad met ideeën: https://gathering.tweakers.net/forum/list_messages/1877701
10-02-2024, 13:30 door Erik van Straten - Bijgewerkt: 10-02-2024, 13:58
Door Anoniem @08:43: Super Erik, wederom dank voor een mooie en leerzame post!!
Graag gedaan!

Door Anoniem @10:06: Erik, waarom gebruik je op jouw Adroid de Privacy Friendly QR Scanner? Zoals ik het begrijp geeft deze scanner alleen een advies door de url duidelijk te laten zien, [...]
Niet echt advies, maar de app laat wel de URL, of andere in de QR/barcode opgenomen informatie, zien.

Dat vind ik veel prettiger dan een browser die meteen zo'n link opent. Steeds vaker is dat een link naar een third-party (spionage -) site die jouw browser doorstuurt, en regelmatig kom ik http:// links tegen. Als security-onderzoeker wil ik dit zien, maar ook voor "security-aware" mensen lijkt mij dit zinvolle informatie.

Na het scannen van een URL zie je in deze app onder meer:
[   ] I checked the link and want to visit the website.

Information [3] on how to check links.
[3] https://secuso.aifb.kit.edu/downloads/Flyer/NoPhish_betr.Nachrichten/Englisch/KIT_Faltblatt_BN_EN_2022v03.pdf

Die PDF bevat (verderop, je moet even doorscrollen) zinvolle info over hoe domeinnamen zijn opgebouwd en waar je op moet letten.

Overigens kan deze app ook zelf QR-codes maken.

Door Anoniem @10:06: maar kan deze scanner niet verbinden met een anti-malware database om de links verder te checken. Dat is dan toch nog steeds vrij beperkt qua extra veiligheid?
URL-checkers bieden steeds meer schijnveiligheid. Cybercriminele registreren aan de lopende band nieuwe (en enige tijd niet gebruikte) domeinnamen voor phishingcampagnes. Zodra deze geblocklisted worden, hebben ze al weer nieuwe. Twee voorbeelden:

1) *.clients-access.com
https://www.virustotal.com/gui/domain/clients-access.com/relations
Deze site heeft ondertussen minstens 127 kwaadaardige subdomains (gehad), zie de tweede sectie in die pagina. Ze worden stuk voor stuk, sinds medio vorig jaar, gehost bij Amazon - met een nieuwe "wave" sinds 21 januari dit jaar (op 4 feb. waren er nog "maar" 62 subdomains c.q. siblings als je VT bekijkt vanuit één van die subdomains). Allemaal met een Let's Encrypt certificaat. Niemand die hier iets tegen doet.

Op het IPv4-adres van Amazon, waar je de meeste van die "*.clients-access.com" phishing-sites vindt, komt, in een razend tempo, nog veel meer shit voorbij (als je na een minuut of zo de volgende pagina ververst, zie je al weer nieuwe domeinnamen, maar hier zitten ook legitieme tussen):
https://www.virustotal.com/gui/ip-address/199.59.243.225/relations

2) IPv4: 213.226.123.41
Dit IP-adres is van een foute huurder bij een "bullet proof" Russische hoster, zie
https://www.virustotal.com/gui/ip-address/213.226.123.41/relations
Alle domeinnamen die je hier ziet, waarvan er dagelijks bijkomen (zie de datum links in de eerste sectie), zijn duidelijk bedoeld voor phishing. Ook hier allemaal Let's Encrypt certs en niemand die er iets tegen doet.

Probleem: aanvankelijk worden die sites niet door (verreweg de meeste) virusscanners geblokkeerd en ook staan ze niet vanaf seconde nul op blocklists. Je verspilt meestal tijd door zo'n checker te raadplegen: prima als deze van een domein zegt dat het kwaadaardig is, maar wat doe je als alles volgens zo'n URL-checker okay lijkt? Ook googlen van een domeinnaam helpt steeds vaker "niet", in de zin van dat Google niks vindt als je zoekt naar
site:domeinnaam

Je kunt, in mijn ervaring, in de meeste gevallen beter meteen zelf naar de domeinnaam gaan kijken en conclusies proberen te trekken. Als dat twijfel oplevert, Googlen of DuckDuckGo'en. Weinig of geen resultaten, of bijv. pagina's met Chinese tekens op een ogenschijnlijk westerse site, zijn tekenen aan de wand.

Door Anoniem @10:06: Overigens een erg indrukwekkende "gebruiksaanwijzing" die mij wel de pet te boven gaat :)
Dank, maar als je een iPhone hebt en gewoon begint met de Opdrachten app, zul je zien dat het allemaal best meevalt :-)

Edit 13:58: diverse aanvullingen halverwege deze reactie.
10-02-2024, 13:44 door Anoniem
Bedankt voor de uitleg maar je gaat hier uit van dat er geen zeroday mogelijk is in de editor, of uitvoering daarvan.
Je schrijft niet zelf de code je schrijft opdrachten middels een soort WYSIWYG editor. Hoe ga je dit veilig houden, patchen als je zelf niet de schrijver bent van wat er werkelijk uitgevoerd word?

Opent het installeren en standby hebben van een extra script uitvoering interface je niet juist voor mogelijk meer ellende middels andere malicious script acties?

Werkt shortcuts ook in lockdown mode?

Is er op gecontroleerd of er telemetry of andere data wordt verzonden aan de hand van je opdrachten die jezelf niet hebt toegelaten en dan bedoel ik dus echte controle niet dat Apple zegt dat ze niks verzenden.

Waarom als we zover gaan als een opdracht script maken in een tussen applicatie gaan we niet gewoon een stap verder met een werkelijk private deployed applicatie middels een gratis developer licentie waar we 100% zelf de code van beheren?
10-02-2024, 15:11 door Anoniem
Erik, ik heb de door jou getipte privacu qr scanner geprobeerd, maar deze laat niet meer info zien dan mijn ingebouwde camera app qr scanner (Android)
10-02-2024, 15:59 door Erik van Straten
Deze kwamen zojuist voorbij op https://www.virustotal.com/gui/ip-address/199.59.243.225/relations:
microsoftonline.cgoogle[.]com
login.microsoftonline.cgoogle[.]com
Deze, klip en klaar voor phishing bedoelde domeinnaam en bijbehorende subdomeinen (tevens te zien in https://crt.sh/?q=cgoogle.com) krijgt al -Let's Encrypt- certificaten sinds eind 2021. Bovendien, zowel de DNS registrar als Amazon vinden het belangrijker dat zij geld verdienen aan cybercrime - dan dat zij geïnteresseerd zijn in jouw (en mijn) veiligheid op internet.

Op dit moment ziet slechts één (van 89) virusscanners hier een gevaar in. En dat is geen veelgebruikte scanner, nl. "alphaMountain.ai"; zie https://www.virustotal.com/gui/domain/microsoftonline.cgoogle.com/detection.

Googlen/DuckDuckGo'en naar site:microsoftonline.cgoogle.com levert niks op. Googlen naar site:cgoogle.com geeft bij mij 3 vage pagina's, terwijl Googlen naar scam "cgoogle.com" veel oplevert. Idem DuckDuckGo: beginnend met "site:" best veel historische resultaten, met "scam" nog meer results.

Nb. ik heb nu niet onderzocht of deze domeinnaam en subdomeinen op dit moment voor phishing worden misbruikt, of "slechts" zijn gereserveerd door "domain name parking" boeren om ze te laten "rijpen". D.w.z. dat zij weer van blocklists en uit virusdefinities worden verwijderd - versneld door die, geparkeerde en momenteel geen kwaadaardige content bevattende sites, regelmatig door VT te laten scannen. Waarna die domeinnamen, op een onverwacht moment, gehuurd worden door cybercriminelen en gehost worden op een andere server, weer in vol ornaat toeslaan.

Precies daarom is het -zorgvuldig- checken van een domeinnaam, zoals uit een QR-code, in jouw eigen belang. En dat vóórdat je deze opent in een browser - die langere domeinnamen sowieso afkapt en je kan misleiden met een pagina die identiek is of lijkt aan de echte site.
10-02-2024, 16:23 door Anoniem
Wat is er mis met de ingebouwde iOS-scanner in de Camera app?
10-02-2024, 17:47 door Erik van Straten
Door Anoniem: Bedankt voor de uitleg maar je gaat hier uit van dat er geen zeroday mogelijk is in de editor, of uitvoering daarvan.
Als jij zonder die Opdrachten app een iPhone ergens voor gebruikt, dan ga je er toch ook vanuit dat er geen zeroday mogelijk is in waar jij die iPhone op dat moment voor gebruikt?

Ik ga er nooit vanuit dat iets 100% veilig is. Risico's zijn er altijd. De kunst is om risico's zo laag mogelijk te houden, zonder in een atoombomvrije schuilkelder ver onder de oppervlakte van een ander planeet te gaan zitten. Ik ben best tevreden over mijn huidige niveau van paranoia. Te hoog in de ogen van velen, mogelijk te laag in jouw ogen. Soit.

Door Anoniem: Je schrijft niet zelf de code je schrijft opdrachten middels een soort WYSIWYG editor. Hoe ga je dit veilig houden, patchen als je zelf niet de schrijver bent van wat er werkelijk uitgevoerd word?
Als je software schrijft, of door anderen geschreven software inzet, die van glibc gebruik maakt - en daar serieuze kwetsbaarheden in blijken te zitten (https://blog.qualys.com/vulnerabilities-threat-research/2024/01/30/qualys-tru-discovers-important-vulnerabilities-in-gnu-c-librarys-syslog), hoe weet je dan of de uiteindelijk door jou gebruikte glibc code (hopelijk niet statisch gelinked) veilig is?

De kans dat er kwetsbaarheden in de hierboven door mij zelf geschreven "WYSIWYG" listings zitten, lijkt mij klein. Verder kan ik niet meer doen dan hopen dat kwaadwillenden niet eerder kwetsbaarheden in de Opdrachten app of "taken" vinden (en uitbuiten) dan dat Apple (of responsible disclosende externe onderzoekers) die kwetsbaarheden vindt en patcht.

Door Anoniem: Opent het installeren en standby hebben van een extra script uitvoering interface je niet juist voor mogelijk meer ellende middels andere malicious script acties?
Als je dat risico wilt beperken, kun je het beste de Opdrachten app proberen te verwijderen. En als dat niet mogelijk is, geen iPhone of iPad gebruiken.

Door Anoniem: Werkt shortcuts ook in lockdown mode?
Geen idee. Ik gebruik lockdown mode niet, omdat ik mij -in de basis- wil gedragen als gewone (maar wel verstandige) Apple en Android gebruikers.

Wil je dat Opdrachten juist wel of juist niet in lockdown mode werkt?

Door Anoniem: Is er op gecontroleerd of er telemetry of andere data wordt verzonden aan de hand van je opdrachten die jezelf niet hebt toegelaten en dan bedoel ik dus echte controle niet dat Apple zegt dat ze niks verzenden.
Nee. Sterker, ik ga ervan uit dat dit gebeurt. Ook als je geen gebruik maakt van de Opdrachten app. Daarbij, zoals ik al schreef: kennelijk worden Opdrachten in het iCloud-account van de user opgeslagen. Apple weet nu dat ik een "Vergrendel" en een "QR-scanner" Opdracht gebruik en kan de broncode daarvan lezen. Een iPhone gebruiken zonder iCloud-account is ongetwijfeld lastig en misschien wel onmogelijk. Dus?

Door Anoniem: Waarom als we zover gaan als een opdracht script maken in een tussen applicatie gaan we niet gewoon een stap verder met een werkelijk private deployed applicatie middels een gratis developer licentie waar we 100% zelf de code van beheren?
Persoonlijk heb ik daar, in elk geval op dit moment, geen trek in.

Belangrijke tip voor reageerders: Laat links liggen wat ik schreef (en verpest mijn draad niet) of doe er je voordeel mee.
10-02-2024, 17:55 door Erik van Straten
Door Anoniem: Erik, ik heb de door jou getipte privacu qr scanner geprobeerd, maar deze laat niet meer info zien dan mijn ingebouwde camera app qr scanner (Android)
Da's mooi voor jou.

Kennelijk val jij niet onder de groep mensen die, mogelijk omdat hun "handige neefje van 14" dat aanraadde, een kwaadaardige QR-scanner app hebben geïnstalleerd. Of dat hebben gedaan omdat hun (oude) Android smartphone meteen Chrome of hun bank-app opent als daar een QR-code mee gescand wordt.
10-02-2024, 22:07 door Anoniem
Door Erik van Straten:
Als je software schrijft, of door anderen geschreven software inzet, die van glibc gebruik maakt - en daar serieuze kwetsbaarheden in blijken te zitten (https://blog.qualys.com/vulnerabilities-threat-research/2024/01/30/qualys-tru-discovers-important-vulnerabilities-in-gnu-c-librarys-syslog), hoe weet je dan of de uiteindelijk door jou gebruikte glibc code (hopelijk niet statisch gelinked) veilig is?

De kans dat er kwetsbaarheden in de hierboven door mij zelf geschreven "WYSIWYG" listings zitten, lijkt mij klein. Verder kan ik niet meer doen dan hopen dat kwaadwillenden niet eerder kwetsbaarheden in de Opdrachten app of "taken" vinden (en uitbuiten) dan dat Apple (of responsible disclosende externe onderzoekers) die kwetsbaarheden vindt en patcht.
Ik heb mijn eigen OSINT feeds alsmede vanuit bedrijf team aan engineers on payroll (Tatvasoft) dus ben redelijk snel op de hoogte van dit soort zaken. Het blijven natuurlijk zerodays dus je loopt altijd achter feiten aan maar gaat mij erom dat je eigen software weet welke onderdelen zijn gebruikt en kan patchen succes met door andere gemaakte software en hoe meer lagen qua afhankelijkheid er tussen hoe hoger het risico.

Door Erik van Straten:
Als je dat risico wilt beperken, kun je het beste de Opdrachten app proberen te verwijderen. En als dat niet mogelijk is, geen iPhone of iPad gebruiken.
Die is er al af inderdaad kan simpel weg deinstalleren gelukkig voor mijzelf.

Door Erik van Straten:
Geen idee. Ik gebruik lockdown mode niet, omdat ik mij -in de basis- wil gedragen als gewone (maar wel verstandige) Apple en Android gebruikers.
Verbaast me enigzins dat je het niet gebruikt maar respecteer je keuze.
De vraag was meer gericht voor geval mensen het wel willen gebruiken in combinatie met.

Door Erik van Straten:
Wil je dat Opdrachten juist wel of juist niet in lockdown mode werkt?
Voor mij persoonlijk maakt het niet uit of het ja of nee is. Voor anderen kan het handig zijn om het wel te weten.
Straks is dat hele ding geschreven en komt men er achter dat het niet werkt in lockdown modus.
Nogmaals ik weet het zelf ook niet daarom dat ik het vroeg wil andere tijd besparen als het dus wel conflicteerd.

Door Anoniem:
Nee. Sterker, ik ga ervan uit dat dit gebeurt. Ook als je geen gebruik maakt van de Opdrachten app. Daarbij, zoals ik al schreef: kennelijk worden Opdrachten in het iCloud-account van de user opgeslagen. Apple weet nu dat ik een "Vergrendel" en een "QR-scanner" Opdracht gebruik en kan de broncode daarvan lezen. Een iPhone gebruiken zonder iCloud-account is ongetwijfeld lastig en misschien wel onmogelijk. Dus?
Geen iCloud hier heb een VPN met firewall er tussen hangen die alle netwerk verkeer onderschept alsmede restricties in de WebKit Feature Flags. Enige moment dat er connectie is als de software geupdate moet worden middels MDM, DDM. Voorkomt natuurlijk niet bepaalde low level on chip telemetry die ook al zonder iCloud wordt gestuurd bij de updates maar ja kan niet alles voorkomen helaas.

Maar eerlijk heb ik dan dus over dat stukje van je heen gelezen. En dat is mijn fout maar bedankt voor toch nog herhalen van je toelichting.


Door Erik van Straten:
Persoonlijk heb ik daar, in elk geval op dit moment, geen trek in.
Ok fair enough iemand kan vast wel het gauw namaken in een GPT of alternatief als ze dat willen dan.

Bedankt voor je tijd en de toelichting.
11-02-2024, 09:42 door Anoniem
Voor de QR-Code:

Open Shortcuts
Selecteer onderin Gallery
Zoek op: Scan
En Selecteer: Scan a QR code and copy the text.

Vertaal de Engelse woordjes naar Nederlands als je het niet snapt.
11-02-2024, 11:03 door Anoniem
tl;dr "Helaas heb ik, voor Android, geen vergelijkbaar alternatief gevonden zoals hieronder beschreven voor Apple apparaten."
Met Firefox kun je ook offline de code scannen. Hierna kun je zelf beslissen wat je doet.

Overigens bloedirritant dat deze functie (wel) met één klik te bereiken is. Meest logische/wenselijke zaken zijn dit niet, maar zo'n functie die niemand gebruikt dan weer wel.
11-02-2024, 13:14 door Erik van Straten
Door Anoniem:
Door Erik van Straten: Geen idee. Ik gebruik lockdown mode niet, omdat ik mij -in de basis- wil gedragen als gewone (maar wel verstandige) Apple en Android gebruikers.
Verbaast me enigzins dat je het niet gebruikt maar respecteer je keuze.
Ik streef naar een veiliger internet. Daarbij gaat mijn aandacht uit naar iedereen die geen t/m redelijke digitale vaardigheden heeft. Alles daarboven, zoals waarschijnlijk jij (en ik), redden zichzelf wel.

Lockdown mode is niet bedoeld voor doorsnee internetters. Daarmee kun je jezelf buitensluiten als je niet goed uitkijkt, en je legt jezelf flinke beperkingen op. Hoewel het voor mijzelf persoonlijk best verstandig zou kunnen zijn om dat in te schakelen, doe ik dat dus bewust niet. Om dezelfde reden installeer ik geen alternatief OS op mijn Google Pixel smartphone en gebruik ik geen Raspberry Pi voor DNS-filtering o.i.d. en gebruik ik een refurbished iPhone SE2 (nog wel updates, maar allesbehalve state-of-the-art). Practice what you preach dus.

Het is beslist niet het geval, maar internet zou, voor de grote meerderheid van haar gebruikers (inclusief absolute beginners), redelijk veilig moeten zijn bij het gebruik van niet al te oude hardware plus besturingssystemen en applicaties met default instellingen.

Dat zelfs redelijke basisbeveiliging niet standaard is, er soms zelfs flink voor betaald moet worden (zoals bij Microsoft E5) en er een hoop junk verkocht wordt die het er helemaal niet veiliger op maakt (in tegendeel, denk o.a. aan Fortinet en Avanti, maar ook testclubs die claimen dat virusscanners 100% ITW malware detecteren) is een ronduit schandalig verdienmodel gebaseerd op misleiding. Zie ook mijn eerdere bijdrage over het pure winstbejag van Big Tech. Zij suggereren dat het met internet prima gesteld is, maar als je geen securityexpert bent kun je zo de Sjaak zijn.

Door Anoniem: Bedankt voor je tijd en de toelichting.
Insgelijks!
11-02-2024, 20:19 door Erik van Straten - Bijgewerkt: 11-02-2024, 20:20
Correctie: in mijn laatste reactie hierboven schreef ik onbedoeld Avanti, ik bedoelde Ivanti.
11-02-2024, 20:33 door Erik van Straten
Door Anoniem: [...]
Zoek op: Scan
En Selecteer: Scan a QR code and copy the text.
[...]
Ik heb mijn iPhone op Engels gezet, en vóór en ná de iOS update van "17.3 (21D50)" naar "17.3.1 (21D61)" gekeken, maar als ik in de "Gallery" (van "Shortcuts") zoek naar "Scan" zie ik meerdere resultaten, maar slechts één waar "QR" in vóórkomt:
Scan QR code or Barcode

Als ik zoek naar QR zijn er twee resultaten:
Scan QR code or Barcode
Generate QR Code

In welke iOS of iPadOS versie zag jij "Scan a QR code and copy the text."?
11-02-2024, 20:48 door Erik van Straten
Door Anoniem: Met Firefox kun je ook offline de code scannen. Hierna kun je zelf beslissen wat je doet.

Overigens bloedirritant dat deze functie (wel) met één klik te bereiken is. Meest logische/wenselijke zaken zijn dit niet, maar zo'n functie die niemand gebruikt dan weer wel.
Eens met dat laatste. Als ik een nieuw tabblad open zie ik, rechtsboven, wel het QR-scan icoontje, maar ontbreken de drie verticale puntjes om het menu te openen (sowieso al omslachtig) - om het submenu met bookmarks te kunnen openen.

M.b.t. tot QR-codes scannen vanuit Firefox: van die app heb ik de permissie om de camera te gebruiken verwijderd, dus dat kan helemaal niet zomaar. Bij mij is dat stomme scan-icoontje dus ook nog eens totaal zinloos.
Reageren
Ondersteunde bbcodes
Bold: [b]bold text[/b]
Italic: [i]italic text[/i]
Underline: [u]underlined text[/u]
Quote: [quote]quoted text[/quote]
URL: [url]https://www.security.nl[/url]
Config: [config]config text[/config]
Code: [code]code text[/code]

Je bent niet en reageert "Anoniem". Dit betekent dat Security.NL geen accountgegevens (e-mailadres en alias) opslaat voor deze reactie. Je reactie wordt niet direct geplaatst maar eerst gemodereerd. Als je nog geen account hebt kun je hier direct een account aanmaken. Wanneer je Anoniem reageert moet je altijd een captchacode opgeven.