새로운 브로커

마지막 업데이트: 2022년 2월 28일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
▲ 솔라스 펍섭+ 솔루션은 기업 내 안정적인 데이터 흐름을 보장한다.

우리가 현재 쓰고 있는 말 중에는 새로운 낱말이 하나 둘씩 추가된다. 새로운 조어가 생기는 것이다. 컴퓨터가 기승을 부리기 시작하면서 이 새로운 브로커 새로운 브로커 경향은 훨씬 커졌다. ‘넷티즌’이나 ‘누리꾼’은 이미 자리 잡은지 오래고 그들이 두드려대는 자판 위에는 쉴 새 없이 신조어가 터져 나오고 있다.

잘 빠진 몸매를 가지고 있는 사람을 ‘몸짱’이라고 부르더니 어느덧 얼굴 생김새를 따져 ‘얼짱’이 등장했고 야구 잘하는 이승엽은 ‘승짱’이 되었으며 한류스타 배용준은 일본수상도 ‘용사마’로 높여준다. 새로운 낱말을 지어내는 재주는 천 사람, 만 사람이 다 나름대로 독창적인 생각을 가지고 있음을 뜻한다. 이런 표현을 쓰기도, 저런 창조성을 드러내기도 하는 것이다.

생각이 저마다 다른 사람들을 오직 한 길로만 몰아붙이는 체제를 가리켜 우리는 전체주의라고 부른다. 주체사상만을 강요하며 김일성과 김정일만을 숭배하게 만드는 북한은 틀림없이 전체주의 국가이지만 그들이 만들어 놓은 ‘요덕 정치범 수용소’의 참상은 우리가 말로만 듣던 것 보다 훨씬 더 심한 모양이다.

탈북자를 중심으로 만들어진 뮤지컬 ‘요덕 스토리’가 요즘 시중의 화제가 되고 있다. 전직 대통령을 비롯하여 야당의 대표까지 관람했다고 해서 화제꺼리가 되고 있는데 표를 구할 수 없을 만큼 인산인해라고 하니 인권을 향한 이 외침이 북녘까지 메아리 칠 날도 멀지 않았을 것만 같다.

그런데 요즘 사회를 좀먹는 구더기들이 갑자기 신문지상을 더럽히고 있어 얼굴이 찌푸려진다. 돈을 벌기 위해서는 많은 노력이 필요하다. 치열한 경쟁을 뚫고 직장을 얻어 봉급을 받거나 가지고 있는 자금을 투자하여 이익을 얻는 것이 정상적인 돈벌이다. 하다못해 도박으로 돈을 벌기 위해서도 밑천을 들여야 하며 있는 재주 없는 재주를 총동원하여 머리를 굴려야 한다.

최고의 인기를 누리는 로또복권에 당첨하려면 우선 천원을 투자해야 한다. 이처럼 어려운 돈벌이에 오직 입과 얼굴만 들이밀고 거금을 획득하는 사람이 있다면 그들을 정상적이라고 할 사람이 있겠는가. 더구나 그들의 행태로 인해서 이 사회의 기본질서가 어지럽혀지고 기강이 무너진다고 하면 그들은 이미 ‘공공의 적’이다. 그럼에도 불구하고 의젓하게 ‘회장’ 행세를 하면서 이 나라 정계, 경제계, 법조계, 경찰계 등을 떡 주무르듯 했다고 하면 이 사회는 곪아도 한참 곪았다.

그들의 이름은 브로커다. 미국은 로비스트법으로 아예 등록시켜 일거수일투족이 모두 공개된다. 그들만이 로비를 할 수 있다. 오죽하면 한국정부가 미국정부를 상대할 수 있는 로비스트를 고용했겠는가. 그러나 로비라는 게 어디 공명정대하기만 하겠는가. 합법적인 미국의 로비스트도 불법로비를 하면 징역을 산다. 하물며 한국에는 로비스트법도 없다. 이 일을 잘못하다가 걸리면 브로커로 전락되고 나라를 온통 시끄럽게 만든다.

이번에 붙잡힌 두 사람은 전형적인 브로커다. 윤상림과 김재록이 그들이다. 브로커의 옛 말은 거간(居間)이다. 거간꾼을 중도위라고도 부르고 아쾌(牙儈) 또는 경기(經紀)라고도 하지만 이미 잊혀진 낱말이다. 이 두 사람이 앞서거니 뒤서거니 하면서 교도소에 들어가니 세상이 온통 시끄럽다. 대통령이 외국에 나가면 나라가 조용해진다는데 브로커가 구속되니 참새 방앗간에 온 듯 왜 이렇게 떠들썩할까.

