- 2005 yılında geliştirilmiş, belgelenmemiş bir sabotaj çerçevesi olup, seçilen hesaplama yazılımlarının bellek içi kodunu yamalayarak sayısal sonuçları çarpıtmak üzere tasarlanmıştır
svcmgmt.exedışarıdan bir servis sarmalayıcısı gibi görünse de içinde Lua 5.0 sanal makinesi, şifrelenmiş bytecode, yardımcı DLL’ler vefast16.syssürücüsünü barındırır; böylece görev bazlı yükleri ayrı ayrı çalıştırırfast16.sys, önyüklemede başlayan bir dosya sistemi sürücüsü olarak çok erken aşamada yüklenir; ardından Intel C/C++ derleyicisiyle oluşturulmuş.EXEdosyalarını seçip çekirdek düzeyinde bellek yamaları uygular- Yama motoru 101 kural ile çalışır; özellikle FPU komut bloklarını kullanarak iç dizi değerlerinin ölçeklendirmesini değiştirir ve inşaat mühendisliği, fizik, süreç simülasyonu gibi özel hesaplama araçlarını hedeflediğine dair iz bırakır
- ShadowBrokers sızıntısındaki
fast16işaretiyle birlikte değerlendirildiğinde, Stuxnet öncesi dönemde hassas endüstriyel sabotajın gömülü betikleme, dar hedefleme ve çekirdek yaması birleşimiyle zaten var olduğu ortaya çıkıyor
Genel bakış ve tanımlama ipuçları
fast16, 2005 tarihli çekirdek bileşenlere sahip, belgelenmemiş bir siber sabotaj çerçevesidir;fast16.sys, yüksek hassasiyetli hesaplama yazılımlarını seçici biçimde hedef alarak bellekteki kodu yamalar ve hesaplama sonuçlarını çarpıtırsvcmgmt.exe, dışarıdan Windows 2000/XP döneminin sıradan bir servis sarmalayıcısı gibi görünse de içinde Lua 5.0 sanal makinesi ve servis giriş noktasının açtığı şifreli bir bytecode kapsayıcısı bulunur- Lua tabanlı kötü amaçlı yazılım araştırmasında, bytecode sihirli baytları
1B 4C 75 61, sürüm baytı,LUA_PATHve karakteristik C API kullanımı önemli ipuçları oldu; bu akış içindesvcmgmt.exetespit edildi svcmgmt.exeiçindekiC:\buildy\driver\fd\i386\fast16.pdbdizesi, servis yürütülebilir dosyası ile çekirdek sürücüsü projesini birbirine bağlayan adli bir ipucu oldu- 2017’deki ShadowBrokers sızıntısının
drv_list.txtdosyasında da aynı adlıfast16yer alıyor; bu dasvcmgmt.exeiçindeki PDB dizesi ile hassas sabotaj amaçlı sürücüyü tek bir çizgide birleştiriyor - ShadowBrokers tarafındaki kaçınma imzasında
fast16 *** Nothing to see here – carry on***ifadesi yer alıyor
Taşıyıcı yapı ve çalışma biçimi
svcmgmt.exe, komut satırı argümanlarına göre davranış değiştiren uyarlanabilir bir taşıyıcı olarak tasarlanmıştır- Argüman yok: Windows servisi olarak çalışır
-p:InstallFlag = 1olarak ayarlanır ve servis olarak çalışır-i:InstallFlag = 1olarak ayarlanır ve Lua kodunu çalıştırır-r: kurulum bayrağı olmadan Lua kodunu çalıştırır- Diğer
<filename>: özgün komut ile-rargümanı eklenmiş komut olmak üzere iki alt süreç oluşturan bir Wrapper/Proxy modunda çalışır
- Dahili depoda şifreli Lua bytecode’u, yardımcı DLL’ler ve
fast16.syssürücüsü birlikte bulunur - Lua ortamı varsayılanın ötesinde genişletilmiştir;
wstringmodülü, yerleşik simetrik şifreleme işlevib, Windows NT dosya sistemi, kayıt defteri, servis kontrolü ve ağ API bağlama modülleri sunar - Harici taşıyıcı ikili dosya görece sabit tutulurken, görev bazlı yükler şifreli biçimde ayrıştırılarak ortama ve operasyon hedeflerine göre yeniden kullanılabilir hale getirilmiştir
svcmgmt.exetanımlayıcıları şöyledir- Dosya adı
svcmgmt.exe - Boyut
315,392 bytes - MD5
dbe51eabebf9d4ef9581ef99844a2944 - SHA1
de584703c78a60a56028f9834086facd1401b355 - SHA256
9a10e1faa86a5d39417cae44da5adf38824dfb9a16432e34df766aa1dc9e3525 - Tür
PE32 executable for MS Windows 4.00 (console), Intel i386 - Bağlama zamanı
2005-08-30 18:15:06 UTC
- Dosya adı
Wormlet yayılımı ve kaçınma yapısı
svcmgmt.exe, birden fazla wormlet taşıyabilen küme mühimmat benzeri bir taşıyıcı gibi davranır; doğrulanan örnekte yalnızca bir SCM wormlet bulunur- Çalışma akışı; yapılandırma hazırlığı, geniş karakter dizisine dönüştürme, yetki yükseltme,
SvcMgmtservisinin kurulup başlatılması, koşullufast16.sysyerleştirme, wormlet salımı, ilk gecikme ve başarısızlık eşiğine ya da harici sonlandırma koşuluna kadar tekrar eden çalıştırma döngüsünü içerir - SCM wormlet, Windows 2000/XP ortamlarını hedefler; zayıf ya da varsayılan yönetici parolası ayarlanmış dosya paylaşımlarını kullanarak ağ sunucularını bulur, yükü kopyalar ve ardından uzak servisi başlatır
- Yayılım, özel bir ağ protokolüne değil; servis kontrol API’si ve dosya paylaşım API’si gibi standart Windows yönetim işlevlerine dayanır
- Kurulumdan önce
ok_to_install(), ortamı denetlemek içinok_to_propagate()çağrısını yapar ve elle zorlama yoksa belirli güvenlik ürünlerinin kayıt defteri anahtarlarının varlığına göre yayılımın mümkün olup olmadığını belirler - Aşağıdaki kayıt defteri anahtarlarından herhangi biri varsa kurulum durdurulur; böylece izleme ortamlarına dağıtım yapılması önlenir
HKLM\SOFTWARE\Symantec\InstalledAppsHKLM\SOFTWARE\Sygate Technologies, Inc.\Sygate Personal FirewallHKLM\SOFTWARE\TrendMicro\PFWHKLM\SOFTWARE\Zone Labs\TrueVectorHKLM\SOFTWARE\F-SecureHKLM\SOFTWARE\Network Ice\BlackIceHKLM\SOFTWARE\McAfee.com\Personal FirewallHKLM\SOFTWARE\ComputerAssociates\eTrust EZ ArmorHKLM\SOFTWARE\RedCannon\FireballHKLM\SOFTWARE\Kerio\Personal Firewall 4HKLM\SOFTWARE\KasperskyLab\InstalledProducts\Kaspersky Anti-HackerHKLM\SOFTWARE\Tiny Software\Tiny FirewallHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Look n Stop 2.05p2HKCU\SOFTWARE\Soft4EverHKLM\SOFTWARE\Norman Data Defense SystemsHKLM\SOFTWARE\Agnitum\Outpost FirewallHKLM\SOFTWARE\Panda Software\FirewallHKLM\SOFTWARE\InfoTeCS\TermiNET
connotify.dllasgari bir raporlama kanalı görevi görür- Windows
AddConnectNotify()API’si ile kaydedilir ve RAS tabanlı yeni bir ağ bağlantısı oluştuğunda her seferinde çağrılır - Karmaşıklaştırılmış dizeleri çözerek named pipe
\\.\pipe\p577değerini elde eder, yerel pipe’a bağlanır, uzak/yerel bağlantı adlarını kaydedip çıkar - Bağımsız çalışan bir modül değildir; ana süreç tarafından kaydedilmesi gerekir
- Dosya adı
svcmgmt.dll - Boyut
45056 bytes - MD5
410eddfc19de44249897986ecc8ac449 - SHA1
675cb83cec5f25ebbe8d9f90dea3d836fcb1c234 - SHA256
8fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9 - Bağlama zamanı
2005-06-06 18:42:45 UTC - Tür
PE32 DLL (i386, 4 sections)
- Windows
Sürücü yapısı ve bellek yama yöntemi
fast16.sys, çerçevenin en güçlü bileşenidir; önyükleme başlangıç dosya sistemi sürücüsü olarak ayarlanmıştır ve disk sürücüsüyle birlikte çok erken bir aşamada yüklenir- Yapılandırması
Start=0,Type=2,SCSIsınıf grubudur ve kendisiniNTFS,FAT,MRxSMBüzerine ekler - İlk girişte
Session Manager\PrefetchParametersaltındakiEnablePrefetcherdeğerini 0 yaparak sonraki kod sayfası isteklerinin tüm dosya sistemi yığınından geçmesini sağlar - Basit XOR dize şifrelemesi ve
ntoskrnl.exetaramasıyla çekirdek API'lerini dinamik olarak çözer;\Device\fast16,\??\fast16ve özelDeviceType0xA57C değerini açığa çıkarır IoRegisterFsRegistrationChangeile etkin ve yeni dosya sistemi aygıtlarının üzerine worker device object ekler veIRP_MJ_CREATE,IRP_MJ_READ,IRP_MJ_CLOSE,IRP_MJ_QUERY_INFORMATION,IRP_MJ_FILE_SYSTEM_CONTROLile ilgili Fast I/O yollarını kancalar- Önyükleme anında yüklense de gerçek çekirdek düzeyi kod enjeksiyon motoru ancak
explorer.exeaçıldıktan sonra etkinleşir - Yama hedefi aynı anda iki koşulu da karşılamalıdır
- dosya adı
.EXEile biter - son PE bölüm başlığının hemen arkasında
Intelile başlayan yazdırılabilir bir ASCII dizesi bulunur
- dosya adı
- Bu koşul, Intel C/C++ derleyicisi ile derlenmiş çalıştırılabilir dosyaları hedef alır ve saldırganın hedef yazılımın araç zincirini bildiğini gösterir
- Koşullara uyan dosyalara bellek içi PE başlığı değişikliği uygulanır;
.xdatave.pdataadlı iki bölüm yeni baştan eklenir ve temiz bir kod kopyasını korumak için özgün kod bölümü baytları doldurulur fast16.systanımlama değerleri şöyledir- dosya adı
fast16.sys - boyut
44,580 bytes - MD5
0ff6abe0252d4f37a196a1231fae5f26 - SHA1
92e9dcaf7249110047ef121b7586c81d4b8cb4e5 - SHA256
07c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529 - tür
PE32 executable for MS Windows 5.00 (native), Intel i386, 5 sections - link zamanı
2005-07-19 15:15:41 UTC
- dosya adı
Kural tabanlı yama motoru ve hedef özellikleri
- Yama motoru, 101 kuraldan oluşan minimal bir durum tabanlı tarayıcıdır; dosya diskten okunurken desen eşleme ve değiştirme mantığıyla yürütme kodunu bellekte sessizce değiştirir
- Performansı korumak için 256 baytlık bir dispatch array ile bazı başlangıç baytlarını hızla eler, desen içinde wildcard kullanımına izin verir ve bazı kurallar durum bayraklarını ayarlayıp denetleyerek çok aşamalı değişiklik dizileri uygular
- Yama desenlerinin çoğu, x86 kodunda yürütme akışını ele geçiren veya etkileyen genel komut dizilerine karşılık gelir, ancak bunlardan biri çok daha büyük bir FPU komut bloğundan oluşur
- Bu FPU bloğu, hassas aritmetik ve iç dizi değerlerinin ölçeklenmesine adanmış koddur; tipik kötü amaçlı enjeksiyonlardan farklı bir karakter taşır
- Araştırmacılar yama kurallarını YARA imzalarının onaltılık desenlerine dönüştürüp aynı döneme ait yazılım külliyatına uyguladı; iki veya daha fazla desenle eşleşen dosya sayısı 10'dan azdı
- Eşleşen dosyaların ortak özelliği, inşaat mühendisliği, fizik ve fiziksel süreç simülasyonu gibi özel alan hesaplama araçları olmalarıydı
- FPU yaması, üç iç diziye aktarılan değerleri ölçekleyerek hesaplamaları ince biçimde değiştirir; bunun, hedefin yetkisiz erişim veya genel yayılım değil sayısal sonuçları manipüle etmek olduğunu gösterdiği düşünülüyor
- Kesin hedef ikili dosya ve iş yüklerinin tamamı doğrulanamadığı için dizilerin anlamı tam olarak belirlenemedi
- Hesaplamalar ayrı bir sistemde doğrulanırsa bu tür bir sabotaj başarısız olabilir, ancak aynı ağ ve güvenlik ortamını paylaşan birden çok sisteme aynı sürücü dağıtılırsa bağımsız doğrulama hesaplarının tutarsız çıkma olasılığı da azalır
- Ek bölümde, yama motorundan çıkarılmış bazı desenler aynen yer alıyor
48 89 84 24 9C 00 00 00 4B 0F 8F 79 FF FF FF 00D8 E1 D9 5D FC D9 04 0055 8B EC 83 EC 14 53 56 57 8B 3D ?? ?? ?? ?? 8B 0D 008D 1D ?? ?? ?? ?? 52 8D 05 ?? ?? ?? ?? 51 8D 15 ?? ?? ?? ?? 8D 0D ?? ?? ?? ?? 53 50 52 51 56 57 E8 ?? ?? ?? ?? 83 C4 38 EB 0E 83 EC 04 00B9 01 00 00 00 C1 E7 02 8B BF ?? ?? ?? ?? 8B D7 85 FF 8B 55 30 8B 45 30 D8 C9 8B 75 2C 00 9A 8B 00 00 00 1B 00 90 0F 94 C3 0B D8 33 D2 83 3D 00
Yama hedefi adayları
- Desen eşleştirme sonuçlarının en güçlü biçimde çakıştığı hedefler LS-DYNA 970, PKPM, MOHID oldu
- LS-DYNA 970, aşırı koşullarda malzeme ve yapı davranışını analiz eden bir mühendislik simülasyon yazılımıdır; otomobil çarpışmaları, patlamalar, darbeler, metal şekillendirme ve üretim süreçlerini kapsar ve otomotiv, havacılık, savunma-askeri araştırma, üretim ve malzeme biliminde kullanılmıştır
- 1976'dan beri geliştirilmektedir
- MD5
1d2f32c57ae2f2013f513d342925e972 - SHA1
2fa28ef1c6744bdc2021abd4048eefc777dccf22 - SHA256
5966513a12a5601b262c4ee4d3e32091feb05b666951d06431c30a8cece83010 - Dosya boyutu
5,225,591 bytes - Link zamanı
2003-10-24 16:34:57 UTC - Dosya türü
PE32 executable for MS Windows 4.00 (console), Intel i386, 7 sections
- PKPM, Çin'de yaygın olarak kullanılan bir yapı mühendisliği CAD ürün ailesi olup bina yapısal tasarımının tüm yaşam döngüsünü kapsayan birden fazla çalıştırılabilir modülden oluşur
- SATWE, döşeme, kiriş, kolon, duvar ve çerçevelerin genelindeki 3 boyutlu yapısal analizden sorumlu çekirdek motordur
- Beton kesme tasarımı modülü tanımlayıcıları
- MD5
af4461a149bfd2ba566f2abefe7dcde4 - SHA1
586edef41c3b3fba87bf0f0346c7e402f86fc11e - SHA256
09ca719e06a526f70aadf34fb66b136ed20f923776e6b33a33a9059ef674da22 - Dosya boyutu
7716864 bytes - Dosya türü
PE32 executable for MS Windows 4.00 (GUI), Intel i386, 6 sections - Link zamanı
2011-08-26 10:58:17 UTC
- MD5
- Building Structure CAD modülü tanımlayıcıları
- MD5
49a8934ccd34e2aaae6ea1e6a6313ffe - SHA1
3ce5b358c2ddd116ac9582efbb38354809999cb5 - SHA256
8b018452fdd64c346af4d97da420681e2e0b55b8c9ce2b8de75e330993b759a0 - Boyut
11849728 bytes - Link zamanı
2005-12-01 08:35:46 UTC - MD5
e0c10106626711f287ff91c0d6314407 - SHA1
650fc6b3e4f62ecdc1ec5728f36bb46ba0f74d05 - SHA256
06361562cc53d759fb5a4c2b7aac348e4d23fe59be3b2871b14678365283ca47 - Boyut
16355328 bytes - Link zamanı
2012-07-07 08:47:11 UTC
- MD5
- SATWE yapısal analiz motoru tanımlayıcıları
- MD5
2717b58246237b35d44ef2e49712d3a2 - SHA1
d475ace24b9aedebf431efc68f9db32d5ae761bd - SHA256
bd04715c5c43c862c38a4ad6c2167ad082a352881e04a35117af9bbfad8e5613 - Boyut
9908224 bytes - Link zamanı
2011-01-12 06:37:39 UTC - MD5
daea40562458fc7ae1adb812137d3d05 - SHA1
1ce1111702b765f5c4d09315ff1f0d914f7e5c70 - SHA256
da2b170994031477091be89c8835ff9db1a5304f3f2f25344654f44d0430ced1 - Boyut
8454144 bytes - Link zamanı
2012-11-29 03:10:12 UTC - MD5
2740a703859cbd8b43425d4a2cacb5ec - SHA1
ca665b59bc590292f94c23e04fa458f90d7b20c9 - SHA256
aeaa389453f04a9e79ff6c8b7b66db7b65d4aaffc6cac0bd7957257a30468e33 - Boyut
16568320 bytes - Link zamanı
2014-12-30 03:23:43 UTC - MD5
ebff5b7d4c5becb8715009df596c5a91 - SHA1
829f8be65dfe159d2b0dc7ee7a61a017acb54b7b - SHA256
37414d9ca87a132ec5081f3e7590d04498237746f9a7479c6b443accee17a062 - Boyut
8089600 bytes - Link zamanı
2009-04-22 01:46:46 UTC - MD5
cb66a4d52a30bfcd980fe50e7e3f73f0 - SHA1
e6018cd482c012de8b69c64dc3165337bc121b86 - SHA256
66fe485f29a6405265756aaf7f822b9ceb56e108afabd414ee222ee9657dd7e2 - Boyut
9219072 bytes - Link zamanı
N/A
- MD5
- Ek PKPM CAD dosyası tanımlayıcıları
- MD5
075b4aa105e728f2b659723e3f36c72c - SHA1
145ef372c3e9c352eaaa53bb0893749163e49892 - SHA256
c11a210cb98095422d0d33cbd4e9ecc86b95024f956ede812e17c97e79591cfa - Boyut
6852608 bytes - Link zamanı
2012-06-18 10:01:54 UTC - MD5
cf859f164870d113608a843e4a9600ab - SHA1
952ed694b60c34ba12df9d392269eae3a4f11be4 - SHA256
7e00030a35504de5c0d16020aa40cbaf5d36561e0716feb8f73235579a7b0909 - Boyut
8392704 bytes - Link zamanı
2012-11-29 03:10:12 UTC
- MD5
- MOHID, Portekiz Lizbon'daki Instituto Superior Técnico'nun MARETEC birimi tarafından geliştirilen açık kaynaklı su sistemi modelleme sistemidir; deniz ve kıyı hidrodinamiği, su kalitesi simülasyonu, sediment taşınımı, petrol sızıntısı modellemesi ve Lagrangian parçacık izlemeyi kapsar
- Şu an itibarıyla bile amaçlanan saldırı etkisini kesin olarak tespit edemediklerini belirttiler
- MD5
f4dbbb78979c1ee8a1523c77065e18a5 - SHA1
9e089a733fb2740c0e408b2a25d8f5a451584cf6 - SHA256
e775049d1ecf68dee870f1a5c36b2f3542d1182782eb497b8ccfd2309c400b3a - Dosya boyutu
5443584 bytes - Dosya türü
PE32 executable for MS Windows 4.00 (console), Intel i386, 3 sections - Link zamanı
2002-10-18 09:29:54 UTC
- LS-DYNA, İran'ın JCPOA Section T ihlali şüphelerine ilişkin kamuya açık haberlerde nükleer silah geliştirmeyle ilgili bilgisayar modellemesi araştırmalarıyla birlikte anılmıştı
Tespit kuralları ve ihlal göstergeleri
-
İhlal göstergeleri
- Doğrulanan 3 dosya fast16.sys, connotify.dll, svcmgmt.exe
fast16.sys: MD50ff6abe0252d4f37a196a1231fae5f26, SHA192e9dcaf7249110047ef121b7586c81d4b8cb4e5, SHA25607c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529connotify.dll: MD5410eddfc19de44249897986ecc8ac449, SHA1675cb83cec5f25ebbe8d9f90dea3d836fcb1c234, SHA2568fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9svcmgmt.exe: MD5dbe51eabebf9d4ef9581ef99844a2944, SHA1de584703c78a60a56028f9834086facd1401b355, SHA2569a10e1faa86a5d39417cae44da5adf38824dfb9a16432e34df766aa1dc9e3525
-
apt_fast16_carrier
- carrier, Lua payload'u ve düz metin varyantlarını yakalamak için tasarlandı; referans hash
9a10e1faa86a5d39417cae44da5adf38824dfb9a16432e34df766aa1dc9e3525 - Lua bytecode magic
1B 4C 75 61,build_wormlet_table,unpropagate,scm_wormlet_install,install_implant,start_worm,ok_to_propagatedizelerini kullanır Symantec,Sygate Personal Firewall,Zone Labs\TrueVector,Kaspersky Anti-Hackergibi birçok güvenlik ürünü registry anahtarı da koşullara dahildir- Şifrelenmiş dize byte pattern'leri, 2 şifre sabiti, saklama container'ı uzunluğu çözme kodu ve
filedizesini içeren saklama kayıt imzası da birlikte tespit edilir - Koşul, MZ header ve 10 MB'dan küçük dosya temelinde
$s*içinden 3 öğe,$rk*içinden 12 öğe, herhangi bir$e*, 2 şifre sabitinin yakın yerleşimi ve$code1,$stor1ikilisinden birini karşılamasıyla; ya da Lua magic ve$s*içinden 7 öğeyi karşılamasıyla oluşur
- carrier, Lua payload'u ve düz metin varyantlarını yakalamak için tasarlandı; referans hash
-
apt_fast16_driver
- driver'ı veya ilgili proje dosyalarını yakalamak için tasarlandı; referans hash
07c69fc33271cf5a2ce03ac1fed7a3b16357aec093c5bf9ef61fbfa4348d0529 @(#)foo.c :,@(#)par.h :,@(#)pae.h :,@(#)ree.c :gibi çok sayıda kaynak dosya tanımlayıcı dizesi kullanır\\Device\\fast16,\\??\\fast16,C:\\buildy\\,driver\\fd\\i386\\fast16.pdb,push 0A57Ch ; DeviceTypepattern'ini içerirExAllocatePool,ExAllocatePoolWithTag,ExFreePool,ExFreePoolWithTagdeğerlerini XOR biçiminde push eden API pattern'i de imzanın içindedir- Koşul, 10 MB'dan küçük dosyada MZ header ile birlikte 2 PDB yolu,
C:\\buildy\\ve 1 kaynak tanımlayıcı,#devtype == 3,pe.machine == pe.MACHINE_I386,pe.subsystem == pe.SUBSYSTEM_NATIVE, herhangi birapi*,dev*içinden 2 öğe koşullarından birini karşılamasıyla; ya da 6 kaynak tanımlayıcıyı karşılamasıyla oluşur
- driver'ı veya ilgili proje dosyalarını yakalamak için tasarlandı; referans hash
-
clean_fast16_patchtarget
- Yama hedefi yazılımı tespit eder,
most probably cleanolarak işaretlenmiştir ve referans hash8fcb4d3d4df61719ee3da98241393779290e0efcd88a49e363e2a2dfbc04dae9 $el0ile$el99arasında uzanan çok sayıda byte pattern'i kullanır- Koşul, 20 MB'dan küçük dosya, MZ header ve tanımlı imzalardan en az 2 eşleşmedir
- Yama hedefi yazılımı tespit eder,
-
apt_fast16_patch
- Yama kodunun kendisini tespit eder; statik olarak yamalanmış dosyalarda veya bellek dökümlerinde bulunabilir
- Referans hash
0ff6abe0252d4f37a196a1231fae5f26 $p1,$p2,$p3olmak üzere 3 byte pattern'i tanımlar- Koşul
any of themşeklindedir; üç pattern'den yalnızca biri eşleşse bile tespit edilir
Soy ağacı ve tarihsel çıkarımlar
- Binary içindeki
@(#)par.h $Revision: 1.3 $dizesi, bu framework'ün soy ağacını tahmin etmeye yarayan bir ipucu olur @(#)öneki, 1970'ler-1980'ler Unix'teki SCCS/RCS kaynak yönetimi geleneğine işaret eder; mid-2000s Windows kernel driver'larında bu tür izler nadirdir- Bu artifact'ler, tipik bir yalnızca Windows geliştiricisinden ziyade, eski yüksek güvenlikli Unix ortamlarının kültürüne ve toolchain'lerine aşina kıdemli bir mühendisin izine daha yakın görünür
svcmgmt.exeyaklaşık 10 yıl önce VirusTotal'a yüklendi, ancak bugün bile tespit oranı çok düşük ve yalnızca bir engine onu sınırlı güvenle genel amaçlı zararlı olarak sınıflandırıyor- ShadowBrokers'ın Territorial Dispute imzalarıyla birlikte değerlendirildiğinde,
fast16ciddi ve gizliliğe odaklı devlet düzeyinde siber sabotajın geliştirme zamanına yeniden bakmayı gerektiriyor fast16, daha yaygın bilinen ailelerden önce gömülü scripting engine, derleyici tabanlı dar hedefleme ve kernel seviyesinde yama birleştiren tutarlı bir yapı gösteriyor- Uzun süre boyunca kamuya açık analiz, adlandırılmış kampanyalar ve öne çıkan olaylarla neredeyse hiçbir bağlantı kurulmadı; içeride kalan insan tarafından okunabilir işaretler de
*** Nothing to see here – carry on***örneğindeki gibi sınırlı kaldı - Sonraki Lua- and LuaJIT-based toolkits ile devam eden APT evrim çizgisi arasında bir bağlantı noktası olarak konumlanıyor
1 yorum
Hacker News görüşleri
Bu kısım özellikle ilginçti
2005 tarihli Windows kernel kodu içinde SCCS/RCS notasyonu görülmesini, bugün bir ofiste çevirmeli telefon görmekle kıyaslamaları epey ikna ediciydi
2006'da çalıştığım astrofizik laboratuvarı da hâlâ svn kullanıyordu ve kod tabanında 70'ler ile 80'lerin sistem izlerini taşıyan çok sayıda Fortran vardı
Yine de modern optimize edici derleyiciler sayesinde gayet iyi çalışıyordu ve 90'larda Vax'tan Linux'a taşınma süreci de şaşırtıcı derecede sorunsuz olmuştu
Eskiden dinlediğim do over or make due sunumunu hatırlattı; ana fikir, büyük ve çalışan bir kod tabanını baştan yazmanın, modern araçlarla zor da olsa birbirine bağlayıp kullanabiliyorsanız, çoğu zaman buna değmeyeceğiydi
Adı MKS idi ve belirli bir revizyon ağacını "project file" olarak yöneten bir yaklaşımı vardı; Java EE ile yeniden yapılmış bir sürüm bile değil, tam anlamıyla 90'lardan kalma gibiydi
Dosyaların başında
$Revision: 1.3 $gibi etiketler ve changelog olurdu ama yeni dosyaların önemli bir kısmında etiket hiç yoktu, dolayısıyla yer değiştirme de olmuyordu; tutarlılık tam bir felakettiHedef cihaz ailesi 90'ların ortasında başlamıştı ama o andaki kodun fiilen 5 yıldan daha eski olan kısmı neredeyse yoktu
Sadece birkaç düzine mühendis olmasına rağmen commit çakışmaları sık yaşanıyordu ve tüm ağaç düzenli olarak bozuluyordu
Eğlencesine tüm geçmişi okuyup git'e aktaran bir betik yazdım ama sadece birkaç yıl geriye gidince bile kayıtlar tamamen darmadağınıktı
Neden o zamana kadar bunu kullandıklarını bilmiyorum ama donanım şirketleri sanılandan daha yakın zamanlara kadar kaynak yönetimini "uzaktaki paylaşımlı klasör" gibi görebiliyordu; bu yüzden yazılım tarafındaki sürüm kontrolü öncelik değildi sanırım
Sayısal hesaplama dünyasında o soy hâlâ temel taşı olmaya devam ediyor
2000'lerde bile RCS kullanan yerler gerçekten vardı ve aracın kendisi bazı açılardan SVN ya da CVS'den daha iyiydi
Mesela fast16'yı aslında bilimsel hesaplama yazılımı geliştiren biri, Stuxnet'i ise Siemens'te çalışmış biri yazmış olabilir diye insanın aklına geliyor
Kodu başta refactoring gerektirir hâle getiren nedenler yerinde duruyorsa, sonunda yine aynı duruma dönersiniz
Bu nedenler bazen geliştiricinin alışkanlıkları, inançları, mesleki travmaları gibi psikolojik katmanlara kadar derine işlemiş oluyor
Buna bir de Conway yasası eklenince ekipler kaçınılmaz olarak daha büyük organizasyon yapısına benzeyen yazılımlar üretir ve organizasyon değişmezse refactoring sonucu da çoğunlukla tekrar eder
İstisna, başka bir ekibin ya da önceki sahiplerin kod tabanını devralıp yapıyı yeniden kurduğunuz durumlardır
Ama aynı insanlar kendi kodları için refactoring ilan ettiğinde, sonuç çoğu zaman sadece kendileri için daha kullanışlı bir fare kapanı daha yapmak olur
Kendi düşünme biçiminizin ürününü yinelemeli olarak iyileştirmek sorun değil ama atlıkarıncadan inmek istiyorsanız kötü mimarinin nedenlerini yazıp kendinize dürüstçe bakmanız gerekir
Birçok geliştiricinin inanmak istediği gibi, "dikkatli ve çalışkan olursanız biraz kötü bir tasarımı da iyi uygulayabilirsiniz" sözü çoğu zaman doğru değildir
Sonuçta kök tasarımdır; ondan büyüyen ağacı ya kabul etmeniz ya da kesmeniz gerekir, yalnızca budamayla bir yere kadar gidilir
Bu yazı epey ürkütücü geldi
Bu kötü amaçlı yazılımın 20 yıl boyunca tespit ağının altında kalmış olması bile tek başına yeterince tekinsiz
Merak edenler için indirme bağlantısı
https://bazaar.abuse.ch/sample/9a10e1faa86a5d39417cae44da5ad...
Sanırım önce bir Windows XP VM kurardım
Bu sadece bir loader gibi görünüyor
IEEE-754 yalnızca +-*/ ve sqrt için doğru yuvarlamayı zorunlu kılar
sin/cos/exp/log/pow gibi aşkın fonksiyonlar için son birkaç ULP farkına izin verir ve glibc, musl, MSVC, Intel SVML de pratikte böyle davranır
PID çoğunlukla temel işlemleri kullandığı için libm farklarından daha az etkilenir ama motor vektör kontrolü ya da sensör lineerleştirme her çevrimde bu tür fonksiyonlara dokunduğundan küçük tutarsızlıklar birikir
Bu yüzden kaynak kodda tek bir diff bile olmasa, sadece bağlı libm değiştiği için sahadaki davranış drift edebilir
Bu farklar gerçekten Payne-Hanek argument reduction ya da en kötü durumdaki table-maker's dilemma sınırlarında ortaya çıkar
Muhtemelen bu yüzden güvenlik kritik sistem kılavuzları sadece "IEEE-754 uyumlu" demekle yetinmeyip belirli bir libm build'ini sabitler
Gerçekten olağanüstü bir keşif
Bu kuralların tam olarak neyi hedeflediğini ve sonuçları nasıl değiştirdiğini çok merak ediyorum
Belki de reaktör gibi çok belirli simülasyon koşullarında fark yaratacak şekilde tasarlanmışlardır
Örneğin kamuya açık kılavuzdaki [1] EOS_JWL denklemi, LS-DYNA'nın uyguladığı denklemlerden biri ve diğer denklemlerle birlikte kullanıldığında bir füze savaş başlığındaki ateşleyicinin ana patlayıcıyı tetikleyip 20 m mesafede belirli bir basınç dalgası üretmesine kadar geçen süreyi hesaplamak için kullanılabilir gibi görünüyor
Sonucu tersine kullanarak gereken füze tapası zamanlaması da tahmin edilebilir
LS-DYNA'da kullanılan denklemler ve parametreler [2] gibi bilimsel çalışmalardan geliyor; bu da 1980'lerde ABD hükümetinin yüksek patlayıcı deneyleri üzerine bir araştırma
Burada patlayıcının onu saran çeşitli malzemelerle sürtünme özelliklerini ölçen deneyler de var
Patlayıcı modelleme denklemleri zaten hazır olduğuna göre, yalnızca bu denklemleri hafifçe değiştirip sürtünme katsayısına ±20% gürültü ekleseniz bile bilim insanları ya da mühendisler, yazılım manipülasyonundan önce çelik üretim kalitesi sorunundan şüphelenebilir
Güncel bir benzetmeyle, düşman bir devletin Çinli bir cracking grubunun Çin forumlarına koyduğu Ansys Autodyn 2026 R1 korsan kopyasını, Rusya'daki bir ISP'nin arkasındaki birkaç seeder'dan alıp kullandığını hayal edebilirsiniz
Sonra deney sonuçları ile hesaplamalar sürekli uyuşmadığında, ancak o zaman kopyanın bilerek manipüle edilmiş olabileceğinden şüphelenebilirler
Yine de bugünlerde o düşman devlet için, rastgele bir üniversitenin ya da havacılık-uzay/savunma danışmanlık firmasının ele geçirilmiş ağından resmî bir kopya çekmek daha kolay olabilir
2026'daki bir düşman devletin yazılımı sıfırdan üretemeyeceğini varsaymak da safça olabilir; el hesabı ya da deneylere dayanarak da istenen sonuca ulaşabilirler
Sonuçta üretim kalitesini doğrulamak için deney ekipmanı ve yetkinlik en baştan beri gereklidir
Simülasyon yazılımı esas olarak model yapımı ve fiziksel deney sayısını azaltarak maliyet ve zamandan tasarruf sağlar
Örneğin [3]'teki gibi bir merminin zırh plakasına çarpma senaryosunu 1000 kez çalıştırmak ucuzdur ama bunu gerçekte tekrarlamak çok daha pahalı ve zaman alıcıdır
[1] https://ftp.lstc.com/anonymous/outgoing/jday/manuals/LS-DYNA...
[2] https://www.osti.gov/servlets/purl/6530310
[3] https://www.youtube.com/watch?v=_dv2PecKUBM
Yayınladığım şeylerde RCS revision data bulunduğunu görünce insanların bir an duraksamasını isterim
Yakın zamanda okuduğum kitap, Andy Greenberg'in Sandworm: A New Era of Cyberwar and the Hunt for the Kremlin's Most Dangerous Hackers adlı kitabıydı
Oldukça iyiydi ve yeni bilgiler gelmeye devam ettiğine göre bir devam serisine ihtiyaç olabilir diye düşünüyorum
Guix ve yeniden üretilebilir hesaplamanın PowerPC ya da eski makineler dahil taşınabilir hâle gelmesini, hükümetler ya da 1984 tarzı kurumlar ve Orta Doğu'daki bazı yapılar muhtemelen gerçekten sevmezdi
Ortam ne kadar heterojen olursa o kadar iyi
Anahtar sayı worm
Çünkü başka bir bilgisayarda kontrol etseniz bile yakalayamazsınız; ortada baştan temiz ikinci bir bilgisayar yoktur
İlginç bir bulgu ama source control ile ilgili yorum biraz isabetsiz geldi
O dönemde SCCS benzeri şeyler hâlâ etraftaydı ve CVS'nin benzer bir tarzda olup olmadığını da bir an düşündüm
Geliştiricilerin aslında UNIX tarafında da çalışmış insanlar olduğunu ima ediyor, çünkü SCCS/RCS orada yaygındı