ID: 782 類型:變量 |
狀態:草稿 |
描述
軟件實現了應該限制使用的IOCTL,但是卻沒有恰當的強化對IOCTL的訪問。
擴展描述
當ioctl包含特權功能並且不必要地暴露時,攻擊者可以通過調用ioctl來訪問此功能。即使功能是良性的,如果程序員假定IOCTL只能由受信任的進程訪問,那麼可能很少或根本沒有對傳入數據的驗證,從而暴露出如果攻擊者不能直接調用IOCTL就無法訪問的弱點。
IOCTL的實現在操作系統類型和版本上會有所不同,因此攻擊和預防的方法可能會有很大的不同。
相關視圖
Nature |
Type |
ID |
Name |
ChildOf |
749 |
暴露危險方法或函數 |
|
CanPrecede |
781 |
使用METHOD_NEITHER I/O控制代碼的IOCTL中的的不當地址驗證 |
Nature |
Type |
ID |
Name |
MemberOf |
1011 |
驗證角色 |
Nature |
Type |
ID |
Name |
ChildOf |
284 |
不當的訪問控制 |
|
ChildOf |
引入模式
階段 |
說明 |
架構與設計 |
|
實現 |
實現:這個弱點是在實現架構安全策略的過程中造成的。 |
應用平臺
語言
C (經常出現)
C++ (經常出現)
操作系統
Class: Unix (出現的可能性不確定)
Class: Windows (出現的可能性不確定)
後果
範圍 |
衝擊 |
可能性 |
完整性 |
技術衝擊: 攻擊者可以調用ioctl提供的任何功能。根據功能的不同,後果可能包括代碼執行、拒絕服務和數據盜竊。 |
應對措施
階段: 架構與設計 在Windows環境中,對關聯的設備或設備命名空間使用適當的訪問控制。參閱參考文獻。 |
說明
應用平臺
由於ioctl功能通常執行低級操作,並與操作系統緊密交互,因此這種弱點可能只出現在用低級語言編寫的代碼中。
關聯弱點
當程序員假定IOCTL只能由受信任方訪問時,這可能是許多其他弱點的主要原因。例如,在windows環境中, 程序或驅動程序可能無法驗證方法中的通過METHOD_NEITHER IOCTL傳入的地址。這可能導致緩衝區溢出和類似的攻擊,即使攻擊者根本無法訪問ioctl。