Taggat med: python

Falsk python-infrastruktur levererade skadlig kod

Python-logotyp

Minst två falska servrar som tillhandahåller paket och uppdateringar till programspråket har identifierats. Och det var via top.gg-forumets hackade Github-sida som detta uppdagades via en så kallad supply-chain attack.

Skärmdump som visar på commiten där pypihosted.org ändras till den skadliga sidan pythonhosted.org:

pythonhosted.org supply chain attack

Bildcredd: Checkmarx

Efter att colorama-modulen importerats enligt ovan skärmdump så körs skadlig kod som sedan försöker identifiera lösenord, nycklar, sessioner och annat intressant. Även så installeras en registernyckel i Windows som gör att den skadliga koden startas igen vid omstart.

Det är i dagsläget oklart hur många som drabbats av denna bakdörr, men top.gg-forumet har 170k användare. Även har andra repos på Github hackats såsom en TikTok-viewbot, men gör man en sökning på github i dagsläget så finns det inga referenser kvar till pypihosted.org förutom denna Solana-Sniper.

Följande IOC:er (Indicators of Compromise) kan användas:

pypihosted.org/version
piphosted.org
files.pypihosted.org
files.pythanhosted.org

162.248.101.215
162.248.100.217
162.248.100.117

0c1873196dbd88280f4d5cf409b7b53674b3ed85f8a1a28ece9caf2f98a71207
35ac61c83b85f6ddcf8ec8747f44400399ce3a9986d355834b68630270e669fb
c53b93be72e700f7e0c8d5333acd68f9dc5505fb5b71773ca9a8668b98a17ba8

https://files.pythanhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.5.tar.gz
https://files.pypihosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz
https://files.pypihosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.3.tar.gz

Docker SBOM

Docker har precis släppt en ny funktion som gör det möjligt att skapa en Software Bill Of Materials (SBOM) på en docker-image. Förutom att det är ett krav på amerikanska myndigheter att upprätta en SBOM så är det säkerhetsmässigt mycket bra att veta exakt vilka beroenden som återfinnes i ett IT-system eller mjukvara. Vid sårbarheter såsom den i log4j går det snabbare och enklare att identifiera var sårbara bibliotek återfinnes.

syft

Dockers sbom-funktion bygger på open-source projektet Syft. Och följande paket stödjer docker sbom/syft att identifiera i containers:

  • Alpine (apk)
  • Dart (pubs)
  • Debian (dpkg)
  • Go (go.mod, Go binaries)
  • Java (jar, ear, war, par, sar)
  • JavaScript (npm, yarn)
  • Jenkins Plugins (jpi, hpi)
  • PHP (composer)
  • Python (wheel, egg, poetry, requirements.txt)
  • Red Hat (rpm)
  • Ruby (gem)
  • Rust (cargo.lock)

Och för att skapa själva rapporten så finns ett antal olika SBOM-format såsom spdx, cyclonedx, json och text. Jag testade att snabbt jämföra debian med alpine utan några extra paket och då såg det ut så här:

  • Alpine – 14 paket (apk)
  • Debian – 96 paket (deb)
  • Alma Linux – 153 paket (rpm)
  • Rocky Linux – 151 paket (rpm)

Och tittar vi på hur en text-rapport från alpine:latest ser ut som är skapad med hjälp av kommandot docker sbom alpine:latest

Syft v0.43.0
 ✔ Loaded image
 ✔ Parsed imag
 ✔ Cataloged packages      [14 packages]

NAME                    VERSION      TYPE
alpine-baselayout       3.2.0-r18    apk
alpine-keys             2.4-r1       apk
apk-tools               2.12.7-r3    apk
busybox                 1.34.1-r5    apk
ca-certificates-bundle  20211220-r0  apk
libc-utils              0.7.2-r3     apk
libcrypto1.1            1.1.1n-r0    apk
libretls                3.3.4-r3     apk
libssl1.1               1.1.1n-r0    apk
musl                    1.2.2-r7     apk
musl-utils              1.2.2-r7     apk
scanelf                 1.3.3-r0     apk
ssl_client              1.34.1-r5    apk
zlib                    1.2.12-r0    apk

Hjälptext för docker sbom:

Observera att docker sbom bara finns i Docker Desktop från version 4.7.0 än så länge. Men givetvis går syft att ladda hem och köra separat.

WEASEL – Ny bakdörr från Facebook

Facebook har släppt ett intressant nytt implantat (bakdörr) vid namn WEASEL. Mjukvaran är skriven i Python3 och utnyttjar DNS samt AAAA-records för att skicka och ta emot beacons. Den behöver inte heller några externa beroenden och kan således köras under de flesta operativsystem.

