- 论坛徽章:
- 40
|
本帖最后由 forgaoqiang 于 2015-06-16 22:28 编辑
1、请阐述漏洞与bug的区别?
漏洞一般是安全问题,不是程序本身有问题,就是程序的逻辑有问题,容易被利用,获取系统权限、获取数据、获取利益。
bug一般是程序设计问题,很多是对输入数据校验的问题,非常规的输入导致程序本身出错崩溃或者失去响应。
仔细来看视乎也没哟太大区别,只是一般人感觉危害不同。
2、常见的linux rootkit对自身隐藏方法,及列出你所知道的rootkit后门?
常见的rookit方式都是尝试建立程序文件、添加计划任务等等,总之就是给入侵者留下足够好用的后门。还有比较牛X的比如著名的LKM,很聪明的在/tmp创建文件,这个目录一般管理员是不会监控的。另外比较狠的就是,替换TCP/IP协议栈代码、甚至更改内核代码,直接从根源上避免被一般安全人员发现的风险。
3、端口复用的理解,以及哪些常见恶意软件会使用该技术?
端口复用就是使用已经打开的端口进行通讯,这样的好处就是避免自己主动打开端口而被监控程序发现。当然也不是我们传统理解的一个端口多个程序绑上了,更像是负载均衡,插在用户程序和系统端口之间,监听数据,决定交给哪个实际的后端程序处理。说白了就是MITM(Man in the middle)的一种利用,但是好处还是很明显的,很多安全程序会关注新打开的端口,对于已经打开的端口很少花大精力关注。
常见的恶意软件当然是一些高级一些木马会使用端口复用技术。
4、请简述你对sql注入的理解?
SQL注入就是DBMS执行了非作者意图的SQL语句,主要问题还是源于没有对输入数据进行良好的过滤,尤其是一些比如 % 这样的特殊字符,如果被恶意传入,就是匹配所有记录,而SQL的注释语法和一般编程语言也不太一直,联合使用很容易将一个查询变量编程一句完整的恶意SQL语句。
5、请简述缓冲区溢出原理?
程序都有自己的缓存区,如果一个程序的数据过多就很容易发生溢出,数据就会到不是自己的内存区域。当这个溢出是精心策划的,那么溢出的代码很有可能就被执行了。执行后很多时候就可能获取系统特权,从而想做什么就能做什么。
一般缓存区溢出都会导致程序本身发生段错误(segmentation fault),这样没有意义呀,所以可以溢出执行脚本来实现调用其他程序,从而获取计算机或者应用的控制权。
|
|