2014 阿里巴巴安全工程师实习生招聘笔试总结

yuanheiqng 2014-04-10

本人是一个软工菜,不是信息安全专业的,但是自己喜欢这一方面,所以就参加了2014 阿里巴巴的安全工程师的实习招聘,好吧,有些题目记不清楚了,下面就是简单回忆的一些零散的题目(顺序不定),其实回来才发现这些题目在去年大部分都有,就是当时准备的时候脑残没有百度下这个题目:

第一部分(名词解释)

1.什么是WebShell?

话说这个东东常用,但是他的定义只能根据自己所理解的来了,这个当时答的算是最有把握的一个了,看看回来Google的答案吧:WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的─种命令执行环境,也可以将其称做为─种网页后门。黑客在入侵了─个网站后,通常会将这些asp或php后门文件与网站服务器WEB目录下正常的网页文件混在─起,然后就可以使用浏览器来访问这些asp或者php后门,得到─个命令执行环境,以达到控制网站服务器的目的(可以上传下载文件,查看数据库,执行任意程序命令等)。国内常用的deWebShell有海阳ASP木马,Phpspy,c99shell等。

2.什么是网络钓鱼?

这个以前也做过,就是答题的时候答的太概括了,没有特指邮件等,其实也不只是邮件钓鱼,猥琐的方法多了去了,下面是Google 的相关答案:钓鱼式攻击是一种企图从电子通信中,通过伪装成信誉卓著的法人媒体以获得如用户名、密码和信用卡明细等个人敏感信息的犯罪诈骗过程。这些通信都声称来自于风行的社交网站、拍卖网站、网络银行、电子支付网站、或网络管理者,以此来诱骗受害人的轻信。网钓通常是通过e-mail或者实时通信进行。它常常导引用户到URL与接口外观与真正网站几无二致的假冒网站输入个人数据。就算使用强式加密的SSL服务器认证,要侦测网站是否仿冒实际上仍很困难。网钓是一种利用社会工程技术来愚弄用户的实例。它凭恃的是现行网络安全技术的低亲和度。种种对抗日渐增多网钓案例的尝试涵盖立法层面、用户培训层面、宣传层面、与技术保全措施层面。

3.什么是溢出?

这个做过缓冲区溢出,但是知道不止是这一种,所有当时只是举了缓冲区溢出和堆栈溢出两个例子,看看百科的答案吧:溢出是黑客利用操作系统的漏洞,专门开发了一种程序,加相应的参数运行后,就可以得到你电脑具有管理员资格的控制权,你在你自己电脑上能够运行的东西他可以全部做到,等于你的电脑就是他的了。溢出是程序设计者设计时的不足所带来的错误。

4.什么是CC攻击?

这个也是知道一些,知道他是DDos的变种,正常请求伪造,服务器资源耗尽,最终还是看看百科答案吧:CC攻击是DDOS(分布式拒绝服务)的一种,相比其它的DDOS攻击CC似乎更有技术含量一些。这种攻击你见不到真实源IP,见不到特别大的异常流量,但造成服务器无法进行正常连接。CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。

第二部分(知识面考察)

1.你获取网络安全知识途径有哪些?

我当时写了网络论坛,举了几个例子像看雪,安全焦点,漏洞基地,邪八等地方,但是忘了写国内的乌云,FreeBuf 了,唉,第一跪吧;2.书籍,《白帽子讲web安全》等,然后就是请教牛人,最后是公司内技术分享(现在XXXX杀软公司实习),大致这些可以自由发挥吧。

2.Linux的文件权限'-rwsr-xr-x' 是意思?

先吐槽下就是跪在这个S上了,这个是去年的老题目,都没答对,真是苦了一笔啊,当时还写了这个题目是出错了。如果把s,换成e,大家一定很快就知道了这是本账户读写执行权限,同组其他账户读执行权限,其他组用户读执行权限,但是这个S是啥?下面科普一下吧:

文件权限除了r、w、x外还有s、t、i、a权限:

s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行。在设置s权限时文件属主、属组必须先设置相应的x权限,否 则s权限并不能正真生效(c h m o d命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)。Linux修改密码的passwd便是个设置了SUID的程序,普通用户无读写/etc/shadow文件 的权限确可以修改自己的密码。

ls -al /usr/bin/passwd

 -rwsr-xr-x 1 root root 32988 2008-12-08 17:17 /usr/bin/passwd