법조브로커는 군 장성이나 판검사, 경찰지도층 등만을 상대하여 죄의 유무를 막론하고 잡아넣기도 하고 빼주기도 했다. 물론 어마어마한 돈이 왕래했다. 그래도 한결같이 윤상림에게 꾼 돈을 갚았다는 변명이다. 금융브로커는 규모가 더 크다. 은행이나 종합금융회사가 재경부 장관을 역임한 사람들을 줄줄이 달고 다니며 부부동반으로 외국을 드나드는 김재록의 솜씨에 절절 맨다.

이들이 김대중정권에서 힘을 얻어 참여정부에서도 장사노릇을 하고 있으니 감춰진 꼬리까지 드러나려면 시간깨나 걸리게 생겼다. 이들의 특색은 세상을 공짜로 본다는 점이다. 이들 말고도 수없이 많은 브로커가 활개 친다. 그들이 단순한 거간의 수준에 머무른다면 활력소도 된다. 정체되고 파묻힌 업무를 해결해주기 때문이다.

그러나 부정과 비리로 가득 찬 범죄적 행각으로는 사회의 암 덩어리에 불과하다. 정직하고 올바른 사람보다 비뚤어진 사람들이 행세하는 기업적 브로커들의 행태에 국민이 납득할 수 있는 응분의 처벌이 가해져야 한다고 생각한다.

[컴퓨터월드] 기업의 IT 시스템은 점점 더 복잡해지고 있다. 업무가 보다 세분화·전문화됨에 따라 이전에는 단일한 애플리케이션에서 제공하던 기능들이 별개의 제품으로 나뉘어 출시되기도 하며, 멀티 클라우드나 하이브리드 클라우드 등에 의해 애플리케이션이 위치할 수 있는 공간이 다양해지면서 이에 대한 고민도 필요하게 됐다. 마이크로서비스아키텍처가 대두되고 각각의 기능들이 모듈화돼 나눠지면서 이러한 고민은 더욱 심화된다.

대표적인 글로벌 메시지 브로커 공급업체인 솔라스의 이만영 한국지사장을 만나 기업 내 데이터 흐름에 대한 국내외 트렌드와 솔라스의 전략에 대해 들어봤다.

IT 시스템간 소통 창구, 메시지 브로커
오늘날 많은 기업들은 다양한 인프라에 흩어져 있는 다양한 애플리케이션과 데이터 저장소들을 점검해야 하며, 이들 사이에 빠르고 원활한 소통이 이뤄질 수 있도록 데이터 및 메시지 흐름에 대한 교통정리가 가능해야 한다.

특히 기업들이 비즈니스 민첩성을 높여 경쟁 우위를 확보하기 위해서는 이전보다 많은 데이터를 빠르게 처리해 실시간으로 비즈니스 인사이트를 얻을 수 있어야 한다. 과거에 하루 동안 적재된 데이터를 배치 시스템으로 밤새 분석해 다음날 아침에 결과를 받아볼 수 있으면 충분했던 것과는 대조적이다.

예를 들어 스마트팩토리 환경에서 제조설비에 대한 진단 및 예측정비, 센서데이터를 활용한 공정제어 및 품질 관리 등은 모두 실시간으로 이뤄져야 한다. 만약 특정 장비에서 장애 발생 징후가 나타나거나 일부 제조 라인에서 상품 가치를 훼손할 정도의 품질 저하가 발생한다면, 이를 관리자가 즉각 인지하고 대응할 수 있어야 하기 때문이다. 이렇게 실시간으로 데이터에 기반한 인사이트를 얻기 위해서는 데이터가 최초로 수집돼 최종적인 분석 결과를 내놓기까지, 이에 사용되는 모든 시스템 간의 유기적인 소통과 협업이 요구된다.

하지만 여러 개의 시스템·애플리케이션 간에 데이터와 메시지를 주고받는 것이 생각만큼 간단한 일은 아니다. 서로 다른 두 개의 애플리케이션이 메시지를 주고받아야 하는데, 각자가 데이터를 교환할 때 사용하는 패턴이나 네트워크 프로토콜이 다르다면 문제가 복잡해진다. 이런 경우를 위해 기업은 메시지 브로커를 사용할 필요가 있다. 가령 기업 내에서 어떤 애플리케이션은 REST API를, 다른 애플리케이션은 MQTT 프로토콜을 사용한다면 이들 사이에서 중재해줄 수 있는 메시지 브로커의 존재가 필요해지는 것이다.

