最新消息:

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

业界新闻 admin 2752浏览 0评论

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

相关阅读:请到文末相关文章查看2013年的。

第一部分(名词解释)

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服务器没有做用户身份验证,这些机器就可以被充当为垃圾诈骗邮件的发送机了。

转自:http://www.2cto.com/Article/201404/292321.html

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

笔试题是每个职位单独出卷,题目与对应 职位联系十分密切。就我今天做得卷子来说,最基础的数据结构、算法和操作系统一道题都没考,全是网络安全相关的基础题目。貌似从今年开始大公司都是分开职 位出卷了,这对我这种菜鸟可以说是一种无形的帮助吧,毕竟让我去考算法和数据结构,基本写个名字就可以GG了。

我选择的职位是“安全工程师”,据我的了解今年是阿里巴巴第一年有这个职位的招聘(以往内推的就不知道了)。所以之前在网上没有找到任何跟这个职位笔试的资料,只能找了份研发工程师的练了练手,结果被虐出翔了= =

使了点小手段,把整份卷子的题目基本都记下来了,所以说我这篇文章对于下一年的人来说还是很有参考意义的哦~

今天的卷子一共6张A4纸(还有一页空白不知道干嘛的- -),类型一共三类:名词解释,问答题,代码题,考试时间60 min(其他职位起码90 min,坑了)。题量略多啊,我也是刚刚好把所有题目都答上去了,很多地方根本就没来得及认真思考和修改。

(吐槽一下,整份卷子没有一道选择题,结果每人发了张答题卡!有点浪费的说。。)

废话不多说了,开始进入正题吧。

名词解释一 共5个,webshell,CSRF,溢出,CC攻击,网络钓鱼。我个人是比较怕这类题的,因为“词”肯定知道是什么意思,但是要我表达出来还真挺难的。 这里没什么好说的,直接百度百科吧,把内容都背下来。。CC攻击、CSRF之前都在blog里面写过,所以印象挺深的,其它就勉强写了写,目测阅卷人看不 懂= =

然后是问答题, 第一题是问你“平时获取安全技术的渠道有哪些(书籍、网站)”。这种开放性的题目,大家怎么答都行。书籍我写了刺总的《白帽子讲web安全》(填这个能加 分么- -!)和余弦的《Web前端黑客技术揭秘》,还有黑防和黑X;网站写了各大牛的新浪微博,wooyun,还有核总的lcx.cc 。感觉这是整份卷子最有把握的题目了0 0

第二题问“你当前在安全技术领域的研究方向”,这个感觉有点不好答,因为如果有面试的话,你写多少肯定就问你多少!我好像是写了WEB端的渗透测试,sql注入,xss,csrf啥的,略虚啊。

然后就开始问技术问题了。“Linux下,-rwsr-xr-x的含义是什么”,这个题有玩过Linux的基本都能答上,唯一有点难的就是那个“s”了。这里“s”的意思是,当前用户执行这个文件,能够暂时具有该程序拥有者的权限。好吧我跪在这个s上了- –

之后是让讲述DLL劫持的基本原理。之 前玩过lpk.dll,所以对这块还是稍微有点了解的。简单来说,win在执行exe需要调用系统DLL时候,会优先查找当前目录下是否有所需的DLL文 件,没有找到才会去环境变量提供的目录下继续寻找。利用这个特点,先伪造一个系统同名的DLL,提供同样的输出表,每个输出函数转向真正的系统DLL。程 序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功能后,再跳到系统DLL同名函数里执行。这个过程用个形象的词来描述就是系统DLL被劫持 (hijack)了。

下一个问题有点难懂,如何伪造发件人发 送欺诈邮件?!一直没想到,最后草草写了个“社工”就算了 。。回来百度一搜,看来自己还是太菜了,连这么经典的一个利用都不知道。简单来说,就是把你的发信请求发到一个不需要验证发件人的smtp服务器。这样做 成功伪造了发件人,不过看邮件头还是可以知道这是伪造的。(参考lake2大牛06年写的文章:伪造发件人邮件地址

接着问你VLAN中能不能实现IP欺骗?能就给出方案,不能说明理由。这个题是真不懂了,网上搜了下好像也没找到答案。求懂原理的大牛来解答!

下一题还是计算机网络,说出router\switch\hub的区别。这个答案貌似有点长呢,不想打了,这个自行百度吧,或者去翻下计网书(计算机网络低空飘过的表示无力。。。)

第八题问有一台WEB应用的linux主机被入侵,你会如何处理这件事?写出你的排查顺序。表示这块经验略有点不足,就只能说出两点,一是看Web日志,二是看端口流量,木有了 … T_T

最后一个问答题是关于密码算法的,说出常见的密码算法的优缺点和它们使用场景。这个貌似能说的特别多,什么DES、AES、RSA、各种Hash等等。

第三大部分是代码题,具体是给你一段代码,让你分析其中的安全问题,并提出修正方法。由于具体代码忘记了,所以我只能很主观的去介绍问题了。

第一题的代码应该是jsp吧(没玩过,我猜的- -),意思是从请求中获取pdf_file参数,然后download(“/xxx/pdf/”+pdf_file)。这个我想到的是服务器任意文件下载(权限允许的前提下),修复应该就是执行函数前过滤一下敏感字符吧。。

第二题php,从cookie中获取 uid这个值,然后update(uid , $_POST[’email’])。问题一是通过修改cookie的uid值修改任意用户的email地址,二是email的内容没有验证。修复方法可以 在update前验证当前用户身份,email加个re判断。

第三题一段jsp+html,get 参数msg,然后判断msg中是否有“<”“>”,有就报错,没有则执行println(“<input type=hidden name=msg value=’ ” + msg + ” ‘ />”)。这个应该是想考XSS吧,不过我没能把如何弹窗的代码写出来,只能随便扯了。修复方法是不是构造更变态的过滤- –

第四题是C语言,代码大概如下:

void test(char * OldName){
  char[30] NewName;
  int len=0;
  for(;OldName[len] != '\0';len++){
 
     NewName[len] = OldName[len];
 
  }
  return;
}
 问题应该就是没有判断OldName的长度,大于30就溢出了。修复加个长度判断就好。

最后一题php+sql,$_POST两个参数username和pw,然后带入sql语句:

$sql = “select (*) from users where username = ‘”.username.”‘ and pw = ‘”.pw.”‘ limit 1″;

$result = mysql_query($sql);

这里一开始我想的是进行注入,不过好像只返回一个值给result,应该是做登录判断的。后来就想到了闭合单引号,直接让sql返回1,具体是什么不太清楚0 0

卷子的最后还有两道调研题,就是问你对卷子的难度的评价和时间是否充足,以及是否有什么建议。

至此整份卷子就讲完了。总的来说收获还是很丰富的,每一次笔试都是一次学习的过程,让我认识到自己的不足,看来以后还是要多多学习基础的东西啊~

最后感谢阿里巴巴给我这次笔试的机会~

转载请注明:jinglingshu的博客 » 2014 阿里巴巴安全工程师实习生招聘笔试总结

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址