Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
npm install -g openraspconst plugin_version = '2018-1000-1000'
const plugin_name = 'test-plugin'
'use strict'
var plugin = new RASP(plugin_name)
const clean = {
action: 'ignore',
message: 'Looks fine to me',
confidence: 0
}
// BEGIN ALGORITHM CONFIG //
var algorithmConfig = {}
// END ALGORITHM CONFIG //
plugin.register('sql', function (params, context) {
plugin.log('SQL query: ' + params.query)
return clean
})
plugin.log('plugin-demo: plugin loaded')plugin.register('sql', function (params, context) {
plugin.log('SQL tokens ', RASP.sql_tokenize(params.query, params.server))
return clean
})plugin.register('sql', function (params, context) {
plugin.log('SQL tokens ', RASP.sql_tokenize(params.query, params.server))
if (/union.*select.*from.*information_schema/.test(params.query)) {
return {
action: 'block',
message: '拦截SQL查询,因为XXX',
confidence: 90
}
}
return clean
})var plugin = new RASP('demo')var name = plugin.get_version()
// 返回 1.2.0var name = plugin.get_jsengine()
// 返回 rhino / v8var body = {
"name": "openrasp"
}
var req = {
"method": "post",
"url": "http://127.0.0.1/test",
"data": data,
"maxRedirects": 0,
"timeout": 30,
"headers": {
"content-type": "application/json"
},
}
RASP.request(req)plugin.register('sql', function(params, context) {
// 在这里实现检测逻辑
// 并返回结果
return {
action: 'ignore',
message: '无风险'
}
})RASP.sql_tokenize('SELECT * FROM users WHERE id = -1 union/*!50000select*/1,2,3', 'mysql')
// [
// { text: 'SELECT', start: 0, stop: 5 },
// { text: '*', start: 7, stop: 7 },
// ...
// ]RASP.cmd_tokenize('/bin/bash -c ls')
// [
// { text: '/bin/bash', stop: 8, start: 0 },
// { text: '-c', stop: 11, start: 10 },
// { text: 'ls', stop: 14, start: 13 }
// ]plugin.log('hello', 'openrasp')
// 将会在日志里输出 [demo] hellp openraspvar name = plugin.name
// => 'demo'var params = {
'query': 'select * from users',
'server': 'mysql'
}
var checkContext = new Context()
RASP.check('sql', params, context)
// => [{
// 'action': 'block',
// 'message': 'attack',
// 'name': 'demo'
// }]


