四大资深Manager谈IT审计职业经验
转发网上的一篇文章
https://m.douban.com/group/topic/22560603/?type=like
分享一下我对做it审计工作的评价
这是我第一次在这个论坛上发言,以前一直是一个潜水员。
个人背景:职业生涯做过的公司有软件开发公司/系统集成商/it咨询和服务商,从事过程序开发/系统集成/项目管理/市场营销和管理工作,加入big4之前工作了8年,在某big4工作了2年多,今年离开的。职务一直是manager。
业绩:peak season要做近80家客户/110多个gamx(我服务对象是local finance industry),audit quarlity得到广泛认同,1年aqr抽中3个,都是no finding,slack season半年完成近200万的revenue,从build relation,proposal,fieldwork做到最后archive file和收钱落袋。没有一个项目是所谓partner给的或者是从别的地方现成的transfer过来的(倒是transfer了两个项目给了bj,所以在bj it audit department口碑很好),其中成功撬走了另外两家big4的银行客户的it advisory单子。
关于我在这家big4的故事可以再写一本《圈子圈套》4,用小朋友们的话就是属于传奇人物的那种,这里就按下不表。
topic1 it审计相对于审计来说,要轻松一些,但不会轻松很多
my opinion:认同,it审计项目小而多,gcr没有多少技术含量的,但是基本一个staff一周要做2个以上的gcr(个别银行和超大型企业除外),所以小朋友的事情很多,不轻松的。07年peak season的时候,我们部门staff uti个人单个月最高的是180%左右,就是每个月ot charge 22×8×0.8=140小时,我们当时还特意了解了一下这个staff的情况,他还真没有虚报ot。一直是一个人同时做2-3个项目。每天2-3点下班,早上9点就下field的。结果落下腰一直不好的毛病。一般最忙的几个月平均是在120%左右,所以某人说的一个月charge 300小时ot是不靠谱的,08年开始就几乎没有什么ot可以charge了。
topic2 it审计价格太高
my opinion:这里面有一些误解,举个例子,假设财审一个项目的预算是100万,成交价可能是30万,recovery rate30%,it审计给财审的报价30万,财审会complaint说全给你,我都没有钱赚了,其实不是的,it 审计的报价是没有乘recovery rate(因为it审计没有参与和客户的budget negotiation,是不知道recovery rate)所以it审计的实际价格应该是30×30%=9万,很多财审的staff可能忽略了这个乘recovery rate的步骤。
topic3 省it审计成本的办法
my opinion:作为it审计经理,我给客户it经理打一个电话,不用半小时,我都基本能够感觉出这个客户itgc的evaluation的结果了。所以针对那种利润率不高,entity死多,it水平很低,到处用用友金蝶(甚至更烂)的财务软件的非ipo项目,往年itgc ineffective客户不怎么改的,或者初步评估itgc 结论很可能是ineffective的,你就让it审计和做个preliminary understanding + walkthrough,toc完全不用做,而且做一小部分walkthrough就能得出itgccatagory ineffective的,也不用把walkthrough做全。你们自己直接按照itgc ineffective来做,自己小心一下itgc对自己的审计procedure的影响就可以了。这样可以少不少budget。审计风险也很低(都ineffective了还有什么风险,而且audit efficiency也不错,不用花一大把的it audit budget再作出一个ineffective的结论,但是要让it audit manager签好字),千万不要自作聪明按照itgc effective来做,那样你aqr抽中了话会死的很难看的。itgc ineffective没有什么大不了的!只要你熟悉audit procedure,知道itgc ineffective影响那些acr和electronic evidence,知道采取什么样的措施来cover这个risk就可以了。有些项目,你和it审计经理签个memo,认为经过it professional的preliminary understanding,能够得出客户的itgc ineffective的话,成本更低。当然,这里就看财审经理的soft skill了。
topic4 it audit出了四大没有前途
my opinion:完全同意。其实it audit在四大里面也是越来越没有前途。如果一个人整天拿着一个checklist看看汽车方向盘好不好,轮胎有没有气,签字盖章。他敢说他是汽车方面的专家,要到汽车厂做总工,这个人一定是脑残了(就象某个中了北斗神拳的号称it audit manager出去做cio一样)。itgc只是“general”的东西,相对it只能称之为“毛”,连“皮”都没有资格。一般企业找it audit一定要有“实践”经验的+有audit经验的人才要。
it audit的职务,除了大型金融机构和fortune100里面的部分企业外,不会有公司设立这种职务的。而且就算你在四大做it audit,到企业里面也不是很对路子的,因为他们很清楚itgc是个垃圾(来自我的某个客户和后来曾经面试过的金融企业资深内部审计高管的评语),他们也要很多it handon的经验和security方面很technical的经验,这些四大出来的大部分是不具备的。it audit在big 4是附属地位,而且地位只会越来越低,所以这个时候大学一毕业来做这个真是个人职业生涯的自杀行为。当一个职务在市场上只有很狭隘的空间,还能有很好的薪水的话,大批人进来只会让它崩盘直至打回原形。
topic5 it audit能做好it advisory
my opinion:笑话。一个只懂得“毛”的人就敢给客户做advisory,看在公司名字的份上,客户才没一脚把你踢出门去。it audit的executive很多人不直接touch client,因为他们超过一半的利润来自it audit(至于沙丁猫说的转型到以it advisory为主,我不认同,因为他们是不敢放弃it audit那么好赚的钱的)。他们还以为客户是“人傻钱多速来”的那种,人家天天ibm/hp/accenture的顾问泡着。看到你big 4会热泪盈眶,以为你是来给他传授先进经验的传道士?清醒一点吧,除了个别compliance的要求,见你们只是浪费他的时间。
很多partner在公司里面横着走,出了大门什么都不是,还社会中高层,再中一记北斗神拳!传说中某partner见某银行的科长,科长是脚搁到桌子上和他说话的。另一个partner,客户的cio直接在很多人的会议上把报告扔在地上,说这种垃圾不要放到我的会议上来讨论,还得赔笑脸。自身没什么skill,不懂如何handle client。advisory是要帮助客户解决问题的,不是你效力的公司很牛,客户见到你就叫daddie了。你给个不痛不痒,牛头不对马嘴的report就付钱的。除了给regulator的报告以外,big 4自身培养出来的力量是不可能做好advisory的。
有时候看看我以前的一些经历,觉得就是《大腕》里疯人院那段的现实生活版。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月06日 01:33am 时添加 -=-=-=-
先回答cooldog的一句话
关于“科长是脚搁到桌子上和他说话”是我一手的信息,没有中转过。
很多partner见完客户回来的路上会发牢骚,说客户素质差,其实这些客户才是真正的老江湖,人家根本不会被名片上的合伙人三个字就忽悠住的,他们关注的是你真正的价值。不会为那些虚头八脑的东西浪费时间的。
再回答anaesthetist关于我topic3的一个疑问,就是为什么要it manager签一个memo的问题。你们有没有想过,为什么it audit会爆炸性地生意扩展,为什么财审要分一块budget给it audit(尽管心里不爽)?我原来的公司就有一个it audit integration policy,强制要求大部分有赚头的项目必须involve it audit,如果不involve,audit quarlity review要被q的,所以财审才不得不加入it audit。回到前面的问题,如果财审自己下结论说ineffective,审计风险很低,aqr风险极高,因为audit methodology里面说下这种结论的人必须是“it professional”,显然财审不是“it professional”,中招了。所以降低it audit budget而且降低aqr风险的最好办法就是压缩it audit scope同时让it audit manager签memo的方式降低你们自身的aqr风险。
关于it advisory,可以说的很多,为了保证质量且不影响宝宝的睡眠,我准备明天写一个长篇大论给大家分享一下,今天先到这里为止,睡觉去也。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月06日 07:29pm 时添加 -=-=-=-
从事it audit部门里面的it advisory两年多来的体会
引言
曾经听说过一个很经典的冷笑话,说某big4的面试问题如下:如何把一头大象塞进1个冰箱里,标准答案是step1. 打开冰箱的门 step2. 把大象塞进去 step3 把冰箱门关起来。一直觉得很奇怪,这个居然是笑话?直到在某firm里面工作了一段advisory时间后,才深刻体会设计这个笑话的达人后面的深刻意思。
上面这个笑话反应做advisory工作的一些潜规则:
1.一定不要理会客户的需求,尽量把它们忽悠到你自己的路子上,笑话里客户的挑战是把大象塞进冰箱(一个明显的问题就是体积的问题),用firm的思路就是完全回避这个问题,尽量把客户忽悠到自己的路子上,变成大号itgc或者acr,很多客户已经被firm光辉灿烂的名字砸晕了,我们说啥就是啥,如果你提出说客户其实想要别的东西,你会被你老板骂死的,敢说皇帝没穿衣服的人一定被老板列入黑名单(不过这种客户已经越来越少了,而且在客户付钱之前突然意识到自己被忽悠了,还款也就成为一个麻烦事情了);
2.deliverable一定要是finding and recommendation,千万不要去implement什么东西,更加不要出具什么承担责任的东西。所以只能交付这些step1/step2的东西,千万不要下手真去帮客户把大象塞进冰箱里,更不能做塞进去我收多少钱,塞不进就不收钱的事情。
3.deliverable一定要很漂亮,要很有逻辑性,ppt要让老板觉得astonishing,老板就q这些东西。
4.deliverable一定是放之四海皆正确的道理,除了可以借鉴的bible上的话,千万不要有自己的观点,千万不要和客户的实际情况做任何customize的工作
5.客户气的吐血也不要紧,骂到狗血领头也无所谓,只要钱到手,一锤子买卖也无所谓,反正还有client service partner来搽屁股
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 11:51am 时添加 -=-=-=-
it advisory能干些什么?
一类是sox/csox/sas70等类似项目,这类项目是it advisory的主流收入来源之一,工作思路很吻合it audit的方法,不需要特别额外的知识,一般senior来做基本没有问题,我原来部门大部分这类项目不用自己去打客户,跟在brs或者aabs后面就可以。我没法对这类工作做什么评价,因为我只是个别看过他们的工作内容和交付品,没有做过这种项目。我没有做这类项目的经验。
it security,我倒是可以说一些内容,给你们解释各类项目的内容/我的经验以及知识点。it security大约可以分为两个领域,information security management方面和information security technical方面。
information security management的核心是iso27000系列(一般人喜欢称为27001,其实是有区别的。27001只是27000系列的总纲,具体的某些方面的内容有002/003……很多内容,部分还在draft中)。27000项目的后半部分实施和it audit思路相似,根据前期risk analysis的结果,draft rcm,所有的control是从27002里面选,不用自己想,需要补充一个statement(soa, statement of applicable)来解释为什么不选择27002中某些control,然后把这些control和客户现有环境中的control对应起来,做一个gap analysis和recommendation。然后让客户把这个management system run起来就可以了。当然,前期还有draft一个很high level的isms文件,isms文件的框架和必须包括的内容在27001里面有定义的。
27000系列项目对eic/fic的最大挑战有两个:
1.定义范围和管理层buy-in,这个活是前期做的,但是范围没有定义好,事后进行修改,会累死人的。好的eic会在这里阶段很好地引导客户来做scope和buy-in,同样,客户往往在这个阶段来评判vendor是不是有经验。如果业务部门没有buy-in,想做好这件事情会很难,业务部门很多时候会想当然的,这是一个it项目,只是it部门的事情,这是一个理解误区。举个例子:我曾经做过的一个客户的核心信息资产之一是它的工艺流程图(pid),在服务器上了很多的control,但是打印出来的pid却摊在总工的办工桌上,门的钥匙扫地阿姨有一份,阿姨每天提早半小时来打扫卫生,竞争对手是一墙之隔,使用同一家清洁公司。当时我们只能把范围扩大到把工厂里面可能会出现pid的部门和场所都放进来,否则单review 服务器是没有意义的,说服他们当时还是费了一些力气的;
2.清晰描述出范围内信息资产和流程/系统/业务部门之间的关系,然后在理出原有的流程/系统/部门已有的控制手段,同时和业务部门进行risk rating以及risk analysis。这个活很费劲的,但是很涨经验值
做好上述两点,后续的工作it audit小朋友就可以轻松地干活了。eic只要在deliverable的quarlity上能够控制好就可以了。
常见的错误:
很多人上手把注意力放到清点信息资产(数数电脑/服务器什么的),绝对是错误的。27000保护的是信息资产而不是存放信息资产的设备(但是你必须把所有可能存放这个信息资产的设备全部罗列出来)。
从头帮客户draft一套information security management system,大部分客户有一堆的policy,很讨厌又添加了一堆的policy,所以在逻辑关系上要帮他整理出一套成系统的isms管理体系,从policy的制定上,适当做原有policy的调整和增补就可以了。
另:
启动27000系列的项目,很多是以security awareness和security survey开始的。做这类项目的技巧在于熟悉各类企业常见的incident,common weakness, 和对27000的熟悉,难点在于如何draft和customize一些survey的questionary,在inquire的时候,如何能够缓解客户的心理压力,如何进行合理有效的问题询问并一步步深入和展开。因为往往a部门的线索可以引导你去问b部门一些额外的问题。往往好的survey的结论是很astonishing的,特别是你能够做出一些明显的统计图来。除非客户没有钱,否则他都会让你来做27000项目的。当然,里面有很多soft skill。
总结一下:
从事information security management advisory工作,首先熟悉iso27000系列的内容,对客户所在行业的industry的特点要理解,平时收集和积累一些information security的案例,然后对一些工具使用和设计要比较熟悉(比如soa / rcm / risk analysis),强调工作步骤中前后内容的一致性和逻辑性(谁么内容推导出什么结论再推到出什么方案),不需要太多的tech方面的知识,如果为了做27000系列的服务,考cissp是多余的。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 01:17pm 时添加 -=-=-=-
it security technical方面:
system hacking
曾经有一个小朋友下field时候打电话问我,说他碰到一个麻烦事情,客户系统跑在windows98系统上,但是公司的knowledge库里面没有review 98的脚本,问我怎么办?一句话,不用review,直接判定system fail。这个有趣的问题就衍生出很多的问题了:
1.黑客是怎么攻击系统用的?
黑客攻击系统的基本原理就一条:利用系统的漏洞,拿到系统管理员权限。万变不离其宗。
2.什么是安全的操作系统,或者说不容易被黑客攻击的?或者凭什么认为某些系统天生就是不安全的?
在cc(common criteria)文件里面,对一定安全的操作系统的级别定义是c2级,在cc后续的一些规范里面,好像是定义成eal4级以上才是安全的操作系统(好久没有时间读这些东东了)。c2级别的一个重要特征是操作系统具备这样的控制:当非系统管理员登录到系统,是无法获得系统管理员权限或者口令的。window2000/xp以前的操作系统虽然微软自己说是c2级别的,但是习惯上大家都不认为它是c2级别,因为它有安全漏洞。
3.什么样的安全漏洞?
大家在登录window xp的时候,有没有想过系统存在什么样的机制,来保护我输入对的口令可以进入,输入错的口令就不能进入?是不是有个什么地方放了我的口令文件,验证的时候拿来比对?
对了,unix和windows系统都有一个文件是存放所有系统用户口令的,一般被成为sam文件或者psam文件,一般系统提供一种加密机制(通常为hash)来将这个文件进行加密,否则大家都能打开这个文件,岂不是没有秘密可言了?c2的操作系统,它能够提供一种控制,只有系统管理员才能读到这个加密文件,普通用户是不能读sam的。所以小朋友仔细想想你们review system的脚本第一个control就是读某个文件的属性,看password有没有被加密成“******”,还要看系统是不是配置成tbc(trust base computing)的,就是这个道理。
windows2000以前的操作系统,是个普通用户都能读这个加密文件sam,所以他们被拒绝列为c2的安全级别的操作系统。
4.sam文件在哪里?
很多人想问sam文件在哪里?我记不住了,但是有很多脚本工具能够帮你从系统中直接导出加密的sam文件,会google就可以了。
5.sam文件如何解密?
hash算法是单向算法,理论上你拿到hash值是无法逆向导出密码明文的。但是全世界最顶级的加密算法都挡不住一种密码破解算法,就是我拿口令从00000000开始一个一个试,这种笨办法才是无敌的破解加密的算法。
6.如何使用笨办法来破解?
有很多的工具可以来破解sam,当时开发这些工具的人员主要出于以下的目的,很多用户忘记自己的密码,这些密码和某些文件的权限有关,所以要求系统管理员帮助恢复密码。这些工具就采用了上面我说的笨办法来蛮力破解,你们要是google一些top100的安全工具,里面至少有5-6个,但是名称都是系统管理员密码恢复工具,不会说自己是黑客工具,这些工具非常傻瓜化了,如jtr(john the ripper),连界面都是windows话的。
分享一个我在firm里做过的system hacking的案例:
情况:客户提供一台他们it标准配置的机器,准许我介入内部网
目标:证明给他们异地的cio,他们的内网管理有漏洞导致我可以使用这台机器获控制cio机器
客户的系统是windows xp,完了,傻眼了,因为客户给我的是普通用户帐号,我是没有办法导出sam的。但是,在2000年左右,有一个著名的黑客大会叫back orifice(针对ms的backoffice)里面专门开发了一个脚本,当你用普通用户权限进去的时候,启动这个脚本去替换系统里面某一个无关紧要的进程(你只要按“ctrl+alt+del”就能看到系统进程的窗口了),然后退出系统,然后再次用普通帐户的权限进去系统,你的权限能自动升级成系统管理员了。当然几乎所有的杀毒软件把这个脚本列入恶意代码的范围,但是你只要给它稍微改头换面一下就能解决问题了。我在此之前只是听说过这个脚本,后来是从firm里面海外的某大师手里获得的。百年招牌就是百年招牌,有理由的啊!
然后就是导出sam,crack sam,得到系统管理员的口令。
其实大家看看自己的笔记本,你登录的时候你都可以看到有一个administrator的帐户,这个就是系统管理员的帐户,所有人的机器上都有,有这个帐户和密码,只要你能被连接的上,可以远程控制你的机器做任何事情。我当时的事情是放了一首立波啤酒的广告歌到cio的桌面上并播放了一下,以纪念英年早逝的歌曲原创者,这首mp3是他送的。老外认为这首歌还挺好听的。
7.这种系统管理员密码恢复工具不是无敌了?
不是的,这种工具的工作原理就是老老实实一步一步打黑虎掏心,所以它的最大问题是效率。05年前后,国内一家加密所的朋友做过测试,长度为7,有复杂度要求的口令,用ibm rs6000破解时间约为7小时,长度为8以后时间长度是以指数级别上去的,据说要用月计算。所以想想firm的口令复杂度和时间有效性的要求就明白了。我曾经试图破解firm的sa的密码,用t60算了3天就没有信心了,后来一问边上的小朋友都知道,看看了它的复杂度,估计有生之年都不行了。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 02:04pm 时添加 -=-=-=-
information security 2
social engineering
接上篇,我试图花费很长时间crack的超长又复杂的密码其实坐在batch上的小朋友都知道,多么荒谬啊!这在information security领域称之为social engineering,这是公认的最省力最有效的hacking。
报纸上常有报道,说某it大亨告另外的it大亨,说他雇人整天翻自己公司的垃圾来找有价值的文件,这也是social engineering hacking。简而言之,social engineering是采用一些社交技巧来获得企业的商业密码。关键是:人是那么好骗的吗?
这里涉及到另外一个技巧,称之为risk accrue,我和一些senior在做security项目时,进行risk analysis时,通常提醒他们,risk accrue是一个需要重点关注的地方。很多人因为做itgc多了,很惯性地去思维一些risk,认为是low risk,轻松放过,其实不是的。一个低的risk1+低的risk2+低的risk3就会accrue成一个high risk。而这种high risk往往是要命的。
分享一个案例:
某公司雇佣我们做一个social engineering的测试。它的cio在系统里面给我们开了一个测试帐号(假设名叫aaa),不告诉我密码。整个测试只有cio知情。
目标:要求我们无论采用任何方式,拿到这个帐户的密码。
我除了这个帐户名称/公司名称和客户的系统管理员在上海外一无所有。首先上网了解公司的背景和电话号码,我清楚地知道,我绝对不能直接打电话给客户的it系统管理员,因为一般你打电话给系统管理员,他是要验证你的个人信息的。我很有可能露馅。而且有一点可以明确,一般管理较好的公司,系统管理员是无论如何不会告诉你,你自己设定的密码的。
我做的第一件事情是打电话到他们北京office!!!我和前台的小姑娘聊了一下,知道他们上海的系统管理员叫bbb,北京这边相对应的人叫ccc,当然关于密码设置还是要找bbb。我打电话给北京的ccc,成功地了解到上午bbb因为病假不在办公室,下午回来以及bbb的手机号。然后我抓紧给bbb的座机打了一个电话。
到了下午,我打电话给bbb的手机,他说他在位置上,然后我打了他的座机,向他解释上午就找过他了(显然他是可以验证这点的)同时告诉他,手机号码是ccc告诉我的,而且上午他生病的信息。我是北京来上海出差,新员工忘记密码了等等,bbb毫不犹豫地就重置了我的密码并告诉我新密码。
从这个案例看出,ccc如果不那么热情告诉我一些额外的信息,我是没法让bbb快速信任我的,这是一个low risk,因为ccc的行为没有直接威胁到企业的信息安全。同样,bbb应该有效合理的验证我的身份,但是他以为我的身份已经被验证了,所以他就重置了我的密码。ccc的行为也是一个low risk,因为他确认他验证了我的信息,但是忽略了这些信息不是直接信息,是间接信息,他甚至忘记了问我员工的id号码!但是两个加起来就是一个high risk,结果是我拿到了密码,我们成功地绕过了公司关于口令保护的严格规定。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 03:06pm 时添加 -=-=-=-
it security 3
network security
network security的工作已经越来越傻瓜化了,应该感谢无数的前辈以开源共享的方式为我们做了很多的铺垫工作,但是也就是因为这个特点,这个工作已经越来越没有卖点,业界的注意力都转到了app security和sdl里面了,这两个会在后续中谈到。
1.侦查敌情
当客户允许你进行网络安全扫描时,先用一些工具扫描一下敌情,了解网络里面到底有些什么os/router/db/middleware在工作,使用那些软件/版本号多少,开放了哪些服务,整理出一个客户网络环境的大致的结构图来,这些自动化的工具随便找一篇黑客文章就可以找到;
2.网络安全分析
拿到敌情图,如何分析它的弱点呢?你必须具备以下技能:非常熟悉各种版本各种软件的常见安全漏洞,你要一个一个试探这种漏洞在每个系统中是否存在。这是真正的黑客大师才能干的事情啊,我们怎么可能具备呢?感谢那些大师,他们无偿地维护和更新一个数据库来让我们及时更新各种漏洞库:cve。感谢那些大师,他们曾经开发了一代自动化扫描工具来帮我们自动化扫描和分析漏洞,nessus。不过近两年来,nessus也被商业化了 由于nessus自动集成了cve,所以我们所做的工作只是分配给nessus扫描的ip域,然后启动,出去喝咖啡,回来看nessus出的报告。
3.分析nessus报告
凡是自动化的东西都可能会有误报,或者有些是扫描出来的缺陷是客户这个环境下必须存在或者特有的,比如客户出于开发的必要就开放了个别自定义的端口,所以需要和客户进行漏洞发现的discuss。这里自动化工具是不能帮你了,你必须根据nessus报告的错误id到cve中找到这个错误的具体内容,理解后才能和客户discuss,因为客户往往会把vendor叫来和你pk,你要是功底不深,会被客户challenge的。
4.review firewall policy
我做network security assessment的时候,一般会去做firewall policy review的工作,这块工作也容易出finding。为什么呢?一般电子商务网站(比如说网银)的系统更新很快,上的新模块和模块功能设计更新也很多,客户会很重视开发的version control和change management, 这也是itgc关注的重点之一。但是客户往往会忽略firewall policy的及时update,policy里面有很多legacy是以前测试留下来的或者已经废弃的module留下来用的,而且网络结构一变更,地址重新分配以后,很多人已经说不清楚为什么有些policy还存在于firewall里面了。到后来,谁都不敢去删除一些legacy policy,因为删除了可能就影响功能正常使用了。
基本来说network security已经成为一个common sense的东西,绝大部分客户也熟悉,所以也没有什么特别精彩的可以show出来。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 03:11pm 时添加 -=-=-=-
补充一下:
这里提到的内容大部分是我做的it advisory的经验,一般it audit是没有什么机会接触这些项目,没有什么knowledge可以通过internal resource可以学习到的,这些经验是我加入firm之前就具备的。
千万不要有小朋友以为it audit很精彩,进来都能做这类项目。这些只是我利用我自己的knowledge,在firm的平台上为客户提供的我认为“有价值”的服务。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 04:55pm 时添加 -=-=-=-
information security 4
应用程序安全app security和软件开发安全sdl(secure software development lifecycle)
到现在为止,能够把app security和sdl做成功的人真的可以是做security做到顶点了,我曾经几乎能够摸到了这个顶点,可惜没有这个运气。
就像前面说的,network security已经成为一个common sense的东西了,客户都会自己做,而且相关风险发生的概率已经越来越小,更多的安全事件是发生在应用层的安全。这个可以看看最近几年的安全报告以及银监会的相关安全风险提示就知道了。关键是怎么做。
一个思路是类似于nessus,用一种业界公认的工具来进行扫描,问题在哪里呢?nessus有一个强大的cve来支持,应用程序安全的cve在哪里?虽然每年owasp会公布top ten的报告,几乎我测试过的所有工具都宣称他们遵循owasp top ten,但是谁都没有给我一个类似cve这么强大的database,用一句auditor的话说 assurance不够,而且top10 的定义还是有一些含糊的,scope不清楚。虽然有开源的app security scanner(如paros),和卖的极贵的商业版本软件(如ibm的app scan)和一些本土软件,我都测试过了,performance都不满意。感觉有点虚。
另一个思路,从程序开发的源头来阻止安全问题的发生。这就是进入了sdl的领域。sdl是微软的亲生儿子,在微软的开发员网站上有一堆的sdl的资料。微软关于sdl的架构和相关工具软件已经接近完美。但是微软的sdl在客户化过程中有1个难点:在sdl的测试过程中,微软的工具服务对象是它自己的开发环境:.net和c#,微软没有解释为什么用它推荐的工具就能基本解决所有的开发领域的常见漏洞,当然它有这个足够的技术牛气能说这句话。
但是,很多客户的开发环境用的java和其他的工具,并不完全用微软的平台,如何能够找到和微软平台类似的测试工具,这个工具还能覆盖开发过程中尽可能多的安全漏洞,这些测试软件能够完美像cve和nessus这样成熟。同时能够使用与微软的sdl项目管理流程中去。正是一个潜在客户提给我的挑战。
这个客户在咨询sdl项目时要的是什么?客户显然不要一个step1/step2的流程,因为这个微软网站上都是这个东西,客户花在这个事情的研究上的功夫不亚于我们。客户要的是“把大象真地塞进冰箱”的能力,而不是一个好看而无用的塞大象的工作手册。在整整两个月里我不停地回答客户的q&a,做很多的research,等到客户终于申请下来经费,准备启动这个项目时,我已经离开了,当然项目客户也不愿意有什么后续了。有点可惜,不过我现在所做的工作和这个又有一点关系,可以重新启动了。
IT审计方丈
18-09-07 06:02
这是好几年前的贴子了,时过境迁。
四大资深Manager谈IT审计职业经验
IT审计方丈
会员积分:520
转发网上的一篇文章
https://m.douban.com/group/topic/22560603/?type=like
分享一下我对做it审计工作的评价
这是我第一次在这个论坛上发言,以前一直是一个潜水员。
个人背景:职业生涯做过的公司有软件开发公司/系统集成商/it咨询和服务商,从事过程序开发/系统集成/项目管理/市场营销和管理工作,加入big4之前工作了8年,在某big4工作了2年多,今年离开的。职务一直是manager。
业绩:peak season要做近80家客户/110多个gamx(我服务对象是local finance industry),audit quarlity得到广泛认同,1年aqr抽中3个,都是no finding,slack season半年完成近200万的revenue,从build relation,proposal,fieldwork做到最后archive file和收钱落袋。没有一个项目是所谓partner给的或者是从别的地方现成的transfer过来的(倒是transfer了两个项目给了bj,所以在bj it audit department口碑很好),其中成功撬走了另外两家big4的银行客户的it advisory单子。
关于我在这家big4的故事可以再写一本《圈子圈套》4,用小朋友们的话就是属于传奇人物的那种,这里就按下不表。
topic1 it审计相对于审计来说,要轻松一些,但不会轻松很多
my opinion:认同,it审计项目小而多,gcr没有多少技术含量的,但是基本一个staff一周要做2个以上的gcr(个别银行和超大型企业除外),所以小朋友的事情很多,不轻松的。07年peak season的时候,我们部门staff uti个人单个月最高的是180%左右,就是每个月ot charge 22×8×0.8=140小时,我们当时还特意了解了一下这个staff的情况,他还真没有虚报ot。一直是一个人同时做2-3个项目。每天2-3点下班,早上9点就下field的。结果落下腰一直不好的毛病。一般最忙的几个月平均是在120%左右,所以某人说的一个月charge 300小时ot是不靠谱的,08年开始就几乎没有什么ot可以charge了。
topic2 it审计价格太高
my opinion:这里面有一些误解,举个例子,假设财审一个项目的预算是100万,成交价可能是30万,recovery rate30%,it审计给财审的报价30万,财审会complaint说全给你,我都没有钱赚了,其实不是的,it 审计的报价是没有乘recovery rate(因为it审计没有参与和客户的budget negotiation,是不知道recovery rate)所以it审计的实际价格应该是30×30%=9万,很多财审的staff可能忽略了这个乘recovery rate的步骤。
topic3 省it审计成本的办法
my opinion:作为it审计经理,我给客户it经理打一个电话,不用半小时,我都基本能够感觉出这个客户itgc的evaluation的结果了。所以针对那种利润率不高,entity死多,it水平很低,到处用用友金蝶(甚至更烂)的财务软件的非ipo项目,往年itgc ineffective客户不怎么改的,或者初步评估itgc 结论很可能是ineffective的,你就让it审计和做个preliminary understanding + walkthrough,toc完全不用做,而且做一小部分walkthrough就能得出itgccatagory ineffective的,也不用把walkthrough做全。你们自己直接按照itgc ineffective来做,自己小心一下itgc对自己的审计procedure的影响就可以了。这样可以少不少budget。审计风险也很低(都ineffective了还有什么风险,而且audit efficiency也不错,不用花一大把的it audit budget再作出一个ineffective的结论,但是要让it audit manager签好字),千万不要自作聪明按照itgc effective来做,那样你aqr抽中了话会死的很难看的。itgc ineffective没有什么大不了的!只要你熟悉audit procedure,知道itgc ineffective影响那些acr和electronic evidence,知道采取什么样的措施来cover这个risk就可以了。有些项目,你和it审计经理签个memo,认为经过it professional的preliminary understanding,能够得出客户的itgc ineffective的话,成本更低。当然,这里就看财审经理的soft skill了。
topic4 it audit出了四大没有前途
my opinion:完全同意。其实it audit在四大里面也是越来越没有前途。如果一个人整天拿着一个checklist看看汽车方向盘好不好,轮胎有没有气,签字盖章。他敢说他是汽车方面的专家,要到汽车厂做总工,这个人一定是脑残了(就象某个中了北斗神拳的号称it audit manager出去做cio一样)。itgc只是“general”的东西,相对it只能称之为“毛”,连“皮”都没有资格。一般企业找it audit一定要有“实践”经验的+有audit经验的人才要。
it audit的职务,除了大型金融机构和fortune100里面的部分企业外,不会有公司设立这种职务的。而且就算你在四大做it audit,到企业里面也不是很对路子的,因为他们很清楚itgc是个垃圾(来自我的某个客户和后来曾经面试过的金融企业资深内部审计高管的评语),他们也要很多it handon的经验和security方面很technical的经验,这些四大出来的大部分是不具备的。it audit在big 4是附属地位,而且地位只会越来越低,所以这个时候大学一毕业来做这个真是个人职业生涯的自杀行为。当一个职务在市场上只有很狭隘的空间,还能有很好的薪水的话,大批人进来只会让它崩盘直至打回原形。
topic5 it audit能做好it advisory
my opinion:笑话。一个只懂得“毛”的人就敢给客户做advisory,看在公司名字的份上,客户才没一脚把你踢出门去。it audit的executive很多人不直接touch client,因为他们超过一半的利润来自it audit(至于沙丁猫说的转型到以it advisory为主,我不认同,因为他们是不敢放弃it audit那么好赚的钱的)。他们还以为客户是“人傻钱多速来”的那种,人家天天ibm/hp/accenture的顾问泡着。看到你big 4会热泪盈眶,以为你是来给他传授先进经验的传道士?清醒一点吧,除了个别compliance的要求,见你们只是浪费他的时间。
很多partner在公司里面横着走,出了大门什么都不是,还社会中高层,再中一记北斗神拳!传说中某partner见某银行的科长,科长是脚搁到桌子上和他说话的。另一个partner,客户的cio直接在很多人的会议上把报告扔在地上,说这种垃圾不要放到我的会议上来讨论,还得赔笑脸。自身没什么skill,不懂如何handle client。advisory是要帮助客户解决问题的,不是你效力的公司很牛,客户见到你就叫daddie了。你给个不痛不痒,牛头不对马嘴的report就付钱的。除了给regulator的报告以外,big 4自身培养出来的力量是不可能做好advisory的。
有时候看看我以前的一些经历,觉得就是《大腕》里疯人院那段的现实生活版。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月06日 01:33am 时添加 -=-=-=-
先回答cooldog的一句话
关于“科长是脚搁到桌子上和他说话”是我一手的信息,没有中转过。
很多partner见完客户回来的路上会发牢骚,说客户素质差,其实这些客户才是真正的老江湖,人家根本不会被名片上的合伙人三个字就忽悠住的,他们关注的是你真正的价值。不会为那些虚头八脑的东西浪费时间的。
再回答anaesthetist关于我topic3的一个疑问,就是为什么要it manager签一个memo的问题。你们有没有想过,为什么it audit会爆炸性地生意扩展,为什么财审要分一块budget给it audit(尽管心里不爽)?我原来的公司就有一个it audit integration policy,强制要求大部分有赚头的项目必须involve it audit,如果不involve,audit quarlity review要被q的,所以财审才不得不加入it audit。回到前面的问题,如果财审自己下结论说ineffective,审计风险很低,aqr风险极高,因为audit methodology里面说下这种结论的人必须是“it professional”,显然财审不是“it professional”,中招了。所以降低it audit budget而且降低aqr风险的最好办法就是压缩it audit scope同时让it audit manager签memo的方式降低你们自身的aqr风险。
关于it advisory,可以说的很多,为了保证质量且不影响宝宝的睡眠,我准备明天写一个长篇大论给大家分享一下,今天先到这里为止,睡觉去也。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月06日 07:29pm 时添加 -=-=-=-
从事it audit部门里面的it advisory两年多来的体会
引言
曾经听说过一个很经典的冷笑话,说某big4的面试问题如下:如何把一头大象塞进1个冰箱里,标准答案是step1. 打开冰箱的门 step2. 把大象塞进去 step3 把冰箱门关起来。一直觉得很奇怪,这个居然是笑话?直到在某firm里面工作了一段advisory时间后,才深刻体会设计这个笑话的达人后面的深刻意思。
上面这个笑话反应做advisory工作的一些潜规则:
1.一定不要理会客户的需求,尽量把它们忽悠到你自己的路子上,笑话里客户的挑战是把大象塞进冰箱(一个明显的问题就是体积的问题),用firm的思路就是完全回避这个问题,尽量把客户忽悠到自己的路子上,变成大号itgc或者acr,很多客户已经被firm光辉灿烂的名字砸晕了,我们说啥就是啥,如果你提出说客户其实想要别的东西,你会被你老板骂死的,敢说皇帝没穿衣服的人一定被老板列入黑名单(不过这种客户已经越来越少了,而且在客户付钱之前突然意识到自己被忽悠了,还款也就成为一个麻烦事情了);
2.deliverable一定要是finding and recommendation,千万不要去implement什么东西,更加不要出具什么承担责任的东西。所以只能交付这些step1/step2的东西,千万不要下手真去帮客户把大象塞进冰箱里,更不能做塞进去我收多少钱,塞不进就不收钱的事情。
3.deliverable一定要很漂亮,要很有逻辑性,ppt要让老板觉得astonishing,老板就q这些东西。
4.deliverable一定是放之四海皆正确的道理,除了可以借鉴的bible上的话,千万不要有自己的观点,千万不要和客户的实际情况做任何customize的工作
5.客户气的吐血也不要紧,骂到狗血领头也无所谓,只要钱到手,一锤子买卖也无所谓,反正还有client service partner来搽屁股
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 11:51am 时添加 -=-=-=-
it advisory能干些什么?
一类是sox/csox/sas70等类似项目,这类项目是it advisory的主流收入来源之一,工作思路很吻合it audit的方法,不需要特别额外的知识,一般senior来做基本没有问题,我原来部门大部分这类项目不用自己去打客户,跟在brs或者aabs后面就可以。我没法对这类工作做什么评价,因为我只是个别看过他们的工作内容和交付品,没有做过这种项目。我没有做这类项目的经验。
it security,我倒是可以说一些内容,给你们解释各类项目的内容/我的经验以及知识点。it security大约可以分为两个领域,information security management方面和information security technical方面。
information security management的核心是iso27000系列(一般人喜欢称为27001,其实是有区别的。27001只是27000系列的总纲,具体的某些方面的内容有002/003……很多内容,部分还在draft中)。27000项目的后半部分实施和it audit思路相似,根据前期risk analysis的结果,draft rcm,所有的control是从27002里面选,不用自己想,需要补充一个statement(soa, statement of applicable)来解释为什么不选择27002中某些control,然后把这些control和客户现有环境中的control对应起来,做一个gap analysis和recommendation。然后让客户把这个management system run起来就可以了。当然,前期还有draft一个很high level的isms文件,isms文件的框架和必须包括的内容在27001里面有定义的。
27000系列项目对eic/fic的最大挑战有两个:
1.定义范围和管理层buy-in,这个活是前期做的,但是范围没有定义好,事后进行修改,会累死人的。好的eic会在这里阶段很好地引导客户来做scope和buy-in,同样,客户往往在这个阶段来评判vendor是不是有经验。如果业务部门没有buy-in,想做好这件事情会很难,业务部门很多时候会想当然的,这是一个it项目,只是it部门的事情,这是一个理解误区。举个例子:我曾经做过的一个客户的核心信息资产之一是它的工艺流程图(pid),在服务器上了很多的control,但是打印出来的pid却摊在总工的办工桌上,门的钥匙扫地阿姨有一份,阿姨每天提早半小时来打扫卫生,竞争对手是一墙之隔,使用同一家清洁公司。当时我们只能把范围扩大到把工厂里面可能会出现pid的部门和场所都放进来,否则单review 服务器是没有意义的,说服他们当时还是费了一些力气的;
2.清晰描述出范围内信息资产和流程/系统/业务部门之间的关系,然后在理出原有的流程/系统/部门已有的控制手段,同时和业务部门进行risk rating以及risk analysis。这个活很费劲的,但是很涨经验值
做好上述两点,后续的工作it audit小朋友就可以轻松地干活了。eic只要在deliverable的quarlity上能够控制好就可以了。
常见的错误:
很多人上手把注意力放到清点信息资产(数数电脑/服务器什么的),绝对是错误的。27000保护的是信息资产而不是存放信息资产的设备(但是你必须把所有可能存放这个信息资产的设备全部罗列出来)。
从头帮客户draft一套information security management system,大部分客户有一堆的policy,很讨厌又添加了一堆的policy,所以在逻辑关系上要帮他整理出一套成系统的isms管理体系,从policy的制定上,适当做原有policy的调整和增补就可以了。
另:
启动27000系列的项目,很多是以security awareness和security survey开始的。做这类项目的技巧在于熟悉各类企业常见的incident,common weakness, 和对27000的熟悉,难点在于如何draft和customize一些survey的questionary,在inquire的时候,如何能够缓解客户的心理压力,如何进行合理有效的问题询问并一步步深入和展开。因为往往a部门的线索可以引导你去问b部门一些额外的问题。往往好的survey的结论是很astonishing的,特别是你能够做出一些明显的统计图来。除非客户没有钱,否则他都会让你来做27000项目的。当然,里面有很多soft skill。
总结一下:
从事information security management advisory工作,首先熟悉iso27000系列的内容,对客户所在行业的industry的特点要理解,平时收集和积累一些information security的案例,然后对一些工具使用和设计要比较熟悉(比如soa / rcm / risk analysis),强调工作步骤中前后内容的一致性和逻辑性(谁么内容推导出什么结论再推到出什么方案),不需要太多的tech方面的知识,如果为了做27000系列的服务,考cissp是多余的。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 01:17pm 时添加 -=-=-=-
it security technical方面:
system hacking
曾经有一个小朋友下field时候打电话问我,说他碰到一个麻烦事情,客户系统跑在windows98系统上,但是公司的knowledge库里面没有review 98的脚本,问我怎么办?一句话,不用review,直接判定system fail。这个有趣的问题就衍生出很多的问题了:
1.黑客是怎么攻击系统用的?
黑客攻击系统的基本原理就一条:利用系统的漏洞,拿到系统管理员权限。万变不离其宗。
2.什么是安全的操作系统,或者说不容易被黑客攻击的?或者凭什么认为某些系统天生就是不安全的?
在cc(common criteria)文件里面,对一定安全的操作系统的级别定义是c2级,在cc后续的一些规范里面,好像是定义成eal4级以上才是安全的操作系统(好久没有时间读这些东东了)。c2级别的一个重要特征是操作系统具备这样的控制:当非系统管理员登录到系统,是无法获得系统管理员权限或者口令的。window2000/xp以前的操作系统虽然微软自己说是c2级别的,但是习惯上大家都不认为它是c2级别,因为它有安全漏洞。
3.什么样的安全漏洞?
大家在登录window xp的时候,有没有想过系统存在什么样的机制,来保护我输入对的口令可以进入,输入错的口令就不能进入?是不是有个什么地方放了我的口令文件,验证的时候拿来比对?
对了,unix和windows系统都有一个文件是存放所有系统用户口令的,一般被成为sam文件或者psam文件,一般系统提供一种加密机制(通常为hash)来将这个文件进行加密,否则大家都能打开这个文件,岂不是没有秘密可言了?c2的操作系统,它能够提供一种控制,只有系统管理员才能读到这个加密文件,普通用户是不能读sam的。所以小朋友仔细想想你们review system的脚本第一个control就是读某个文件的属性,看password有没有被加密成“******”,还要看系统是不是配置成tbc(trust base computing)的,就是这个道理。
windows2000以前的操作系统,是个普通用户都能读这个加密文件sam,所以他们被拒绝列为c2的安全级别的操作系统。
4.sam文件在哪里?
很多人想问sam文件在哪里?我记不住了,但是有很多脚本工具能够帮你从系统中直接导出加密的sam文件,会google就可以了。
5.sam文件如何解密?
hash算法是单向算法,理论上你拿到hash值是无法逆向导出密码明文的。但是全世界最顶级的加密算法都挡不住一种密码破解算法,就是我拿口令从00000000开始一个一个试,这种笨办法才是无敌的破解加密的算法。
6.如何使用笨办法来破解?
有很多的工具可以来破解sam,当时开发这些工具的人员主要出于以下的目的,很多用户忘记自己的密码,这些密码和某些文件的权限有关,所以要求系统管理员帮助恢复密码。这些工具就采用了上面我说的笨办法来蛮力破解,你们要是google一些top100的安全工具,里面至少有5-6个,但是名称都是系统管理员密码恢复工具,不会说自己是黑客工具,这些工具非常傻瓜化了,如jtr(john the ripper),连界面都是windows话的。
分享一个我在firm里做过的system hacking的案例:
情况:客户提供一台他们it标准配置的机器,准许我介入内部网
目标:证明给他们异地的cio,他们的内网管理有漏洞导致我可以使用这台机器获控制cio机器
客户的系统是windows xp,完了,傻眼了,因为客户给我的是普通用户帐号,我是没有办法导出sam的。但是,在2000年左右,有一个著名的黑客大会叫back orifice(针对ms的backoffice)里面专门开发了一个脚本,当你用普通用户权限进去的时候,启动这个脚本去替换系统里面某一个无关紧要的进程(你只要按“ctrl+alt+del”就能看到系统进程的窗口了),然后退出系统,然后再次用普通帐户的权限进去系统,你的权限能自动升级成系统管理员了。当然几乎所有的杀毒软件把这个脚本列入恶意代码的范围,但是你只要给它稍微改头换面一下就能解决问题了。我在此之前只是听说过这个脚本,后来是从firm里面海外的某大师手里获得的。百年招牌就是百年招牌,有理由的啊!
然后就是导出sam,crack sam,得到系统管理员的口令。
其实大家看看自己的笔记本,你登录的时候你都可以看到有一个administrator的帐户,这个就是系统管理员的帐户,所有人的机器上都有,有这个帐户和密码,只要你能被连接的上,可以远程控制你的机器做任何事情。我当时的事情是放了一首立波啤酒的广告歌到cio的桌面上并播放了一下,以纪念英年早逝的歌曲原创者,这首mp3是他送的。老外认为这首歌还挺好听的。
7.这种系统管理员密码恢复工具不是无敌了?
不是的,这种工具的工作原理就是老老实实一步一步打黑虎掏心,所以它的最大问题是效率。05年前后,国内一家加密所的朋友做过测试,长度为7,有复杂度要求的口令,用ibm rs6000破解时间约为7小时,长度为8以后时间长度是以指数级别上去的,据说要用月计算。所以想想firm的口令复杂度和时间有效性的要求就明白了。我曾经试图破解firm的sa的密码,用t60算了3天就没有信心了,后来一问边上的小朋友都知道,看看了它的复杂度,估计有生之年都不行了。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 02:04pm 时添加 -=-=-=-
information security 2
social engineering
接上篇,我试图花费很长时间crack的超长又复杂的密码其实坐在batch上的小朋友都知道,多么荒谬啊!这在information security领域称之为social engineering,这是公认的最省力最有效的hacking。
报纸上常有报道,说某it大亨告另外的it大亨,说他雇人整天翻自己公司的垃圾来找有价值的文件,这也是social engineering hacking。简而言之,social engineering是采用一些社交技巧来获得企业的商业密码。关键是:人是那么好骗的吗?
这里涉及到另外一个技巧,称之为risk accrue,我和一些senior在做security项目时,进行risk analysis时,通常提醒他们,risk accrue是一个需要重点关注的地方。很多人因为做itgc多了,很惯性地去思维一些risk,认为是low risk,轻松放过,其实不是的。一个低的risk1+低的risk2+低的risk3就会accrue成一个high risk。而这种high risk往往是要命的。
分享一个案例:
某公司雇佣我们做一个social engineering的测试。它的cio在系统里面给我们开了一个测试帐号(假设名叫aaa),不告诉我密码。整个测试只有cio知情。
目标:要求我们无论采用任何方式,拿到这个帐户的密码。
我除了这个帐户名称/公司名称和客户的系统管理员在上海外一无所有。首先上网了解公司的背景和电话号码,我清楚地知道,我绝对不能直接打电话给客户的it系统管理员,因为一般你打电话给系统管理员,他是要验证你的个人信息的。我很有可能露馅。而且有一点可以明确,一般管理较好的公司,系统管理员是无论如何不会告诉你,你自己设定的密码的。
我做的第一件事情是打电话到他们北京office!!!我和前台的小姑娘聊了一下,知道他们上海的系统管理员叫bbb,北京这边相对应的人叫ccc,当然关于密码设置还是要找bbb。我打电话给北京的ccc,成功地了解到上午bbb因为病假不在办公室,下午回来以及bbb的手机号。然后我抓紧给bbb的座机打了一个电话。
到了下午,我打电话给bbb的手机,他说他在位置上,然后我打了他的座机,向他解释上午就找过他了(显然他是可以验证这点的)同时告诉他,手机号码是ccc告诉我的,而且上午他生病的信息。我是北京来上海出差,新员工忘记密码了等等,bbb毫不犹豫地就重置了我的密码并告诉我新密码。
从这个案例看出,ccc如果不那么热情告诉我一些额外的信息,我是没法让bbb快速信任我的,这是一个low risk,因为ccc的行为没有直接威胁到企业的信息安全。同样,bbb应该有效合理的验证我的身份,但是他以为我的身份已经被验证了,所以他就重置了我的密码。ccc的行为也是一个low risk,因为他确认他验证了我的信息,但是忽略了这些信息不是直接信息,是间接信息,他甚至忘记了问我员工的id号码!但是两个加起来就是一个high risk,结果是我拿到了密码,我们成功地绕过了公司关于口令保护的严格规定。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 03:06pm 时添加 -=-=-=-
it security 3
network security
network security的工作已经越来越傻瓜化了,应该感谢无数的前辈以开源共享的方式为我们做了很多的铺垫工作,但是也就是因为这个特点,这个工作已经越来越没有卖点,业界的注意力都转到了app security和sdl里面了,这两个会在后续中谈到。
1.侦查敌情
当客户允许你进行网络安全扫描时,先用一些工具扫描一下敌情,了解网络里面到底有些什么os/router/db/middleware在工作,使用那些软件/版本号多少,开放了哪些服务,整理出一个客户网络环境的大致的结构图来,这些自动化的工具随便找一篇黑客文章就可以找到;
2.网络安全分析
拿到敌情图,如何分析它的弱点呢?你必须具备以下技能:非常熟悉各种版本各种软件的常见安全漏洞,你要一个一个试探这种漏洞在每个系统中是否存在。这是真正的黑客大师才能干的事情啊,我们怎么可能具备呢?感谢那些大师,他们无偿地维护和更新一个数据库来让我们及时更新各种漏洞库:cve。感谢那些大师,他们曾经开发了一代自动化扫描工具来帮我们自动化扫描和分析漏洞,nessus。不过近两年来,nessus也被商业化了 由于nessus自动集成了cve,所以我们所做的工作只是分配给nessus扫描的ip域,然后启动,出去喝咖啡,回来看nessus出的报告。
3.分析nessus报告
凡是自动化的东西都可能会有误报,或者有些是扫描出来的缺陷是客户这个环境下必须存在或者特有的,比如客户出于开发的必要就开放了个别自定义的端口,所以需要和客户进行漏洞发现的discuss。这里自动化工具是不能帮你了,你必须根据nessus报告的错误id到cve中找到这个错误的具体内容,理解后才能和客户discuss,因为客户往往会把vendor叫来和你pk,你要是功底不深,会被客户challenge的。
4.review firewall policy
我做network security assessment的时候,一般会去做firewall policy review的工作,这块工作也容易出finding。为什么呢?一般电子商务网站(比如说网银)的系统更新很快,上的新模块和模块功能设计更新也很多,客户会很重视开发的version control和change management, 这也是itgc关注的重点之一。但是客户往往会忽略firewall policy的及时update,policy里面有很多legacy是以前测试留下来的或者已经废弃的module留下来用的,而且网络结构一变更,地址重新分配以后,很多人已经说不清楚为什么有些policy还存在于firewall里面了。到后来,谁都不敢去删除一些legacy policy,因为删除了可能就影响功能正常使用了。
基本来说network security已经成为一个common sense的东西,绝大部分客户也熟悉,所以也没有什么特别精彩的可以show出来。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 03:11pm 时添加 -=-=-=-
补充一下:
这里提到的内容大部分是我做的it advisory的经验,一般it audit是没有什么机会接触这些项目,没有什么knowledge可以通过internal resource可以学习到的,这些经验是我加入firm之前就具备的。
千万不要有小朋友以为it audit很精彩,进来都能做这类项目。这些只是我利用我自己的knowledge,在firm的平台上为客户提供的我认为“有价值”的服务。
-=-=-=- 以下内容由 马甲8个2 在 2009年12月08日 04:55pm 时添加 -=-=-=-
information security 4
应用程序安全app security和软件开发安全sdl(secure software development lifecycle)
到现在为止,能够把app security和sdl做成功的人真的可以是做security做到顶点了,我曾经几乎能够摸到了这个顶点,可惜没有这个运气。
就像前面说的,network security已经成为一个common sense的东西了,客户都会自己做,而且相关风险发生的概率已经越来越小,更多的安全事件是发生在应用层的安全。这个可以看看最近几年的安全报告以及银监会的相关安全风险提示就知道了。关键是怎么做。
一个思路是类似于nessus,用一种业界公认的工具来进行扫描,问题在哪里呢?nessus有一个强大的cve来支持,应用程序安全的cve在哪里?虽然每年owasp会公布top ten的报告,几乎我测试过的所有工具都宣称他们遵循owasp top ten,但是谁都没有给我一个类似cve这么强大的database,用一句auditor的话说 assurance不够,而且top10 的定义还是有一些含糊的,scope不清楚。虽然有开源的app security scanner(如paros),和卖的极贵的商业版本软件(如ibm的app scan)和一些本土软件,我都测试过了,performance都不满意。感觉有点虚。
另一个思路,从程序开发的源头来阻止安全问题的发生。这就是进入了sdl的领域。sdl是微软的亲生儿子,在微软的开发员网站上有一堆的sdl的资料。微软关于sdl的架构和相关工具软件已经接近完美。但是微软的sdl在客户化过程中有1个难点:在sdl的测试过程中,微软的工具服务对象是它自己的开发环境:.net和c#,微软没有解释为什么用它推荐的工具就能基本解决所有的开发领域的常见漏洞,当然它有这个足够的技术牛气能说这句话。
但是,很多客户的开发环境用的java和其他的工具,并不完全用微软的平台,如何能够找到和微软平台类似的测试工具,这个工具还能覆盖开发过程中尽可能多的安全漏洞,这些测试软件能够完美像cve和nessus这样成熟。同时能够使用与微软的sdl项目管理流程中去。正是一个潜在客户提给我的挑战。
这个客户在咨询sdl项目时要的是什么?客户显然不要一个step1/step2的流程,因为这个微软网站上都是这个东西,客户花在这个事情的研究上的功夫不亚于我们。客户要的是“把大象真地塞进冰箱”的能力,而不是一个好看而无用的塞大象的工作手册。在整整两个月里我不停地回答客户的q&a,做很多的research,等到客户终于申请下来经费,准备启动这个项目时,我已经离开了,当然项目客户也不愿意有什么后续了。有点可惜,不过我现在所做的工作和这个又有一点关系,可以重新启动了。
18-09-07 05:59
5376
1
回复
这是好几年前的贴子了,时过境迁。
18-09-07 06:02