Linux කර්නලය ආරක්ෂා කිරීම සඳහා Huawei සේවකයෙකු විසින් යෝජනා කරන ලද පැච් වල ආරක්ෂක ගැටළු

Grsecurity ව්‍යාපෘතියේ සංවර්ධකයින් හැරී ගියේය පැච් කට්ටලය තුළ සුළු වශයෙන් සූරාකෑමට ලක්විය හැකි අවදානමක් තිබීම කෙරෙහි අවධානය යොමු කරන්න එච්.කේ.එස්.පී. (Huawei Kernel Self Protection), දින කිහිපයකට පෙර යෝජනා කළා ලිනක්ස් කර්නලයේ ආරක්ෂාව වැඩි දියුණු කිරීමට. තත්වය මතක් කර දෙයි Samsung සමඟ නඩුව, පද්ධතියේ ආරක්ෂාව වැඩි දියුණු කිරීමේ උත්සාහයක් නව අවදානමක් මතුවීමට හේතු වූ අතර උපාංග සම්මුතියට පත් කිරීම පහසු කළේය.

HKSP පැච් Huawei සේවකයෙකු විසින් ප්‍රකාශයට පත් කරන ලදී, GitHub පැතිකඩෙහි Huawei පිළිබඳ සඳහනක් ඇතුළත් කර, ව්‍යාපෘති නාමයෙන් Huawei යන වචනය භාවිතා කරන්න (HKSP - Huawei Kernel Self Protection). ඒ අතරම, Huawei නියෝජිතයින් සමාගම සමඟ HKSP ව්‍යාපෘතිය සම්බන්ධ කිරීම ප්‍රතික්ෂේප කළ අතර කේතය සේවකයාගේ පුද්ගලික මුලපිරීම මත සංවර්ධනය කර ඇති බවත් එය නිල Huawei ව්‍යාපෘතියක් නොවන බවත් සමාගමේ නිෂ්පාදනවල භාවිතා නොකරන බවත් ප්‍රකාශ කළේය. මත GitHub පිටුව HKSP පසුගාමී ලෙස සොයා ගැනීමෙන් පසුව අවදානම් ද එකතු කරන ලදී පර්යේෂණ කටයුතු සඳහා මගේ විවේක කාලය තුළ ව්‍යාපෘතිය සංවර්ධනය වෙමින් පවතින බව සලකන්න.