Ett implantat är en typ av mjukvara som används av angripare för att utföra olika uppgifter och kommunicera in och ut ur nätverk. WEASELs klientdel har inga direkta inbyggda funktioner förutom att sköta kommunikationskanalen, självradering och intervall för kommunikation. Vill du ha mer funktioner så får du själv bygga till det eftersom WEASEL stödjer exekvering (eval) av Python3-kod.

Fokus vid utvecklingen av WEASEL har varit på att försöka försvåra IT-forensiska undersökningar och därför finns ej stöd för persistens. Mjukvaran stödjer inte heller att flertalet operatörer jobbar mot samma instans.

För kryptering av data över DNS så används AES-128 i CTR mode samt Diffie-Hellman för nycklar. Oklart hur stödet för Windows ser ut men går säkert att åstadkomma med Pyinstaller.

Här hittar du WEASEL på Github:

Jag har tyvärr ej testat WEASEL ännu men har det på min todo-lista. Om du gör det eller redan testat så lämna gärna en kommentar om dina erfarenheter.

Bild på vessla av Keven Law – originally posted to Flickr as On the lookout…, CC BY-SA 2.0

Dela filer anonymt med OnionShare

Sedan ett år tillbaka innehåller det anonyma operativsystemet Tails en intressant komponent vid namn OnionShare. OnionShare gör att du på ett enkelt sätt kan dela med dig av filer anonymt (stödjer även stora filer).

Förutom Tails så fungerar OnionShare på Mac, Linux samt Windows. Den version som skickas med Tails 3.6.1 är 0.9.2 och ser ut enligt följande:

Väljer man att ladda hem den senaste versionen till macOS som är 1.3 så är gränssnittet förbättrat med bl.a. nedladdningsräknare samt fler inställningar såsom möjligheten att skapa en ”Stealth Onion Service”, dvs en .onion-domän som inte annonseras ut till katalogtjänsterna i Tor-nätverket. Nackdelen med det är dock att förutom den url du använder för att dela en eller flera filer även måste dela en HidServAuth-sträng som ska in i torrc-konfigfilen.

Skärmdump när jag delar en fil via OnionShare v1.3 på macOS:

Och för den som besöker en URL via Tor Browser som delas ut via OnionShare, så ser det ut enligt följande:

OnionShare är utvecklat i programspråket Python av Micah Lee och återfinnes förutom i Tails på följande sajt:

Bra och tänka på är att när du startar OnionShare så startar även Tor upp i bakgrunden och ansluter till Tor-nätverket (precis som Tor Browser).

Säkerheten

Hur är det med säkerheten då? Jo, först och främst så är det relativt enkelt att göra en fingerprint på den 404-sida som presenteras om man upptäcker en OnionShare-webbserver. Även så sätter servern OnionShare i http-headern.

Men försöker en angripare forcera den sökväg som unikt genereras med två slumpmässiga ord från en ordlista med 7777 st ord så stöter man på problem. För efter 20 försök så stänger nämligen webbservern ner och visar följande meddelande hos den som delar ut filer via OnionShare:

Funktionen build_slug() som slumpar en URL-slug ser ut enligt följande:

Windows 8 lösenord, RC4, Google Wallet och MSB

Vi sammanfattar här några av de nyhterna vi tweetat ut de senaste dagarna:

Du följer väl oss på Twitter? https://twitter.com/kryptera

Krypto från Google: Keyczar

Google har nyligen släppt ett bibliotek för att lätt hantera kryptografiska funktioner såsom nyckelhantering,

kryptering och dekryptering för Java samt Python.

Exempel på hur Keyczar används för att kryptera:

	Crypter crypter = new Crypter("/path/to/your/keys");
	String ciphertext = crypter.encrypt("Secret message");

Lätt va?

Läs mer på Google Security bloggen eller på keyczar.org

TomLib (LibTomCrypt)

Är du less på att använda OpenSSL när du skriver C-kod? Då tycker jag att du ska testa TomLib vilket är ett antal C-bibliotek som hjälper dig med dina kryptografiskt relaterade beräkningar:

LibTom Projects are public domain open source libraries written in portable C. The libraries supports a variety of cryptographic and algebraic primitives designed to enable developers and students to pursue the field of cryptography much more efficiently. Currently the projects consist of three prominent libraries (LibTomCrypt, LibTomMath and TomsFastMath) which form the bulk of the source contributions.

Along with the source contributions, the LibTom projects also aim to serve an educational capacity. The libraries are very well commented, with clear and concise source. The code itself tells quite a story for those interested in learning how modern cryptography ticks. However, they would not be complete without the massive amount of documentation that accompanies the projects. Currently there are over 600 pages of LibTom Project documentation spread throughout the five projects.

LibTomCrypt är skrivet av Tom St Denis och första versionen sågs December 2001 och kallades då för MyCrypt.

Ladda hem LibTomCrypt: http://libtom.org/?page=download&newsitems=5&whatfile=crypt

Det finns även en portering till Python här: http://libtom.org/files/pyTomCrypt-v0.16.zip