이러한 메시지 브로커 제품들은 기업 내 애플리케이션들이 MQTT, REST, 웹소켓(WebSocket) 등 어떤 네트워크 프로토콜을 사용하든, pub/sub, request/reply, queuing 등 데이터 교환에 어떤 패턴을 사용하든 상호 간에 원활한 통신이 가능하도록 만든다. 이는 해당 애플리케이션이 온프레미스나 클라우드, 심지어 IoT기기에 설치되더라도 마찬가지다. 기업들은 이전보다 다양한 업무용 SW를 사용하고 더 많은 데이터를 더 빠르게 분석하기를 원하므로, 메시지 브로커 제품들 역시 복잡한 IT시스템에 적응하면서도 더 많은 데이터를 정확하게 전달하기를 요구받고 있다.

다음은 이만영 솔라스 한국지사장과의 인터뷰를 질의응답으로 구성한 것이다.

▲ 솔라스 메시지 브로커 솔루션은 다양한 오픈API 및 프로토콜과의 연결을 지원한다.

복잡하게 분산된 IT 환경에서도 민첩성 높여야
Q. 메시지 브로커 제품의 중요성이 높아지는 이유?

빅데이터의 중요성은 수 년 전부터 꾸준히 강조됐으며, 재작년부터 이를 활용할 수 있는 구체적인 방법들이 등장해 실제 사용 사례들이 나오고 있다. 클라우드 역시 나온 지 10년이 넘은 개념이지만 제대로 활용되지 못하다가, 최근에는 IT 개선에 보수적인 금융권에서도 적극적으로 도입하고 새로운 브로커 새로운 브로커 있으며 대형 제조기업들도 자사의 데이터를 퍼블릭 클라우드에 올리는 것에 적극적이다. 이외에도 AI나 머신러닝의 대두에 따라 등장한 새로운 애플리케이션 영역들, 블록체인과 P2P 서비스 증가 등으로 기업이 관리해야 할 데이터 접점은 꾸준히 증가하고 있다.

이에 따라 좀 더 광범위하게 데이터의 흐름을 통제하고자 하는 요구가 등장했다. 이는 서로 다른 애플리케이션·시스템 사이에서 데이터가 필요한 곳에 적절한 형태로 보내줄 수 있는, 일종의 물류센터와 같은 솔루션이다. 메시지 브로커 자체는 오래 전부터 IT 시스템 간의 소통을 위해 흔히 사용되고 있었지만, 최근 새롭게 대두되는 기술과 새로운 애플리케이션 시장에 의해 역할이 확대되고 있다.

Q. 메시지 브로커 시장에서 가장 중요한 키워드는?
솔라스는 기존의 레거시 IT의 구조가 아닌 새로운 IT 기술에 관심을 갖고 있으며, 최근에는 이벤트 드리븐 아키텍처(Event Driven Architecture, EDA)에 주목하고 있다. 가트너에 따르면 오는 2020년까지 전체 기업용 IT 인프라의 70%가 EDA로 전환될 것으로 예상되며, IDC를 비롯한 다른 시장조사기관에서도 이와 비슷한 연구결과를 내놓고 있다.새로운 브로커

기존의 IT 시스템들이 정해져있는 데이터가 들어오면 일정한 프로세스를 거쳐 결과 값을 내주는, 예측 가능한 플로우 기반 아키텍처였다. 하지만 최근 기업들은 예상치 못한 데이터 값이 수집되는 경우에도 이에 대응할 수 있는 실시간 분석을 필요로 한다. 예를 들어 공장의 IoT 센서에서 특이한 값이 측정된다면, 이를 분석 시스템으로 전달해서 즉각 분석 결과를 내놓아야 한다. 반도체와 같이 정밀한 제조공정과 무중단 생산 프로세스가 중요한 경우에는 더욱 그렇다. 그래서 제조분야에서는 상대적으로 EDA의 필요성이 좀 더 일찍 강조됐고, 상용화도 일부 일어나고 있는 추세다.

마이크로서비스 아키텍처(Micro-service Architecture, MSA) 역시 마찬가지다. 모듈화된 각각의 기능들이 제 역할을 수행하기 위해서는 모듈간의 통신이 매우 중요하며, 서로 다른 프로토콜 등을 사용하는 모듈끼리 원활한 통신이 이뤄지기 위해서는 통신이 모듈 외부의 다른 솔루션에서 이뤄져야 한다. 또한 MSA로 분리된 각각의 모듈은 EDA에 기반해 개발함으로서, 비정기적이고 예측 불가능한 이벤트에도 실시간으로 대응할 필요가 있다.

커넥티드카, 고성능 메시지 브로커로 데이터 활용도 높여야
Q. 솔라스 메시지 브로커 제품의 특징은?

