C&C++代码安全观察点
字符串操作安全
格式化输出安全
整数操作安全
内存管理安全
文件操作安全
不安全函数的使用和对象
C++类和对象
STL库安全
(1) 外部数据作数组下标、缓冲区长度、循环结束条件、拷贝到堆栈缓冲区
(2) 外部数据拷贝到内核:关注函数copy_from_user
(3) 外部报文/协议是否有超长/大数据包
(4) 外部数据构造SQL语句是否有校验或转义
(5) 外部数据参与整数运算是否有溢出、反转、截断、符号错误等
(6) 检查处理外部数据的函数的返回值
(7) 对敏感信息使用后有没有清零
(8) 字符串操作有没有越界、有没有‘\0’结束符
(9) 格式化输入/输出函数是否存在参数个数/类型不匹配
(10) 不安全函数使用是否存在问题(没有校验目的缓冲区长度)
(11) 分配内存时是否有校验、是否引用无效内存、是否对内存进行初始化
(12) 文件操作是否对路径进行校验、是否显示指定权限、是否有竞争条件
(13) STL中是否有检查迭代子有效性
(14) 类是否存在返回私有成员地址,是否切分多态类对象
(15) 随机数生成函数是否安全
(16) 递归函数是否对递归次数进行了合理限制,应当考虑服务进程的栈资源限制