최근 국내에 말하는 랜섬웨어 ‘Cerber’ 감염자 급증 추세
‘Cerber’ 현재 4.1 버전까지 나온 상태로 계속 업그레이드 중


[보안뉴스 권 준 기자] 지난해부터 올해까지 최대의 보안위협이 되고 있는 랜섬웨어. 언론의 관심은 예년보다 많이 줄어들었지만, 랜섬웨어에 감염돼 고통을 호소하는 이들은 여전히 많은 것으로 드러났다.

▲ 최신 랜섬웨어 감염을 호소하는 글로 가득 찬 네이버 지식인(자료: 하우리 최상명 실장)


지난 10월 29일부터 31일까지 불과 3일 사이에 랜섬웨어에 감염된 국내 네티즌들이 네이버 지식인에 해결방법을 묻는 글이 10여 건을 훌쩍 뛰어넘은 것으로 드러났다. 이러한 사실로 미뤄볼 때 실제 감염자 수는 수백여 명에 이를 것으로 추정된다.

특히, 최근 랜섬웨어에 감염된 네티즌들은 대부분 ‘말하는’ 랜섬웨어로 유명세를 탄 케르베르(Cerber) 랜섬웨어에 당한 것으로 나타났다. Cerber 랜섬웨어에 감염될 경우 여자 목소리가 나오면서 바탕화면이 초록색 글씨로 도배되는 특징을 지닌다.

Cerber 랜섬웨어는 지난 3월 최초 발견되어 전 세계로 동시 유포되기 시작한 이후, 진화를 거듭하면서 다양한 변종이 양산되고 있다. 지난 4월에는 웹상에서 플래시 제로데이 취약점을 통해 유포되기도 했으며, 7월에는 변종이 국내 이메일을 통해 국내에 전파되면서 많은 피해자를 양산했다. 가장 최근인 10월에는 확장명을 랜덤하게 변화시키는 변종이 출현하기도 했다. 이렇듯 최근까지 국내에서 가장 기승을 부린 대표적인 랜섬웨어라고 할 수 있다.

문의 글을 올린 네티즌 가운데는 “컴퓨터로 유튜브 노래듣다가 무슨 여자 목소리로 영어 나와서 신경 안 쓰고 그냥 노래들으면서 게임했는데요 갑자기 초록색으로 배경화면이 바뀌었어요”거나 “동영상 보고 있다가 갑자기 랜섬웨어 걸렸다는데요. 제가 저번주에 노트북 포맷을 해서 중요한 파일이 하나도 없거든요? 그래도 다시 포맷을 해야 하나요? 화면을 캡쳐를 못했는데, 영어로 어떤 여자가 계속 말하는 랜섬웨어입니다”라고 설명하는 것으로 보아 대부분 Cerber 랜섬웨어에 감염된 것으로 보인다.

이와 관련 랜섬웨어 악성코드를 지속적으로 추적·연구하고 있는 하우리 최상명 CERT실장은 “국내에 매그니튜드 익스플로잇 킷을 통해 Cerber 랜섬웨어가 지속적으로 유포되어 피해자가 계속 발생하고 있다”며, “특히, Cerber 랜섬웨어는 랜섬웨어 중에서도 랜섬웨어 개발자가 가장 신경 써서 유지 보수하는 랜섬웨어로 현재 4.1버전까지 나오는 등 지속적으로 업그레이드 되고 있어 향후에는 더욱 위협적으로 변할 것”으로 우려했다.