‘솔라스 펍섭+(Solace PubSub+)’은 엔터프라이즈 이벤트·메시지 브로커로, 제품 공급 형태에 따라 펍섭+HW, 펍섭+SW, 펍섭+서비스 등으로 공급되고 있다. 데이터를 주고받는 시스템의 위치와 상관없이 데이터 흐름을 원활하게 할 수 있도록 돕는 게 펍섭+ 제품들의 역할이다. WAN 가속기 기능이 탑재돼 있는데, 최근에 한 업체에서 테스트해보니 압축률이 80%에 달해 데이터를 매우 빠르게 전송할 수 있는 것으로 확인됐다.

펍섭+HW는 가장 기본적인 어플라이언스 장비다. 단순히 서버 제품 위에 이벤트·메시지 브로커 애플리케이션을 탑재한 게 아니라, OS 없이 칩 레벨에서 펍섭+를 직접 구동할 수 있도록 제작했다. 따라서 x86 서버 위에 기본적인 것들을 설치하고 애플리케이션을 구축하는 것보다 오버헤드나 데이터의 병목현상을 방지할 수 있으며 확장성도 높다.

설치의 유연성을 위해 펍섭+HW 어플라이언스 제품에서 돌아가는 SW 모듈을 별도로 공급하기도 하는데, 이것이 펍섭+SW다. 어플라이언스 장비를 도입할 경우와 기능 상 차이는 없으며, 마찬가지로 오버헤드와 병목현상을 최소화하기 위해 게스트 OS 업이 탑재될 수 있도록 제공한다.

펍섭+서비스는 하루하루 세력을 확장하고 있는 클라우드 시장에 대응하기 위한 것이다. AWS나 구글 클라우드 플랫폼(GCP) 등에서 즉시 구매해 사용 가능하며, 메시지 처리 용량에 따라 과금된다. AWS나 GCP와 같은 클라우드 플랫폼에서는 메시지 브로커 기능을 위한 별도의 처리 솔루션이 제공되지만, 서로 다른 플랫폼을 연동하기 위해서는 각각 다른 게이트웨이를 연결해줄 필요가 있다. 하지만 펍섭+서비스는 표준 프로토콜을 적용한 시스템끼리라면 개별 플랫폼의 메시지 브로커를 사용하지 않고도 복수의 게이트웨이를 지원할 수 있다.

▲ 솔라스 펍섭+ 솔루션은 기업 내 안정적인 데이터 흐름을 보장한다.

Q. 자사 제품을 활용해 우수한 성과를 거둔 사례는?
전 세계적인 비즈니스 망을 갖추고 있는 기업에서는 우수한 메시지 브로커를 사용하는 게 필수다. 가령 전 세계에 판매량을 갖춘 한 글로벌 자동차 기업 A사는 커넥티드카 프로젝트에 솔라스의 메시지 브로커 제품을 도입했는데, 이는 전 세계에 산재돼있는 자사의 커넥티드카에서 운행 데이터를 수집하기 위함이었다. 각 국가의 3G 망을 통해서 운행 데이터를 퍼블릭 클라우드에 적재하고, 솔라스의 펍섭+ 제품들을 사용해 본사로 모은 뒤 A사가 필요로 하는 곳으로 보내준다.

이는 보통 배치성 작업으로 이뤄지지만, 차량 운행에 문제가 발생했다고 판단될 경우 EDA로 처리될 수도 있다. 물론 A사 측에서도 엣지단의 커넥티드카에 요청을 보낼 수 있도록 양방향으로 구성됐으며 데이터 암호화나 정합성을 확보하기 위한 기능도 탑재됐다. A사는 해당 시스템의 대상이 되는 차량을 점차적으로 늘려나가, 최종적으로 약 2500만 대의 차량에 적용할 계획이다.

커넥티드카는 자동차 회사에서 IT 기술을 배워다가 만들 수 있는 단순한 1:1 결합이 아니라, 모든 IT 기술이 집약돼야하는 복잡한 산업이다. 차량 한 대에만 해도 매우 다양하고 복잡한 IT 기술이 적용되므로 여기서 생산되는 데이터량은 결코 적지 않다. 하물며 전 세계에 걸쳐 자사의 제품을 판매하고 있는 회사라면, 분산돼 있는 차량들의 데이터를 유실 없이 민첩하게 수집해서 원하는 곳에 전달할 수 있는 솔루션을 중요하게 여길 수밖에 없다. 이는 글로벌 시장을 상대로 비즈니스를 펼치고 있는 회사라면 모두가 고민해야 할 부분이다.

▲ “솔라스는 기존의 레거시 IT의 구조가 아닌 새로운 IT 기술에 관심을 갖고 있으며,
최근에는 이벤트 드리븐 아키텍처(Event Driven Architecture, EDA)에 주목하고 있다.”

