软件漏洞的自动检测是一个重要的研究问题。现有的漏洞静态分析方法存在两个问题:第一,依赖人类专家定义漏洞特征;第二,漏报较高。理想的漏洞检测系统是同时满足低误报和低漏报,当二者无法同时满足时,更好的方法是强调降低漏报,只要误报在可接受的范围内。针对上述问题,我们首次将深度学习技术引入到面向源代码的漏洞检测领域,提出了在切片级别基于深度学习的漏洞检测系统VulDeePecker。基于双向长短期记忆网络模型自动学习生成漏洞模式,在不需人类专家定义特征的前提下,自动检测目标程序是否含有漏洞,并给出漏洞代码的位置。实验结果表明,VulDeePecker在可接受的误报前提下,比其他方法具有更低的漏报;在3个目标软件中检测到4个在National Vulnerability Database中未公布的漏洞,这些漏洞在相应软件的后续版本中进行了默默修补。