HKSP හි ක්‍රෙඩ් ව්‍යුහයේ ඕෆ්සෙට් සසම්භාවී කිරීම, පරිශීලක හඳුනාගැනීමේ නාම අවකාශයට එල්ල වන ප්‍රහාරවලින් ආරක්ෂා වීම (pid namespace), mmap ප්‍රදේශයෙන් ක්‍රියාවලි තොගය වෙන් කිරීම, kfree ශ්‍රිතයට ද්විත්ව ඇමතුම් හඳුනා ගැනීම, ව්‍යාජය හරහා කාන්දුවීම් අවහිර කිරීම වැනි වෙනස්කම් ඇතුළත් වේ. -FS /proc (/proc/ {මොඩියුල, යතුරු, යතුරු-පරිශීලකයින්}, /proc/sys/kernel/* සහ /proc/sys/vm/mmap_min_addr, /proc/kallsyms), වැඩිදියුණු කළ පරිශීලක අවකාශයේ ලිපින සසම්භාවීකරණය, අමතර Ptrace ආරක්ෂාව, වැඩිදියුණු කළ smap සහ smep ආරක්ෂණය, අමු සොකට් හරහා දත්ත යැවීම තහනම් කිරීමේ හැකියාව, UDP සොකට් වල වැරදි ලිපින අවහිර කිරීම සහ ධාවන ක්‍රියාවලීන්ගේ අඛණ්ඩතාව පරීක්ෂා කිරීම. එයට Ksguard කර්නල් මොඩියුලය ද ඇතුළත් වේ, එය සාමාන්‍ය Rootkits හඳුන්වා දීමේ උත්සාහයන් හඳුනා ගැනීම අරමුණු කර ගෙන ඇත.

පැච් කියලා ලිනක්ස් කර්නලයේ ස්ථායී ශාඛාව පවත්වාගෙන යාමේ වගකීම දරන Greg Kroah-Hartman උනන්දු වූ අතර, ප්‍රධාන කර්නලයට සමාලෝචනය සහ ප්‍රවර්ධනය සරල කිරීම සඳහා මොනොලිතික් පැච් එක කොටස් වලට කැඩීමට කතුවරයාගෙන් ඉල්ලා සිටියේය. කීස් කුක්, හිස ව්‍යාපෘතිය මත ප්රවර්ධන ලිනක්ස් කර්නලයේ සක්‍රීය ආරක්ෂණ තාක්ෂණය ද ඇත ධනාත්මකව පැච් වලට ප්‍රතිචාර දැක්වූ අතර, ගැටළු අතර, x86 ගෘහ නිර්මාණ ශිල්පයට බැඳීම සහ බොහෝ මාතවල දැනුම්දීම් ස්වභාවය කෙරෙහි අවධානය යොමු කරන ලදී, එය ගැටළුව පිළිබඳ තොරතුරු පමණක් සටහන් කරයි, නමුත් එය අවහිර කිරීමට උත්සාහ නොකරන්න.

Grsecurity සංවර්ධකයින් විසින් පැච් පිළිබඳ අධ්‍යයනයකින් කේතයේ බොහෝ දෝෂ සහ දුර්වලතා අනාවරණය වූ අතර ව්‍යාපෘතියේ හැකියාවන් ප්‍රමාණවත් ලෙස විනිශ්චය කිරීමට ඉඩ සලසන තර්ජන ආකෘතියක් නොමැති බව ද පෙන්නුම් කළේය. ආරක්ෂිත ක්‍රමලේඛන ක්‍රම භාවිතා නොකර කේතය ලියා ඇති බව පැහැදිලිව පෙන්නුම් කිරීම සඳහා, හසුරුවන්නෙහි සුළු අවදානමක් පිළිබඳ උදාහරණයක් ලබා දී ඇත.
ගොනු /proc/ksguard/state, හිමිකම් 0777 සමඟින් නිර්මාණය කර ඇති අතර, සෑම කෙනෙකුටම ලිවීමට ප්‍රවේශය ඇති බව අඟවයි. /proc/ksguard/state වෙත ලියා ඇති විධාන විග්‍රහ කිරීමට භාවිතා කරන ksg_state_write ශ්‍රිතය, ඉලක්ක බෆරයේ ප්‍රමාණය සැලකිල්ලට නොගෙන, සම්මත කරන ලද ඔපෙරාන්ඩ් ප්‍රමාණය මත පදනම්ව දත්ත ලියා ඇති tmp[32] බෆරයක් නිර්මාණය කරයි. තන්තු ප්‍රමාණය සමඟ පරාමිතිය පරීක්ෂා කිරීම. එම. කර්නල් තොගයේ කොටසක් උඩින් ලිවීමට, ප්‍රහාරකයෙකුට /proc/ksguard/state වෙත විශේෂයෙන් ෆෝමැට් කරන ලද රේඛාවක් ලිවීමට අවශ්‍ය වේ.

ස්ථිතික ssize_t ksg_state_write(ව්‍යුහාත්මක ගොනුව *ගොනුව, const char __user *buf,
size_t len, loff_t *offset)
{
u64 අගය;
char tmp[32];
size_t n = 0;

නම් (copy_from_user(tmp, buf, len))
ආපසු -1;

අගය = simple_strtoul(tmp, '\0', 10);
...

සූරාකෑමේ මූලාකෘතිය:

char buf[4096] = {};
int fd = විවෘත ("/proc/ksguard/state", O_WRONLY);
නම් (fd >= 0) {
ලියන්න (fd, buf, sizeof(buf));
සමීප (fd);
}

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න