Ok, némileg túlzó a kép, de azért nekem is volt 1-2 komolyabb harcom az elmúlt 1-2 hónapban, munkahely váltás, költözés külföldre, meg ami vele jár.. Szóval nem volt eseménytelen az elmúlt időszak, ami sajna a blog rovására is ment láthatólag.
Na de viszont most megpróbálom azt amit anno a BBC-sek is - folytatni ahol abbamaradt minden, mintha misem történt volna..
Na szóval.. Aktuális problémánk tárgya egy HACMP-s node, ahol a clcomdES daemon fölött elkezdtek körözni a keselyűk, ugyan is ránézésre halottnak nézett ki..
Az AIX kommandó az újraélesztést megkezdte, de a beteg nem reagált a kezelésre:
Az orvosi lapot átnézve kiderült, hogy betegünk valószínű még is él, csak vagy kómába esett, vagy önmagán kívül van:[server:root:/home/root:] lssrc -s clcomdES Subsystem Group PID Status clcomdES clcomdES inoperative [server:root:/home/root:] startsrc -s clcomdES 0513-059 The clcomdES Subsystem has been started. Subsystem PID is 7033284. [server:root:/home/root:] [server:root:/home/root:] lssrc -s clcomdES Subsystem Group PID Status clcomdES clcomdES inoperative
Persze minderről a hatóságok semmit nem tudtak..[server:root:/:] tail -1 /var/hacmp/clcomd/clcomd.log Mon Jan 28 15:03:18 2013: bind (../../../../../../../src/43haes/usr/sbin/cluster/clcomd/clcomd.c:5533): Address already in use
.. csak annyit, hogy a clcomdES által gyakran használt erőforrásokat valami tényleg épp fogja:[server:root:/var/hacmp/clcomd:] ps -ef |grep clcom root 5480538 7143926 0 15:05:31 pts/1 0:00 grep clcom
# Kis magyarázat: a clcomdES által használt default port a 6191
Ilyenkor általában csak odasétál az ember az illetékes besúgóhoz, megkéri hogy mondja már meg ki jár rá a dugi csokira, de szomorúan kell konstatáljuk, hogy halvány lila fogalma nincs:[server:root:/var/hacmp/clcomd:] netstat -Aan |grep 6191 |grep LISTEN f10006000243c398 tcp4 0 0 *.6191 *.* LISTEN
Na jó... Ha a szokványos eszközök nem mennek, akkor tényleg muszáj lesz nekünk is bemocskolnunk a kezünk, és megnézni hogy a Disc-réten mi ROMolhatott el..[server:root:/var/hacmp/clcomd:] rmsock f10006000243c398 tcpcb getprocdata: malloc failed
Kezdjük is a kernellel, ha már a gyanúsítgatásnál tartunk ("Ahol a kormány, ott van a gáz.."). Aki olvasta eddig a blogomat annak ez a fordulat azt hiszem nem lesz komolyabb meglepetés :)
Akinek még is, annak javaslom az itt emlegetett módszerek és parancsok áttanulmányozását a folytatás előtt
Na szóval.. a netstat megsúgta nekünk, hogy a f10006000243c398-es dugi csokira jár rá a kis szellemünk, úgy hogy kezdjünk el az után nyomozni első körben:
Hoppá.. Tehát a socketet még is csak egy clcomd fogja, de akkor miért nem vették észre a nyomozó kollégák??[server:root:/var/hacmp/clcomd:] kdb (0)> ns Symbolic name translation off (0)> si f10006000243c398 tcpcb |grep ACTIVE F100070F01012000 16456*clcomd ACTIVE 004812E 0031166 00000003184E1400 0 0014 (0)> proc F100070F01012000 |head SLOT NAME STATE PID PPID ADSPACE CL #THS F100070F01012000 16456 clcomd ACTIVE 004812E 0031166 00000003184E1400 0 0014
Ja kérem.. Ez itt egy megrendezett öngyilkossággal egybekötött biztosítási csalás.. Na keressük meg a cinkosokat:(0)> hcal 004812E Value hexa: 0004812E Value decimal: 295214 [server:root:/:] ps -fp 295214 UID PID PPID C STIME TTY TIME CMD - 295214 - - - <exiting>
Hoppá.. Nekromancia, vagy mifene? Ki mozgatja a szálakat?(0)> proc F100070F01012000 |grep THREAD THREAD..... threadlist :F100070F10807300THREAD..... threadcount:00000014 ........... active :00000002 (0)> th F100070F10807300 |head SLOT NAME STATE TID PRI RQ CPUID CL WCHAN F100070F10807300 32883 ZOMB 0731E3 03C 0 0 NAME................ WTYPE............... WZOMB .................tid :00000000000731E3 ......tsleep :FFFFFFFFFFFFFFFF ...............flags :00000000 ..............flags2 :00000000 ...........pmcontext :00000000 DATA.........pvprocp :F100070F01012000
Jó.. 1 megvan.. Vannak még?(0)> th F100070F10807300 |grep prev LINKS.....prevthread :F100070F10008C00LINKS.....prevthread :0000000000000000 (0)> th F100070F10008C00 |head F100070F10008C00 140 clcomd SLEEP 08C029 03C 4 0 F100070F010121B8
Aham.. szóval 2 fő process, 1-1 threaddel.. Na és ők épp mit csinálnak?(0)> th -n clcomd SLOT NAME STATE TID PRI RQ CPUID CL WCHAN F100070F10007C00 124 clcomd SLEEP 07C0ED 03C 4 0 F1000110129D9A70 01125380 F100070F10008C00 140 clcomd SLEEP 08C029 03C 4 0 F100070F010121B8
Az egyik épp ki akar lépni, de azért még vár egy kicsit (tapsra talán, meg nem mondom), de a másik már érdekesebb: Ott a jelek szerint épp valami JFS2-es FS alatt volt valami átnevezősdi, ami valahogy még is csak megbicsaklott..(0)> f F100070F10008C00 pvthread+008C00 STACK: [0005EEF4]ep_sleep+000128 (0000000000056DA0, A0000000000090B2 [??]) [0014384C]kexitx+000F6C (??) [0015AAD8]kexit+000080 () [kdb_get_virtual_memory] no real storage @ FFFFFFFF3FFFE40 (0)> f F100070F10007C00 pvthread+007C00 STACK: [002FF8C0]slock+0006A4 (00000000002E0268, 80000000000090B2 [??]) [00009558].simple_lock+000058 () [002CB3D0]j2_rename+000188 (??, ??, ??, ??, ??, ??, ??) [00408C34]vnop_rename+0002B4 (??, ??, ??, ??, ??, ??, ??) [0046A8F4]rename+00030C (??, ??) [0486570C]my_rename+0001C4 (0000000020023728, 00000000200C149C) [00003810].svc_instr+000110 () [kdb_get_virtual_memory] no real storage @ 200C0FD8 [10013190]log_printf+0002FC (00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000)
És hiába tűnt ez az elején HACMP hibának, a bizonyítékok alapján ez inkább tűnik AIX issue-nak.. A pénz csak pénz, a stack az meg csak stack na..
Azok alapján meg az ügy erősen hajaz az alábbi hibák egyikére:
- IZ96928
- IZ40258
Na most ha megnézitek, akkor azért ezek a bűnügyi megelőző kezelések nem épp a legfrissebben szabadult bűnözőkre lettek kitalálva (avagy jó régi patchekről van szó).. Úgy hogy ha már itt tartunk nézzük már meg, hogy ezt a drágát melyik korból szalajthatták?
Jah.. Jó.. Ez a TL/SP még anno 2009 Novemberében lett kiadva.. Az se ma volt.. Had ne mondjam azóta mennyi fix kijött, jah meg az 5.3as AIX hivatalos supportja is lejárt 2012 Áprilisában.[server:root:/:] oslevel -s 5300-08-08-0943
Na szóval itt rendesen el vannak egyesek maradva.. És hiába kérdezik meg az SWG-sek (software group) hogy tuti minden patch fent van e, attól még a hülye AIX admin csak abból főzhet amit a konyhában talál (amíg ki nem derül, hogy a Műanyag tálba lévő melegítendő kaját lehet még sem a sütőn kellett volna megpróbálni felmelegíteni).
Tanulság: Ha tetszik, ha nem tessék már azokat a rohadt rendszereket frissíteni (és nem csak a security miatt)