반응형

ReDos Attack

  • Regular expression Denial of Service (ReDoS)
  • 자바를 포함한 대부분의 정규식 구현 모듈이 특정 조건에서 컴퓨터의 자원을 독점할 수 있다는 약점을 이용한 공격법.

ReDos Attack 예시

var r = /([a-z]+)+$/
var s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa!'

console.log('Running regular expression... please wait')
console.time('benchmark')

r.test(s)

console.timeEnd('benchmark')

해결법

  • safe-regex 모듈로 안전한 regex인지 판단 후 사용하도록 변경
yarn add safe-regex
import safe from 'safe-regex';

var r = /([a-z]+)+$/;
var s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa!';

if (!safe(r)) {
    throw new Error(`unsafe regex - ${r}`);
}

console.log('Running regular expression... please wait');
console.time('benchmark');

r.test(s);

console.timeEnd('benchmark');
반응형

'Development > Security' 카테고리의 다른 글

[Security] XSS, CSRF  (0) 2021.05.30
[Security] Reflected XSS  (0) 2020.12.30

+ Recent posts