한편 이만영 한국지사장은 국내에서 대용량 및 다양한 형태의 메시지를 처리할 수 있는 메시지 브로커 새로운 브로커 새로운 브로커 시장이 본격적으로 열리지 않았다고 설명했다. 이는 국내 기업의 대부분이 실시간 및 고속의 대용량 메시지 처리를 위한 전문 솔루션을 사용해야 할 정도로 많은 트래픽을 요구하지 않기 때문이다. 전 세계적인 비즈니스 규모를 자랑하는 일부 대기업과 최신 기술을 도입해 IT 인프라를 현대적으로 개선한 기업들을 제외하면, 아직 대다수의 국내 기업들에게는 이러한 제품이 필요하지 않다. 이에 대해 이 지사장은 “하루에 약 1억 건의 메시지가 오간다고 해도 초당으로 따지면 단지 1,000여 건 정도에 지나지 않는다. 그러다보니 펍섭+와 같이 전문적인 이벤트·메시지 브로커 솔루션보다는 쉽게 접할 수 있는 로컬 솔루션을 사용하는 경우가 대부분”이라고 말했다.

다만 이 지사장은 향후 비즈니스 기회가 열릴 가능성은 충분하다고 분석했다. 국내 IT 기술은 글로벌 트렌드를 빠르게 도입하며 고속 성장하고 있으며, 이에 따라 좀 더 광범위하게 데이터 흐름을 통제하려는 수요가 지속적으로 증가할 것으로 보인다. 국내에서 빅데이터를 제대로 관리하며 효율적으로 활용하고 있다고 자신할 만한 기업은 많지 않지만, 데이터 활용을 강화하려는 시도는 꾸준히 이어지고 있으며 이것이 메시지 브로커 시장의 성장에도 영향을 미칠 것이다. 이 지사장은 “전통적인 시장에서 얘기하기는 어렵지만, 현재의 추세를 고려했을 때 앞으로 우리의 사업 기회가 늘어날 수 있다고 생각한다”며, “솔라스는 다양한 프로토콜·패턴에 대한 지원, 확장성과 처리속도 측면에서 차별화되는 기술력을 보유하고 있으며, EDA와 같이 새로운 트렌드들에 가장 적합한 제품을 공급한다”고 강조했다.

¶ 메세지 브로커 이해하기 (feat. MQTT)

오늘날 메세지 브로커는 굉장히 보편화된 기술입니다.
대부분의 새로운 기술들은 새로운 브로커 기존의 문제점을 보완, 해결, 개선 하기위해 등장하는데 이 Broker도 기존의 메세지 전달 방식의 한계를 해결하기 위해 등장 했습니다.

브로커는 굉장히 효율적인 메세지 중개 시스템인데 이것이 과거 이러한 브로커 구조가 등장하기 전에는 Long-polling이라는 테크닉을 사용 했습니다.

Long-polling은 아래와 같은 흐름을 갖게되는데요 클라이언트가 서버에 리퀘스트를 한 후 서버는 리스폰스를 보내지 않고 리퀘스트를 홀드합니다.
그리고 내려보낼 데이터가 있을때 리스폰스에 데이터를 싣어 보냅니다.
이후 클라이언트는 또다시 폴링용 리퀘스트를 서버로 전달합니다.

자 이걸 현실 세계로 풀어서 설명하겠습니다.
A,B두 사람이 있습니다.
B는 전화번호 누르는법을 모릅니다.
하지만 B는 언제든지 원할때 A와 통화를 하고 싶어합니다.

A는 걱정말라며 B에게 전화를 합니다.
1분정도 지나면 자동으로 끊기거나 음성사서함으로 넘어가겠죠?
(HTTP도 커넥션 타임아웃이 있습니다)

그런데 A는 B에게 다시 전화를 겁니다.
언제까지요? 무한하게 합니다.
그러다가 B가 기분 내킬때 전화를 받은뒤 대답을 하고 끊어버립니다.

이후 A는 B에게 또다시 전화를 겁니다.
왜냐구요? B는 전화번호를 누를줄 모르거든요.

이게 당장 1:1관계인 A:B만 놓고 봐도 참 답답한 프로세스죠?
그런데 우리가 서비스를 만들면 A같은사람이 적게는 수백, 수천, 많게는 수백 수천만이 넘어갑니다.
그런데 이런 커넥션 행(hang)을 하는것은. 결국 서버비용 증가가 됩니다.
이게 바로 Long-polling입니다.

그렇습니다.
Long-polling을 사용하면 돈은 AWS와 GCP, Azure가 벌게됩니다.

