• [技术干货] Linux stat命令Blocks字段与IO Block字段的理解-转载
    Linux stat命令Blocks字段与IO Block字段的理解原因在之前了解文件系统的时候,为理解块与扇区的概念,用到了stat命令。关于这个命令输出的信息的文章有很多,其他字段是没有争议的,但是在一些文章中对Blocks与IO Block理解有错误。结论先说结论Blocks字段指的是512字节构成的块的个数,IO Block是指文件系统的块的大小一般为4096字节。它们关系如下I O   B l o c k = B l o c k s × 512 B IO\space Block = Blocks\times 512BIO Block=Blocks×512B网上有很多文章说Blocks字段指的是文件系统中块的个数,这个是错误的。实践是检验真理的唯一标准,下面我们就直接查看Linux的stat命令的源码验证一下。验证首先终端执行以下命令,搜索stat所在目录which stat1得到如下结果然后再搜索软件所在包dpkg -S /usr/bin/stat1发现是在coreutils包下去GNU的网站下载这个包然后解压缩,于src文件夹下和lib文件夹下分别查看stat.c这个源文件发现并没有与这两个字段相关的类型定义,这看似我们寻找失败了。但是经过一段时间摸索,在lib下的stat.c中包含了sys/stat.h头文件,我们想要找的答案很可能就在这里面利用清华大学镜像源加速,获取glibc,解压后在usr/include目录下终于找到了stat.h头文件查看内容,果然有一个名为stat的结构体,代码片段如下struct stat  {    unsigned int st_dev;        /* Device.  */    unsigned int st_ino;        /* File serial number.    */    unsigned int st_mode;        /* File mode.  */    unsigned int st_nlink;        /* Link count.  */    unsigned int st_uid;        /* User ID of the file's owner.    */    unsigned int st_gid;        /* Group ID of the file's group.*/    unsigned int st_rdev;        /* Device number, if device.  */    long int st_size;            /* Size of file, in bytes.  */    unsigned long int st_atime;        /* Time of last access.  */    unsigned long int st_mtime;        /* Time of last modification.  */    unsigned long int st_ctime;        /* Time of last status change.  */    unsigned int st_blksize;        /* Optimal block size for I/O.  */#define    _STATBUF_ST_BLKSIZE        /* Tell code we have this member.  */    int st_blocks;            /* Nr. of 512-byte blocks allocated.  */    unsigned int st_flags;    unsigned int st_gen;  };找到名st_blocks的结构体成员,左边的注释写着“512-byte blocks”,这显然说明stat命令的Blocks字段含义就是以512字节为单位的个数。为什么是512?因为早期的机械硬盘扇区大小为512字节,但现在无论SSD还是机械,存储单位都是4096字节的了,正好是512的整数倍。而IO Block是指文件系统中的块的大小,对应st_blksize成员,相当于8个512字节块(对于512字节扇区的磁盘来讲,在物理上表现为8个连续的扇区),即4096字节。而这个512字节的块究竟是物理块还是逻辑块?由于现在存储设备的发展,以及不同文档中有不同定义,这些东西的概念十分模糊,所以我并不建议把它理解成一个实际存在的块,而是作为一个基本单位。笔者认为在学习文件系统的时候只需要知道,文件系统中的块相当于8个这样的连续的基本单位组成就足够了。其他通过阅读代码可以发现在Linux中,stat命令所说的Size字段指的是文本大小,而不是文件实际占用大小。Size字段对应stat结构体st_size成员,该字段数值并不等于IO Block*Blocks(而Windows中是这样)。文件的实际占用空间应该为 文件系统的块大小*文件文件系统块的个数即T r u e S i z e = F i l e B l o c k × F i l e B l o c k N u m TrueSize = FileBlock \times FileBlockNumTrueSize=FileBlock×FileBlockNum————————————————版权声明:本文为CSDN博主「CairBin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_42759112/article/details/126249990
  • [问题求助] sd4303上跑样例没跑通:样例路径:/smp/a55_linux/mpp/sample/svp/npu
    u_0_6998/.[EVENT] PROFILING(6998,main_test):1970-01-02-01:17:59.347.117 [msprof_callback_impl.cpp:99] >>> (tid:6998) MsprofCtrlCallback called, type: 255[EVENT] PROFILING(6998,main_test):1970-01-02-01:17:59.347.459 [prof_acl_mgr.cpp:1316] >>> (tid:6998) Init profiling for dynamic profilingacl init success.[EVENT] CCECPU(6998,main_test):1970-01-02-01:18:00.373.969 [ae_so_manager.cc:440][LoadSo][tid:6998][AICPU_PROCESSER] Single so manager init failed, soFile is /usr/lib64/aicpu_kernels/0/aicpu_kernels_device/libaicpu_kernels.so.[ERROR] CCECPU(6998,main_test):1970-01-02-01:18:00.374.156 [ae_so_manager.cc:453][LoadSo][tid:6998][AICPU_PROCESSER] Single so manager init failed, soFile is /usr/lib64/aicpu_kernels/libaicpu_kernels.so.[EVENT] CCECPU(6998,main_test):1970-01-02-01:18:00.374.222 [ae_kernel_lib_aicpu.cc:151][BatchLoadKernelSo][tid:6998][AICPU_PROCESSER] Load so libaicpu_kernels.so failed.[EVENT] CCECPU(6998,main_test):1970-01-02-01:18:00.374.275 [aicpusd_interface.cpp:113][AICPUPreOpenKernels][tid:6998] Preload so libaicpu_kernels.so success.[EVENT] CCECPU(6998,main_test):1970-01-02-01:18:00.374.359 [ae_so_manager.cc:440][LoadSo][tid:6998][AICPU_PROCESSER] Single so manager init failed, soFile is /usr/lib64/aicpu_kernels/0/aicpu_kernels_device/libcpu_kernels.so.[ERROR] CCECPU(6998,main_test):1970-01-02-01:18:00.374.426 [ae_so_manager.cc:453][LoadSo][tid:6998][AICPU_PROCESSER] Single so manager init failed, soFile is /usr/lib64/aicpu_kernels/libcpu_kernels.so.[EVENT] CCECPU(6998,main_test):1970-01-02-01:18:00.374.480 [ae_kernel_lib_aicpu.cc:151][BatchLoadKernelSo][tid:6998][AICPU_PROCESSER] Load so libcpu_kernels.so failed.[EVENT] CCECPU(6998,main_test):1970-01-02-01:18:00.374.533 [aicpusd_interface.cpp:113][AICPUPreOpenKernels][tid:6998] Preload so libcpu_kernels.so success.[EVENT] PROFILING(6998,main_test):1970-01-02-01:18:00.381.397 [msprof_callback_impl.cpp:120] >>> (tid:6998) MsprofSetDeviceCallback called, is open: 1open device 0 success.get run mode successload mem_size:5831168 weight_size:12988416 id:1load model /root/kongdejing/sd3403/mpp/sample/svp/npu/data/model/mobilenet_v3_dynamic_batch.om success [npu_load_model]time=739.825000 mscreate model description successcreate model input cached TD_SUCCESScreate model output cached TD_SUCCESSaclmdlGetDynamicBatch batch count = 2aclmdlGetDynamicBatch index = 0 batch = 1aclmdlGetDynamicBatch index = 1 batch = 2[kkkkkkkkk]:count:2aclmdlSetDynamicBatchSize , batchSize is 1[EVENT] CCECPU(6998,main_test):1970-01-02-01:18:02.507.798 [ae_so_manager.cc:440][LoadSo][tid:6998][AICPU_PROCESSER] Single so manager init failed, soFile is /usr/lib64/aicpu_kernels/0/aicpu_kernels_device/libcpu_kernels.so.[ERROR] CCECPU(6998,main_test):1970-01-02-01:18:02.507.979 [ae_so_manager.cc:453][LoadSo][tid:6998][AICPU_PROCESSER] Single so manager init failed, soFile is /usr/lib64/aicpu_kernels/libcpu_kernels.so.[EVENT] CCECPU(6998,main_test):1970-01-02-01:18:02.508.036 [ae_so_manager.cc:265][GetApi][tid:6998][AICPU_PROCESSER] Load so libcpu_kernels.so failed.[ERROR] CCECPU(6998,main_test):1970-01-02-01:18:02.508.090 [ae_kernel_lib_aicpu.cc:104][CallKernelApi][tid:6998][AICPU_PROCESSER] Get RunCpuKernel api from libcpu_kernels.so failed.[ERROR] CCECPU(6998,main_test):1970-01-02-01:18:02.508.171 [aicpusd_event_process.cpp:885][ExecuteTsKernelTask][tid:6998] Aicpu engine process failed, result[11002].[ERROR] DRV(6998,main_test):1970-01-02-01:21:27.520.192 [devdrv_aicpufw.c:182]6998 ext_mpi_aicpu_get_event:---tid:6998--> get event from TSFW timeout.[ERROR] DRV(6998,main_test):1970-01-02-01:24:52.320.172 [devdrv_aicpufw.c:182]6998 ext_mpi_aicpu_get_event:---tid:6998--> get event from TSFW timeout.
  • [问题求助] sd4303上跑样例没跑通:样例路径:/smp/a55_linux/mpp/sample/svp/npu/
  • [技术干货] 【GDE】【OP环境】微服务后台日志查看指导
    前言:有一些小伙伴在客户现场布置了一套ADC的OP环境。在前端页面显示的报错也许会不全,这个时候就需要登录到后台去看日志,才能分析出是什么问题。以下为一些术语,帮助了解:OC:On Cloud,从字面上理解是要把应用构建和运行在云上。OP:On Premises,指部署在客户服务器上的环境,一般是在客户内部的局域网FS:FusionStage,华为的GDE微服务容器管理平台。也是俗称的“管理面”准备工作需要知道以下信息,才能进行后续操作:FS的登录地址FS登录账号密码登录虚拟机的密码虚拟机root权限的密码需要知道自己要看那个微服务的日志,如我有RPA管理中心的报错,那我就要去看adc-rpa的日志(可以看“模块与服务对照表”)以上信息如果不知道,要找给你装环境的人提供模块与服务对照表领域服务名模块错误码前缀描述编排adc-model编排引擎ADC.RT.MODELADC模型adc-trigger网络业务编排ADC.RT.TRIGGER表数据变更触发器(ADC2ModelBatch中的模型数据同步依赖此微服务)adc-model-batch编排引擎ADC.RT.MODBAT模型数据集中处理(模型数据归档、模型数据同步)adc-service资产服务组ADC.RT.SERVICE运行态逻辑流 (模型服务业务处理:模型服务、模型规则、脚本,翻译器)adc-app-mgt资产服务组ADC.RT.APPMGTapp运行态管理adc-app-mgt-web资产服务组 app管理运行态前端adc-batch资产服务组ADC.RT.BATCHExcel导入导出/文件服务adc-ui用户体验ADC.RT.UI运行态UI(页面、卡片)adc-ui-web用户体验-运行态前台adc-static(微服务名重复)用户体验ADC.RT.STC静态资源adc-intg编排引擎ADC.RT.INTG运行态集成服务adc-mobile终端服务ADC.RT.UI终端SPL引擎运行态微服务adc-mobile-web终端服务-终端SPL引擎运行态静态资源RPAadc-rpaRPAADC_RT_RPARPA运行态管理中心adc-rpa-webRPA-RPA运行态页面日志查看方法下面用查看adc-intg的日志作为例子。1、 找到intg的虚拟机节点1.1、 登录FS管理面管理面信息:访问链接:https://xx.xx.xx.xx:xxxx(如果不知道,要找装环境的人要访问地址)账号:xxxxxx密码:xxxxxx登录页面如下1.2、查看K8S应用部署1.3、搜索找到intg得知adc-intg在这两个节点:(每个环境都不一样,按照实际情况获取)10.151.37.1610.151.37.142.登录虚拟机节点2.1、下载MobaXterm需要下载一个MobaXterm去访问linux虚拟机(也可以去使用其他的工具,方法自定)MobaXterm官网下载地址:https://mobaxterm.mobatek.net/download.html2.2、安装完后,双击点开,新增Session配置完后,双击进入Linux虚拟机,输入密码:xxxxxx。输入密码时,屏幕不会显示密码,继续输入,完成enter即可当显示“Authorized users only, All activities may be monitored and reported”,则说明登录成功2.3、切换root用户控制台输入su root填入密码 xxxxx2.4、 找到intg的PID控制台输入:docker ps | grep intg以上图为例,52396c1bbe02 为pid2.5、进入docker容器控制台输入:docker exec -it 52396c1bbe02 bash2.6、查看日志tailf -n 200 /opt/mateinfo/logs/app/adc-intg.log某些linux镜像没有tailf 可以尝试tailtail -f -n 200 /opt/mateinfo/logs/app/adc-intg.log或者使用less, vi 命令都可以上图为日志,可以拿着这个日志去找华为工程师注意:intg在两个虚拟机节点上,因为系统是负载均衡,所以需要同时登录到两个节点查看。只登录一个节点,如果日志报在另外一个节点,就会miss掉。想要查看其他的微服务也是同样的操作。
  • [技术干货] Hypervisor(VMM)基本概念及分类
    VMM概念虚拟机管理器(Virtual  Machine  Monitor)又称Hypervisor。它的主要任务是调节对底层硬件的访问,以保证各个运行在虚拟机中的客户操作系统能共享同一台真实机器的物理资源。而虚拟机管理器就像一个操作系统管理进程和线程那样,来管理位于其上的虚拟服务器,即虚拟机,以及其上运行的客户操作系统和运行在其中的应用程序进程。VMM的分类根据VMM在整个物理系统中的实现位置及实现方法不同,VMM主要有以下两种形式:Hypervisor VM:直接运行在物理硬件上,聚焦虚拟I/O性能优化,主要用于服务器类的应用。Hosted VM:运行在物理机的操作系统上,上层功能相对更为丰富,比如支持三维加速等特性。其安装和使用也非常方便,常用于桌面应用。  VMware  VMware可以说是虚拟化技术的布道者,这家成立于1998年的公司虽然涉足时间很短,但仅用一年时间就发布了重量级产品workStations1.0,扰动了沉寂多年的虚拟化市场。2001年,又通过发布GSX和ESX一举奠定了行业霸主的地位。如此快速的成长无疑也是站在了巨人【Linux】的肩膀上。而对于VMware在其hypervisor ESXi中非法使用Linux内核源代码的指控一刻也没有停止过。  Xen  VMware的成功引发了业界极大的恐慌。IBM、AMD、HP、Red Hat和Novell等厂商纷纷加大了对虚拟化技术的投资,选择的投资对象是由英国剑桥大学与1990年便发起的一个虚拟化开源项目Xen。相比VMware,Xen选择采用半虚拟化技术提升虚拟化的性能。商业公司的投入很快催熟了Xen。2003年Xen1.0问世。Xen的推出使虚拟化领域终于出现了能与VMware竞争的对手。Linux厂商Red Hat、Novell等公司纷纷在自己的操作系统中包含了各自版本的Xen。Xen的创始人为了基于Xen hypervisor能够提供更完善的虚拟化解决方案,更好地与其它虚拟化产品(如VMware ESX)竞争,也成立了他们自己的公司XenSource。  Citrix  相比VMware,Citrix在虚拟化市场可谓是老大哥级别的玩家,这家公司成立与1989年,致力于掌握桌面/应用虚拟化关键核心技术。眼看着VMware小兄弟在服务器虚拟化市场干得风生水起,一骑绝尘,Citrix也是心急如焚。最终坐不住的老大哥于2007年收购了XenSource,开始发力服务器虚拟化市场。  KVM  Xen的出现顺应了IT大佬们抢占市场的潮流,但由于Xen与Linux采用不改造Linux内核而是采用补丁的松耦合方式,因此需要在Linux的各种版本上打众多补丁。而Linux本身又处于飞速发展事情,版本日新月异。这使得Xen使用起来非常不便。这也为KVM的出现埋下了伏笔。2006年10月,以色列的一家小公司Qumranet开发了一种新的“虚拟化”实现方案——即通过直接修改Linux内核实现虚拟化功能(Kernel-Based Virtual Machine)。这种与Linux融为一体的方式很快进入了Linux厂商的视线。很快于2007年KVM顺利合入了Linux2.6.20主线版本。而作为Linux领域老大的redhat,一方面对在Linux内核中直接发展虚拟化有着浓厚的兴趣,另一方面也不甘于被Citrix所引导的Xen牵着鼻子走,最终于2008年,以一亿七百万的价格收购了Qumranet,并将自己的虚拟化阵营由Xen切换为KVM。  Hyper-V  最后我们再来说说操作系统领域的霸主Microsoft。Linux的崛起已经让这位霸主感受到了前所未有的挑战,而00年后虚拟化技术进入爆发期,诸多厂商如雨后春笋般涌现,更让这位霸主有些应接不暇。凭借庞大的体量,Microsoft也开始频频出招。2003年收购Connectix获得虚拟化技术并很快推出Virtual Server;2007年与Citrix签署合作协议,并在2008年年底推出服务器虚拟化平台Hyper-V。至此我们可以看出由于是与Citrix深度合作,因此Hyper-V的架构与Xen类似,也属于半虚拟化技术。智能云网智能云网社区是华为专为开发者打造的“学习、开发、验证、交流”一站式支持与服务平台,该平台涵盖多领域知识。目前承载了云园区网络,云广域网络,数通网络开放可编程,超融合数据中心网络,数通网络设备开放社区共五个场景。为了响应广大开发者需求,还提供了开发者交流、API 体验中心、多媒体课件、SDK工具包、开发者工具以及远程实验室共六大工具,让开发者轻松开发。欢迎各位前来体验。>>戳我了解更多<<
  • [问题求助] 有没有Kylin Linux Advanced Server for Kunpen V10 操作系统下的完整deb安装包?
    【功能模块】Kylin Linux Advanced Server for Kunpen V10 操作系统【操作步骤&问题现象】有没有支持离线安装的deb安装包,我想测试一下Kylin Linux Advanced Server for Kunpen V10 操作系统开发编译打包的安装包,能不能安装到 Kylin-Desktop V10 (普通版银河麒麟arm64架构)操作系统中。【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] Hyper-tuner_2.5.RC1_linux 任务采集失败
    【功能模块】在鲲鹏openlab , openEuler 20.03 (LTS-SP1)上安装Hyper-tuner_2.5.RC1【操作步骤&问题现象】1、新建任务-进程/线程性能分析, 采样类型:系统性能,进程性能,2、任务状态:任务采集失败,pidstat命令执行失败,请确认pidstat命令能否正常执行。3、后台可执行pidstat【截图信息】【日志信息】(可选,上传日志内容或者附件)2022-08-06 04:17:57 Sat|509023:281460682279808|process_sampling.py:137|sampling_task|CRITICAL|start the collect task2022-08-06 04:18:57 Sat|509023:281460682279808|process_sampling.py:147|sampling_task|WARNING|[ERROR] SysPerf.SysProcess.Collect.SampleStartError
  • [问题求助] Hyper-tuner_2.5.RC1_linux 安装失败
    卸载过旧版本才重新安装,安装报错:Create malluma user useradd: group malluma exists - if you want to add this user to that group, use -g.userdel: user 'malluma' does not exist  create_malluma:add user failed! 请问该如何解决
  • [问题求助] Hyper-tuner_2.5.RC1_linux 安装失败
    卸载过旧版本才重新安装,安装报错:Create malluma user useradd: group malluma exists - if you want to add this user to that group, use -g.userdel: user 'malluma' does not exist  create_malluma:add user failed! 请问该如何解决
  • [行业资讯] 基于Linux沙箱分析物联网(IoT)恶意软件【转载】
    过去几年,物联网设备的弱安全标准利用了Linux恶意软件。使用默认密码、过时的固件或系统漏洞暴露的telnet和ssh服务——所有这些都是让攻击者构建由数千个受感染的嵌入式设备组成的僵尸网络的方法。本文介绍在Linux平台上用于自动化恶意软件分析的多平台沙箱的设计。1、Linux沙箱技术在计算机安全领域,沙箱(Sandbox)是一种程序的隔离运行机制,其目的是限制不可信进程的权限。沙箱技术经常被用于执行未经测试的或不可信的客户程序。为了避免不可信程序可能破坏其它程序的运行,沙箱技术通过为不可信客户程序提供虚拟化的磁盘、内存以及网络资源,而这种虚拟化手段对客户程序来说是透明的。由于沙箱里的资源被虚拟化(或被间接化),所以沙箱里的不可信程序的恶意行为往往会被限制在沙箱中。沙箱技术一直是系统安全领域的挑战,不存在说哪一种方案是足够安全的。沙箱技术方案通常是需要结合多种系统安全技术来实现,采用防御纵深(Defencein Depth)的设计原则,筑建多道防御屏障,尽可能地将安全风险将为最低。下面我们主要讨论如何利用Linux kernel所提供的安全功能来建立有效的沙箱技术。Linux安全模型相关的内容:每个进程都有自己的地址空间;MMU硬件机制来保证地址空间的隔离;Kernel是系统的TCB(Trusted Computing Base),是安全策略的制定者和执行者;进程是最小的权限边界;root具有最高权限,它能控制一切;其它用户受DAC(Discretionary Access Control)限制,如文件系统的UGO权限控制。进程是最小的权限边界,其根本原因是MMU能保证进程地址空间的隔离。Linux Kernel还提供了与进程降权(drop privilege)相关的一些功能:setuidPOSIX.1e capabilityChroot jailQuota control(eg,cgroup,namespace)Linux ContainerLinux Security Module(LSM)2、Linux恶意软件分析的挑战顶级分析创建管道的开始。它充当整体分析的主管。在这部分管道中,二进制文件被预先分析,以便为其他分析模块(例如文件格式细节或CPU架构)提供必要的元数据。静态分析使用许多静态分析工具之一搜索相关的静态模式。考虑的工具主要是readelf、objdump、pyelf、radare2和RetDecfileinfo。动态分析跟踪运行二进制、新创建的进程、文件系统操作和系统调用。管道应该易于扩展,以便用户可以定义自己的分析模块。自定义模块的示例是Virus Total模块,它调用免费的Virus Total API来获取恶意软件扫描结果。各个模块的输出组合成最终的JSON输出。然后可以进一步处理该最终输出。进一步的处理可以在网络图形用户界面中手动进行,也可以通过YARA的自定义模块进行。3、执行分析在目标架构上运行和分析示例的第一步是准备仿真环境。物联网恶意软件正在为广泛传播的架构而构建。这导致选择开源项目QEMU作为模拟准备好的系统的唯一可行选项。QEMU支持多种架构,包括MIPS、ARM、SPARC、AArch64、PowerPC。目标系统由自建Linux内核和准备好的文件系统和分析工具组成。为了交叉编译镜像,使用了buildroot项目。Buildroot是一个通用工具,有助于为嵌入式系统开发Linux。3.1动态分析实现动态分析的关键是省略用户级工具ptrace syscall并准备内核级跟踪。SystemTap被选为最终解决方案,因为它提供了简单的类C语言来定义探测器,并且恶意软件分析师可以更轻松地更改或添加动态分析功能。当前的实现使用探针来创建进程树、跟踪系统调用并标记打开或删除的文件。构建过程如下:将SystemTap(.stp)脚本翻译成C语言。针对已经准备好的内核,将C代码交叉编译为目标架构的内核模块。将构建的内核模块插入目标文件系统。3.2网络分析网络分析模块加载tcpdumppcap文件并提供逐包分析。在最初的原型中,我使用了Python库——Scapy和dpkt。事实证明,这两种方法在分析时都很慢,甚至在加载更大的pcap文件时也遇到了问题。因此,我准备了与Python绑定的C++库来解析pcap数据。网络分析仪中实现的第一个重要功能是端点检查。Analyzer使用免费的Geolite国家、城市和ASN(自治系统编号)数据库。然后在多个黑名单中搜索IP地址。其他通用指标包括端口统计信息、每个端点传输的数据量、TCPSYN、TCPFIN数据包。最后,analyzer提供L7分析。目前输出的L7信息包括解析的DNS查询、HTTP请求、IRC消息和telnet数据。还注意到网络异常。这些异常是例如命中列入黑名单的IP地址、发送格式错误的数据包或明显的IP和端口扫描。4、分析构建及结果基于Docker容器化,各个沙箱元素的连接构建。单个沙箱包括:Flask API-WebAPI具有用于创建新任务(完整文件分析或仅pcap分析)、查看任务状态、结果和下载分析相关文件(例如捕获的pcaps)的端点。RabbitMQ-它用作使用AMQP协议的消息代理。它存储和控制着进入沙箱的任务队列。MariaDB-开源MySQL替代方案。它存储分析任务结果。Nginx-在实施的系统架构中,nginx代理将传入请求传递给uwsgi服务器(运行Web API)。Sandbox workers-运行分析管道的工作者节点。Docker容器使用与主机相同的内核,因此它们的开销最小。配置文件——Dockerfiles——由指令组成。Dockerfile指令描述了构建最终docker镜像的过程。这些docker镜像带有它们的所有依赖项,并且应该在所有安装了docker的系统上正常运行。我准备了最适合运行多容器应用程序的docker-compose文件。可以简单地运行:docker-compose up –scale worker=10启动完整的系统并扩展沙箱工作人员的数量以满足所有请求。在分析的恶意软件中看到的行为包括:IP扫描——我们数据集中最常见的行为。由于当前大多数物联网恶意软件都会创建僵尸网络,因此其目标(机器人)通过在其他设备中发现漏洞来传播。LiSa区分本地网络和Internet扫描,并在发生此类事件时触发异常。通常的目标端口是端口23(SSH)。端口扫描——恶意软件扫描本地网络中的许多端口以查找打开的端口。HTTP请求–检测到多个异常HTTP请求并将其标记为异常。HTTP请求可能包含垃圾或目标端点以获取数据(例如GET/version)。格式错误的DNS数据包——这些数据包在标头值中包含大量数字(问题、答案、权限和其他资源记录的数量)。IRC–恶意软件连接到IRC服务器并等待来自CC服务器的命令。针对特定国家——样本仅与特定国家的数百个主机联系。这些国家是越南、中国、孟加拉国、泰国和印度。更改了进程名称——使用带有请求PRSETNAME的Syscallprctl来隐藏恶意软件进程。列入黑名单的端点——在黑名单中发现了几个端点的IP地址。以指定应用程序为目标——示例以Wordpress应用程序及其端点/wp-login.php为目标。Ptrace–Ptrace系统调用被检测为一种反调试技术。进程创建——检测到的通常用于守护应用程序的分叉进程。5、结论首先,广泛的网络分析、异常检测和使用Python绑定实现C++库,克服了常用的包Scapy和dpkt。其次是SystemTap监控环境及其交叉编译工具链的准备。使用内核级分析可以扩展到完整的系统监控解决方案。转载自http://www.iotworld.com.cn/html/News/202207/96cb1dcd13374560.shtml
  • [技术干货] 【故障注入第二十期】Linux OS相关故障-文件系统(下期)
    大家好,我突然发现有段时间没有更新帖子了,继续我们DemonCAT工具的使用介绍,这一期是我们关于注入文件系统故障方法的最后一期,一起来学习下吧!文件系统分区满持久化文件系统只读文件/设备丢失文件/设备忙文件系统inode资源耗尽硬链接数满loWait高OK,文件系统的故障注入方法,我们分三期为大家介绍到这,通过以上的学习,希望大家能有所收获,下一期我们向大家介绍系统管理方面的故障注入方法,敬请期待~
  • [技术干货] 第二讲:鲲鹏代码迁移工具基础知识读书笔记
    代码迁移工具逻辑架构鲲鹏代码迁移工具是一款可以简化客户应用迁移到基于鲲鹏916/920的服务器的过程的工具。工具仅支持x86 Linux到Kunpeng Linux的扫描与分析,不支持Windows软件代码的扫描、分析与迁移。当客户有x86平台上源代码的软件要迁移到基于鲲鹏916/920的服务器上时,既可以使用该工具分析可迁移性和迁移投入,也可以使用该工具自动分析出需修改的代码内容,并指导用户如何修改。鲲鹏代码迁移工具既解决了客户软件迁移评估分析过程中人工分析投入大、准确率低、整体效率低下的痛点,通过该工具能够自动分析并输出指导报告;也解决了用户代码兼容性人工排查困难、迁移经验欠缺、反复依赖编译调错定位等痛点。代码迁移工具功能功能描述软件迁移评估检查用户软件包(RPM、DEB、TAR、ZIP、GZIP等文件)中包含的SO(Shared Object)依赖库和可执行文件,并评估SO依赖库和可执行文件的可迁移性。检查用户Java类软件包(JAR、WAR)中包含的SO依赖库和二进制文件,并评估SO依赖库和二进制文件的可迁移性。检查指定的用户软件安装路径下的SO依赖库和可执行文件,并评估SO依赖库和可执行文件的可迁移性。源码迁移检查用户C/C++/ASM/Fortran/Go软件构建工程文件,并指导用户如何迁移该文件。检查用户C/C++/Fortran/Go/Python解释型语言软件构建工程文件使用的链接库,并提供可迁移性信息。检查用户C/C++/ASM/Fortran/Go/Python解释型语言软件源码,并指导用户如何迁移源文件。其中,Fortran源码支持从Intel Fortran编译器迁移到GCC Fortran编译器,并进行编译器支持特性、语法扩展的检查。检查用户Python程序通过ctypes模块加载的SO文件的兼容性。x86汇编指令转换,分析部分x86汇编指令,并转换成功能对等的鲲鹏汇编指令。软件包重构在鲲鹏平台上,分析待迁移软件包构成,重构并生成鲲鹏平台兼容的软件包,或直接提供已迁移了的软件包。专项软件迁移在鲲鹏平台上,对部分常用的解决方案专项软件源码,进行自动化迁移修改、编译并构建生成鲲鹏平台兼容的软件包。增强功能64位运行模式检查是将原32位平台上的软件迁移到64位平台上,进行迁移检查并给出修改建议。结构体字节对齐检查是在需要考虑字节对齐时,检查源码中结构体类型变量的字节对齐情况。内存一致性检查是分析、修复用户软件中的内存一致性问题。工具提供工作空间容量检查,当工作空间容量过低时,向用户提供告警信息。工具向用户提供软件迁移报告,提供迁移工作量评估,支持用户自定义工作量评估标准。用户通过安全传输协议上传软件源码、软件包、二进制文件等资源到工作空间,也可以下载软件迁移报告到本地。工具的安装方式有Web和CLI两种,Web方式下支持Web浏览器访问和CLI命令行方式访问,CLI方式下只支持CLI命令行访问。其中Web浏览器访问支持所有的功能,CLI命令行访问只支持软件迁移评估和源码迁移功能。Web方式下支持多用户并发扫描。软件迁移评估:·非源码软件包(RPM/DEB/JAR/ZIP/TAR等) ·检查需迁移的依赖文件·评估报告源码迁移:·软件源码:C/C++/汇编/Fortran等 ·迁移报告  ·修改建议一键替换软件包重构:·将待迁移的RPM/DEB包自动重构为鲲鹏版本  ·提供已有鲲鹏软件或直接获取鲲鹏依赖文件重构  ·获取重构后的鲲鹏软件专项软件迁移:·对部分专项开源软件提供一键快速迁移(CentOS 7.6)及迁移参考 ·大数据、数据库、Web、HPC增强功能:·64位运行模式检查  ·结构体字节对齐检查  ·内存一致性检查(静态检查&编译器自动修复)
  • [交流吐槽] 第二章小技巧总结
    代码错误导致编译错误如何寻找错误点:在编译错误的代码库里,打开out文件夹,再打开build.log文件,里面显示错误点及提示。如何在Visual Studio Code里连接Linux终端:第一步:点击菜单栏里的终端——>新建终端;第二步:在下方的窗口输入:ssh bearpi@Linux_ip,然后按“Enter”键后按照提示输入“yes”,最后输入Linux密码。
  • [交流吐槽] 第一章-环境配置
    # OpenHarmony 开发环境搭建 ## WSL + VSCode + DevEco 我并没有使用华为官方推荐的 Windows + Ubuntu 虚拟机开发的方式,因为我觉得过于繁琐,索性我就直接用微软的 WSL2 直接安装了 DevEco Device Tool,配合 Windows Terminal 使用,还是很舒服的,但是我不知道为什么华为默认只支持了 Bash,还不能修改默认安装位置?作为有文件洁癖的我的解压了官方安装包,修改了里面的安装脚本,还把默认支持的 Shell 从 `/bin/sh` 改为了 `/usr/bin/zsh`,这样就很舒服了。 然后就是初始化、编译一把梭了,结果出现了以下问题。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658035367799215219.png) Google 之后发现,原来是缺少了 [gn](https://github.com/timniederhausen/gn)(GN 是一个用来生成 Ninja 构建文件的工具),没啥好说的,再下载编译一下 gn 就行了。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658035387591629965.png) 结果还是报错: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658035413732213275.png) 这个问题我就没那么多时间陪你慢慢解决了,索性我直接换用了 Docker。希望华为自己也能优化一下这些工具的配置,简化繁琐的流程,同时也要给予开发者足够的个性化(只支持 Bash 这合适吗?)。 ## Docker 先搜索一下有没有官方镜像,看来是有的,就是可能有点老了。另外需要注意的是它的 tag 不是 `latest`,而是 `0.0.3`。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658035428419253135.png) 那就直接 pull 下来就好了,然后直接 run 一下容器就行了,另外还在里面配置了 ssh。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658035445682324873.png) 初始化、编译一个项目试试。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658035457066710484.png) OK,看来是没问题了,算是搭建好了吧。
  • [技术干货] 麒麟v10安装图形化界面操作指导
    **1.确认是否有安装图形化界面相关依赖软件** yum grouplist查看软件组列表,看到没有图形界面相关的组件![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/7/1657186771679254763.png) **2.挂载本地yum源** 步骤1 将操作系统镜像文件Kylin-Server-10-SP1-Release-Build19-20210319-aarch64.iso(看具体镜像文件)文件拷贝到服务器的“/home”目录下(可以自定义) 步骤2 镜像文件挂载。 1. 将“/home”目录下的麒麟操作系统对应iso文件挂载到“/mnt”目录下。 mount /home/Kylin-Server-10-SP1-Release-Build19-20210319-aarch64.iso /mnt 说明:该操作单次生效,重启后失效。 2. (可选)配置开机启动自动挂载镜像。 a. 打开fstab文件。 vi /etc/fstab b. 编辑fstab文件,在文件末尾添加如下信息: /home/Kylin-Server-10-SP1-Release-Build19-20210319-aarch64.iso /mnt iso9660 loop 0 0 c. 保存并退出fstab文件。 步骤3 添加本地源文件。 1. 进入“/etc/yum.repos.d”目录。 cd /etc/yum.repos.d mkdir bak mv *.repo bak/ 说明:此时,建议将此目录下的*.repo文件移到任意其他备份目录下。 2. 创建local.repo文件。 a. 打开local.repo文件。 vi local.repo b. 编辑local.repo文件 vi local.repo 在local.repo文件中添加如下内容: [local] name=local.repo baseurl=file:///mnt enabled=1 gpgcheck=0 c. 保存并退出local.repo文件。 步骤4 生效本地源。 yum clean all yum makecache yum list **3查看挂载的本地源相关的软件组列表** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/7/1657187033740293435.png) **4.安装图形化界面相关的软件组依赖** yum groupinstall "带 UKUI GUI 的服务器" –y 安装完再次执行yum grouplist查看如下图表示安装成功 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/7/1657187326592405808.png) **5.在服务端安装VNC** 5.1安装VNC服务 yum install -y tigervnc-server 5.2复制一个配置文件到系统服务目录下 cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service 注意:因为VNC服务默认端口为5900,@:1中的数字1表示5901端口,即实际开放端口为5900+服务配置文件名中的数字 5.3创建vnc连接用户 greatwall useradd greatwall 5.4编辑sudo vim /etc/systemd/system/vncserver@:1.service,主要是修改里面的用户,以及启动命令,完整示例如下: [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking WorkingDirectory=/home/greatwall User=greatwall Group=greatwall PIDFile=/home/greatwall/.vnc/%H%i.pid ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/bin/vncserver -autokill %i ExecStop=/usr/bin/vncserver -kill %i Restart=on-success RestartSec=15 [Install] WantedBy=multi-user.target 5.5设置VNC连接密码(注意,要在上面服务中指定的账户环境下设置密码,上文是greatwall) su – greatwall vncpasswd huaw(可以自定义) huaw(可以自定义) n(设置完后会提示是不是需要创建一个只读密码,可以选否) 5.6 启动VNC服务 systemctl daemon-reload systemctl enable vncserver@\:1.service systemctl start vncserver@\:1.service 5.7 在防火墙上添加VNC端口允许通行,或关闭防火墙 开放端口: firewall-cmd --zone=public --add-port=5901/tcp --permanent 或 关闭防火墙: systemctl stop firewalld systemctl disable firewalld setenforce 0 **6.本地下载VNC Viewer客户端测试连接** 下载地址:https://www.realvnc.com/en/connect/download/viewer/ VNC Server写实际ip:port 输入之前设置的密码 连接成功 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/7/1657187935167697507.png)
总条数:733 到第
上滑加载中