精华内容
下载资源
问答
  • 针对自然灾害处置对时效性要求高、情况变化快的特点,提出一种基于工作计算的处置方法。首先依据处置过程的知识模型和处置经验,将相关软件功能和数据相互关联起来,形成标准化处置流程,并进行统一协调控制,使得...
  • 为提高循环化床锅炉运行的稳定性和安全性,结合涡北选煤厂SHX7-1.0/95/70-AI型循环化床热水锅炉运行过程中的常见故障,分析了产生不同故障的原因,并总结出了合理的处置方案。
  • 幼儿园鼻血的处置方法.pdf
  • 处置器:利用Android的生命周期轻松处置rxJava
  • AutoDispose RxJava的自动绑定+处置。 uber.github.io/AutoDispose许可版权所有(C)2017 Uber Technologies,已获得Apache许可,其版本为2.0版(以下简称“许可”); 您可能无法自动处置RxJava的自动绑定+处置...
  • 医院甲应急处置预案.doc
  • 防洪泥石滑坡应急处置预案.doc
  • 山体滑坡和泥石应急处置预案.doc
  • 预防泥石自然灾害应急处置制度.pdf
  • RxJava的自动绑定+处置。 执照 Copyright (C) 2017 Uber Technologies Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You...
  • 山洪泥石山体滑坡应急处置预案.doc
  • 某换站扩建工程防触电应急处置预案.doc
  • 教育精品资料
  • 以垃圾焚烧飞灰作为主要原料,在实验室电炉内研制成功了硫铝酸盐水泥熟料,并采用X射线衍射分析(XRl))、扫描电子显微镜(SEMI)、X射线荧光分析(XRF)等手段对该熟料的适宜烧成制度、力学性能、水化进程和微观结构等进行...
  • 其次,即便没有从中得到明确的处置信息,也不能等闲置之,我们仍需了解其功能、存在(或应该存在)的电位、可能(或必须)进/流出的电流、对静电或RF影响的灵敏度,以及是否需要其他种类的容性或阻性负载,再决定...
  • 考虑到适当的地质条件,深井注水是工业废水处理的一种经济有效的替代方案。 生物膜或水垢对注入井管造成污染是很常见的,并会降低管的有效直径,从而导致井口压力增加和注入率降低。 以前尚未报道过使用注入井中的矿...
  • 其次,即便没有从中得到明确的处置信息,也不能等闲置之,我们仍需了解其功能、存在(或应该存在)的电位、可能(或必须)进/流出的电流、对静电或RF影响的灵敏度,以及是否需要其他种类的容性或阻性负载,再决定...
  • 这篇文章实例首要完结对已经生成了HTML的页面做一些输出到客户端之前的处置。  办法的完结原理是:把Response的输出重定向到自定义的容器内,也即是咱们的StringBuilder目标里,在HTML一切的向页面输出都变成...
    这篇文章实例首要完结对已经生成了HTML的页面做一些输出到客户端之前的处置。
    


      办法的完结原理百家乐e78是:把Response的输出重定向到自定义的容器内,也即是咱们的StringBuilder目标里,在HTML一切的向页面输出都变成了向StringBuilder输出,然后咱们对StringBuilder处置完结之后,再把Response的输出重定向到本来的页面上,然后再经过Response.Write办法把StringBuilder的内容输出到页面上。


      这儿之所以用反射,是因为Response目标的OutPut特点是只读的,经过反编译该类的程序集发现,OutPut实际上是内部私有成员 _writer来完结输出的。因而经过反射来改写该成员的值以完结输出流的重定向。


      具体功用代码如下:


      view sourceprint?01 using System;


      02 using System.Collections.Generic;


      03 using System.Linq;


      04 using System.Web;


      05 using System.Web.UI;


      06 using System.Web.UI.WebControls;


      07 using System.Text;


      08 using System.IO;


      09 using System.Reflection;


      10 public partial class _Default : System.Web.UI.Page


      11 {


      12 StringBuilder content = new StringBuilder();


      13 TextWriter tw_old, tw_new;


      14 FieldInfo tw_field;


      15 protected void Page_Load(object sender, EventArgs e)


      16 {


      17 var context = HttpContext.Current;


      18


      19 tw_old = context.Response.Output;//Response本来的OutPut


      20 tw_new = new StringWriter(content);//一个StringWriter,用来获取页面内容


      21 var type_rp = context.Response.GetType();


      22 //经过反射获取目标的私有字段


      23 tw_field = type_rp.GetField("_writer", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);


      24 tw_field.SetValue(context.Response, tw_new);


      25 }


      26 protected override void Render(HtmlTextWriter writer)


      27 {


      28 base.Render(writer);


      29 //替换回Response的OutPut


      30 tw_field.SetValue(HttpContext.Current.Response, tw_old);


      31 //做自个的处置


      32 content.AppendLine("");


      33 HttpContext.Current.Response.Write(content.ToString());


      34 }


      35 }


      办法二,用HttpModul来完结:


      view sourceprint?01 using System;


      02 using System.Collections.Generic;


      03 using System.Linq;


      04 using System.Web;


      05 using System.Web.UI;


      06 using System.IO;


      07 using System.Text;


      08 using System.Reflection;


      09 ///


      10 ///HttpModule 的摘要说明


      11 ///


      12 public class HttpModule : IHttpModule


      13 {


      14 private HttpApplication _contextApplication;


      15 private TextWriter tw_new, tw_old;


      16 private StringBuilder _content;


      17 private FieldInfo tw_field;


      18 public void Init(HttpApplication context)


      19 {


      20 _contextApplication = context;


      21 _contextApplication.PreRequestHandlerExecute += new EventHandler(_contextApplication_PreRequestHandlerExecute);


      22 }


      23 public void Dispose()


      24 {


      25 _contextApplication = null;


      26 _contextApplication.Dispose();


      27 }


      28 public void _contextApplication_PreRequestHandlerExecute(object sender, EventArgs e)


      29 {


      30 HttpContext context = _contextApplication.Context;


      31


      32 var _page = context.Handler as System.Web.UI.Page;


      33 _page.Unload += new EventHandler(_page_Unload);


      34


      35 _content = new StringBuilder();


      36 tw_old = context.Response.Output;//Response本来的OutPut


      37 tw_new = new StringWriter(_content);//一个StringWriter,用来获取页面内容


      38 var type_rp = context.Response.GetType();


      39 tw_field = type_rp.GetField("_writer", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);


      40 tw_field.SetValue(context.Response, tw_new);


      41 }


      42 void _page_Unload(object sender, EventArgs e)


      43 {


      44 //替换回Response的OutPut


      45 tw_field.SetValue(HttpContext.Current.Response, tw_old);


      46 //做自个的处置


      47 _content.AppendLine("");


      48 HttpContext.Current.Response.Write(_content.ToString());


      49 }


      50 }


      办法三:


      view sourceprint?01 public class HttpModule : IHttpModule


      02 {


      03 private HttpApplication _contextApplication;


      04 private TextWriter tw_new, tw_old;


      05 private StringBuilder _content;


      06 private FieldInfo tw_field;


      07 public void Init(HttpApplication application)


      08 {


      09 _contextApplication = application;


      10 _contextApplication.BeginRequest += new EventHandler(_contextApplication_BeginRequest);


      11 _contextApplication.EndRequest +=new EventHandler(_contextApplication_EndRequest);


      12 }


      13 void _contextApplication_BeginRequest(object sender, EventArgs e)


      14 {


      15 _content = new StringBuilder();


      16 tw_old = _contextApplication.Response.Output;


      17 tw_new = new StringWriter(_content);


      18 var type_rp = _contextApplication.Response.GetType();


      19 tw_field = type_rp.GetField("_writer", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);


      20 tw_field.SetValue(_contextApplication.Response, tw_new);


      21 }


      22 void _contextApplication_EndRequest(object sender, EventArgs e)


      23 {


      24 tw_field.SetValue(_contextApplication.Response, tw_old);


      25 //做自个的处置


      26 _content.AppendLine("");


      27 _contextApplication.Response.Write(_content.ToString());


      28 }


      29 public void Dispose()


      30 {


      31 _contextApplication = null;


      32 _contextApplication.Dispose();


      33 }


      34 }
    展开全文
  • 为了研究城市固体废物污染控制技术体系,提出适合我国国情的城市固体废物处理处置技术政策制定方法,通过整合集成固体废物处理处置关键技术,选择了C,H,O,N,S5种最主要的元素对固体废物物质和元素进行分析,综合了...
  • 应急响应—常见应急响应处置思路

    千次阅读 多人点赞 2019-12-03 10:19:29
    下图是常见应急响应处置思路的思维导图 下面将对 "常见应急响应处置思路" 进行详细的讲解 一、操作系统后门排查 排查目标:找出后门程序在哪里,找到后门是怎么启动的,尽可能发现后门修改了系统的那些地方。 ...

    下图是常见应急响应处置思路的思维导图

    下面将对 "常见应急响应处置思路" 进行详细的讲解

    一、操作系统后门排查

    排查目标:找出后门程序在哪里,找到后门是怎么启动的,尽可能发现后门修改了系统的那些地方。

    Windows常见系统后门排查

    1、工具列表

    • Pchunter               恶意代码检测工具
    • Process Explorer  恶意代码检测工具
    • Autoruns               显示Windows启动时自动运行的程序
    • D盾                       WebShell查杀
    • Logparser             日志分析工具

            Windows的自带命令集没有linux的强大,不能完全满足应急响应时的处置工作,所以一般来说我们都需要借助外部工具进行恶意后门分析

    2、检查项目

    • 注册表启动项        查看注册表中的自启动项
    • 恶意进程               查看是否存在可疑进程和用户
    • 系统服务               查看是否存在可疑系统服务
    • 网络连接               查看是否存在可疑的网络连接
    • 计划任务               查看是否存在可疑计划任务条目

           上述的排查项,全部可以使用PChunter和Autoruns完成。

    PChunter使用方法:右击,以管理员身份运行——选中 "进程" 选项,然后右键选择 "校验所有数字签名",就可以筛选出数字签名有问题的进程;同样的在PChunter的 "启动信息" 选项中,对 "启动项"、"服务"、"计划任务" 这3个项都需要校验一下数字签名,数字签名的颜色代表什么呢?

    • 黑色:表示微软的进程
    • 蓝色:表示非微软的进程
    • 粉红色:表示没有签名的模块
    • 红色:表示可疑进程,隐藏服务、被挂钩函数

            简单来说就是红色是极大可能是恶意进程,粉红色的话就需要人工再进一步判断一下,蓝色一般来说是正常企业的签名,黑色是微软自己的签名。那么黑色是不是代表就安全的呢?不一定,因为黑客如果使用cmd.exe或者powershell.exe这些命令执行的程序去启动恶意脚本,那么它的签名也会是黑色的,所以这里还是需要注意一下。
            PChunter的其他功能,比如“网络”功能也需要看一下,查看一下有没有对危险服务器建立恶意连接。
            Autoruns这个工具也挺简单,一般我们只要打开查看它的 "Everything" 选项就行了,这个选项是显示所有开机启动项的信息,如果想分类查看的话,就点击别的选项卡就行了。

    3、系统日志——查看是否存在恶意登陆情况

    Windows的系统日志可以用以下两种方法对其进行分析

    • 方法一:可以使用Logparser格式化后进行分析。
    • 方法二:直接打开 Windows控制面板——管理工具——事件查看器 进行分析,比如我们要筛选是否存在 3389 rdp 暴力破解行为的话,只要在 "安全" 日志中筛选事件ID为4624(登陆成功)和4625(登陆失败)的事件即可。

    两种方法使用起来各有千秋,具体使用哪种还是看各自的习惯了。

    4、Shift粘滞键后门

            查看C:\WINDOWS\system32\sethc.exe文件是否被替换,或者直接按5下Shift键,看看弹出来的是不是正常的系统粘滞键,如果是的话,那么就可能没有被黑客安装后门,不过也有后门会伪装成正常的粘滞键程序。

    5、NTFS(ADS)数据流

    检查方法:

    • 首先打开cmd,切换到要检查的目录下,使用命令 "dir /r" 检查目标目录里是否存在使用NTFS数据流隐藏的文件。(hidden、Indentifier)
    • 如果存在,就使用 "notepad 文件名:NTFS隐藏文件名" 来查看隐藏的文件的内容是什么。

            很多时候黑客会使用NTFS数据流的方式去隐藏自己的后门或者WebShell,这时就需要我们通过以上方法检查是否存在ntfs数据流隐藏的文件,从而去发现黑客遗留的后门。

    Linux常见系统后门排查命令

    1、检查异常账号——cat /etc/passwd

            通过检查/etc/passwd,查看有没有可疑的系统用户,这个文件是以冒号:进行分割字段,一般我们只要注意第三个字段即可,第三个字段是用户ID,也就是UID,数字0代表超级用户的UID,即这个账号是管理员账号。一般Linux只会配置一个root账号为系统管理员,当出现其他账号是系统管理员的时候,就要注意了,很可能是黑客建立的账号。

    2、检查异常登陆

    • who         查看当前登录用户(tty本地登陆  pts远程登录)
    • w             查看系统信息,想知道某一时刻用户的行为
    • last          列出所有用户登陆信息
    • lastb        列出所有用户登陆失败的信息
    • lastlog      列出所有用户最近一次登录信息

    3、网络连接——netstat -pantl

            通过查看网络连接,检查是否存在对外的恶意连接,这些恶意连接是哪个进程产生的,就可以判断出服务器是否被黑客入侵。

    4、查看进程——ps -ef | more

            查看进程信息,进程运行参数太长或存在不可见字符时,需加 more命令 或把ps命令的结果输出到文件查看。

            查看系统进程可以有效的发现是否存在黑客运行的恶意程序。这里要注意一点,PID是进程运行的ID号,PPID是父进程号,也就是启动这个进程的程序是谁,不过我们一般只要注意PID就可以了。很多时候服务器运行的进程较多,而且当进程的参数出现不可见字符的时候,我们只用ps -ef很可能会忽略掉一些进程的启动信息,所以建议大家使用ps -ef查看进程时加一个more命令,这样就能有效的避免我刚才说到的情况。

            很多时候黑客运行的程序会做很多伪装,比如我们通过ps命令查看到一个进程名是abc,但是如果黑客经过伪装的话,启动这个程序的文件名就可能不是abc了,是其他的命令,所以我们就要通过在/proc这个内存目录来查看具体是哪个程序启动的这个进程,同样的,使用lsof -p命令我们一样能达到同样的效果

    ls -la /proc/<PID>/exe    或
    
    lsof -p <PID>

    5、计划任务

    • crontab -l               列出计划任务列表
    • crontab -e              编辑计划任务,当计划任务出现不可见字符时,需要此命令才能看到具体信息
    • ls -la /var/spool/cron/          查看计划任务文件
    • more /etc/crontab               查看计划任务

            计划任务也是黑客经常会使用到的一个功能,通过查看计划任务,可以发现黑客是否在系统中添加了定期执行的恶意脚本或程序。如果发现某个计划任务是定期运行一个python脚本,但我们不知道这个python脚本是不是恶意的,这时就需要我们去查看python脚本的内容来确定它是不是一个恶意脚本了。

    6、系统启动项

    • more /etc/rc.local
    • ls -l /etc/rc.d/rc<0~6>.d       优先查看/etc/rc.d/rc3.d的内容
    • more /etc/ld.so.preload       ld.so.preload是linux动态链接库,linux正常程序运行过程中,动态链接器会读取LD_PRELOAD环境变量的值和默认配置文件/etc/ld.so.preload的文件内容,并将读取到的动态链接库进行预加载,即使程序不依赖这些动态链接库。

           查看系统启动项也是一个有效发现黑客攻击的方法,一般来说我们只需要查看上述的这几个文件就行。

    7、系统日志

    • /var/log/secure        SSH登陆日志、su切换用户日志,只要涉及账号和密码的程序都会记录
    • /var/log/message    记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,但因为记录的信息太杂,一般不查看。
    • /var/log/cron            计划任务日志
    • /var/log/wtmp          记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。这个文件是二进制文件,需要使用last命令来查看

            通过查看系统日志,能发现黑客究竟做了一些什么事情,不过一般我们只查看secure日志即可,这个日志能有效的发现黑客有没有通过暴力破解的方法攻破过服务器,查看日志的方式也很简单,使用cat、more、grep等命令查看即可。

    8、Rootkit查杀

    • chkrootkit
    • rkhunter

            如果遇到更顽强的系统木马,比如Rootkit这类型的后门,我们就要使用一些专门的Rootkit查杀工具了,直接运行就可以开始查杀。

    二、Web日志分析

    目标:1.找出可能是攻击成功的真实攻击; 2.找出可能是webshell的文件

            Web日志会有很多没用的攻击日志记录,那些日志记录的都是没有攻击成功的日志信息,这些日志对我们来说的参考作用不大,所以一般可以直接忽略。

            Web日志分析会相对难一点,因为针对Web的攻击手法是最多种多样的,而Web日志所记录的信息也并不完善,所以Web日志分析会相对其他日志麻烦一点。

    1、网站所在目录和网站日志

            对于Web日志分析,第一个问题就是怎么找到Web目录所在的位置,大家可能会说直接问现场的客户不就知道了。其实大多数情况下是可以直接问客户,但是很多时候现场的客户自己都不知道自己的网站目录在哪里,所以这时就要我们自己找web目录了。

    常见中间件与其配置信息(Linux下):

    • Apache              /etc/httpd/conf/httpd.conf
    • Nginx                 /etc/nginx/nginx.conf
    • Tomcat               server.xml
    • Weblogic            登陆控制台查看
    • WebSphere        登陆控制台查看

           找web目录的方法很简单,只要通过查看中间件的配置文件,就能找到对应的web目录和web日志的位置。这里列出的配置文件路径不是固定的,只是默认情况下的配置文件路径。找到中间件的配置文件后,查找到相应的网站目录配置和网站日志目录配置,就能找到web目录和web日志了。

           当然还有更简单的方法,就是直接用find命令查找如php这样后缀的动态脚本文件。如 # find  / -name *.php

    常见中间件与其配置信息(Windows下):

    • 前面Linux列出的所有中间件
    • IIS                     打开IIS配置查看
    • XAMPP             XAMPP目录下的htdocs目录
    • PHPStudy         PHPStudy目录下的www目录
    • ApmServ           ApmServ目录下的htdocs目录

            Windows下的中间件除了刚才讲到的Linux下常见中间件外,还有IIS和其他一键部署环境,比如XAMPP、Apmserv这些,都是Windows下常用的一键部署环境,看到这样命名的目录的时候,基本就能知道web目录在哪里。

            当然,windows下也能直接通过全盘搜索如php等脚本文件来找到web所在目录。

    2、web日志分析

    确定了web目录以及web日志,接下来就是对web日志进行分析了。

    第一步:排除常见状态码

    • 200           正常访问,服务器已成功处理了请求。
    • 301/302   永久移动/临时移动,跳转到新的网页。
    • 400          错误的HTTP数据包,服务器不理解请求的语法。
    • 401          请求要身份验证。
    • 403          服务器拒绝请求。
    • 404          服务器找不到请求的网页。
    • 500          某个网页出错、服务器遇到错误,无法完成请求。

            Web日志中有很多无用的杂质和没有成功的攻击信息,所以在进行web日志分析时,会先排除掉一些无用信息,一般会先对301、302、400、401、403、404这几个状态码排除掉,Linux下可以使用grep -v参数进行排除。Windows下可以使用sublime或notepad++辅助分析

           web日志分析的目标就是找出可能存在的真实攻击,和找出可能是webshell的脚本文件。

           在Windows下进行web日志分析时,由于没有很好的原生命令,所以需要借助第三方编辑器去进行分析,这样会比较方便,这时就可能需要用到正则表达式来辅助我们分析。我们只需要掌握简单的正则表达式的基础,就可以完全上手进行日志分析了。

    简单的正则表达式

    • \n           换行符
    • \w           匹配一个字母,数字,下划线
    • \W           除\w了以外的任意字符
    • \d           数字
    • \D           除数字之外的任意字符
    • \s           空白、空格字符
    • \S           除空白、空格的任意字符
    • ^            以某个字符串开始
    • $            以某个字符串结束
    • *            0次、1次或多次
    • ?            0次或1次
    • +            1次

    第二步:筛选web日志中所述语言后缀

           查看网站是使用什么语言开发的,然后筛选出那个语言对应的后缀名。如使用PHP语言开发的网站,就筛选.php后缀的文件,因为如果网站的脚本文件是php后缀的,那么黑客攻破网站后上传的WebShell木马也会是php后缀。

            Linux系统下可以使用命令:# grep .php access_log 来筛选出php后缀的Web日志信息

    第三步:开始逐条分析日志

           先使用命令  wc -l 统计筛选后的日志条数,若数量不多,则可以开始逐条分析日志。日志中重复性较大的相同类型日志可以快速忽略,当发现可能攻击成功的攻击日志时,则需要仔细分析后面的日志信息,找出可能存在的WebShell木马。

    三、网站劫持类事件分析

    目标:1.找出网站被劫持的原因;2.找出网站被劫持的方式;3.尽可能找到网站被劫持的源头。

    方法一:

            打开Chrome浏览器的F12检查功能,选中 "NetWork(网络)" 选项,刷新存在问题的网站页面,即可看到所有网站加载的动态和静态文件,如gif、css、js等文件全部都能看到。

    方法二:

           查看网站源代码,查找是否存在可能是恶意加载的js文件或javascript代码。

           当发现可疑javascript代码,并且该代码被混淆或加密过,可以使用chrome浏览器的 F12 检查功能,利用console.log()这个打印方法把混淆过的javascript代码打印出来,这样就能获得解密后的明文代码。

    方法三:

           打开WireShark进行抓包,刷新存在问题的网站页面,对抓取到的PCAP数据包进行分析。这种方法一般适用于运营商的链路劫持事件。

    展开全文
  • 以我国城市生活垃圾处理处置技术体系为案例,通过经济性分析,利用已建立的物质与经济性综合评价最优化模型,对不同情景进行了蒙特卡罗法数值模拟,并进行了参数的灵敏度分析。结果表明,在一般条件下,家庭物质...
  • 结构化分析方法 DFD图的例子 图书预定系统 医院病房监护系统 画分层DFD图的方法 画分层DFD图的基本原则
  • 随着金融全球化、国际资本流动的加速,为了化解银行的金融风险,前几篇我们已经介绍,因此许多国家成立了金融管理公司,但由于不良资产的市场规模、市场结构与处置机构等等情况的不同,世界各国金融管理机构处置方式...

             随着金融全球化、国际资本流动的加速,为了化解银行的金融风险,前几篇我们已经介绍,因此许多国家成立了金融管理公司,但由于不良资产的市场规模、市场结构与处置机构等等情况的不同,世界各国金融管理机构处置方式各有不同,今天笔者通过部分国家的不良资产处置案例进行分析。

             美国的好银行/坏银行模式

            由于在80年代到90年代受经营管理不善和经济衰退等原因,美国储蓄信贷机构发生了两次大规模破产风潮,也因此积累了巨额的不良资产,于是美国政府成立了临时的重组信托公司专门来负责管理、处置这些不良资产或负债。当然,经过一段时间的努力,取得的效果相当显著,成功的解救了储蓄信贷公司的不良资产,为美国的经济繁荣奠定了良好的基础。

            在此过程中,美国采取的便是这种好银行/坏银行模式,也就是说,把一家银行中存在的不良资产分离出来,由另一家专门设立的机构不良资产管理公司来处置不良资产,也就是所谓的坏银行,剥离过后的银行便成为好银行,变成好银行之后,便可以重新进入金融市场进行融资活动。一般情况下,好银行的不良资产往往以远远低于不良资产的账面价值的现金或者证券所取代,在好银行剔除不良资产后,好银行通过可以通过其他多种注入政府注资或者股东注资等方式来弥补损失,通过这样的重组之后,好银行就可以重新返回正常的经营,而且不良资产也得到了完美的处置。

             韩国资产证券化形式

            在1997年金融风暴之后,很多国家受到了波及,韩国大部分企业濒临破产,从而导致了大量的不良资产,为化解这一问题,韩国政府采取了一系列措施,首先制定了一系列的法律制度,形成了不良资产市场规则框架,为不良资产处置提供了良好的法律环境。

            随后,韩国政府也设立了特殊功能公司(SPC),负责回收金融机构的不良资产,在此过程中,SPC从银行手中收购不良资产然后发布证券,使用资产证券化的形式来消除不良资产,韩国政府同时也提供了政策支持,给与SPC举债或者持股等方面的优惠和税收方面的支持。当然在这一过程中,还需要诸多像评级机构和投资者等等的相关人员的配合,这些我们在不良资产证券化中已有详细的介绍,这里不再赘述,总之,这一方式的不良资产处置,在很大程度上加快了不良资产的处置速度,缓解了银行系统的风险,而且我国在今年3月份也重启了不良资产证券化,来处置不良资产,可以说这一形式通过历史的检验成为了不良资产处置的一剂良药。

    展开全文
  • 当map开始产生输出时并不是简单的写入到磁盘先是写入到缓冲区并进行预排序以提升效率 * MapReduce数据 shuffle和sort Partitons:每一个reduce节点会分派到中间输出的键集合中的一个不同的子集合 Partitioner类决定...
  • 数据及其计算处理后的数据最终是要提供给其他应用使用的,这就要求处理平台提供统一的消息服务能力,满足异构系统各种集成方式的需求,这些需求可能通过前端直接访问、RPC远程调用,也可能通过主流的消息中间件...

    恒丰银行于2016年1月完成了传统数据仓库向大数据平台数据仓库的迁移,以新的数据仓库平台为基础,结合行内的通用文件传输平台、统一调度平台,规范了源数据系统的数据报送,梳理构建了新的数据模型,大数据平台解决了传统数仓在批量数据处理能力的不足,在相关任务上体验到了从数小时到十几分钟的提升。

    大数据平台解决了大数据特征中四个V的大数据量(Volume)的处理,我们还需要引入实时处理技术能覆盖数据多样性(Variety),高速处理数据(Velocity),从而挖掘更大的价值(Value)。数据的价值随着时间的流逝而降低,如何在技术上提供支撑,发挥以日志为代表的行内实时数据和付费购买或者免费爬取的海量互联网数据在商业银行业务中的价值是亟待解决的问题。变现,是硬道理!换句话说,我们需要将ETL、业务建模、机器学习、可视化扩展到实时数据,将与风险管理、客户营销相关的数据和计算规则从银行关键业务系统里面解耦,对相关业务应用提供完整的支撑。

    周期/节奏

    2015年9月至11月,大数据实时流处理平台可行性分析,技术组件选型。

    2015年11月,项目启动。

    2015年12月,完成总体需求分析,确定平台的主要业务目标是在运营监控、反欺诈、客户行为分析、风险预警方面提供实时数据支持。

    2015年12月-2016年8月,完成平台设计和基础组件的实施、投产。

    2016年8月-今,对基础组件进行优化和补充,对业务应用开发提供支持,配合IT运营实时监控、客户点击流、交易反欺诈、贷后预警等与实时数据相关的应用建设。

    客户名称/所属分类

    恒丰银行/大数据技术服务

    任务/目标

    同互联网公司相比,传统商业银行在业务种类、交易模式、监管要求方面都大大不同,我们针对行内业务需求设计了以下功能架构:流处理平台提供基础的数据采集、接收、过滤解析、实时规则计算、存储和分析挖掘功能,以此为基础构建实时营销平台、实时风险预警平台进行业务逻辑加工,行内的各个渠道系统、信贷系统、IT运营监控系统、运营风险监测通过订阅方式获得实时处理后的数据,满足IT运营实时监控、客户行为分析、交易反欺诈、授信评审与贷后预警、运营风险监测等方面的业务需求。

    当前的实时数据源主要包括业务系统的应用日志,企业消息总线关联交易日志,第三方数据公司实时推送数据,网络设备、操作系统、中间件日志,数据库日志,外部网站爬虫信息,流处理平台要负责实现以下目标:

    ●各类基础数据的实时采集,过滤解析;

    ●根据业务应用需要提供基础数据实时加工功能;

    ●同时支持简单和复杂业务逻辑规则模型,支持基于流数据的实时分析;

    ●便于与异构系统集成,实现数据共享,要包含与主流的流计算框架、各类数据库、前端框架、消息中间件设施、主流接口协议;

    ●海量数据的持久化存储和快速检索;

    ●提供平台级别的数据管理功能,包括数据脱敏、用户权限、数据时效管理和分级存储等方面功能。

    挑战

    大数据实时流处理平台在实际实施过程中主要面临以下技术难点:

    1.如何实现流处理系统在可伸缩性、系统容错、高可用性、弹性部署、差异服务管理、吞吐性能方面的要求。

    ●平台资源方面:使用物理机服务器和传统的虚拟机技术无法根据数据流量和计算任务量实现资源层面快速扩容;对计算、存储、网络等资源管理不够精细,资源申请周期长,资源的可用性低。

    ●应用架构方面:如果采用传统的单体应用架构,由于Socket连接方式、线程服务模型、锁冲突、同步IO阻塞等原因,在并发处理能力上先天不足;大数据微服务架构又会面临编程学习和开发成本高,并且框架对异步并行调度、服务质量管理方面支持不足的问题。

    ●开发体系和工具方面:流处理平台组件繁多,迭代频率高,服务质量管理更精细,现有的开发体系和工具无法在实施的各个阶段实现有力支撑。

    2.如何构建高性能、高可用性,覆盖所有业务需求数据源的实时采集、传输组件。

    商业银行内部价值最大的流数据就是应用系统及各类设备每天产生的日志数据,同互联网公司比,银行的系统种类多,来源广,架构平台杂,主要交易系统的产品化程度高,改造风险大,日志规范性差,不同应用的日志路径、文件个数、内容、回滚规则各不相同,如某重要系统应用,同时打印的交易日志文件达几百个;除了应用日志文件外,用于运维监控的系统实时资源信息、需要从外部获得的舆情、资讯信息都需要数据采集组件提供高性能、高可用性、高安全可靠性的实时采集、传输功能。

    3.如何提供易于异构系统集成的软件服务能力。

    流数据及其计算处理后的数据最终是要提供给其他应用使用的,这就要求流处理平台提供统一的消息服务能力,满足异构系统各种集成方式的需求,这些需求可能通过前端直接访问、RPC远程调用,也可能通过主流的消息中间件、内存数据库,传统数据库,也可能通过与其他流处理框架集成。

    4.如何应对灵活的业务逻辑变化,降低开发工作量。

    基于流数据的业务应用要求流处理平台在数据处理和计算上具有较高的灵活性,在数据解析结构化方面,如日志或者资讯信息中的某些字段在当前的监控业务模型中没有具体用处,不做预处理,突然有一天,业务人员发现可以用于实时交易欺诈模型;在计算规则方面,如银行新开通了信用卡业务,对于客户全渠道行为的分析就要把信用卡的数据加入,业务人员都希望能够基于提出的规则即时实施,并且能够处理复杂规则逻辑,平台要在这方面进行支撑,减少上层应用开发工作量。

    5.如何对庞大的平台各组件及客户端提供统一的配置和管理。

    云平台下对应用的计算资源、存储资源进行精细化管理,应用的节点数增多,可用性提高,随之大大提高了日志采集客户端的数量,应用日志相对于中间件、数据库、syslog日志相比在采集任务配置也复杂得多,如何高效管理几千个日志采集客户端和爬虫客户端,对其运行状态、采集任务进行实时配置和更新,大规模性的集中部署和升级,如何对其他流计算组件集群的状态一致性进行配置管理,提供方便的流数据处理流程配置功能,也是流处理平台需要解决的问题。

    6.如何满足海量数据的高速存储、检索和分析挖掘的需求。

    流处理平台要满足原始数据和解析计算后的数据高速存储和查询检索需求,并在使用时满足银行对客户数据脱敏、用户权限管理、数据分级存储的要求,提供集成的数据分析和机器学习工具以便更好地挖掘的数据价值。

    实施过程/解决方案

    在实际实施过程中,行内针对发布应用日志和应用监控输出的规范,将日志输出的要求纳入了从招标到验收的项目管理整个流程,对新建系统提出了明确的要求,这大大方便了日志采集,提高了流处理的效率,下面主要描述如何从技术上解决上一章提到的六个难点。

    ●平台架构

    通过分析传统单体应用在并发服务能力、服务质量、运行部署方面的不足,并最终选取技术成熟的akka微服务架构+docker容器云技术作为平台流计算和数据服务组件的基础技术架构。

    响应式微服务架构通过消息机制避免共享资源的锁冲突,降低线程资源需求。同时,将失败也作为一种消息,实现服务自治,可以实现各个级别的失败快速恢复,能够实现功能及服务的灵活打包部署,构建位置透明的集群服务体系,实现弹性扩容和差异化的硬件资源配置;akka除了具备以上优点外还内嵌了基于netty技术的NIO框架,不需要额外配置Weblogic或者WebSphere等中间件服务器,降低使用成本,支持更多客户端连接,单节点每秒5000万消息处理;1GB内存250万Actor,消息传递机制实现分布式微服务协同、数据共享,消除资源锁需求;Actor模型实现多层级自治监管机制,构建安全运行的防火墙和沙箱,微秒级的故障恢复,支持弹性部署多种集群部署模式,远程服务透明访问,多种可配置的负载均衡策略。

    我们将akka微服务架构的集群负载,服务监控、故障恢复与弹性部署能力结合恒丰银行PAAS云平台采用的docker容器技术对应用级负载、监控、弹性资源分配以及快速部署能力相结合,满足了本节开头对流计算组件的要求。除了流计算组件,平台使用的flume、kafka、zookeeper、redis等开源组件也实现docker容器化并借助DevOps工具服务,从开发、构建、测试到版本发布的全流程自动化,中间提供包括计划、任务分配跟踪、问题跟踪、文档管理、版本发布全过程的项目协作支持。

    我们使用自研微服务架构平台Skyline进行相关组件开发,Skyline以akka为基础,通过提供zebra脚本语言降低并行编程开发难度,能够对异步并行任务进行监控和调度,实现了对集群的分布式一致性和分布式事务的支持。

    ●数据采集

    在比较了目前主流的开源日志采集组件flume、scribe、logstash之后,我们选取采用Java语言开发,在高可用、资源隔离、二次开发方面具有优势的flume作为我们的日志采集组件。

    在日志收集流程方面,针对不同云环境设计了不同的采集流程,对于部署在openstack云环境和部分物理机上的应用,通过在应用服务器直接部署flume agent实时采集每个节点配置的日志文件、syslog、进程状态信息,实时发送后端的flume 服务端,服务端完成原始数据入库和初步的过滤解析并发送到kafka消息中间件;对于部署在docker容器环境下应用,因为已经做了日志规范化,宿主机上的flume直接利用宿主机提供的接口读取对应镜像所属路径下的日志文件,直接发送到kafka消息中间件。

    此外,根据实际需要,对flume的客户端进行开发,增加了source种类,覆盖目前所有应用系统的日志打印类型,修改了客户端软件的一些缺陷,设计并实现了不同策略,控制异常情况下对系统资源的占用,修改了agent与zookeeper之间更新配置的方式,利用心跳机制实现对flume agent状态的监控,利用Jenkins、puppet等工具支持进行大规模客户端推送、部署。

    为了解决flume服务端收集数据的性能问题,我们对flume服务端进行微服务化拆分,将原来集中在服务端的接收、解析、入库工作拆分出来,原有的flume服务端用其对loadbalance、failover以及与客户端之间发送接收事务的支持进行数据接收,构建skyline微服务组件集群实现解析和入库的功能,并根据不同级别、不同类型的解析、入库需求分配不同的组件。

    除此之外,为了补充采集一些既有系统交易数据和爬取外部网站一些数据,平台提供探针组件和爬虫组件,并基于zookeeper实现了上述客户端程序组件的注册、注销、实时任务分配,实现了高可用和水平扩展。

    ●异构系统集成

    流处理平台通过建立自己的分布式实时消息总线与周边系统集成,该消息总线以Akka的消息处理框架为核心枢纽。

    如上,一方面,通过SockJs、WebSocket、HTTP协议将流数据包装为各种服务,构建与移动端应用和其他外部系统前后端的消息通道,对应用开发程序员屏蔽各种消息编码解码算法细节;另一方面,通过代理组件的编写和统一的元消息语义,可以将异构系统的kafka、MQ等消息中间件设施和主流的spark streaming流处理框架,当成流处理平台消息总线设施一部分,实现与上述设施和流计算框架的无缝集成;此外,用户也可以针对特定的数据,定制自己的持久化方案,支持将数据实时写入主流的数据库。

    ●规则计算

    为了应对各方面业务对流处理规则的变动,减少使用硬编码实现流计算组件的工作量,我们引入了开源的drools规则引擎。Drools规则引擎速度快、效率高,且具有强大的规则冲突处理能力,并且完全开源,使用Java编写,方便基于其进行开发。

    在实际使用时,我们将drools集成为skyline平台的一个计算组件,与我们的kafka消息中间件和redis内存数据库完成适配,将drools的监测数据源改为实时数据,并利用其处理由事件触发的复杂业务逻辑。为了方便业务人员使用,编辑规则逻辑的方式由开发Java语言风格.drl文件改为提供可视化话编辑页面,用户可以通过在页面上编写简单逻辑组合条件和标准sql的方式配置复杂业务逻辑,并从各方面完善了规则引擎的功能,便于应用使用。

    对于时间触发类型的流计算规则,如日常的实时交易量统计,并发访问量,客户当日消费金额,我们使用spark streaming sql功能代替原本需要针对绝大多数数据源和规则逻辑开发的流计算组件,并将查询结果实时导入内存数据库,提供给规则引擎进行复杂逻辑处理。目前,大部分实时规则的计算时间从数据触发到计算结果输出的时间都控制在100ms以内。

    流计算过程中需要的其他组件,如数据分发组件、持久化组件、告警推送组件,我们使用skyline平台构建对应流处理集群,使用zebra脚本语言编写业务逻辑,满足相关业务需求。

    ●服务和任务配置、管理

    流处理集群的服务和任务配置管理主要有三部分:

    第一部分是日志采集、交易探针、爬虫这些客户端程序。恒丰银行目前绝大多数应用采用同城双中心双活,应用在每个中心的部署单元也是集群多活形式,应用从传统物理机环境迁移到云环境后,节点数增多,与之对应的是日志采集客户端的增多。目前,恒丰银行的生产环境已经上线运行了三千多个虚拟机节点,各类测试环境和准生产环境共有六千个节点,对每个虚拟机上的采集客户端的服务状态、资源占用情况进行监控,对采集任务的一些参数进行批量或者单独的更新,如增加/减少路径,增加文件黑白名单。对于不能通过日志获得流数据的既有系统和外部咨询数据,我们分别开发了探针和爬虫客户端程序。这些客户端程序的服务和任务管理都是利用zookeeper实现的。

    第二部分是基于Skyline平台开发的流计算组件,这一部分我们利用skyline平台的一致性管理器进行管理,每个组件自带基于raft协议一致性管理的接口,管理集群和各组件集群间通过消息广播机制进行通信。

    第三部分是流处理流程的配置,除了之前提到的Streaming Sql和规则引擎组件,我们使用skyline平台开发了一些基础组件,如分类,数据补全,持久化,脱敏、数据转换组件,用户可以使用拖拽方式可视化配置一个流处理过程。

    ●数据存储、分析和挖掘

    在有些业务场景下,流处理平台需要将原始的非结构化和半结构化数据存储起来并提供查询检索,如运维业务需要提供事件发生时的各类资源和日志快照信息;针对解析后的结构化数据,也需要集中存储,用于统计分析和报表。在这方面,我们使用继续使用在数仓迁移时引入的企业级大数据平台,引入企业级的大数据平台免去了对大数据平台的运维压力。

    流处理组件可以通过jdbc驱动直接使用标准sql在Hyperbase表上进行数据库表的相关操作,并且支持上建立全局索引、局部索引,以满足多种复杂场景的实时写入、检索需求,Hyperbase支持全文索引,方便用户快速检索自己关心的信息。流处理平台使用平台提供的Scala语言接口,开发数据挖掘和深度学习的相关模型,进行分布式挖掘和模型训练。

    结果/效果总结

    目前,市面上的商业流处理产品大多基于单一应用目的开发,使用商业化产品在采集规模和功能覆盖性、数据开发灵活性上受制约,同时,大部分产品的收费模式都基于节点数或者原始数据流量,而大多数流数据是低价值密度数据,在这类收费模式下很难全面挖掘数据价值。

    从技术指标方面来看,恒丰银行大数据实时流处理平台具有以下优势:

    ●数据采集:节点多,部署超过1500个服务器节点;网络结构复杂,横跨多中心所有网段;采集功能覆盖性强,能够满足日志、进程资源信息、接口服务信息、库表信息、外部爬虫数据实时采集,在日志采集方面覆盖所有日志打印方式,最大支持同时维护三百个日志文件;任务调度和监控方便,所有任务统一配置,实时更新,支持客户端自动批量发版,客户端运行状态监控完善。

    ●数据接收和预处理:基于规则引擎和Streaming SQL实现,提供可视化规则配置页面和拖拽式流程配置,业务人员可以直接配置,不需要编程开发,支持复杂规则逻辑,支持弹性扩容,绝大多数基于流数据的逻辑处理时间小于100ms。

    ●流计算:基于规则引擎和Streaming SQL实现,提供可视化规则配置页面和拖拽式流程配置,业务人员可以直接配置,不需要编程开发,支持复杂规则逻辑,支持弹性扩容,绝大多数基于流数据的逻辑处理时间小于100ms。

    ●数据存储和检索:接收和存储采取异步处理,在八个存储节点条件下支持接近100M/S写入速度,通过自动分表,当月日志元数据结合全文检索检索皆在3秒以内。

    以上技术指标完全满足上层监控、反欺诈、贷后预警、客户行为分析、运营风险监控类业务需求对实时数据处理的要求。

    从实际应用效果看,恒丰银行大数据实时流处理平台针对一些典型业务的支撑已经验证了当初“将实时数据集中采集、集中计算处理、集中发布订阅”决策的优势和正确性,同一份渠道系统交易数据可以用于运维监控,可以用于用户行为分析,可以用于交易反欺诈核验,可以放在此用户的贷后预警模型里,将数据同源系统解耦,不同的业务只需要响应增加逻辑规则配置即可,而不是像原有模式分别在源系统里面增加业务,增加开发和投产任务。家庭金融是恒丰银行新开展的一项以家庭为单位财富管理业务,业务人员设计了较为复杂成员之间各类交易动账提醒规则,按照以往的模式需要核心增加提醒业务,各渠道交易接口可能需要改造,相关系统要协同上线,如果新增渠道系统后原有模型还得重新开发、上线;基于流处理平台的处理方案,在流处理组件或者规则引擎中配置规则,关联各个渠道数据源,新增数据源和规则更新可以立即配置,即时生效,大大提高了业务灵活性,降低了开发成本。

    企业介绍:

    恒丰银行股份有限公司是12家全国性股份制商业银行之一,注册地烟台。

    近年来,恒丰银行稳健快速发展。截至2016年末,恒丰银行资产规模已突破1.2万亿元,是2013年末的1.6倍;各项存款余额7682亿元,各项贷款余额4252亿元,均比2013年末翻了一番。2014年至2016年累计利润总额312.17亿元,这三年的累计利润总额为以往26年的累计利润总额;服务组织架构不断完善,分支机构数306家,是2013年末的两倍。

    近年来,恒丰银行屡获荣誉。在英国《银行家》杂志发布的“2016全球银行1000强”榜单中排名第143位;在香港中文大学发布的《亚洲银行竞争力研究报告》中位列亚洲银行业第5位;在中国银行业协会发布的“商业银行稳健发展能力‘陀螺(GYROSCOPE)评价体系’”中,综合能力排名位列全国性商业银行第7位,全国性股份制商业银行前三;荣获“2016老百姓最喜欢的股份制商业银行”第二名、“2016年互联网金融创新银行奖”、“2016年最佳网上银行安全奖”、“2016年度创新中国特别奖”等多项荣誉。

    作为一家肇始于孔孟之乡山东的全国性股份制商业银行,恒丰银行秉承“恒必成 德致丰”的核心价值观,践行“1112·5556”工程,即:一个愿景(打造“精品银行、全能银行、百年银行”)、一个文化(打造“开放、创新、竞争、协同、守规、执行”的“狼兔文化”)、一个目标(五年目标是以客户为中心,以创新为驱动,高效协同,弯道超车,五年内进入全国性股份制商业银行第二方阵;十年目标是要打造一个国际金融控股集团)、两个策略(“植根鲁苏,深耕成渝,拓展中部六省和海西,进军京沪广深”的区域策略和“四轮驱动、两翼齐飞”的经营策略)、“五化”强行战略(国际化、信息化、精细化、科技化、人才化)、“五力”工作方针(忠诚力、执行力、目标力、风险经营力、恒久发展力)、五个引领(人才引领、科技引领、创新引领、效率引领、效益引领)、六大综合能力(价值分析能力、风险鉴别能力、定价能力、创新能力、调研能力、学习能力);大力实施“12345”行动纲领,即:“1”是做金融综合解决方案的提供商,“2”是金融云平台和大数据平台,“3”是数字银行、交易银行、银行的银行,“4”是龙头金融、平台金融、家庭金融、O2O金融等四大金融创新业务模式,“5”是投行、资管、平台、人才盘点和以“One Bank”为核心的绩效评价体系等五大战略落地工具,致力于做“知识和科技的传播者、渠道和平台的建设者、金融综合解决方案的提供者”,力求打造令人瞩目、受人尊敬的商业银行,为客户和社会提供效率最高、体验最佳的综合金融服务。

    展开全文
  • #ReadMe GarbageTrucker 是一款为参加比赛而创建的浏览器游戏 (9leap2013)。 创建于 2013 年 12 月左右。 (執筆及び最終更新:2014/12/8 作者:tSU-RooT ,) 如何开始 ... 怎么玩 这个游戏有声音!...
  • 包括限四规则 + 限四实现) 3.1 限 3.2 限四规则 3.3 限四实现 四、降级(即服务降级,表示处理的对象是服务,这里指主动降级) 4.1 服务降级的定义 4.2 服务降级五种方式 五、熔断(即服务熔断,表示处理...
  • 将工业排放废气或空气注入煤层或废弃煤矿中,减少废气排放,提高煤层气回收率,预防煤矿瓦斯爆炸事故的发生是一项具有发展前景的新技术。通过对该技术国内外研究现状进行分析,提出今后需要攻关研究的内容:二重裂隙...
  • 当前位置:我的异常网» Web前端»Java下载文件后台代码 处置逻辑Java下载文件后台代码 处置逻辑www.myexceptions.net网友分享于:2013-10-28浏览:0次Java下载文件后台代码 处理逻辑文件下载功能是web开发中经常使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,692
精华内容 4,276
关键字:

处置流