Toon posts:

KeePass Secure Start (n.a.v. NCSC Waarschuwing)

Pagina: 1
Acties:

  • Redlihcs
  • Registratie: April 2001
  • Laatst online: 19-03 16:49
Naar aanleiding van tweakers artikel: "NCSC waarschuwt voor kwetsbaarheid in KeePass die ontwikkelaar niet wil dichten" heb ik een klein programma geschreven om het risico te minimaliseren.

Persoonlijk vind ik het een nogal groot risico dat er ongemerkt een export gemaakt kan worden van alle data in KeePass zonder dat de gebruiker dit merkt of ervan op de hoogte wordt gesteld.

Het programma welke ik gemaakt heb controleert het configuratie bestand. Mijn inziens is het uitzetten van het "trigger system" voldoende. Alvorens KeePass op te starten voert KeePassSecureStart.exe deze controle uit.

Meer informatie, programma (incl source code) kan hier worden gevonden.

Alle feedback wordt op prijs gesteld.

Deze instelling wordt gecontroleerd:

Hier had wat zinnigs kunnen staan...


  • bw_van_manen
  • Registratie: April 2014
  • Laatst online: 20-03 17:01
De triggers kunnen natuurlijk ook een normaal nut hebben. Toen ik nog KeePass gebruikte had ik triggers ingesteld om direct een aantal veelgebruikte databases te openen, wat niet kan als een applicatie ze bij het starten van KeePass uitschakelt.

Niet dat ik direct een betere oplossing weet voor je probleem, maar deze oplossing zou mij behoorlijk irriteren.

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 00:58

DataGhost

iPL dev

Ik gebruik triggers om mijn database automatisch te syncen over SSH dus uitschakelen is voor mij ook geen optie. Aangezien ik niet vaak wijzigingen aanbreng in de configuratie is het natuurlijk een optie om alleen de global config te gebruiken en geen user config. Die kan dan ook niet aangepast worden door aanvallers die op user-niveau toegang hebben. Als er toegang is op systeem-niveau werkt ook jouw programmaatje niet meer dus in dat opzicht is er geen verschil.

Mogelijke alternatieven zijn delen van de configuratie verplaatsen naar de globale configuratie. Ik heb dit zelf niet geprobeerd dus ik ga even af op de documentatie en mijn interpretatie ervan, die verkeerd kan zijn natuurlijk. In de globale config kan je instellen dat PreferUserConfiguration false moet zijn, alle configuratie-items die in de globale config staan gaan dan voor de items in de user-config. Of Je kan daarmee alleen de <TriggerSystem>- of <Triggers>-tag kan overriden en de rest kan laten voor wat het is weet ik niet zeker.
Nog een alternatief is om daar een "enforced configuration file" voor te gebruiken, dat doet volgens mij min of meer hetzelfde als bovenstaande met de globale config, maar dan op een makkelijkere manier eigenlijk bedoeld voor netwerk-admins.

Edit: okee, net even gekeken
XML: KeePass.config.enforced.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Application>
        <TriggerSystem MergeContentMode="Replace">
            <Triggers>
                <!-- Mijn triggers hier -->
                <Trigger>
                    <!-- Trigger 1 -->
                </Trigger>
                <Trigger>
                    <!-- Trigger 2 ... -->
                </Trigger>
            </Triggers>
        </TriggerSystem>
    </Application>
    <Security>
        <Policy>
            <ExportNoKey>false</ExportNoKey>
            <PrintNoKey>false</PrintNoKey>
            <ChangeMasterKeyNoKey>false</ChangeMasterKeyNoKey>
            <EditTriggers>false</EditTriggers>
        </Policy>
    </Security>
</Configuration>

Dit zorgt ervoor dat alle triggers die ik in mijn user-config had zijn verdwenen en vervangen door de triggers die ik daar heb neergezet. Komt door de MergeContentMode="Replace". Wijzigen van de triggers via de UI en het exporteren en printen zonder master password zijn allebei onmogelijk gemaakt, alsmede het wijzigen van het master password zonder het master password. De file is opgeslagen als KeePass.config.enforced.xml in de programmamap en niet writable zonder UAC. Maakt het ook nog eens enorm veel makkelijker om die stukken config te syncen naar nieuwe KeePass-installs :)

Met deze worden er helemaal geen triggers geladen, sowieso het trigger-systeem uitgeschakeld zonder optie om die in te schakelen en bovendien de passwordless export uitgeschakeld, ook zonder optie om die weer in te schakelen:
XML: KeePass.config.enforced.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Application>
        <TriggerSystem MergeContentMode="Replace">
            <Enabled>false</Enabled>
        </TriggerSystem>
    </Application>
    <Security>
        <Policy>
            <ExportNoKey>false</ExportNoKey>
        </Policy>
    </Security>
</Configuration>