context.path
// => '/my/article.jsp'plugin.register('sql', function(params, context) {
// 实现你的检测逻辑
})type = sql
params = {
"server": "mysql / oracle / pgsql / mssql / sqlite",
"query": "select * from users",
}
context.querystring
// => 'offset=10&size=10'context.method
// => 'get'context.protocol
// => 'https'context.header
// => {
// 'user-agent': 'Chrome',
// 'content-type': 'application/json'
// ...
// }context.body
// => ArrayBuffercontext.json
// => {
// 'field': 'Value',
// ...
// }// context.querystring = 'offset=10&size=10'
// context.body = 'filter=odd'
context.parameter
// => {
// 'offset': ['10'],
// 'size': ['10'],
// 'filter': ['odd']
// }context.remoteAddr
// => '2.3.3.3'context.server
// {
// 'name': 'Tomcat / JBoss / Jetty',
// 'version': '8',
// 'os': 'Linux',
// 'language': 'java / php'
// }context.appBasePath
// => '/home/tomcat/webapps'var context = new Context()
// 自定义 method 参数信息
var context = new Context({
getMethod: function() {
return 'get'
}
})var context = new Context({
getPath: function(){},
getQuerystring: function(){},
getMethod: function(){},
getProtocol: function(){},
getHeader: function(){},
getParameter: function(){},
getBody: function(){},
getRemoteAddr: function(){},
getServer: function(){}
})type = directory
params = {
"path": "/home/servers/tomcat/webapps/mywar/../../../../../../../../../etc/",
"realpath": "/etc/",
"stack": [
"java.lang.ProcessBuilder.start",
"sun.reflect.NativeMethodAccessorImpl.invoke0",
"sun.reflect.NativeMethodAccessorImpl.invoke",
"sun.reflect.DelegatingMethodAccessorImpl.invoke",
...
]
}type = request
params = {}type = readFile
params = {
"path": "/home/servers/tomcat/webapps/mywar/../../../../../../../../../etc/hosts",
"realpath": "/etc/hosts"
}type = writeFile
params = {
"path": "abc.jsp",
"realpath": "/home/tomcat/webapps/ROOT/abc.jsp",
"stack": [
...
]
}type = deleteFile
params = {
"path": "/home/servers/tomcat/webapps/mywar/../../../../../../../../../tmp/testfile",
"realpath": "/tmp/testfile"
}# Java 示例
type = include,
params = {
url: "file:///etc/passwd",
function: "jstl_import",
realpath: "/etc/passwd"
}
# PHP 示例
type = include,
params = {
url: "/home/webroot/footer/../../../../../../../../../etc/passwd",
function: "require_once",
realpath: "/etc/passwd"
}type = webdav,
params = {
"source": "/home/rsync/apache-tomcat-7.0.78/webapps/webdav/1.txt",
"dest": "/home/rsync/apache-tomcat-7.0.78/webapps/webdav/1.jsp"
}type = fileUpload
params = {
"name": "file",
"filename": "a.jsp",
"content": "<% ... %>",
"dest_path": "upload/a.jpg", # v1.2 加入
"dest_realpath": "/home/www/upload/a.jpg" # v1.2 加入
}type = rename,
params = {
"source": "/var/www/html/uploads/hello.txt",
"dest": "/var/www/html/uploads/hello.php"
}type = command,
params = {
"stack": [
"java.lang.ProcessBuilder.start",
"sun.reflect.NativeMethodAccessorImpl.invoke0",
"sun.reflect.NativeMethodAccessorImpl.invoke",
"sun.reflect.DelegatingMethodAccessorImpl.invoke",
...
]
"command": "/bin/sh -c 'whoami; ls; '"
}type = xxe
params = {
"entity": "file:///etc/passwd"
}type = ognl
params = {
"expression": "_memberAccess" //ognl表达式
}type = deserialization
params = {
"clazz": "InvokerTransformer" //被反序列化对象的类型
}type = ssrf
params = {
"url": "http://0x7f.0x0.0x0.0x1:8080/v1/api/get", // http 请求的 url
"hostname": "0x7f.0x0.0x0.0x1" // http 请求的 hostname
"ip": ["1.1.1.1", "2.2.2.2"] // 无法解析则为空;目前只解析 IPv4 地址
"port": "8080", // 未提供端口为空。对于http模式是80,https默认是443的情况,如果没指定也是空
"function": "commons_http_client"
}type = ssrfRedirect
params = {
"url": "http://0x7f.0x0.0x0.0x1:8080/v1/api/get", // 原始请求的 URL
"hostname": "0x7f.0x0.0x0.0x1" // 原始请求的域名
"ip": ["1.1.1.1", "2.2.2.2"] // 原始请求目标 IP
"port": "8080", // 原始请求的端口,未提供端口为空。对于http模式是80,https默认是443的情况,如果没指定也是空
"url2": "http://127.0.0.1:8080/v1/api/get", // 重定向后的 URL
"hostname2": "0x7f.0x0.0x0.0x1" // 重定向后的域名
"ip2": ["1.1.1.1", "2.2.2.2"] // 重定向后目标 IP
"port2": "8080", // 重定向后的端口,说明同上
"function": "commons_http_client"
}type = eval
params = {
"function": "eval",
"code": "gzuncompress(base64_decode(...));"
"stack": [
...
]
}type = loadlibrary
params = {
"function": "System.load",
"path": "\\8.8.8.8\test.dll",
"realpath": "xxxx"
}type = response
params = {
"content_type": "text/html",
"content": "<h1>xxxx</h1>"
}git clone https://github.com/baidu/openrasp.git
yum install -y centos-release-scl
yum install -y devtoolset-4-gcc-c++scl enable devtoolset-4 bash# 下载并解压到 /tmp,避免与已有 cmake 冲突
curl -L https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Linux-x86_64.tar.gz | tar zx -C /tmp
# 增加临时 PATH
export PATH=/tmp/cmake-3.15.3-Linux-x86_64/bin:$PATH# 更新 git submodule
git submodule update --init
# 编译 openrasp-v8
mkdir -p openrasp-v8/build64 && cd openrasp-v8/build64
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LANGUAGES=java ..
make
# 复制动态链接库到 resources 目录
mkdir -p ../java/src/main/resources/natives/linux_64 && cp java/libopenrasp_v8_java.so $_
# 编译 v8-1.0-SNAPSHOT.jar,安装 v8-1.0-SNAPSHOT.jar 到 maven 本地仓库
cd ../java
mvn install<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>central repo</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>apache snapshots</mirrorOf>
<name>阿里云阿帕奇仓库</name>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
</mirror>
</mirrors>
<proxies/>
<activeProfiles/>
<profiles>
<profile>
<repositories>
<repository>
<id>aliyunmaven</id>
<name>aliyunmaven</name>
<url>https://maven.aliyun.com/repository/public</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>MavenCentral</id>
<url>http://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>aliyunmavenApache</id>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
</repository>
</repositories>
</profile>
</profiles>
</settings><?xml version="1.0"?>
<settings>
<mirrors>
<mirror>
<id>central-no-ssl</id>
<name>Central without ssl</name>
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>cd <openrasp_path>/agent/java
mvn versions:use-latest-releases -Dincludes=com.baidu.openrasp:sqlparser
mvn clean package[prod]
EsAddr = http://127.0.0.1:9200
EsUser =
EsPwd =
MongoDBAddr = 127.0.0.1:27017
MongoDBUser =
MongoDBPwd =./rasp-cloud -d./rasp-cloud -type=panel -d./rasp-cloud -type=agent -dEnableHTTPS = true
EnableHttpTLS = true
HttpsPort = 443
HTTPSCertFile = "cert.pem"
HTTPSKeyFile = "cert.key"./rasp-cloud -type=reset%> ./rasp-cloud -s status
/rasp-cloud/
2020/02/11 18:13:39 The rasp-cloud is running!%> ./rasp-cloud -version
/rasp-cloud/
Version: 1.3
Build Time: 2020-02-11 17:56:52
Git Commit ID: d6902d60f8874e7255562544041edbd340e6b676real-openrasp-report-data-{appid}
real-openrasp-attack-alarm-{appid}
real-openrasp-policy-alarm-{appid}
real-openrasp-error-alarm-{appid}
real-openrasp-dependency-data-{appid}input{
file{
path=>[
## 1. 修改该处,将 $cloud-agent-home 替换为部署的 agent 模式后台的根目录
"$cloud-agent-home/openrasp-logs/attack-alarm/attack.log"
]
start_position => "beginning"
type => "attack-alarm"
codec => "json"
}
file{
path=>[
## 2. 修改该处,将 $cloud-agent-home 替换为部署的 agent 模式后台的根目录
"$cloud-agent-home/openrasp-logs/policy-alarm/policy.log"
]
start_position => "beginning"
type => "policy-alarm"
codec => "json"
}
}
output {
if [type] == "attack-alarm" {
elasticsearch {
## 3. 修改 ES 地址
hosts => "0.0.0.0:9200"
index => 'real-openrasp-%{type}-%{[app_id]}'
timeout => 30
document_type => '%{type}'
}
}
if [type] == "policy-alarm"{
elasticsearch {
## 4. 修改 ES 地址
hosts => "0.0.0.0:8200"
index => 'real-openrasp-%{type}-%{[app_id]}'
timeout => 30
document_type => '%{type}'
action => 'update'
document_id => '%{[upsert_id]}'
doc_as_upsert => true
}
}
}2018/12/14 09:55:11.393 [I] [environment.go:62] ===== start type: default =====
2018/12/14 09:55:11.408 [E] [mongo.go:54] [30002] init mongodb failed: no reachable servers127.0.0.1 myhostnameiptables -I INPUT -p tcp --dport 8086 -j ACCEPThttp://elasticsearch_hostname:port/_cat/indices?v
http://elasticsearch_hostname:port/_cat/alias?vblocked by: [FORBIDDEN/12/index read-only / allow delete (api)]server {
listen 84;
location / {
proxy_set_header Host $http_host;
proxy_pass http://172.17.0.4;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}2020/02/07 11:37:47.784 [E] [iast.go:147] upgrade err: websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header
java -jar RaspInstall.jar -install <tomcat_root> -backendurl http://XXX -appsecret XXX -appid XXXjava -jar RaspInstall.jar -install <tomcat_root># <server_pid> 为 tomcat 进程 id
# $JAVA_HOME 为 jdk 根目录环境变量,如果未指定该环境变量,替换为 jdk 的完整根目录
java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar RaspInstall.jar -install <tomcat_root> -pid <server_pid>Jan 12, 2018 6:11:55 PM org.apache.catalina.core.StandardWrapper unload
INFO: Waiting for 1 instance(s) to be deallocated for Servlet [jsp]
Jan 12, 2018 6:11:56 PM org.apache.catalina.core.StandardWrapper unload
INFO: Waiting for 1 instance(s) to be deallocated for Servlet [jsp]
Jan 12, 2018 6:11:57 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreadscp -R ~/Downloads/rasp-20170721/rasp .chmod 777 -R raspcom.baidu.openrasp.exception.ConfigLoadException: Fail to extract rasp-log4j.xml, because of: /usr/share/tomcat8/rasp/conf/rasp-log4j.xml (Permission denied)
at com.baidu.openrasp.messaging.LogConfig.extractLogConfigFile(LogConfig.java:153)
at com.baidu.openrasp.messaging.LogConfig.completeLogConfig(LogConfig.java:72)
at com.baidu.openrasp.Agent.loadConfig(Agent.java:91)
at com.baidu.openrasp.Agent.premain(Agent.java:66)elif [ "$1" = "start" ] ; then
if [ ! -z "$CATALINA_PID" ]; thenelif [ "$1" = "start" ]; then
JAVA_OPTS="-javaagent:${CATALINA_HOME}/rasp/rasp.jar ${JAVA_OPTS}"
if [ ! -z "$CATALINA_PID" ]; thenJAVA_OPTS="-javaagent:${CATALINA_HOME}/rasp/rasp.jar ${JAVA_OPTS}"JAVA_OPTS="--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED ${JAVA_OPTS}"
JAVA_OPTS="--add-opens=java.base/java.net=ALL-UNNAMED ${JAVA_OPTS}"
JAVA_OPTS="-javaagent:${CATALINA_HOME}/rasp/rasp.jar ${JAVA_OPTS}"# 云控配置
cloud.enable: true
cloud.backend_url: xxx
cloud.app_id: xxx
cloud.app_secret: xxx
cloud.heartbeat_interval: 180%> curl -v 127.0.0.1:8080
...
X-Protected-By: OpenRASP
X-Request-ID: eb3b8e287de8406bb4bdb9d86bd31f99
...%> grep OpenRASP -ir rasp/logs/
rasp/logs/rasp/rasp.log:2018-05-22 16:13:25,842 INFO [main][com.baidu.openrasp.Agent] OpenRASP Engine Initialized [1.0-SNAPSHOT (build: GitCommit=3da661734e3ad7641cd98e83f32950deaefcacac date=2017-08-14T03:34:41Z)]-javaagent:C:\Program Files\Apache Software Foundation\Tomcat 7.0\rasp\rasp.jar--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1:setArgs
if "%ACTION%" == "start" set JAVA_OPTS=-javaagent:%CATALINA_HOME%\rasp\rasp.jar %JAVA_OPTS%
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1:setArgs
if "%ACTION%" == "start" set JAVA_OPTS=-javaagent:%CATALINA_HOME%\rasp\rasp.jar --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED %JAVA_OPTS%
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
Unable to extract jnotify library (rasp/libjnotify_64bit.so):
java.io.FileNotFoundException: /data/w/tomcat/rasp/libjnotify_64bit.so (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:101)$ java -jar RaspInstall.jar -install /usr/local/tomcat/
Error: Could not find or load main class com.baidu.rasp.App--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMEDjava.lang.ExceptionInInitializerError
at org.scijava.nativelib.NativeLoader.<clinit>(NativeLoader.java:107)
at com.baidu.openrasp.v8.V8.Load(V8.java:25)
at com.baidu.openrasp.plugin.js.JS.Initialize(JS.java:44)
at com.baidu.openrasp.EngineBoot.start(EngineBoot.java:56)
at com.baidu.openrasp.ModuleContainer.start(ModuleContainer.java:78)
at com.baidu.openrasp.ModuleLoader.<init>(ModuleLoader.java:74)
at com.baidu.openrasp.ModuleLoader.load(ModuleLoader.java:103)
at com.baidu.openrasp.Agent.init(Agent.java:93)
at com.baidu.openrasp.Agent.premain(Agent.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:397)
Caused by: java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:2001)
at java.io.File.createTempFile(File.java:2047)
at org.scijava.nativelib.BaseJniExtractor.getTempDir(BaseJniExtractor.java:123)
at org.scijava.nativelib.WebappJniExtractor.<init>(WebappJniExtractor.java:69)
at org.scijava.nativelib.NativeLoader.<clinit>(NativeLoader.java:103)
... 14 morejava.lang.UnsatisfiedLinkError: /var/cache/tomcat/temp/nativelib-loader_4485267645656510327/Classloader.1658314629304.0/libopenrasp_v8_java.so: /var/cache/tomcat/temp/nativelib-loader_4485267645656510327/Classloader.1658314629304.0/libopenrasp_v8_java.so: failed to map segment from shared object: Permission denied
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817)
at java.lang.Runtime.load0(Runtime.java:810)
at java.lang.System.load(System.java:1088)
at com.baidu.openrasp.nativelib.NativeLibraryUtil.loadNativeLibrary(NativeLibraryUtil.java:340)
at com.baidu.openrasp.nativelib.NativeLoader.loadLibrary(NativeLoader.java:136)
at com.baidu.openrasp.v8.Loader.load(Loader.java:12)
at com.baidu.openrasp.EngineBoot.start(EngineBoot.java:57)
at com.baidu.openrasp.ModuleContainer.start(ModuleContainer.java:78)
at com.baidu.openrasp.ModuleLoader.<init>(ModuleLoader.java:89)
at com.baidu.openrasp.ModuleLoader.load(ModuleLoader.java:117)
at com.baidu.openrasp.Agent.init(Agent.java:94)
at com.baidu.openrasp.Agent.premain(Agent.java:71)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)INFO: Couldn't find resource META-INF/lib/linux_arm64/libopenrasp_v8_java.so
[OpenRASP] Failed to load native library, please refer to https://rasp.baidu.com/doc/install/software.html#faq-v8-load for possible solutions.
java.io.IOException: Couldn't load library openrasp_v8_java
at com.baidu.openrasp.nativelib.NativeLoader.loadLibrary(NativeLoader.java:138)
at com.baidu.openrasp.v8.Loader.load(Loader.java:12)
at com.baidu.openrasp.EngineBoot.start(EngineBoot.java:57)
at com.baidu.openrasp.ModuleContainer.start(ModuleContainer.java:78)
at com.baidu.openrasp.ModuleLoader.<init>(ModuleLoader.java:89)
at com.baidu.openrasp.ModuleLoader.load(ModuleLoader.java:118)ava.io.IOException: Couldn't load library library openrasp_v8_java
at org.scijava.nativelib.NativeLoader.loadLibrary(NativeLoader.java:141)
at com.baidu.openrasp.v8.V8.Load(V8.java:25)
at com.baidu.openrasp.plugin.js.JS.Initialize(JS.java:44)
at com.baidu.openrasp.EngineBoot.start(EngineBoot.java:56)
at com.baidu.openrasp.ModuleContainer.start(ModuleContainer.java:78)
at com.baidu.openrasp.ModuleLoader.<init>(ModuleLoader.java:74)
at com.baidu.openrasp.ModuleLoader.load(ModuleLoader.java:103)
at com.baidu.openrasp.Agent.init(Agent.java:93)
at com.baidu.openrasp.Agent.premain(Agent.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:397)
Caused by: java.lang.UnsatisfiedLinkError: no openrasp_v8_java in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at org.scijava.nativelib.NativeLoader.loadLibrary(NativeLoader.java:136)
... 14 moreStack: [0x00007f3951edb000,0x00007f3951fdc000], sp=0x00007f3951fda2d8, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libc.so.6+0x15a00b] __memmove_ssse3_back+0x6cb
C [libzip.so+0x12b33] ZIP_GetNextEntry+0x53
J 5497 java.util.zip.ZipFile.getNextEntry(JI)J (0 bytes) @ 0x00007f3a15da3c76 [0x00007f3a15da3bc0+0xb6]
J 5495 C1 java.util.zip.ZipFile$ZipEntryIterator.next()Ljava/util/zip/ZipEntry; (212 bytes) @ 0x00007f3a15daebec [0x00007f3a15dae940+0x2ac]-Dsun.zip.disableMemoryMapping=trueyum install -y centos-release-scl vim-common
yum install -y devtoolset-4-gcc-c++yum install -y php-develscl enable devtoolset-4 bash# 下载并解压到 /tmp,避免与已有 cmake 冲突
curl -L https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Linux-x86_64.tar.gz | tar zx -C /tmp
# 增加临时 PATH
export PATH=/tmp/cmake-3.15.3-Linux-x86_64/bin:$PATH# 更新 git submodule
git submodule update --init
# 编译 openrasp-v8
mkdir -p openrasp-v8/build && cd openrasp-v8/build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LANGUAGES=php ..
make# 如果之前编译过,清理下临时文件
phpize --clean
# 生成 configure 文件
phpize
# 生成 makefile
./configure --with-openrasp-v8=../../openrasp-v8/ --with-gettext --enable-openrasp-remote-manager
# 编译
makejava -jar RaspInstall.jar -install <weblogic_domain_home> -backendurl http://XXX -appsecret XXX -appid XXXjava -jar RaspInstall.jar -install <weblogic_domain_home># <server_pid> 为 weblogic 进程 id
# $JAVA_HOME 为 jdk 根目录环境变量,如果未指定该环境变量,替换为 jdk 的完整根目录
java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar RaspInstall.jar -install <weblogic_domain_home> -pid <server_pid>cp -R ~/Downloads/rasp-20170721/rasp .chmod 777 -R raspJAVA_OPTIONS="-javaagent:${DOMAIN_HOME}/rasp/rasp.jar ${JAVA_OPTIONS}"-javaagent:<agent_directory_full_path>/rasp/rasp.jar<server>
<server-start>
<arguments>-javaagent:/PATH/TO/DOMAIN_HOME/rasp/rasp.jar</arguments>
</server-start>
</server>${DOMAIN_HOME}/servers/<安装rasp的server名字>/logsset JAVA_OPTIONS=-javaagent:%DOMAIN_HOME%\rasp\rasp.jar %JAVA_OPTIONS%${DOMAIN_HOME}/servers/<安装rasp的server名字>/logsyum install -y ligbcc.i686Error: Multilib version problems found. This often means that the root
cause is something else and multilib version checking is just
pointing out that there is a problem. Eg.:
Protected multilib versions: libgcc-4.8.2-8.el6.x86_64 != libgcc-4.4.7-11.el6.i686yum install -y libgcc
yum install -y ligbcc.i686java -jar RaspInstall.jar -install <jboss_root> -backendurl http://XXX -appsecret XXX -appid XXXjava -jar RaspInstall.jar -install <jboss_root>java -jar RaspInstall.jar -install <wildfly_root> -backendurl http://XXX -appsecret XXX -appid XXXjava -jar RaspInstall.jar -install <wildfly_root>cp -R ~/Downloads/rasp-20170721/rasp .



