Linux કર્નલમાં નબળાઈઓના શોષણ સામે રક્ષણ માટે LKRG 0.8 મોડ્યુલનું પ્રકાશન

ઓપનવોલ પ્રોજેક્ટ પ્રકાશિત કર્નલ મોડ્યુલ રિલીઝ LKRG 0.8 (લિનક્સ કર્નલ રનટાઇમ ગાર્ડ), હુમલાઓ અને કર્નલ સ્ટ્રક્ચર્સની અખંડિતતાના ઉલ્લંઘનને શોધવા અને અવરોધિત કરવા માટે રચાયેલ છે. ઉદાહરણ તરીકે, મોડ્યુલ ચાલી રહેલ કર્નલમાં અનધિકૃત ફેરફારો સામે રક્ષણ આપી શકે છે અને વપરાશકર્તા પ્રક્રિયાઓની પરવાનગીઓને બદલવાના પ્રયાસો (શોષણનો ઉપયોગ શોધી કાઢે છે). મોડ્યુલ Linux કર્નલ માટે પહેલાથી જ જાણીતા શોષણ સામે રક્ષણ ગોઠવવા માટે (ઉદાહરણ તરીકે, સિસ્ટમમાં કર્નલને અપડેટ કરવું મુશ્કેલ હોય તેવા સંજોગોમાં) અને હજુ સુધી અજાણી નબળાઈઓ માટેના શોષણનો સામનો કરવા બંને માટે યોગ્ય છે. પ્રોજેક્ટ કોડ દ્વારા વિતરિત GPLv2 હેઠળ લાઇસન્સ.

