明天笔试绿盟_安全研究员  今天收集了一些绿盟的资料和市面上的笔试资料啥的

面试绿盟——安全研究员
职位要求: 
1.    本科以上学历,有较强的逆向工程能力,熟练掌握至少一种逆向工具; 
2.    熟悉C/C++语言,能够熟练进行Windows或Unix程序编写;熟练掌握至少一种脚本语言; 
3.    熟悉Windows/Unix操作系统原理; 
4.    熟悉各种攻防技术以及安全漏洞原理,有过独立分析漏洞的经验; 
5.    对国内外安全业界有较清楚的了解,知道如何获取行业信息; 
6.    具备一定的英文读写能力,能熟练阅读英文技术文档; 
7.    良好的文字表达能力,较强的独立工作能力,做事认真细致,有钻研精神。

防火墙的常用三种技术
参考答案:包状态检查技术、应用代理技术(应用层网关)、电路层网关技术、自适应代理技术。

使用Linux的安全风险有哪些
参考答案:多用户系统带来的账户及权限安全。包括多用户带来的账户权限、文件归属管理的难度
Linux自身安全性及上端应用程序所面临的威胁。未经过专业人员安全加固过的初始linux系统在攻击者面前依旧那么脆弱,运行在上端的开源应用程序同样有着更新维护不及时,存在可利用漏洞的情况。
系统自身服务安全性,运行在linux上的默认服务有着相互依存,安全设置又相互独立的现象,对于广大普通用户来说,根本无法制定出适合且有效的安全策略。
linux : red-hat9.0 red-flag5.0 centos 5.5 ubuntu 8.04

139 是基于 netbios/smb 协议的连接局域网共享通讯端口
445 是基于 CIFS 协议的局域网共享通讯端口, 2k 2003 作用相同

主流防病毒厂商
国外 mcafee avast 小红伞 symantec eset nod32
国内 金山 江民 360 瑞星 微点

主流的防火墙厂商和产品品牌
cisco coscp pix
联想,网御,中网

主流扫描产品
本地漏洞扫描器 COPS trger tripewire 扫描本机存在漏洞
网络扫描器 nsfocus 绿盟的极光远程安全评估系统 硬件设备,扫描不占系统资源,快速高效准确,缺点:付费产品且较贵

绿盟数据库审计系统-NSFOCUS Database Audit System(简称DAS
能够实时监视、记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理系统。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规报告、事故追根溯源,同时加强内外部网络行为记录,提高数据资产安全。

Client –> 置SYN标志 序列号 = J,确认号 = 0 —-> Server
Client <– 置SYN标志 置ACK标志 序列号 = K, 确认号 = J + 1 <– Server
Clinet –> 置ACK标志 序列号 = J + 1,确认号 = K + 1 –> Server

1、UDP支持单播、组播和广播,而TCP不支持广播
2、基于连接与无连接
3。对系统资源的要求(TCP较多,UDP少)
4。UDP程序结构较简单
5。流模式与数据报模式
6。TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证另外结合GPRS网络的具体情况

对等网络(P2P)有3种主要的组织结构:分布式哈希表(DHT)结构、树形结构、网状结构。
P2P技术已经延伸到几乎所有的网络应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。
现在人们已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网之间(Inter-Overlay)优化研究、P2P支撑平台研究以及P2P安全研究等方面。

冒泡排序:

    int a[] = { 98, 76, 109, 34, 67, 190, 80, 12, 14, 89, 1 };
    int k = sizeof(a) / sizeof(a[0]);
    int temp;

    for (int i = 0; i < k-1; i++)
    {
        for (int j = 0; j < k - i -1 ; j++)
        {
            if (a[j] > a[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j + 1] = temp;
            }
        }
    }
    for (int f = 0; f < k;f++)
    {
        printf("%d ", a[f]);
    }

快速排序法:

void QuickSort(int a[], int numsize)/*a是整形数组,numsize是元素个数*/
{
    int i = 0, j = numsize - 1;
    int val = a[0];/*指定参考值val大小*/
    if (numsize > 1)/*确保数组长度至少为2,否则无需排序*/
    {
        while (i<j)/*循环结束条件*/
        {
            /*从后向前搜索比val小的元素,找到后填到a[i]中并跳出循环*/
            for (; j>i; j--)
            {
                if (a[j] < val)
                {
                    a[i++] = a[j];
                    break;
                }
            }
            /*从前往后搜索比val大的元素,找到后填到a[j]中并跳出循环*/
            for (; i<j; i++)
            {
                if (a[i]>val)
                {
                    a[j--] = a[i];
                    break;
                }
            }
        }
        a[i] = val;/*将保存在val中的数放到a[i]中*/
        QuickSort(a, i);/*递归,对前i个数排序*/
        QuickSort(a + i + 1, numsize - i - 1);/*对i+2到numsize这numsize-1-i个数排序*/
    }
}

冒泡排序 O(n2) O(n2) 稳定 O(1)
快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n)

插入排序:主要有两种插入排序方法:直接插入排序和希尔排序。   
交换排序:冒泡排序、快速排序   
选择排序:直接选择排序和堆排序

搜索引擎 www.google.http://cn.bing.com www.baidu.com

经常访问的国内外网络安全方面的网站和URL(至少四个)
www.exploot-db.com
zerodayinitiative.com
0day5
cve.scap.org.cn
https://github.com
bbs.pediy.com
www.52pojie.com
www.youtube.com
cnblogs.com
cndn.net

nsfocus.net
www.phrack.prg
http://secunia.com

邪恶八进制

DDoS、Worm、IP Spoof、SYN Flood、Brute Attack、Social Engineering、Honeybot、ShellCode
Distributed demoa pf service 通过大量合法的服务请求占用大量网络资源,从而使合法用户无法得到服务的响应,以达到瘫痪网络的目的的网络攻击方式
Worm 蠕虫 通过网络传播的主动攻击的恶性计算机病毒 行踪隐蔽 造成网络拥塞 执行垃圾代码造成DDOS
IP Spoof IP 地址欺骗 一台主机设备冒充另一台主机的IP 地址 ARP欺骗
TCP 半连接 = SYN FLOOD
Brute Attack 暴力攻击 暴力破解
Social Engineering 社会工程攻击
社会工程学利用人的弱点,以顺从你的意愿、满足你的欲望的方式,让你上当的一些方法、一门艺术与学问
免费音乐中包含病毒、网络钓鱼、垃圾电子邮件中包括间谍软件等,都是近来社会工程学的代表应用。

Honeybot 僵尸网络跟踪工具 捕获和记录入侵和袭击企图
ShellCode 一段代码,发送服务器利用特定漏洞的代码,漏洞利用中最关键的是ShellCode 的编写

NT5.X系列指的是微软从2000年开始推出的一系列内核版本为NT5.X的桌面及服务器操作系统,
Windows NT 5.0 Beta2
Windows NT 5.0 Beta2(3张)
包括Windows 2000、Windows XP和Windows Server 2003。

NT6.X系列指的是微软从2006年后推出的一系列内核版本号为NT6.X的桌面及服务器操作系统,包括Windows Vista、Windows Server 2008、Windows 7、Windows Server 2008 R2、Windows 8、Windows8.1和Windows Server 2012。

NT 6.4 Windows 10 Technical Preview (v.6.4.9841)

Windows 2000 SP4

gpedit.msc 组策略管理
IIS 如何进行相应的安全设置
1 安装必要的IIS 组件 不必要的FTP SMTP 服务关闭
2 仅启用必要的服务 和 WEB SERVER
3 IIS 目录和数据 与 系统磁盘分开
4 IIS 删除必须之外的任何没有用到的映射
5 加强数据备份
6 对WEB 站点权限进行详细设置
7 配置主机防火墙 和 防病毒软件

禁用 linux root 登录ftp
/etc/ftpusers 列出的禁止用ftp登录的账号

a 10.0.0.0 10.255.255.255
b 172.16.0.0- 172.31.255.255
c 192.168.0.0-192.168.255.255

介绍你了解的自动化测试软件
需求分析→测试计划→测试设计→测试环境搭建→测试执行→测试记录→缺陷管理→软件评估→RTM.
[开源测试工具]:
  开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis
  开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject
  开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web ApplicationLoadSimulator
  [TestDirector]:企业级测试管理工具,也是业界第一个基于Web的测试管理系统。
  [Quality Center]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
  [QuickTest Professional]:用于创建功能和回归测试。VBScript
  [LoadRunner]:预测系统行为和性能的负载测试工具。

Webrat
watir.com
capybara + selenium + jenkins + campfire + airbrake..

ACX 控件  comraider
ftpfuzz

内核工具: IoControl fuzzer,

IOCTL Fuzzer是一款自动化windows内核驱动漏洞挖掘工具,支持32/64位

数据驱动技术可以将用户使用工具的关注点放在对测试数据的构建和维护上,而不是直接维护脚本,可以利用同样的过程对不同的数据输入进行测试。
关键字驱动技术在QTP火起来之后才被大家开始关注,关键字驱动测试技术是数据驱动测试的一种改进类型,主要关键字包括三类:被操作对象(控件)、操作(事件)和值,用面向对象形式可将其表现为控件.操作(值),将测试逻辑按照这些关键字进行分解,形成数据文件,用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化

所谓的数据驱动,原本没有什么特别的,无非就是把hard code 在脚本中的数据参数化出来,之所以算是Robot、WinRunner甚至QTP时代测试工具的卖点,其实主要是因为那个年代大多数system tester 不懂开发,总需要有个功能来帮助自己完成参数抽取、数据维护、自动替换之类的功能。

而关键字驱动,则进一步在技术上把 tester 分成了完全不懂技术的和懂点技术的,前者只能根据格式填写一下 excel 表格,后者对工具/框架内置的所谓关键字库进行增补或二次开发

 

加密与解密3 段钢 电子工业出版社
0day安全:软件漏洞分析技术 王清 电子工业出版社
Windows核心编程 Jeffrey Richter 黄陇;李虎翻译 机械工业出版社
计算机病毒揭秘与对抗 王倍昌 电子工业出版社
白帽子讲Web安全 吴翰清 电子工业出版社

绿盟公司介绍:
成立于2000年4月,总部位于北京,在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。
基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

绿盟科技数据库审计系统(NSFOCUS Database Audit System,简称DAS)正式发布。DAS是能够实时监视、记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理系统。它通过对用户访问数据库行为的记录、分析和汇报,帮助用户事后生成合规报告、事故追根溯源,同时加强内外部网络行为记录,提高数据资产安全。

愿景
专攻术业,成就所托。

使命
巨人背后的安全专家,保障客户业务顺畅运行。

战略
在全球范围内,提供基于自身核心竞争力的企业级网络安全解决方案,成为最受客户信赖的网络安全公司。

价值观
责任感:忠于职守、尽心尽责。
专 业:以专业精神、专业技能、专业流程、专业品质,向客户提供高质量的产品与服务。
团 队:依靠团队精神来实现绿盟科技的理想,分享知识和快乐。
创 新:持续创新以满足客户日益变化的安全需求。
共同发展:推崇业绩文化,重视员工回报,员工与企业共同发展。

新一代绿盟网络入侵检测系统
简称:NSFOCUS NIDS),绿盟NIDS不但具备国内领先的攻击规则特征库能对已知安全威胁进行检测,而且具备持续更新的信誉特征库能够降低未知的恶意软件所带来的危害,同时内网安全功能能有效的防止内网持续渗透,有效降低了敏感数据的泄露和服务器的异常外联

新一代绿盟网络入侵防护系统
简称:NSFOCUS NIPS,绿盟NIPS不但具备国内领先的攻击规则特征库能对已知安全威胁进行防护,而且具备持续更新的信誉特征库能够降低未知的恶意软件所带来的危害,同时内网安全功能能有效的防止内网持续渗透,有效降低了敏感数据的泄露和服务器的异常外联。

绿盟安全审计系统 :NSFOCUS SAS
通过网络数据的采集、分析、识别,实时动态监测通信内容、网络行为和网络流量,发现和捕获各种敏感信息、违规行为,实时报警响应,全面记录网络系统中的各种会话和事件,实现对网络信息的智能关联分析、评估及安全事件的准确全程跟踪定位,为整体网络安全策略的制定提供权威可靠的支持。

XSS 跨站脚本攻击(Cross Site Scripting)

网络安全意思上的0day就是指一些没有公布补丁的漏洞,或者是还没有被漏洞发现者公布出来的漏洞利用工具,由于这种漏洞的利用程序对网络安全都具有巨大威胁,因此0day也成为黑客的最爱。一般的黑客软件带有Oday的名字指的是此漏洞还没有打补丁而软件已经公布。

脱壳即去掉软件所加的壳,软件脱壳有手动脱和自动脱壳之分

static_cast <new_type> (expression) 静态转换
最接近于C风格转换了,但在无关类的类指针之间转换上,有安全性的提升。

CDummy d;
CAddition * padd;
padd = static_cast<CAddition*> (&d);
cout << padd->result();
要出错···················

dynamic_cast <new_type> (expression) 动态转换
动态转换确保类指针的转换是合适完整的,它有两个重要的约束条件,其一是要求new_type为指针或引用,其二是下行转换时要求基类是多态的(基类中包含至少一个虚函数)

#include <iostream>
using namespace std;
class CBase { };
class CDerived: public CBase { };

int main()
{
   CBase b; CBase* pb;
   CDerived d; CDerived* pd;

   pb = dynamic_cast<CBase*>(&d);     // ok: derived-to-base
   pd = dynamic_cast<CDerived*>(&b);  // wrong: base-to-derived 
}
要出错···················

把类的定义改成:
class CBase { virtual void dummy() {} };
class CDerived: public CBase {};
我们看到一个奇怪的现象,将父类经过dynamic_cast转成子类的指针竟然是空指针,这正是dynamic_cast提升安全性的功能,dynamic_cast可以识别出不安全的下行转换,但并不抛出异常,而是将转换的结果设置成null(空指针)。

 1 #include <iostream>
 2 #include <exception>
 3 using namespace std;
 4 
 5 class CBase { virtual void dummy() {} };
 6 class CDerived: public CBase { int a; };
 7 
 8 int main () {
 9   try {
10     CBase * pba = new CDerived;
11     CBase * pbb = new CBase;
12     CDerived * pd;
13 
14     pd = dynamic_cast<CDerived*>(pba);
15     if (pd==0) cout << "Null pointer on first type-cast" << endl;
16 
17     pd = dynamic_cast<CDerived*>(pbb);
18     if (pd==0) cout << "Null pointer on second type-cast" << endl;
19 
20   } catch (exception& e) {cout << "Exception: " << e.what();}
21   return 0;
22 }

输出结果是:Null pointer on second type-cast
两个dynamic_cast都是下行转换
第一个转换是安全的,因为指向对象的本质是子类,转换的结果使子类指针指向子类,天经地义;
第二个转换是不安全的,因为指向对象的本质是父类,“指鹿为马”或指向不存在的空间很可能发生!
最后补充一个特殊情况,当待转换指针是void*或者转换目标指针是void*时,dynamic_cast总是认为是安全的

 1 #include <iostream>
 2 using namespace std;
 3 class A {virtual void f(){}};
 4 class B {virtual void f(){}};
 5 
 6 int main() {
 7     A* pa = new A;
 8     B* pb = new B;
 9     void* pv = dynamic_cast<void*>(pa);
10     cout << pv << endl;
11     // pv now points to an object of type A
12 
13     pv = dynamic_cast<void*>(pb);
14     cout << pv << endl;
15     // pv now points to an object of type B
16 }

reinterpret_cast <new_type> (expression) 重解释转换
这个转换是最“不安全”的,两个没有任何关系的类指针之间转换都可以用这个转换实现

class A {};
class B {};
A * a = new A;
B * b = reinterpret_cast<B*>(a);//correct!

更厉害的是,reinterpret_cast可以把整型数转换成地址(指针),这种转换在系统底层的操作,有极强的平台依赖性,移植性不好,它同样要求new_type是指针或引用,下面的例子是通不过编译的:
double a=2000.3;
short b;
b = reinterpret_cast<short> (a); //compile error!

const_cast <new_type> (expression) 常量向非常量转换
这个转换好理解,可以将常量转成非常量。

 1 // const_cast
 2 #include <iostream>
 3 using namespace std;
 4 
 5 void print (char * str)
 6 {
 7   cout << str << endl;
 8 }
 9 
10 int main () {
11   const char * c = "sample text";
12   char *cc = const_cast<char *> (c) ;
13   Print(cc);
14   return 0;
15 }

1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。
2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。
3,因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。
4,C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存。
5、new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的都是void指针。
new delete 是运算符,malloc,free是函数

 

书籍: 计算机网络自顶向下

 

总结:
C风格转换是“万能的转换”,但需要程序员把握转换的安全性,编译器无能为力;static_cast最接近于C风格转换,但在无关类指针转换时,编译器会报错,提升了安全性;dynamic_cast要求转换类型必须是指针或引用,且在下行转换时要求基类是多态的,如果发现下行转换不安全,dynamic_cast返回一个null指针,dynamic_cast总是认为void*之间的转换是安全的;reinterpret_cast可以对无关类指针进行转换,甚至可以直接将整型值转成指针,这种转换是底层的,有较强的平台依赖性,可移植性差;const_cast可以将常量转成非常量,但不会破坏原常量的const属性,只是返回一个去掉const的变量

 面试资料页面:

 http://blog.csdn.net/panfengyun12345/article/details/12618453

http://blog.csdn.net/huomanqingying/article/details/12876759

http://blog.csdn.net/v_JULY_v/article/list/1

版权声明:本文为zcc1414原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zcc1414/p/4047014.html