# <server_pid> 为 jboss 进程 id
# $JAVA_HOME 为 jdk 根目录环境变量,如果未指定该环境变量,替换为 jdk 的完整根目录
java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar RaspInstall.jar -install <jboss_root> -pid <server_pid>cp -R ~/Downloads/rasp-20170721/rasp .chmod 777 -R rasp# Setup JBoss specific properties
JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"# Setup JBoss specific properties
JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"
JAVA_OPTS="-javaagent:${JBOSS_HOME}/rasp/rasp.jar ${JAVA_OPTS}"JAVA_OPTS="${JAVA_OPTS} -javaagent:${JBOSS_HOME}/rasp/rasp.jar"<jvm-options>
<option value="-javaagent:<jboss_root>/rasp/rasp.jar"/>
</jvm-options><jvm name="default">
<jvm-options>
<option value="-javaagent:<jboss_root>/rasp/rasp.jar"/>
</jvm-options>
</jvm>set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME%set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME%
set JAVA_OPTS=-javaagent:%JBOSS_HOME%\rasp\rasp.jar %JAVA_OPTS%set "JAVA_OPTS=%JAVA_OPTS% -javaagent:%JBOSS_HOME%\rasp\rasp.jar"14:27:19,691 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 11) JBAS014612: Operation ("add") failed - address: ([
("subsystem" => "logging"),
("console-handler" => "CONSOLE")
]): java.lang.ClassCastException: org.jboss.logmanager.PropertyConfigurator cannot be cast to org.jboss.as.logging.logmanager.ConfigurationPersistence
at org.jboss.as.logging.logmanager.ConfigurationPersistence.getOrCreateConfigurationPersistence(ConfigurationPersistence.java:93)
at org.jboss.as.logging.logmanager.ConfigurationPersistence.getOrCreateConfigurationPersistence(ConfigurationPersistence.java:81)
at org.jboss.as.logging.LoggingOperations$LoggingOperationStepHandler.execute(LoggingOperations.java:154)
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:440) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:322) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:229) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:224) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:334) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]cp -R ~/Downloads/rasp-20170721/rasp .chmod 777 -R rasp# Display our environmentJAVA_OPTS="$JAVA_OPTS -javaagent:$JBOSS_HOME/rasp/rasp.jar"<jvm-options>
<option value="-javaagent:<wildfly_root>/rasp/rasp.jar"/>
</jvm-options><jvm name="default">
<jvm-options>
<option value="-javaagent:<wildfly_root>/rasp/rasp.jar"/>
</jvm-options>
</jvm># 云控配置
cloud.enable=true
cloud.backend_url=http://XXXX
cloud.app_id=XXXX
cloud.app_secret=XXXX%> grep OpenRASP -ir rasp/logs/
rasp/logs/rasp/rasp.log:2018-05-22 16:13:25,842 INFO [main][com.baidu.openrasp.Agent] OpenRASP Engine Initialized [1.0-SNAPSHOT (build: GitCommit=3da661734e3ad7641cd98e83f32950deaefcacac date=2017-08-14T03:34:41Z)]%> curl -v 127.0.0.1:8080
...
X-Protected-By: OpenRASP
X-Request-ID: eb3b8e287de8406bb4bdb9d86bd31f99
...set JAVA_OPTS=%JAVA_OPTS% -javaagent:%JBOSS_HOME%/rasp/rasp.jarPHP Warning: scandir(): open_basedir restriction in effect. File(/www/rasp/logs/alarm/alarm.log.2018-07-26) is not within the allowed path(s)php install.php -d /opt/rasp --backend-url http://myserver:port --app-secret XXX --app-id XXXXphp install.php -d /opt/raspmv /usr/lib64/php/modules/openrasp.so /usr/lib64/php/modules/openrasp.so.bakcp openrasp.so /usr/lib64/php/modules/openrasp.soPHP-FPM 服务器
killall -USR2 php-fpm
Apache HTTPD 服务器
apachectl -k reload<?php phpinfo();?> cp php/linux-php5.4-x86_64/openrasp.so /usr/lib/php/20151012
chmod 755 /usr/lib/php/20151012/openrasp.somkdir -p /opt/rasp
chmod 777 -R /opt/rasp; BEGIN OPENRASP
[openrasp]
extension=openrasp.so
openrasp.root_dir=/opt/rasp
; 远程管理配置,不需要不用配置
; openrasp.backend_url=
; openrasp.app_id=
; openrasp.app_secret=
; openrasp.remote_management_enable=1
; END OPENRASPLimitStack=163840PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/openrasp.so' - /usr/lib64/php/modules/openrasp.so: undefined symbol: php_json_encode in Unknown on line 0ln -s /lib64/ld-linux-x64-64.so.2 /lib/php -r "var_dump(ZEND_THREAD_SAFE);"<?php echo var_dump(ZEND_THREAD_SAFE); ?>chmod 777 -R raspjava -javaagent:/opt/jetty/rasp/rasp.jar -jar start.jar-javaagent:D:\jetty\rasp\rasp.jarchmod 777 -R /opt/bes/rasp-javaagent:${BES_HOME}\rasp\rasp.jar-javaagent:${BES_HOME}/rasp/rasp.jar<jvm-options>-javaagent:/opt/bes/rasp/rasp.jar</jvm-options>chmod 777 -R /opt/IBM/WebSphere/AppServer/rasp-javaagent:${WAS_INSTALL_ROOT}\rasp\rasp.jar-javaagent:${WAS_INSTALL_ROOT}/rasp/rasp.jar************ Start Display Current Environment ************
Log file started at: [18-11-13 20:10:08:993 CST]
************* End Display Current Environment *************
Exception in thread "Thread-8" java.security.AccessControlException: Access denied (java.lang.RuntimePermission accessDeclaredMembers)
at java.security.AccessController.checkPermission(AccessController.java:132)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)
at java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1689)
at java.lang.Class.checkMemberAccess(Class.java:117)
at java.lang.Class.getDeclaredConstructor(Class.java:465)
at com.baidu.openrasp.gson.internal.ConstructorConstructor.newDefaultConstructor(ConstructorConstructor.java:82)
at com.baidu.openrasp.gson.internal.ConstructorConstructor.get(ConstructorConstructor.java:66)
at com.baidu.openrasp.gson.internal.bind.MapTypeAdapterFactory.create(MapTypeAdapterFactory.java:128)
at com.baidu.openrasp.gson.Gson.getAdapter(Gson.java:349)
at com.baidu.openrasp.gson.Gson.toJson(Gson.java:574)
at com.baidu.openrasp.gson.Gson.toJson(Gson.java:561)
at com.baidu.openrasp.gson.Gson.toJson(Gson.java:516)
at com.baidu.openrasp.gson.Gson.toJson(Gson.java:496)
at com.baidu.openrasp.cloud.Register$RegisterThread.run(Register.java:50)
at java.lang.Thread.run(Thread.java:773)grant codeBase "file:${was.install.root}/rasp/*" {
permission java.security.AllPermission;
};chmod 777 -R /opt/tongweb安装目录/rasp-javaagent:${TongWeb_Home}/rasp/rasp.jar-javaagent:${TongWeb_Home}/rasp/rasp.jarchmod 777 -R /opt/inforsuiteas/rasp-javaagent:${com.cvicse.loong.las.installRoot}\rasp\rasp.jar-javaagent:${com.cvicse.loong.las.installRoot}/rasp/rasp.jar<jvm-options>-javaagent:${com.cvicse.loong.las.installRoot}/rasp/rasp.jar</jvm-options>java -jar RaspInstall.jar -install <resin_root> -backendurl http://XXX -appsecret XXX -appid XXXjava -jar RaspInstall.jar -install <resin_root>