Dit overschrijft vervolgens wel de relevante tags in de user-config, dus als je ermee gaat klooien eerst even een backup maken als je bijvoorbeeld veel triggers ingesteld hebt staan, anders zijn ze verdwenen :+
Wat ik nu zelf heb gedaan is al m'n triggers en aangepaste config in de enforced config gezet zodat ik die makkelijk over kan zetten naar andere machines zonder dat er gezeik is met lokale paden die verschillen enzo :) In het bovenste code-blok dus, deze post is een beetje een puinhoop geworden door de vele edits 8)7

Edit zoveel: kijkend naar jouw source code doe je alleen een check of het TriggerSystem uitgeschakeld is voordat je het programma laat starten. Daar zit nog een race attack in, tussen het checken en het daadwerkelijk starten van het programma kan een aanvaller de configuratie vervangen door zijn eigen ding. Ook kan malware gewoon KeePass killen en opnieuw opstarten zonder via jouw programmaatje te gaan dus de meeste mensen gaan er niet veel baat bij hebben of iets van merken, aangezien veruit de meeste mensen KeePass permanent (locked) in de tray zullen hebben draaien.

[Voor 58% gewijzigd door DataGhost op 31-01-2023 13:14]


  • NimRod1337
  • Registratie: November 2002
  • Laatst online: 23:46
Het exporteren kan alleen als de db geopend is, heb je getest of dit zo is of niet? Voor je dit maakt en dan maar alle triggers blokkeert zou ik dat willen testen. Met het uitzetten van een vinkje is passwordless exporteren volgens mij geblokkeerd. Dat zou voldoende moeten zijn. Waarom dat vinkje aan staat, is een opvatting en ben ik het ook niet mee eens.

  • Redlihcs
  • Registratie: April 2001
  • Laatst online: 19-03 16:49
@bw_van_manen en @DataGhost : Zeker kunnen triggers nut hebben. Ik gebruik ze niet en dit was / is voor mij een eenvoudige check en dus oplossing. 100% dicht is het ook niet zoals DataGhost terecht opmerkt (Race Attack). Maar het programma is eenvoudig aan te passen om te controleren of alleen jou triggers er in zitten.

@DataGhost: Je uitgebreide uitleg over het aanpassen van de config files (enforced) ga ik nog eens goed naar kijken. Misschien is en mijn check programma en de door jou beschreven aanpassingen wel een goede aanpak (een extra controle op een dergelijk belangrijk bestand kan geen kwaad) :)
Alle edits zijn de leesbaarheid inderdaad niet ten goede gekomen. ;) misschien een idee om je text op te schonen. Ik denk dat jou aanvulling zeer bruikbaar kan zijn voor iedereen die KeePass gebruikt.

@NimRod1337 : Klopt het exporteren kan alleen als de DB open is, deze open je en daarna treed het trigger systeem in werking en kunnen er ongewenste acties worden uitgevoerd.

Hier had wat zinnigs kunnen staan...


  • NimRod1337
  • Registratie: November 2002
  • Laatst online: 23:46
Redlihcs schreef op vrijdag 3 februari 2023 @ 10:50:

@NimRod1337 : Klopt het exporteren kan alleen als de DB open is, deze open je en daarna treed het trigger systeem in werking en kunnen er ongewenste acties worden uitgevoerd.
Daar is een vinkje voor om dat te kunnen blokkeren, tijdens geopend zijn. Of blokkeren zeg ik niet goed: verplicht master pw opgeven. Waarom dat vinkje aan staat (aan = geen pw nodig) is mij ook een raadsel.

[Voor 14% gewijzigd door NimRod1337 op 03-02-2023 12:57]


  • jurroen
  • Registratie: Mei 2012
  • Laatst online: 17:53

jurroen

Security en privacy geek

Excuus als dit een wat ongewenste vraag is: waarom KeePass gebruiken als KeePassXC er is?

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 00:58

DataGhost

iPL dev

jurroen schreef op vrijdag 3 februari 2023 @ 23:32:
Excuus als dit een wat ongewenste vraag is: waarom KeePass gebruiken als KeePassXC er is?
Daar zou je op zich een eigen topic voor kunnen maken maar ik vraag me af hoeveel discussiewaarde er is. De vraag kan ik ook net zo goed omdraaien. Maar ik heb net even heel kort gekeken naar KeePassXC en het lijkt erop dat ik mijn database dan niet via SSH kan syncen en cross-platform kan gebruiken zoals ik nu doe, dus dat is gewoon direct een showstopper. Als ik nu op device 1 wijziging X doe en op device 2 wijziging Y en daarna pas ga syncen, krijg ik uiteindelijk op beide devices een database met zowel wijziging X als Y zonder het risico dat ik een van beide wijzigingen verlies. Kennelijk moet je bij KeePassXC het syncen zelf (laten) doen dmv een simpele file sync (ik kan het fout hebben hoor) dus als device 1 offline is geweest tijdens wijziging X en niet heeft kunnen syncen of een willekeurige andere reden waarom het syncen op dat moment niet mogelijk was, loop je het risico dat X of Y verdwijnt afhankelijk van welk apparaat uiteindelijk eerder met de clouddienst synct als je niet oplet. Ik vind het fijn daar niet over na te hoeven denken, met mijn database op 4 devices en m'n eigen cloud.

  • NimRod1337
  • Registratie: November 2002
  • Laatst online: 23:46
