内核拒绝服务攻击(DOS,Deny of Service),是指通过攻击手段,造成内核崩溃。
比如内核中如果存在下面的代码:
if(MmIsAddressValid(Buffer)
{
memcmp(Buffer, buffer2,len);
}
由于MmIsAddressValid()函数只能判断一个字节的有效性,那么攻击者只需要传递第一个字节在有效页,而第二个字节在无效页的内存就会导致系统崩溃,例如0x7000是有效页,0x8000是无效页,那么攻击者传入0x7fff,就可以造成此系统的拒绝服务攻击。
Windows系统内核产生崩溃的常见原因有:
关闭了无效的HANDLE
在没有ObReferenceObject(pFileObject)的情况下ObDereferenceObject(pFileObject)
引用NULL指针
内存访问越界,BAD POOL HEADER
高中断级访问了缺页内存DRIVER_IRQL_NOT_LESS_OR_EQUAL
任何诱发这些崩溃的攻击,都可以认为是DOS攻击。
Copyright 2011-2020 © MallocFree. All rights reserved.