નવા સંસ્કરણમાં ફેરફારો પૈકી:

  • LKRG પ્રોજેક્ટની સ્થિતિ બદલવામાં આવી છે, જે હવે અખંડિતતા ચકાસવા અને શોષણનો ઉપયોગ નક્કી કરવા માટે અલગ સબસિસ્ટમમાં વિભાજિત નથી, પરંતુ હુમલાઓ અને વિવિધ અખંડિતતાના ઉલ્લંઘનોને ઓળખવા માટે સંપૂર્ણ ઉત્પાદન તરીકે રજૂ કરવામાં આવે છે;
  • સુસંગતતા 5.3 થી 5.7 સુધીના Linux કર્નલો સાથે, તેમજ CONFIG_USB અને CONFIG_STACKTRACE વિકલ્પો વિના અથવા CONFIG_UNWINDER_ORC વિકલ્પ સાથે, તેમજ કર્નલ સાથે કે જેઓ LKRGok કરી શકતા ન હોય તો, આક્રમક GCC ઑપ્ટિમાઇઝેશન સાથે સંકલિત કર્નલ સાથે પ્રદાન કરવામાં આવે છે. સાથે વહેચવામાં આવે છે;
  • બનાવતી વખતે, અમુક ફરજિયાત CONFIG_* કર્નલ સેટિંગ્સ અસ્પષ્ટ ક્રેશને બદલે અર્થપૂર્ણ ભૂલ સંદેશાઓ પેદા કરવા માટે ચકાસવામાં આવે છે;
  • સ્ટેન્ડબાય (ACPI S3, RAM પર સસ્પેન્ડ) અને સ્લીપ (S4, ડિસ્ક પર સસ્પેન્ડ) મોડ્સ માટે ઉમેરાયેલ સપોર્ટ;
  • મેકફાઇલમાં DKMS સપોર્ટ ઉમેર્યો;
  • 32-બીટ એઆરએમ પ્લેટફોર્મ માટે પ્રાયોગિક સમર્થન લાગુ કરવામાં આવ્યું છે (રાસ્પબેરી પી 3 મોડલ બી પર પરીક્ષણ કરવામાં આવ્યું છે). અગાઉ ઉપલબ્ધ AArch64 (ARM64) સપોર્ટને Raspberry Pi 4 બોર્ડ સાથે સુસંગતતા પ્રદાન કરવા માટે વિસ્તૃત કરવામાં આવ્યું છે;
  • નવા હુક્સ ઉમેરવામાં આવ્યા છે, જેમાં એક સક્ષમ() કોલ હેન્ડલરનો સમાવેશ થાય છે કે જે "હેરાફેરી કરે છે"ક્ષમતાઓ", પ્રક્રિયા IDs નથી (ઓળખાણપત્ર);
  • નેમસ્પેસ પ્રતિબંધો (ઉદાહરણ તરીકે, ડોકર કન્ટેનરમાંથી) છટકી જવાના પ્રયાસો શોધવા માટે નવા તર્કની દરખાસ્ત કરવામાં આવી છે;
  • x86-64 સિસ્ટમો પર, SMAP (સુપરવાઈઝર મોડ એક્સેસ પ્રિવેન્શન) બીટ તપાસવામાં આવે છે અને લાગુ કરવામાં આવે છે, જે કર્નલ સ્તરે ચાલી રહેલા વિશેષાધિકૃત કોડમાંથી વપરાશકર્તા જગ્યા ડેટાની ઍક્સેસને અવરોધિત કરવા માટે રચાયેલ છે. SMEP (સુપરવાઈઝર મોડ એક્ઝેક્યુશન પ્રિવેન્શન) સુરક્ષા અગાઉ લાગુ કરવામાં આવી હતી;
  • ઓપરેશન દરમિયાન, LKRG સેટિંગ્સ મેમરી પૃષ્ઠમાં મૂકવામાં આવે છે જે સામાન્ય રીતે ફક્ત વાંચવા માટે હોય છે;
  • લોગીંગ માહિતી કે જે હુમલાઓ માટે સૌથી વધુ ઉપયોગી હોઈ શકે છે (ઉદાહરણ તરીકે, કર્નલમાં સરનામાં વિશેની માહિતી) ડીબગીંગ મોડ (log_level=4 અને ઉચ્ચ) સુધી મર્યાદિત છે, જે મૂળભૂત રીતે અક્ષમ છે.
  • પ્રોસેસ ટ્રેકિંગ ડેટાબેઝની માપનીયતા વધારવામાં આવી છે - એક સ્પિનલોક દ્વારા સુરક્ષિત એક RB ટ્રીને બદલે, 512 રીડ-રાઈટ લૉક્સ દ્વારા સુરક્ષિત 512 RB ટ્રીના હેશ ટેબલનો ઉપયોગ કરવામાં આવે છે;
  • ડિફૉલ્ટ રૂપે એક મોડ લાગુ અને સક્ષમ કરવામાં આવ્યો છે, જેમાં પ્રક્રિયા ઓળખકર્તાઓની અખંડિતતા ઘણીવાર ફક્ત વર્તમાન કાર્ય માટે જ તપાસવામાં આવે છે, અને વૈકલ્પિક રીતે સક્રિય (જાગતા) કાર્યો માટે પણ. અન્ય કાર્યો માટે કે જે ઊંઘની સ્થિતિમાં હોય અથવા LKRG દ્વારા નિયંત્રિત કર્નલ API ને એક્સેસ કર્યા વિના કામ કરતા હોય, તપાસ ઓછી વારંવાર કરવામાં આવે છે.
  • ફાઇન-ટ્યુનિંગ LKRG માટે નવા sysctl અને મોડ્યુલ પેરામીટર્સ ઉમેરવામાં આવ્યા છે, તેમજ વિકાસકર્તાઓ દ્વારા તૈયાર કરવામાં આવેલા ફાઈન-ટ્યુનિંગ સેટિંગ્સ (પ્રોફાઈલ્સ) ના સેટમાંથી પસંદ કરીને સરળ રૂપરેખાંકન માટે બે sysctl;
  • ઉલ્લંઘન શોધવાની ઝડપ અને પ્રતિભાવની અસરકારકતા વચ્ચે વધુ સંતુલિત સંતુલન હાંસલ કરવા માટે ડિફૉલ્ટ સેટિંગ્સ બદલવામાં આવી છે, એક તરફ, અને બીજી તરફ કામગીરી પરની અસર અને ખોટા હકારાત્મકના જોખમો;
  • LKRG મોડ્યુલને બુટમાં વહેલા લોડ કરવા માટે systemd યુનિટ ફાઇલને ફરીથી ડિઝાઇન કરવામાં આવી છે (મોડ્યુલને નિષ્ક્રિય કરવા માટે કર્નલ આદેશ વાક્ય વિકલ્પનો ઉપયોગ કરી શકાય છે);

નવા પ્રકાશનમાં પ્રસ્તાવિત ઑપ્ટિમાઇઝેશનને ધ્યાનમાં લેતા, LKRG 0.8 નો ઉપયોગ કરતી વખતે પ્રદર્શનમાં ઘટાડો ડિફોલ્ટ મોડમાં 2.5% ("હેવી") અને લાઇટ મોડ ("લાઇટ")માં 2% હોવાનો અંદાજ છે.

તાજેતરમાં યોજાયેલ માં સંશોધન રુટકિટ્સ LKRG ને શોધવા માટે પેકેજોની અસરકારકતા બતાવ્યું શ્રેષ્ઠ પરિણામો, કર્નલ સ્તરે ખોટા હકારાત્મક વિના કામ કરતી 8 માંથી 9 ચકાસાયેલ રૂટકિટ્સને ઓળખવામાં આવે છે (રુટકિટ્સ ડાયમોર્ફિન, હની પોટ બેયર્સ, લિલીઓફ ધ વેલી, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit અને Sutekh, પરંતુ Keysniffer, જે એક છે. મોડ્યુલ, કીલોગર સાથે ચૂકી ગયું હતું, શાબ્દિક અર્થમાં રૂટકીટ નહીં). સરખામણી માટે, AIDE, OSSEC અને Rootkit Hunter પેકેજોએ 2 માંથી 9 રુટકિટ્સ શોધી કાઢી, જ્યારે Chkrootkit એ કોઈ શોધી શક્યું નથી. તે જ સમયે, LKRG વપરાશકર્તાની જગ્યામાં સ્થિત રૂટકિટ્સની શોધને સમર્થન આપતું નથી, તેથી AIDE અને LKRG ના સંયોજનનો ઉપયોગ કરતી વખતે સૌથી વધુ કાર્યક્ષમતા પ્રાપ્ત થાય છે, જેણે તમામ પ્રકારની 14 માંથી 15 રુટકિટ્સને ઓળખવાનું શક્ય બનાવ્યું છે.

વધુમાં, તે નોંધી શકાય છે કે વિતરણ વિકાસકર્તા વ્હૉનિક્સ શરૂ કર્યું આકાર આપતો Debian, Whonix, Qubes અને Kicksecur માટે DKMS સાથે તૈયાર પેકેજો અને માટે એક પેકેજ આર્ક લિનક્સ પહેલાથી જ સંસ્કરણ 0.8 પર અપડેટ થયેલ છે. LKRG સાથેના પેકેજો રશિયનમાં પણ ઉપલબ્ધ છે ALT-લિનક્સ и એસ્ટ્રા લિનક્સ.

LKRG માં અખંડિતતાની ચકાસણી કર્નલ અને મોડ્યુલોના વાસ્તવિક કોડ અને ડેટા, કેટલાક મહત્વપૂર્ણ ડેટા સ્ટ્રક્ચર્સ અને CPU સેટિંગ્સની સંગ્રહિત હેશ અથવા અનુરૂપ મેમરી વિસ્તારો, ડેટા સ્ટ્રક્ચર્સ અથવા રજિસ્ટરની નકલો સાથે સરખામણી કરીને કરવામાં આવે છે. તપાસો સમયાંતરે ટાઈમર દ્વારા અને વિવિધ ઘટનાઓની ઘટના પર બંને સક્રિય થાય છે.

શોષણનો સંભવિત ઉપયોગ અને અવરોધિત હુમલાઓનું નિર્ધારણ કર્નલ સંસાધનોની ઍક્સેસ પ્રદાન કરે તે પહેલાંના તબક્કે હાથ ધરવામાં આવે છે (ઉદાહરણ તરીકે, ફાઇલ ખોલતા પહેલા), પરંતુ પ્રક્રિયાને અનધિકૃત પરવાનગીઓ પ્રાપ્ત થયા પછી (ઉદાહરણ તરીકે, UID બદલવું). જ્યારે અનધિકૃત વર્તન શોધી કાઢવામાં આવે છે, ત્યારે પ્રક્રિયાઓને મૂળભૂત રીતે સમાપ્ત કરવાની ફરજ પાડવામાં આવે છે, જે ઘણા શોષણને અવરોધિત કરવા માટે પૂરતી છે.

સોર્સ: opennet.ru

એક ટિપ્પણી ઉમેરો