jurroen schreef op vrijdag 3 februari 2023 @ 23:32:
Excuus als dit een wat ongewenste vraag is: waarom KeePass gebruiken als KeePassXC er is?
Idem: waarom wel?

  • jurroen
  • Registratie: Mei 2012
  • Laatst online: 17:53

jurroen

Security en privacy geek

DataGhost schreef op zaterdag 4 februari 2023 @ 12:35:
[...]

Daar zou je op zich een eigen topic voor kunnen maken maar ik vraag me af hoeveel discussiewaarde er is. De vraag kan ik ook net zo goed omdraaien. Maar ik heb net even heel kort gekeken naar KeePassXC en het lijkt erop dat ik mijn database dan niet via SSH kan syncen en cross-platform kan gebruiken zoals ik nu doe, dus dat is gewoon direct een showstopper. Als ik nu op device 1 wijziging X doe en op device 2 wijziging Y en daarna pas ga syncen, krijg ik uiteindelijk op beide devices een database met zowel wijziging X als Y zonder het risico dat ik een van beide wijzigingen verlies. Kennelijk moet je bij KeePassXC het syncen zelf (laten) doen dmv een simpele file sync (ik kan het fout hebben hoor) dus als device 1 offline is geweest tijdens wijziging X en niet heeft kunnen syncen of een willekeurige andere reden waarom het syncen op dat moment niet mogelijk was, loop je het risico dat X of Y verdwijnt afhankelijk van welk apparaat uiteindelijk eerder met de clouddienst synct als je niet oplet. Ik vind het fijn daar niet over na te hoeven denken, met mijn database op 4 devices en m'n eigen cloud.
De reden waarom wel: KPXC heeft deze security-issue niet. En de houding van de ontwikkelaar zet ook aan het denken. Neemt niet weg dat @Redlihcs puik werk heeft afgeleverd!

Inhoudelijk reageer ik verder in het juiste topic (my bad, zie nu pas dat die bestaat).

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 00:58

DataGhost

iPL dev

De houding van de ontwikkelaar zet m.i. helemaal niet aan het denken. Ook in de thread erover op z'n eigen SF-pagina wordt de mogelijkheid voor enforced config genoemd waarmee dit dicht te timmeren is. Dus de mogelijkheden om dat security-issue te dichten zijn al gewoon aanwezig en daarom is het niet nodig om functionaliteit uit te schakelen die ook legitiem gebruikt wordt. Het ontbreken van een feature als pluspunt noemen, tsja. Een oude auto zonder airco zal nooit kosten hebben aan airco-onderhoud alleen als je in hete zomers op de ring van Antwerpen ofzo ramvast staat is het toch wel fijn als je er wel een had.

  • Redlihcs
  • Registratie: April 2001
  • Laatst online: 19-03 16:49
Linkje naar de KeePass help pagina voor het instellen van Enforced Configuration: https://keepass.info/help/kb/config_enf.html.

Voor een normale gebruiker van KeePass zal dit te ingewikkeld zijn om dit te gebruiken. Mijn inziens zou een waarschuwing bij het exporteren van de database (in welke vorm dan ook) een must zijn. Helaas wil de ontwikkelaar ook hier niet aan zoals ik het begrepen heb.

Mijn computer is jaren geleden een keer besmet geweest met ongewenste software. Hierbij zijn wachtwoorden van mij ongemerkt gestolen. Ik kan je wel vertellen dat dit een behoorlijk onbehagelijk en onzeker gevoel geeft. Daarom ben ik er ook wel erg gebrand op om mijn KeePass bestand veilig te houden.

Hier had wat zinnigs kunnen staan...


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 00:58

DataGhost

iPL dev

download: KeePass Password Safe 2.53.1
Uiteindelijk is toch de optie om zonder master-password zaken te exporteren uitgeschakeld, nu wordt altijd om een master password gevraagd. Komt dus min of meer neer op een enforced config van <ExportNoKey>false</ExportNoKey> behalve dat heel de keuzemogelijkheid is weggehaald.

  • Redlihcs
  • Registratie: April 2001
  • Laatst online: 19-03 16:49
Dat is goed nieuws, kan mijn programmaatje gelijk overboord.

Hier had wat zinnigs kunnen staan...

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee