面试Record
信息安全三要素CIA
保密性(Confidentiality):保证信息不泄露给未经授权的用户。
完整性(Integrity):保证信息从真实的发信者传送到真实的收信者手中,传送过程中没有被非法用户添加、删除、替换等。
可用性(Availability):保证授权用户能对数据进行及时可靠的访问。
另:可控性(Controllability),不可否认性(Non-Repudiation)
防火墙技术
防火墙就是计算机网络中的边境检查站,保护内部网络。防火墙有多种形态,一般是软硬件相结合。主要功能是进行访问控制,内容控制。主要有三种技术,分别是包过滤技术,状态监测技术,以及代理服务技术。在屏蔽主机的系统模型中,内外网边界有一个网关路由器,复杂进行包过滤,内网有一个堡垒主机,负责代理服务,两者相互配合实现防火墙的功能。同时防火墙也有一些局限性。
https://blog.csdn.net/qq_39328436/article/details/115054500
入侵检测技术
网络中的入侵检测系统(Intrusion Detection System, IDS)就如同物理世界的防盗自动警铃一样,对周围正在进行的各种活动进行监视。有两种模型,一种是基于主机的IDS,一种是基于网络的IDS。这两种模型比较相似,核心部件都是通信流收集器,分析引擎以及特征数据库。基于主机的IDS搜集本机的日志文件和其他关键文件,基于网络的IDS搜集的是流经本网段的所有数据包。分析引擎获得数据之后与特征数据库中的记录进行模式匹配,从而觉得哪些行为是好的,哪些行为是坏的。
https://blog.csdn.net/qq_39328436/article/details/115084272
身份认证技术
身份认证技术用来确定用户的合法身份。有基于口令的身份认证技术,双因素身份认证,基于x509证书的身份认证,基于USB key的身份认证,基于生物特征的身份认证,以及各种身份认证协议,比如说Kerberos,针对PPP协议的PAP以及CHAP等
https://blog.csdn.net/qq_39328436/article/details/115177458
物理层安全问题
在共享式局域网上,攻击者可以嗅探到其他设备发送的消息,利用交换机的自学习功能,发起MAC地址泛洪攻击,使得交换机的流量隔离作用失效,可以将嗅探的范围进一步扩大
https://blog.csdn.net/qq_39328436/article/details/115118488
网络层安全问题
关于ARP协议,由于计算机会对收到的每个ARP应答报文作出响应,并更新自己的ARP缓冲表,攻击者利用这个漏洞可以发起中间人攻击,或者用地址冲突使得目标主机不能联网。关于ip协议,由于ip的源地址不可靠,攻击者可以利用这个漏洞发起盲目飞行攻击以及利用源路由机制发起中间人攻击,针对这个漏洞可以采用单播反向验证进行预防。关于ICMP协议,利用回送报文可以发起smurf攻击,利用路由重定向报文可以改变主机的路由。
https://blog.csdn.net/qq_39328436/article/details/115119347
传输层安全问题
TCP的四种常见攻击方式,分别是SYN泛洪攻击,RST复位攻击,会话劫持以及ACK风暴。针对UDP的攻击主要是DOS攻击,常见的是用包来冲击DNS服务器等。
https://blog.csdn.net/qq_39328436/article/details/115126996
应用层安全问题
针对DHCP协议,攻击者可以伪造大量的DHCP发现报文,消耗地址池中所有的地址,也可以伪造DHCP释放报文,让ip地址被重复分配,或者伪造DHCP提供报文,为客户提供无效的ip地址。针对DNS协议,攻击者可以发起DOS攻击,伪造大量的DNS查询报文,淹没DNS服务器,或者淹没主机,还可以伪造DNS应答报文,恶意篡改域名和ip对应的地址项,发起DNS劫持。针对http协议,可以发起sql注入。
https://blog.csdn.net/qq_39328436/article/details/115141362
访问控制
主要学了4种访问控制模型。自主访问控制(DAC)的特点是客体的创建者可以授予其他主体对客体的访问权限,十分灵活,实现方式有访问控制矩阵,访问控制列表,访问控制能力列表。访问控制矩阵是一个三元组,包括主体,客体和访问权限;访问控制列表是以文件为中心创建的,而访问控制能力列表则是基于用户为中心创建的。第二种访问控制策略是强访问控制(MAC),这是一种基于安全级别的访问控制,每一个主体和客体都被授予了不同的安全级别,通过判断主客体之间的安全级别进行访问控制。第三种策略是基于角色的访问控制(RBAC),与上面两种访问控制不同的是这种策略不直接对用户授予权限,而是给用户赋予不同的角色,每个角色有不同的权限。由于基于角色的访问控制可能带来角色爆炸的情况,因此有第四种访问控制,即基于属性的访问控制(ABAC),每个用户携带自己的属性,包括主体属性,资源属性和环境属性来访问客体,授权引擎根据这些属性进行访问控制。
https://blog.csdn.net/qq_39328436/article/details/115277008
密码学
首先是加解密算法,总体分为对称加密算法和非对称加密算法,这两者的区别在于对称加密算法用一个秘钥进行加密解密,通信双方需要协商秘钥,Diffle-Hellman协议便是用于对称加密体制中的秘钥协商的,而非对称加密算法用不同的秘钥进行加解密。对称加密算法又分为流密码和分组密码,两者的区别在于是否对明文分进行分组加密。流密码的代表是RC4,分组密码有DES和AES,DES的加解密过程要经过16轮Feistel 结构,AES的加解密过程要经过字节代换,行位移,列混合等等。对称加密双方要协商秘钥,秘钥管理压力很大,因此引入了非对称加密。非对称加密的代表是RSA和ECC算法,RSA是基于大整数分解困难问题,ECC基于椭圆曲线离散对数问题,相较与RSA而言,ECC的秘钥更短,更适用于公交卡等小容量的硬件设施。第二个部分讲到散列函数,密码学中的散列函数与数据结构中的散列函数有所不同,安全的散列函数要求有三个特点:第一单向性,强无碰撞性,压缩性。目前主流的散列函数有MD5,SHA-0,SHA-1等。第三个部分介绍了基于散列函数的数字签名,它的作用是为了进行身份认证以及保护数据的完整性。数字签名算法有RSA和DSS,RSA是一种既可以用于加密又可以用于签名的算法,DSS算法基于离散对数困难问题。最后一个部分介绍了数字证书,其目的是保证公钥不会被冒充。
https://blog.csdn.net/qq_39328436/article/details/115269492
安全协议
IPSEC: 位于网络层,这是一个安全协议组,主要的功能是认证和加密,为了实现认证和加密需要有秘钥管理和交换的功能,分别由AH,ESP,IKE三个组件实现;
SSL/TLS: 位于传输层和应用层之间,可以细分为两个子层,分别是SSL记录协议层,SSL握手协议层,分别完整信息的封装,压缩,加密以及通信双方身份认证,秘钥管理的功能,SSL可以和引用层的http协议配合形成https,也可以保证邮件协议的安全。
kerberos:位于应用层,这是一个身份认证协议。
MIME:运用在SMTP之上,MIME除了加密解密的功能之外,还能使得原本只能传输ASCII码SMTP协议更加丰富多彩
PGP:运用在SMTP之上,是pretty good privacy的缩写,是一个安全保障的应用程序
SET:这是一个专门针对于信用卡电子支付的安全协议,保证银行,商家和顾客之间的一致性和安全性问题。
https://blog.csdn.net/qq_39328436/article/details/115243776
蠕虫 VS 木马 VS 病毒
木马和病毒蠕虫的区别在于,利用木马可以建立远程连接,远程控制受害者主机
蠕虫与病毒木马的区别在于,它的原理是利用缓冲区溢出漏洞修改函数返回值的方式进行自动的攻击。
https://blog.csdn.net/qq_39328436/article/details/115246804
蜜罐
蜜罐是一个陷阱,在攻击者角度看到的是一个有漏洞的真实网络,安全人员的角度是一个模拟真实网络的软件。攻击者攻击蜜罐时安全人员可以分析攻击者的行为,他想干什么,干了什么,用了什么安全工具等,用以更好的维护网络安全。
https://blog.csdn.net/qq_39328436/article/details/115085028
Session机制与token机制
联系:cookie和session都是用来跟踪浏览器用户身份的会话方式
区别:https://blog.csdn.net/qq_39328436/article/details/115064971
渗透测试
对”中国结算”进行渗透测试,主要是三个部分的工作,第一个部分是信息搜集,具体包括域名信息,真实ip,常用端口号等等。第二部分是利用一些渗透测试工具进行漏洞扫描,具体包括SQLmap,BurpSiute,Nmap等。第三个部分就是编写渗透测试报告。最后我们发现了5个中级漏洞和8个轻级漏洞。
https://blog.csdn.net/qq_39328436/article/details/114240902
漏洞与攻击
1.sql注入
原理:攻击者利用发送给sql服务器的输入数据构造可执行的代码
https://blog.csdn.net/qq_39328436/article/details/114295554
2.XSS注入
原理:在html页面中注入javascript代码,用户浏览页面时执行恶意代码
https://blog.csdn.net/qq_39328436/article/details/114240561
3.CSRF攻击
款站点请求伪造:攻击者伪造一个链接设法让已经登录的用户访问,以此来以用户的身份执行某些非法操作
https://blog.csdn.net/qq_39328436/article/details/114333010
4.与session相关的漏洞
cookie劫持:攻击者获取了已经登录的用户的cookie,冒充用户身份
固定会话攻击:攻击者伪造了一个cookie,让用户根据这个cookie登录账户,此后攻击者便可以冒充用户身份
session保持:session没有设置失效时间
https://blog.csdn.net/qq_39328436/article/details/114262076
5.点击劫持攻击
攻击者使用一个透明的,不可见的iframe,覆盖在一个网页上,诱使用户点击
6.文件上传漏洞
用户上传了一个可执行的脚本文件,并通过脚本文件获得了执行服务端命令的能力。
上传文件本身是一个正常的业务需求,问题在于文件上传后,服务器怎么处理解释文件,如果服务器处理逻辑做得不够安全,这将会导致严重的后果。
7.伪随机数问题
伪随机数是通过一些数学算法生成的随机数,并非真正的随机数,可以被预测。对应“真正的随机数”应该是通过一些物理系统生成的随机数,比如说电压的波动,空中电磁波的噪声等。
8.分布式拒绝服务攻击DDOS
服务器的资源是有限的,如果资源被攻击者恶意占用,那么服务器就无法向真正的用户提供服务。
常见DOS攻击:(1)SYN Flooding(洪泛)攻击;(2)ICMP洪泛攻击;(3)UDP洪泛攻击;(4)Ping of Death攻击;(5)IP欺骗DoS攻击;(6)IP分片攻击;(7)Teardrop(泪滴)攻击;(8)Land攻击;(9)Smurf攻击;(10)Fraggle攻击;(11)WinNuke攻击;(12)电子邮件轰炸。
安全工具
Nessus
是一款系统漏洞扫描和分析软件
wireshark
网络包分析工具,抓下来包之后能够分析出详细的封包资料
burpsuite
它有很多功能,我们经常用到的就是代理和扫描器
代理:是一个拦截http/s的代理服务器,作为浏览器和服务器之间的中间人,可以通过burpsuite对数据包进行拦截,修改,查看两个方向上的数据流
https://blog.csdn.net/qq_39328436/article/details/114265338
sqlmap
自动化的sql注入工具,主要功能是扫描然后发现并利用sql注入漏洞
https://blog.csdn.net/qq_39328436/article/details/114399837
Nmap
端口扫描工具:https://blog.csdn.net/qq_39328436/article/details/114404267
L0phtCrack:密码破解工具
RootkitRevealer
RootkitRevealer 是一个高级 rootkit 检测实用程序。它在 Windows XP(32 位)和 Windows Server 2003(32 位)上运行,其输出列出了注册表和文件系统 API 差异,这些差异可能表明存在用户模式或内核模式 rootkit。
chkrootkit
是一个在本地检查rootkit迹象的工具
Autoruns
该实用程序对任何启动监视器的自动启动位置有最全面的了解,向您显示在系统启动或登录期间配置为运行哪些程序,以及何时启动各种内置 Windows 应用程序,如 Internet Explorer、资源管理器和媒体播放器。
ListDLLs
是一个实用程序,用于报告加载到进程中的 DLL。您可以使用它列出加载到所有进程、特定进程中的所有 DLL,或列出加载了特定 DLL 的进程。ListDLL 还可以显示 DLL 的完整版本信息,包括其数字签名,并可用于扫描进程以查找未签名的 DLL。
Xposed框架的原理及常用的函数
原理: 替换system/bin/app_process文件,app_process就是zygote进程文件,所以xposed通过替换zygote进程实现了控制手机上所有app进程 常用函数:
(1)findAndHookMethod 参数:实现该方法的类的名称,用于解析目标和参数类的类加载器, 目标方法名称,目标方法的参数以及回调
(2)findAndHookConstructor hook构造函数 参数:实现该方法的类的名称,用于解析目标和参数类的类加载器,目标方法的参数以及回调
(3)findClass:使用指定的类加载器查找类 类名的语法 java.lang.String java.lang.String[] android.app.ActivityThread.ResourcesKey android.app.ActivityThread$ResourcesKey 参数:上面格式的类名,类加载器
(4)findField : 在类中查找自动并将其设置为可访问 参数:变量所在的class,变量名String
(5)CallMethod 调用给定对象的实例或静态方法 参数:对象实例,方法名称,方法调用的参数
(6)newInstance 创建给定类的新实例 参数: 类引用,构造函数调用的参数
嗅探器
Tcpdump、Wireshark、windump、NAI Sniffer(不需要Winpcap(libpcap)支持)
常用端口号及服务
20端口:FTP服务器真正传输所用的端口,用于上传、下载
21端口:FTP 文件传输服务(TCP)
22端口:SSH 远程连接服务(TCP)
23端口:TELNET 终端仿真服务,远程登陆协议(TCP)
25端口:SMTP 简单邮件传输服务
53端口:DNS 域名解析服务,(UDP)
79 端口:Finger服务
80端口:HTTP 超文本传输服务(TCP)
110端口:POP3,用于支持使用客户端远程管理在服务器上的电子邮件。(TCP)
119端口:Network News Transfer Protocol,NEWS新闻组传输协议,承载USENET通信
161端口:SMTP,Simple Network Management Protocol,简单网络管理协议(TCP)
162端口:SNMP Trap,SNMP陷阱(UDP)
443端口:HTTPS 加密的超文本传输服务(TCP)
445端口:CIFS,公共Internet文件系统
1080端口:Socks代理服务
1433端口:sql server,Microsoft的SQL服务开放的端口 数据库
1521端口:Oracle数据库
2049端口:NFS,通过网络,让不同的机器、不同的操作系统实现文件共享(UDP)
3218端口:Squid(是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。)
3306端口:MYSQL数据库端口
3389端口:WIN2003远程登录,Windows 2000(2003) Server远程桌面的服务端口,本地服务器开放此端口,去连接到远程的服务器
5432端口:PostgreSQL数据库端口
6379端口:Redis数据库端口
8010端口:Wingate代理开放此端口
8080端口:TCP服务端默认端口,TOMCAT,WWW代理开放此端口
8888端口:Nginx服务器的端口、(服务器管理软件宝塔默认端口:8888)
9200端口:Elasticsearch服务器端口
27017端口:mongoDB数据库默认端口
22122端口:fastdfs服务器默认端口
HTTP 状态码
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
HTTP状态码列表:
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
100 | Continue | 继续。客户端应继续其请求 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 |
200 | OK | 请求成功。一般用于GET与POST请求 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已接受。已经接受请求,但未处理完成 |
203 | Non-Authoritative Information | 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本 |
204 | No Content | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | Reset Content | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 |
206 | Partial Content | 部分内容。服务器成功处理了部分GET请求 |
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 | Found | 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI |
303 | See Other | 查看其它地址。与301类似。使用GET和POST请求查看 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问 |
306 | Unused | 已经被废弃的HTTP状态码 |
307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unauthorized | 请求要求用户的身份认证 |
402 | Payment Required | 保留,将来使用 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面 |
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时 |
409 | Conflict | 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 |
410 | Gone | 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置 |
411 | Length Required | 服务器无法处理客户端发送的不带Content-Length的请求信息 |
412 | Precondition Failed | 客户端请求信息的先决条件错误 |
413 | Request Entity Too Large | 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息 |
414 | Request-URI Too Large | 请求的URI过长(URI通常为网址),服务器无法处理 |
415 | Unsupported Media Type | 服务器无法处理请求附带的媒体格式 |
416 | Requested range not satisfiable | 客户端请求的范围无效 |
417 | Expectation Failed | 服务器无法满足Expect的请求头信息 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理 |
网络基础
路由优先级
VLAN划分方法
数据备份的种类有哪些?常用的方法有哪些?
数据备份按照备份时所备份数据的特点可以分为三种:完全备份、增量备份和系统备份。
根据数据备份所使用的存储介质种类可以将数据备份方法分成如下若干种:软盘备份、磁带备份、可移动存储备份、可移动硬盘备份、本机多硬盘备份和网络备份。
sshd的日志存储位置以及常见的系统日志介绍
二、日志存储位置
注:在Linux系统中,默认sshd服务的日志存放在:/var/log/secure 中
查看sshd的配置文件:/etc/sshd/sshd_config
但是我们在发现在sshd的配置文件 /etc/sshd/sshd_config中,并未找到关于sshd服务的log配置位置
那么为什么sshd服务的日志会在这个地方?
因为在Linux系统中,服务器默认会将系统中的一些基础服务的相关日志文件存放在单独的配置文件 /etc/rsyslog.conf中,在该配置文件中进行定义
那么现在查看 /etc/rsyslog.conf 文件
vim /etc/rsyslog.conf
发现服务器中相关日志信息存储在该配置文件中。
三、常见系统日志介绍
注:这里对相关的 /var/log/ 下的各个日志文件进行解释说明:
1、/var/log/messages——:一般包括整体系统信息,其中也包含系统启动期间的日志。
此外,mail,cron,daemon,kern和auth 等内容也记录在 /var/log/messages 日志中。
2、/var/log/boot.log——: 包含系统启动时的日志。
3、 /var/log/daemon.log — 包含各种系统后台守护进程日志信息。
4、/var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。
5、/var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。
6、/var/log/lastlog — 记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。
7、/var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。
注意:如,sendmail日志信息就全部送到这个文件中。
8、/var/log/user.log — 记录所有等级用户信息的日志。
9、/var/log/alternatives.log – 更新替代信息都记录在这个文件中。
10、/var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
11、/var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
12、/var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
13、/var/log/faillog – 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。
14、/var/log/samba/ – 包含由samba存储的信息。