安全知识启蒙

来源:互联网 发布:宫刑 知乎 编辑:程序博客网 时间:2024/06/10 03:01
威胁:拒绝服务攻击(DoS)
   由于某种特殊的情况出现,导致系统无法为合法的用户提供访问。

  对策:高安全意识
   导致DoS的原因有很多,有些是系统、网络层面的,也有来自于应用系统本身的原因。没有一个确切的
   办法能解决所有的问题。因此我觉的还是要高的安全意识来发现可能的问题。
   A. 网络层面的DoS攻击种类繁多,这和TCP/IP协议本身的实现有关。如果SOCKET的实现不恰当也会引入此
      类攻击。一个常见的例子是,Socket的等待队列设置的太小。如果有人故意的打开很多的半连接,就会造
     成其他用户无法连接。
   B. 多用户系统中,意味着这些用户要共享系统的资源。如内存,硬盘等。因此需要从这个方面来注意。
      当一个用户使用过大的内存或硬盘空间时,可能就造成了其他用户无法使用这些资源,甚至导致系统崩溃。

  威胁:不公平的服务
  现在常见的一种情况是,一些恶意的用户通过特殊的软件,来和其他用户抢系统提供的资源。如:特价
  商品,火车票等。从而导致系统不能为其他用户提供公平的服务。
  对策:验证码(同上)

  俗话说“病从口入”,软件系统也一样,下面的一些威胁,都是从用户输入开始的。
  威胁:SQL注入(SQL Injection)
  威胁:缓冲区溢出(Buffer Overflow)
  威胁:跨站脚本(XSS)
  此三中攻击手段是目前很常用,杀伤力很大的手段。具体的原理,大家可以在网上找到很多文章。

  对策:提高安全意识,对待用户输入紧小慎微
  不要假设用户输入的是正确的数据,不要认为用户都是无知的。据调查多数的攻击行为都来自于内部。因此
  对用户的输入要进行严格的约束和检查。
  A. 访问控制相关的逻辑信息不要放在客户端。
  B. 不要相信客户端的输入检查程序,必须在服务器端再次做输入合法性检查。

对策:使用专业的软件来阻止攻击
  对用户的输入进行严格的检查也并不一定能有很好的效果。如果系统的安全需求较高,请向安全专家进行
  咨询。并配以专业的软件来预防此类攻击的发生。

– 数据库系统
  数据库中存储着系统的核心-数据,而很多攻击者的目标也是这些数据。因此要对数据库做严格的安全措施。
  A. 系统层面的安全
  B. 网路层面的安全
  C. 数据库本身的安全加固
  这些安全措施和软件开发本身没有太大的关系,因此不在这里详细描述了。
   D. 值得一提的是,数据库的帐号管理。数据库数据信息被盗的主要威胁来自于SQL注入和特权帐号被滥用。
     都和帐号管理相关。因此必须根据前面提到的口令管理策略,做好数据库的帐号管理。曾经碰到过程序员
      将Oracle的口令写入代码中,而导致无法对数据库进行加固的情况。这是非常错误的做法。
      另外要注意,良好的帐号管理只能减少SQL注入带来的损失,没办法阻止SQL注入的发生,因此还是要
      从输入检查上入手,去杜绝SQL注入的发生。

原创粉丝点击