위키피디아 Push technology에 보면 아래와 같은 말이 있습니다.

롱폴링은 진짜 푸쉬 기술이 아닙니다.
Long polling is itself not a true push;

[보안뉴스 문가용 기자] 최근 다크웹에는 ‘최초 접근 브로커(initial access broker)’라는 부류들이 나타나기 시작했다. 이들이 판매하는 건 자신들이 침해하는 데 성공했던 기업들의 목록에 간략한 설명을 덧붙인 것이다. 랜섬웨어라는 도구를 손에 들고는 있는데, 그 다음부터 어떻게 해야 하는지 모르는 공격자들이 주요 고객이다.


[이미지 = utoimage]

이 최초 접근 브로커는 일종의 중개인으로, 공격자와 피해자를 이어주는 역할을 담당한다. ‘서비스형 랜섬웨어(RaaS)’가 다크웹에서 늘어나면서 랜섬웨어 공격 도구 자체가 보편화 되었고, 이에 따라 실제 공격의 시작을 하는 데에 어려움을 느끼는 자들이 나타나기 시작했다. 그러면서 이 중개 서비스의 인기가 자연스럽게 올라갔다. 보안 업체 디지털 셰도우즈(Digital Shadows)에 의하면 지난 6개월 동안 이 서비스의 인기가 급증했다고 한다.

이들의 역할은 중요하지만 간단하다. “RaaS를 구독하거나 구매한 고객들이 최초 감염을 성공적으로 할 수 있도록 ‘안내자’ 역할을 하는 것이죠.” 디지털 셰도우즈의 알렉 알바라도(Alec Alvarado)의 설명이다. “RaaS를 구독했다는 건, 랜섬웨어 개발자들과 일종의 계약을 맺었다는 뜻입니다. 즉 어느 정도 공격을 성공시켜서 수수료를 내야 한다는 것이죠. 이게 초보 범죄자들에게 상당한 압박이 됩니다. 그래서 공격 성공으로 안내해 줄 누군가를 찾게 되는 거고, 그 틈새에서 중개인들이 등장하게 된 겁니다.”

중개인들은 간단한 쇼단 및 매스스캔 검색을 통해 취약한 포트들을 찾아내고, 이 포트들과 연결된 조직들을 목록화시킨다. 취약점 스캔을 곁들이는 경우도 있다. “결국 중개인들이 찾아내는 ‘취약한 조직들’ 대부분 원격 데스크톱 프로토콜(RDP)을 공공 인터넷에 노출시킨 곳들이 됩니다. 시트릭스(Citrix) 게이트웨이들에 대한 접근 권한과 도메인 제어기 접근 권한도 인기가 꽤 높습니다.” 알바라도의 설명이다.

중개인들은 이런 식의 무차별적인 접근에 성공하고 나서는 네트워크를 조심스럽게 염탐한다. 그러고는 횡적으로 움직이거나 권한을 상승시키는 시도도 이뤄낸다. 목적은 하나, 데이터에 얼마나 새로운 브로커 접근할 수 있는가,를 판별하기 위함이다. 여기까지 작업이 이뤄지면, 해당 건에 대한 자료를 취합해 목록에 기입한다. 그래서 RaaS 고객들이 알아보기 쉽게 만든다. 그리고 침투 성공한 조직과 데이터의 가치 등을 바탕으로 가격을 정한다.

최근 다크웹에 개설된 포럼들에서 이러한 ‘목록 상품’을 찾는 건 일도 아니라고 한다. “심지어 이런 중개자들만을 위한 전용 항목이 개설된 곳들도 많습니다. 현재 시세가 딱히 정해져 있는 건 아니고, 대략 500~1만 달러 선에서 거래가 이뤄집니다. 침투한 조직이 어떤 곳이며, 얼마나 깊게 침투할 수 있도록 사전 작업이 되어 있느냐 등으로 가격이 결정됩니다. 중요 조직일수록, 깊이 침투할 수 있을수록 가격은 높아지죠.”

또한 접근 방법이 상세하게 안내되어 있고, 요구되는 기술의 수준이 낮을수록 가격이 높아지기도 한다. “결국 공격을 편하게 해주면 해줄수록 이 중개인들의 상품 가치가 높아지는 겁니다. 그만큼 공격자들도 편안한 것에 길들여져 있고, 특별한 IT 기술이 없어도 사이버 범죄에 참여할 수 있다는 뜻이 됩니다.”