我们可以通过字符模式设置s权限:chmod a+s filename,也可以使用绝对模式进行设置:

设置s u i d:将相应的权限位之前的那一位设置为4;

 设置g u i d:将相应的权限位之前的那一位设置为2;

 两者都置位:将相应的权限位之前的那一位设置为4+2=6。

如:chmod 4764 filename  //设置SUID

t :设置粘着位,一个文件可读写的用户并一定相让他有删除此文件的权限,如果文件设置了t权限则只用属主和root有删除文件的权限,通过chmod +t filename 来设置t权限。

i:不可修改权限  例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。

a:只追加权限, 对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限。

3.说说VLAN中能不能实现IP欺骗?

这个也是去年的原题,啥都不说了,我又不是学网络了,就是一个软工菜,这个就只能试这来了,这个题目的意思一猜就知道是在一定的技术下可以实现,下面看看Google来的答案吧:VLAN是建立虚拟子网的意思,就是进一步隔离的多个网络,在一篇文章中看到可以借助内网代理来实现跨VLAN的通信,实际达到的了同一IP在不同子网,都能通讯,这里要完全欺骗还是要利用劫持原来IP和网关的数据通信,将原来的双向TCP拆解成两个单向的通信,当然劫持数据之后,就可以分别伪造数据到网关和受欺骗端,其实VLAN技术是一种强化IP管理的的技术,但是在没有IP-Mac绑定的情况下就同样有被欺骗的危险,这个算是我自己总结的答案,当时在题目中举的例子是DHCP的情况请而不是静态IP绑定的情况下就会有问题,呵呵,也算是沾点边吧。

4.其实HUB、SWITCH、ROUTER三者的区别?

这个说实际有点不清楚,只知道他们各自的用途,知道是HUB是负责份分发信号了,实现并行上网的,SWITCH 是网络数据交换的,知道ROUTER是在网络层的,负责将数据包转发到不同网络 ,但是还是不能细致的说明,下面看看Answer 吧:

1)HUB:只负责信息广播,不对包进行任何封装,只是一个很简单的信号放大器,处于第一层

2)SWITCH:会对包进行封装处理,把包里的MAC地址分析出来,发向目标端口,所以SWITCH有处理速度上的区别,而且进行VLAN划分,端口复用等功能,有基于第二层和第三层的交换机,第三层交换机对IP进行分析,功能上较接近ROUTER

3)ROUTER:基于第三层的网络设备,把包拆分,获取目标IP信息,重新把包封装进行发送,具有路由功能,用在不同的网段上进行传输。

5.说所Web服务器被入侵后,怎样进行排查?

这个我是从几个方面想的,1.代码审计是必不可少的,查找网站是否有逻辑设计缺陷,并且找出加入的那些猥琐的webShell,一般可以通过字符串搜索等(前提知道常见的一句话,webShell的关键函数等)2.web 登录账户密码强度,是不是弱密码,3.网站管理员远程登录是否有不符合安全规范的习惯,比如远程连接弱密码的,4.网站管理员实地操作的习惯问题,比如用Vim修改了文件,但是加~的备份文件没删除等。但是貌似我答的和题目有点跑题了,汗!,最简单就是1.查看下web 服务器日主,2.看看有没有异常端口开放,3.使用安全狗等服务器安全软件清扫。

6.说说什么是DLL劫持?

当时就想这个是不是Windows 的DLL预加载漏洞,其实是差不多的,就是利用加载器加载DLL的时候优先选择当前路径,然后是windows系统路径,最后是环境变量,只要做一个导入表的同名DLL放在程序执行的目录下,然后当执行同名函数时就跳到自己想去的地址空间执行,执行完了再回来到真正的系统DLL里执行,(Windows加载器将可执行模块映射到进程的地址空间中,加载器分析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中)。

7.如何伪造发件人发送欺诈邮件?

SMTP简单邮件协议中,所有的发件人信息和邮件内容都是可以实现用户自定义的,这就是协议本身的问题,允许用户伪造任意发件人,关键是SMTP服务器还具有转发功能,可以实现为已知目的服务器投递转发的功能,那只要构造一个转发邮件,邮件服务器看了自然就转发投递出去了,现在腾讯等邮件都做了用户身份验证,而有一些SMTP服务器没有做用户身份验证,这些机器就可以被充当为垃圾诈骗邮件的发送机了。