그럼 Cerber를 비롯한 랜섬웨어에 감염됐다면 가장 먼저 어떤 조치를 취해야 할까? 최근에 랜섬웨어 예방이나 복구를 빌미로 되려 PC에 랜섬웨어 등 악성코드를 심어놓는 수리업체도 드러난 만큼 무턱대고 PC 수리 및 복구를 맡기는 것은 바람직하지 않다. 안랩이나 하우리 등 보안전문업체에서 제공하는 랜섬웨어 예방·복구 툴을 활용하거나 최신 보안 업데이트 또는 백업을 생활화하는 노력이 필요하다는 지적이다.
[권 준 기자(editor@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

 

====================================================================================================

 

Cerber 랜섬웨어는 지난 3월 최초 발견되어 활발한 유지보수와 함께 기승을 부리는 랜섬웨어이다.

지난 7월, 안랩에서는 Cerber 랜섬웨어 v2가 발견되어 더이상 복호화가 안된다는 게시글을 공식 블로그에 올렸었다.

현재 11월, 벌써 v4.1까지 업데이트가 되었다. 다른 어떤 랜섬웨어보다도 활발한 업데이트를 통해 더 견고해지고, 강력해지고 있다.

 

Cerber 랜섬웨어의 특징

1. 배경화면이 위 기사의 사진과 같이 변한다.

2. 여자목소리로 영어를 말하는 목소리가 들린다.

 

이런 활발한 랜섬웨어에 감염이 되었다면 복구하기 쉽지 않기 때문에 사용자들은 항상 인터넷을 이용할 때 조심해야 할 것이 있다.

 

1. 모르는 사람에게서 온 메일은 열지 않기(이전에는 첨부파일을 이용한 공격이 많았는데, 요즘은 메일을 열기만해도 감염이 되는 경우가 있다.)

2. 인터넷 이용중 광고 배너 누르지 않기(정상적인 광고이더라도 해커에 의해 변조될 가능성이 있기때문에 조심하여야 한다.)

3. 사용중인 소프트웨어들의 버전을 최신화 하기(플래시, 윈도우 등의 취약점을 이용하여 공격이 이루어질 수 있다.)

4. 보안전문업체에서 제공하는 백신과 랜섬웨어 예방 툴을 사용하고 최신화하기

5. 항상 백업하기(가장 중요하다. 귀찮지만 가장 중요하다. 응. 가장 중요하다)

 

관리자도 아직 랜섬웨어에 걸려보진 않았지만, 주변 사람들에 의해 감염 사실을 여럿 들어왔었고, 직접 지인의 랜섬웨어 감염 pc를 포맷까지 한 적이 있다.

자신이 아직 걸리지 않았더라도 누구에게나 감염 가능성은 열려 있으니 항상 조심하길 바란다.

 

===================================================================================================

본 카테고리의 게시물은 보안과 관련된 인터넷 뉴스사이트에서 발췌한 글과 함께 저의 의견을 작성한 내용입니다.

무단으로 배포할 경우 저작권 법에 의해 처벌받을 수 있으니 조심하시기 바랍니다.

 

기사 출처 : 보안뉴스(www.baoannews.com)

기사 원본 주소 : http://www.boannews.com/media/view.asp?idx=52229&kind=1

기사 저작권자 : 보안뉴스

SQL ORDER BY Keyword

 

ORDER BY는 결과를 정렬할 때 사용한다.

ORDER BY는 기본적으로 레코드들을 오름차순으로 정렬한다. 내림차순으로 정렬하기 위해서는 DESC 키워드를 사용하며 된다.

 

SQL ORDER BY Syntax

 

ORDER BY의 문법은 다음과 같다.

 

SELECT column_name, column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC;

 

WHERE절이 사라지고 ORDER BY가 나왔는데, WHRER절과 같이 사용해도 된다.

ORDER BY 뒤에 ASC를 쓰면 오름차순, DESC를 쓰면 내림차순으로 정렬이 된다.

 

SQL ORDER BY 예문

 

 

항상 사용하는 데이터베이스이다.

데이터베이스를 보면 기본적으로 CustomerID와 CustomerName을 오름차순으로 정렬이 되어있는 것을 볼 수 있다.

이것을 나라이름순서대로 오름차순으로 정렬해보자.

 

SELECT * FROM Customers ORDER BY Country ASC;

 

라고 입력해주면 나라를 기준으로 오름차순으로 정렬이 된다.

물론 SELECT * FROM Customers ORDER BY Country;

라고 입력해도 ORDER BY는 Default가 ASC이므로 오름차순으로 정렬이 된다.

 

 

반대로

 

SELECT * FROM Customers ORDER BY Country DESC;

 

라고 입력해주면 나라를 기준으로 내림차순으로 정렬이 된다.

 

 

ORDER BY Keyword를 2개 쓰면 어떻게 될까??

 

SELECT * FROM Customers ORDER BY Country ASC, CustomerID ASC;

라고 입력을 하게 되면 Country를 기준으로 오름차순으로 우선 정렬하고,

만약 Country의 값이 같을 경우 CustomerID를 기준으로 오름차순 정렬하게 된다.

 

 

 

 

아까 SELECT * FROM Customers ORDER BY Country ASC; 와 비교해보자

 

위 사진 : SELECT X FROM Customers ORDER BY Country ASC;

아래사진 : SELECT X FROM Customers ORDER BY Country ASC, CustomerID ASC;

 

위의 결과는 Country가 Argentina로 같은 레코드에 대해서 따로 정렬이 안되어있지만

아래 결과는 Country가 Argentina로 같은 레코드에 대해서 CustomerID를 오름차순으로 정렬이 되어있는 것을 알 수 있다.

 

따라서, ORDER BY A, B, C라고 입력하게되면 A로 정렬 후 B로 정렬, 그 다음 C로 정렬하게 된다.

 

데이터베이스를 보고, 무언가를 추출 할 때 정렬을 이용하게 되면 유용할 수 있으니 잘 기억해 놓는게 좋을 듯 하다.

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

본 게시물은 공부한 내용을 바탕으로 작성한 글로써, 점차 수정 및 추가를 통해 내용을 발전시킬 계획입니다.

따라서 오타 및 내용상의 오류, 추가할 내용 등이 있을 경우 주저 없이 알려주시면 감사하겠습니다.

궁금한점을 물어보시면 제가 아는 선에서 최대한으로 알려드리겠습니다.

 

참고한 사이트

- w3schools

 

'Database.' 카테고리의 다른 글

SQL Syntax(SQL 문법) - WHERE, Operator  (0) 2016.09.06
SQL Syntax(SQL 문법) - SELECT(DISTINCT)  (0) 2016.09.06
SQL Syntax(SQL 문법) intro  (4) 2016.09.06
데이터베이스 & SQL이란?  (2) 2016.09.06

 

 

SQL WHERE Clause

 

WHERE Clause(절)은 특정한 기준에 맞는 레코드들만 출력할 때 사용한다.

SELECT 문을 사용해서 출력을하는데, 특정 조건에 맞는 칼럼만 출력하겠다는 의미이다.

 

SQL WHERE Syntax

WHERE 문의 문법은 다음과 같다.

 

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

 

SELECT문을 사용할때와 비슷하지만 끝에 WHERE절이 붙는다.

특정 테이블에서 column_name을 선택할 것인데, operator value에 해당하는 column_name 만을 출력한다는 뜻이다.

 

SQL WHERE 예문

 

이전에 사용한 쇼핑몰 데이터베이스의 Customers 테이블이다.

자, 나는 여기에서 나라가 멕시코인 사람의 이름을 알고싶다. 라고 했을때는 어떻게 해야할까?

SELECT CustomerName FROM Customers WHERE Country = 'Mexico';

라고 하면된다.

결과를 보면

 

 

국적이 Mexico인 사람 5명의 이름이 추출되었다.

국적이 멕시코인 사람이 5명이기 때문에 레코드의 수는 5개이다.

 

이 사람들의 모든정보(칼럼)을 알고싶다면 어떻게 해야할까?

이전 SELECT 포스팅을 잘 본 사람이라면 어렵지않게 알 수 있을것이다.

답은 SELECT * FROM Customers WHERE Country = 'Mexico'; 이다.

 

 

역시 레코드는 5이지만 이번엔 모든 칼럼의 내용들이 출력된 것을 볼 수 있다.

 

그럼 이번에는 Customers 테이블에서 CustomerID가 1인 사람의 CustomerName을 찾아보자.

쉽게 생각해보면

SELECT CustomerName FROM Customers WHERE CustomerID = '1'; 이라고 생각할 것이다.

하지만 위처럼 입력하면 나오지 않는다.

 

 

이렇듯 에러가 난다.

 

정확한 답은

SELECT CustomerName FROM Customers WHERE CustomerID = 1;

이다.

 

 

정확히 CustomerID가 1인 사람의 CustomerName을 출력한 것을 볼 수 있다.

 

SQL은 text로 된 values(값)에는 작은 따옴표(')를 요구한다.(대부분의 DB시스템에서는 큰따옴표도 제공한다.)

하지만 숫자로 되있을 경우에는 따옴표를 쓰면 안된다.

 

Operators in the WHERE Clause

WHERE절에서 사용하는 연산자는

 

Operator

Description 

A=B

A는 B와 같다.

A<>B 

A는 B와 다르다. ( 어떤 버전에서는 !=라고도 쓰인다.)

A>B

A가 B보다 크다.

A<B 

A가 B보다 작다.

A>=B 

A가 B보다 크거나 같다.

A<=B 

A가 B보다 작거나 같다.

BETWEEN A AND B 

A와 B의 사이에 해당하는 값

LIKE A

값의 일부분이 A인 값 (M으로시작하는 2글자 : M%)

IN A,B

 값 중 A와 B인것 (나라가 MEXICO 또는 KOREA : IN (MEXICO,KOREA) 반대는 NOT IN

등등이 있다.

 

AND & OR Operator

AND와 OR 연산자는 하나 이상의 조건으로 레코드를 필터링 하기 위해 사용한다.

위에서 나온 =, ><, LIKE 등등의 연산자는 하나의 조건을 사용하는데 이용하는 것이라면

AND와 OR는 2개 이상의 복합적인 조건을 넣을 때 사용하는 것이다.

 

AND 연산자는 첫번째 조건과 두번째 조건이 모두 참인 값만 출력하는것이고

OR 연산자는 첫번째 조건과 두번째 조건 중 하나만 참이어도 출력하는것이다.

 

AND & OR Operator 예문

Customers 테이블에서, 국가가 Germany이고 도시가 Berlin인 사람의 Record값을 출력하게 하는 방법은

SELECT * FROM Customers WHERE Country = 'Germany' AND City = 'Berlin'; 이라고 하면 된다.

 

 

Germany의 Berlin에 사는 고객 1명이 출력된 것을 볼 수 있다.

 

다음으로, 국가가 Germany이거나, Mexico인 사람의 Record를 검색해보자.

두개의 조건중 하나만 일치하면 되는것이므로 OR 연산자를 사용해야한다.

쿼리문은 SELECT * FROM Customers WHERE Country = 'Germany' OR Country = 'Mexico'; 이다.

 

 

결과를 보면 Country 칼럼에서 값이 Germany이거나 Mexico 인 Record가 출력되는 것을 볼 수 있다.

 

여기서 주의할 점이 있다.

만약

SELECT * FROM Customers WHERE Country = 'Germany' OR 'Mexico';

이렇게 입력한다면 어떻게 될까?

이렇게 해도 Country가 'Germany'이거나 'Mexico'인 Record만 출력이 될까??

공부를 하던 중 궁금해져서 테스트 해본 결과는 다음과 같다.

 

 

모든 레코드가 나온 것을 볼 수 있다.

그 이유는 다음과 같다.

 

WHERE절을 보면 조건이 OR를 기준으로 2개가 있다.

 

WHERE Country = 'Germany' OR 'Mexico';

 

하나는 Country = 'Germany', 또 하나는 'Mexico'

왼쪽의 조건은 Country가 Germany인 것만 참이 되지만

오른쪽의 조건은 Mexico의 비교대상이 없기 때문에 무조건 참이 되버린다.

(SQL 서버는 0 또는 값이 없음을 False(거짓)으로 보고 1이나 값이 조금이라도 있으면 True로 본다.)

따라서 조건문을 해석해보면

나라가 독일 이거나(OR) 참인 Record만 출력을 하게 되는것이다.

뒤의 조건은 모든 레코드를 뜻하게 되고 그래서 모든 레코드가 출력이 되는것이다.

 

AND와 OR 연산자를 괄호를 사용하여 혼합 사용도 가능하다.

예를들어 Customers 테이블에서 Country가 Germany이고, City가 Berlin이거나 Mannheim인 Record 전체를 출력하고싶다면

SELECT * FROM Customers WHERE Country = 'Germany' AND (City = 'Berlin' OR 'Mannheim);이라고 하면된다.

 

결과는 위와 같다.

 

연산자가 여러개 쓰이므로 괄호를 통해서 연산자 우선순위를 잘 지정해야하는 것을 잊으면 안된다.

괄호 하나를 잘못써서 출력 값이 전혀 달라질수도 있기 때문이다.

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

본 게시물은 공부한 내용을 바탕으로 작성한 글로써, 점차 수정 및 추가를 통해 내용을 발전시킬 계획입니다.

따라서 오타 및 내용상의 오류, 추가할 내용 등이 있을 경우 주저 없이 알려주시면 감사하겠습니다.

궁금한점을 물어보시면 제가 아는 선에서 최대한으로 알려드리겠습니다.

 

참고한 사이트

- w3schools

'Database.' 카테고리의 다른 글

SQL Syntax(SQL 문법) - ORDER BY  (0) 2016.09.22
SQL Syntax(SQL 문법) - SELECT(DISTINCT)  (0) 2016.09.06
SQL Syntax(SQL 문법) intro  (4) 2016.09.06
데이터베이스 & SQL이란?  (2) 2016.09.06

+ Recent posts