더 큰 문제는 이 ‘중개인’들이 랜섬웨어 외에 다른 종류의 사이버 공격에도 활용될 수 있다는 것이다. “누군가는 이들을 통해 경쟁사의 네트워크에 몰래 침투할 수도 있을 것이고, 누군가는 중요 정보를 몰래 빼돌릴 수도 있을 것입니다. 중개인들의 활용 가능성은 무궁무진합니다. 그래서 RaaS로 시작했다고는 하지만 중개인의 존재가 신경 쓰일 수밖에 없는 것입니다.”

중개인으로서 가장 중요한 건 자신들이 작성한 목록의 가치를 확실하게 노출시키는 것이다. 접근할 수 있는 조직의 수를 엄청나게 늘릴 수도 있고, 조직 하나하나의 가치나 접근의 용이성을 새로운 브로커 하나하나 강조할 수도 있다. 이 정도 가격에 아깝지 않은 거래라고 RaaS 이용자들을 설득해야 한다는 것이다. 아직 이 부분에서는 중개인들마다 서로 다른 모습을 보이고 있고, ‘장사의 수준’도 천차만별이다.

알바도르는 “특히 RDP 서버들을 겨냥한 브루트포스 공격, 과도한 로그인 시도, 권한 상승 시도, 횡적 움직임 시도 등이 있다면 중개인을 의심하라”고 권고한다. “아무런 피해가 없을 수 있습니다. 하지만 곧 랜섬웨어가 들이닥칠 수 있다는 뜻이 되므로 반드시 방어책을 수립하고 도입해야 할 것입니다.”

3줄 요약
1. RaaS 시장이 다크웹에서 커지면서 초보 공격자들이 늘어남.
2. 도구를 손에 든 초보자들이지만, 실제 공격을 실시하는 것에 어려움 느낌.
3. 그런 자들을 위해 접근 권한을 판매하는 일종의 중개인들 시장이 커지고 있음.
[국제부 문가용 기자([email protected])]

새로운 브로커

브로커 장애시 해결해야 하는 문제를 정의해보자.

핵심은, leader partiton의 데이터를 follower partiton이 충분히 복제하지 못한 상태에서 장애가 나는 경우, 어떻게 처리할 것인가? 일 것이다.

문제를 정의해보자면, 아래와 같이 두가지로 나눌 수 있다.

1. 어떤 브로커의 파티션을 다시 리더로 선출해야 할까?

2. 메시지 유실 가능성에 대해서, 어떻게 대처해야 할까?

1. 어떤 브로커의 파티션을 다시 리더로 선출해야 할까?

- 브로커는 자신에게 속한 leader partition에 대해서, client의 요청(read/write)를 담당함.

- 브로커는 자신에게 속한 follower partition에 대해서, fether thread를 통해 leader로 부터 데이터를 복제해 옴.

문제 해결 방향 : 잘 복제해 간 파티션 중에서, leader partition이 균형있게 분포되도록 새로운 리더를 정하자.

1-1. 잘 복제해 간 브로커? => In Sync Replicas

카프카 브로커에서 liveness는 아래 두 조건을 만족해야 한다.
1. Zookeeper와 세션을 유지할 수 있어야 한다.(Zookeeper heartbeat메커니즘을 통해서)
2. follower 파티션의 경우, leader 파티션에 수행되는 writes 작업에 대해서 "너무 뒤쳐져" 있으면 안된다.
위 두 조건을 만족하는 브로커에 대해서, "alive" or "failed"라는 모호한 말 대신, "in sync replica"라고 명명한다.

leader파티션이 속한 브로커는 "in sync replicas"의 집합을 계속해서 새로운 브로커 추적한다. follower 파티션이 속한 브로커가 죽거나 "너무 뒤쳐지면" leader는 해당 브로커를 "ISR"에서 제거한다. "너무 뒤쳐지는" 것에 대한 판단은, replica.lag.time.max.ms 설정값을 기준으로 한다.

다시 말해서, 리더가 속한 브로커는, ISR을 계속해서 추적하며, 이를 (주키퍼모드로 사용중이라면) 주키퍼에 업데이트 한다. 그리고 주키퍼에서는 변동사항을 controller에게 알리며, controller는 이를 브로커가 캐시할 수 있도록 한다.

1-2. preferred leader 와 leader election

- preferred leader : 토픽이 생성될 때에, leader election algorithm 을 통해 리더 선출과 관련한 우선순위를 결정함.

- auto.leader.rebalance.enable : 일정한 주기마다(주기 : leader.imbalance.check.interval.seconds) 리더 파티션의 분포를 체크한다. 불균형이라고 판단되면, (기준 : leader.imbalance.per.broker.percentage) preferred leader 와 ISR 목록을 통해 리더를 재선출 한다.

- controller : Zookeeper의 도움을 받아서, 클러스터를 관리하는 역할을 하는 브로커.

- 토픽 operation (생성, 삭제 등)

- preferred leader election

- 브로커 관리 : 새로운 브로커가 추가되거나, 이탈하는 것들을 모니터링하고 부가 작업들을 수행.

(주키퍼에서 관리되는 /broker znode의 변화값을 모니터링함)

- 클러스터의 메타데이터가 저장되며, 이를 다른 브로커가 캐시할 수 있도록 주기적으로 업데이트 한다.

2. (produce 측면에서) 메시지 유실 가능성에 대해서, 어떻게 대처해야 할까?

- commit 된 메시지 : ISR에 있는 모든 브로커가 자신들의 log파일에 복제한 메시지

( all in sync replicas for that partition have applied it to their log)

프로듀서는 생산하였으나, commit 되기 전에 브로커가 장애가 난 경우, 충분히 유실되는 상황을 상상할 수 있다.

이를 해결하기 위해서, QoS에 producer를 참여시킨다.

: producer가 produce 요청이 성공했는지 판단하는 방식에 대한 값.

리더 파티션이 있는 브로커로부터 어떤 acknowledgement 값도 기다리지 않음.

(실제로 메시지가 서버에 기록되었음을 보장하지 않음.)

프로듀서는 8,9번 메시지를 보내기만 함. 실제로 브로커0번에서 로컬에 기록되지 않을 수도 있다.

리더 브로커가 로컬 log에 기록하고 난 뒤, 바로 acknowledgement값을 응답하게 됨.

(ISR의 브로커에 정상적으로 복제가 되었는지는 보장하지 않음.)

브로커0번이 8,9번 메시지를 로컬 로그 파일에 기록하고 나서, ack을 보냄.

리더 브로커가 로컬 log에 기록을 하고, 모든 ISR 브로커 들도 복제를 하는 응답을 기다린 뒤, acknowledgement를 응답하게 됨.

(최소한 ISR에서 하나의 브로커가 있다면, 메시지는 유실될 수 없음)

브로커0번이 8,9번 메시지를 로컬에 기록하고, 브로커1번이 8,9번을 fetch해서 가져간 뒤 ack을 보내게 됨.

- 전송에 실패한 메시지는 retry하게 된다.

2-2. 유실 가능성과 중복 가능성.

위에서 살펴본 새로운 브로커 바와 같이, committed message의 정의에 따라, commit된 메시지는 복제된 replica가 살아있는 한 유실되기 힘들고, 이를 보장받는 수준을 프로듀서가 결정하도록 한다.

acks = all 인 상황에서, 일부 메시지가 ISR에 복제되다가 리더에 장애가 나서 commit되지 못하였다. (위 그림에서, 8번 메시지가 broker1에 복제되고, 9번을 복제하려다가 실패함.)

그렇다면, produer는 ack를 받지 못하였기 때문에 재시도를 할테고, 새로운 리더로 선출된 Broker1은 8번이 들어와 있는 상태에서 8,9번 메시지를 받게 될 것이다.

메시지가 중복해서 생산되는 경우를 충분히 상상할 수 있다.

producer가 전송하는 메시지 스트림에 일련번호를 부여하는 것이라고 생각할 수 있다.

When set to 'true', the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries due to broker failures, etc., may write duplicates of the retried message in the stream. Note that enabling idempotence requires max.in.flight.requests.per.connection to be less than or equal to 5 (with message ordering preserved for any allowable value), retries to be greater than 0, and acks must be 'all'. If these values are not explicitly set by the user, 새로운 브로커 suitable values will be chosen. If incompatible values are set, a ConfigException will be thrown.

Idempotent delivery ensures that messages are delivered exactly once to a particular topic partition during the lifetime of a single producer. Transactional delivery allows producers to send data to multiple partitions such that either all messages are successfully delivered, or none of them are. Together, these capabilities enable "exactly once semantics" in Kafka.

- 컨슈머가 가져갈 수 있는 메시지는 committed 메시지에 한정된다.

이것이 의미하는 것은, leader쪽에서 실패한 메시지에 대해서 컨슈머는 고려할 필요가 없다는 것이다. 위에서 프로듀서 측면에서 유실가능성, 중복 가능성에 대해서 고민했던 것과는 대조된다.

하지만, 컨슈머 쪽에서 새로운 브로커 polling 해갈 때 기록하는 내용, 즉 consumer offset 을 기록하는 한, 컨슈머에서도 동일한 문제가 발생할 수 있음은 쉽게 상상할 수 있다. 다시말해서, 데이터를 기록하는 과정과 데이터를 읽어가는 과정에서 유사한 문제가 다른 양상으로 나타난다는 것이다.


0 개 댓글

답장을 남겨주세요