Docs/CS

{ '1일 1로그 100일 완성 IT지식 = [보안 79] 곳곳에 도사리는 위험' };

회색 괴발자 2022. 7. 22. 01:44

웹은 여러가지 보안 문제를 제기한다.

 

1. 클라이언트에 대한 공격

2. 서버에 대한 공격

3. 전송중인 데이터에 대한 공격

 

 

먼저 첫번째, 클라이언트에 대한 공격을 알아보자.

클라이언트에 대한 공격은 단순한 스팸, 추적 뿐만 아니라 '타인이 사용자로 위장할 수 있는 정보'를 훔치는 것을 말한다.

예를 들어 신용카드 정보나 계좌번호, 각종 비밀번호 등을 말한다.

 

개인정보를 보호하기 위해 사용자는 어떠한 조치를 취할 수 있는가

  •    우선 제 3자 쿠키 (Third Party Cookie) 를 차단하고,
  •    인터넷 추적 소프트웨어인 트래커를 비활성화 시키는 브라우저 애드온을 사용하고,
  •    자바스크립트를 차단하는 등의 방법을 사용할 수 있다.

 

이렇게 보안등급을 최고로 올려두면 어떤 현상이 발생하는가?

 

개귀찮아진다.

 

이 정도 수준이라면 어떤 사이트를 이용하려 해도 제대로 할 수 있는 게 없기 때문이다.

그러므로 사이트 이용 시 일시적으로 보호 수준을 낮추고 브라우저 사용 이후 다시 재설정 하는 것을 권하고 있다.

책의 저자는 그 정도의 노력을 들일 만하다고 생각한단다. (???????)

브라우저 개발사가 일부 쿠키와 다른 트래커를 좀 더 쉽게 차단하는 기능을 제공하지만 사용자의 조정이 필요하다.

 

여기서 제 3자 쿠키를 설명하자면 일단 쿠키(Cookie)는 사용자의 행동데이터를 브라우저에 저장하여 웹사이트 이용을 편리하게 해준다.

팝업이 뜰 때 ㅁ오늘하루보지않기 를 선택하면 그날 하루는 다시 팝업이 뜨지 않는 것처럼.

이런 쿠키는 자사쿠키 와 타사쿠키로 나눌 수 있는데,

타사쿠키가 바로 3 쿠키로 주로 온라인 광고나 성과추적을 목적으로 활용된다고 한.

물론 개인정보 이슈로 인해 사파리, 파이어 폭스 같은 브라우저는 이미 3자쿠키를 차단했고 세계에서 가장 높은 점유율을 가진 크롬도 기존에는 올해 1월부터 3자쿠키를 차단하겠다고 밝혔으나 작년 6월에 다시 2023년부터 단계적으로 차단하겠다로 밝혔다.

 

https://www.bloter.net/newsView/blt202106250009

 

 

그럼 자바스크립트는 어떻게 보안에 위협이 되느냐

 

일단 자바스크립트는 웹, 모바일 서버 구현에 기본적인 기술인 만큼 쉽게 공격의 대상이 된다.

크로스 사이트 스크립팅(XSS) 라고 강제로 js에 악성코드를 인젝션 시키는 방식으로 사이버 공격의 40% 가 XSS공격이다.

또 다른 방법으로는 크로스 사이트 위조 요청 CSRF 공격으로 사용자의 보호되지 않는 form 요소를 찾아 악성코드를 심고

이를 통해 웹사이트의 사용자의 이메일을 알아내고 비밀번호 변경을 요청하여 계정을 탈취하는 방법이다.

 

https://www.appsealing.com/kr/javascript-security-guide/

 

 

 

 

 

 

스팸(spam)은 '부자 되는 법', '주식정보' 등과 같은 원치 않는 상품과 서비스를 권하는 메일을 보내는 것을 말한다.

스팸은 이미 알려진 패턴이나, 이상한 이름, 기묘한 철자 또는 스팸업자가 선호하는 메일 주소 등을 찾기위해 텍스트 분석을 통해

진짜 메일과 스팸을 구분하려는 노력이 꾸준히 이어지고 있다. 이러한 스팸 필터링은 머신러닝의 중요한 응용분야이다. 

스팸과 스팸 아닌 것으로 태그된 훈련 집합이 주어지면 머신러닝 알고리즘은 집단의 특성과 유사성을 기반으로 데이터를 분류한다.

스팸은 일종의 군비 경쟁과 비슷하다. 하나를 막아내면 다른 방식의 공격이 들어온다. 스팸은 출처도 불명확해 원천 차단이 어렵기도 하다. 많은 스팸이 해킹된 개인의 컴퓨터에서 전송되고 대부분이 윈도우 운영체제를 이용한다. 주로 사용자의 컴퓨터에 보안 허점이나 관리소홀이 생기면 악성코드에 취약해지게 되고 이때 악성코드가 심어지면 나도 모르는 사이 스팸을 보내게 되는 것이다. 악성코드는 시스템을 손상시키거나 작동을 방해하는 악의적인 소프트웨어를 말한다.

 

피싱(phishing)은 도용에 사용할 수 있는 정보를 수신자가 자발적으로 넘겨주도록 설득하는 방법이다.

저자 또한 피싱의 대상이 되었는데 직장 동료의 이름으로 기프티콘을 사서 보내라는 연락을 받았었다.

이처럼 명확한 표적이 있는 공격을 스피어 피싱(spear phishing)이라고 한다.

스피어 피싱은 일종의 소셜 엔지니어링으로 sns 활동이 많을 수록 개인의 관계망이 공개되어 표적이 되기 쉬워진다.

유명한 CEO나 고위 임원이 보내는 것처럼 꾸미는 스피어 피싱이나 소셜 엔지니어링 공격은 효과가 꽤 좋다. 

 

스파이웨어(spyware)는 컴퓨터에서 실행되면서 사용자에 대한 정보를 다른 곳으로 보내는 프로그램을 말한다.

이중 일부는 악의적인 공격이지만 가끔은 단순한 상업적 스누핑인 경우도 있다.

 

공격자가 개인의 컴퓨터에 좀비(zombie)를 설치하는 경우도 흔하다.

좀비란 타인의 컴퓨터에 원격으로 제어할 수 있는 봇(Bot) 프로그램을 설치하고 PC를 감염시켜 해커 마음대로 컴퓨터 시스템을 조종하는 것을 말합니다. 컴퓨터가 인터넷에 연결되면 깨어나 스팸 메일 전송같은 적대적인 행동을 수행하라는 명령을 받을 때까지 대기하는 프로그램을 말한다. 이 봇을 조종하는 공통네트워크를 봇넷(bot net)이라고 한다.

언제든 임무에 투입 될 준비가 된 봇넷은 수천개 이고, 봇은 수백만개 정도가 있다고 한다.

잠재적 공격자들을 대상으로 하는 봇 판매사업은 연일 번성중이다.

 

악당이 클라이언트의 컴퓨터를 해킹해 사용자가 개인정보를 입력하는 순간에 도용되기도 한다.

파일 시스템에서 정보를 찾거나, 몰래 설치된 키 로거(key logger)를 사용해 비밀번호나 데이터가 입력될 때 캡쳐하는 방식으로

키 로거는 클라이언트에서 일어나는 모든 키 값을 모니터링 하는 프로그램이다. 흔한 암호화는 키 로거를 막는 데 도움이 되지 않는다. 이는 악성코드로 마이크나 카메라를 켤 수도 있다. 

 

악성코드가 컴퓨터에 있는 콘텐츠나 파일을 암호화하고 복호화를 위한 비밀번호를 주는 대신 금전적인 요구를 하는 것을 섬웨어(ransomware) 공격이라고 한다.

2020년 캘리포니아 대한 샌프란시스코 의과대학은 중요한 학술 연구 자료가 랜섬웨어에 공격당해 악성코드 공격 배후자들이 요구한 금액 중 일부인 114만 달러 (한화 약14억)를 지불했으며, 저자가 속한 과학기관 또한 랜섬웨어 공격을 받기도 했다.

 

좀 더 단순한 랜섬웨어도 있다. 컴퓨터 화면에 악성코드에 감염됐다고 협박하는 화면을 띄운다. 이 화면이 뜨면 화면에 표시된 수신자 부담 전화번호로 전화를 걸어 적당히 돈을 주면 구출된다고 한다. 이를 스케어웨어(scareware)라고 한다.(scare 겁주다)

 

이런 클라이언트 공격을 방어하기 위한 예방책

  • 브라우저를 최신으로 유지하고 불필요한 정보는 공개하지 않는다.
  • 다운로드를 임의로 허용하지 않도록 브라우저를 설정하면 더욱 안전하다.
  • 휴대전화로 하기 쉬운 행동은 개인정보를 내보내는 앱을 다운로드 하는 것이다.
  • 앱은 연락처, 위치 데이터, 통화기록을 비록한 모든 휴대폰 정보에 접근 가능하고 이 정보들은 우리에게 불리하게 작용할 수 있다.

휴대폰의 소프트웨어는 우리가 스스로를 방어할 수 있도록 개선되고 있지만 매우매우 천천히 발전하고 있다.

 

 

 

 

 


 

 

두번째, 서버에 대한 공격이다.

서버에 대한 공격은 사용자들이 할 수 있는 일은 없지만 분명 피해는 입게 된다.

서버는 클라이언트가 요청하더라도 인가되지 않은 정보는 유출되거나 무단 접근이 허용되지 않도록 주의깊게 프로그래밍 되어야 한다.

서버는 보통 데이터베이스의 지원을 받는데 서버가 자주 받는 공격 중 하나는 이 데이터베이스의 SQL 주입 공격이다.

공격자는 데이터베이스의 구조를 드러내고 인가되지 않은 정보를 추출하면 공격자의 코드가 전체 시스템을 통해 통제권을 획득할 가능성도 있다. 이러한 공격은 잘 알려져 있는 만큼 방어책도 마련되어 있지만 여전히 자주 발생하는 서버 공격계의 스테디셀러이다.

 

시스템이 해킹되면 해킹에서 보호되는 범위는 거의 없다고 볼 수 있다.

특히 공격자가 최고권한인 '루트권한'을 획득했다면 더더욱 그렇다.

루트권한이란 무엇인가?

루트권한에서 루트는 유닉스에 존재하는 슈퍼유저, 특권사용자를 말한다. 일반적으로 pc에서 키보드를 눌러 글을 쓰거나 마우스를 클릭하는 행위들은 모두 관리자 권한을 부여받아 실행되는 것이고 관리자는 자신의 권한에 속한 파일만 읽고 있다.

그러나 루트권한을 가진 사용자라면 누구든지 모든 파일을 읽고 있다.

 

이러한 보안 침해 사건 중 하나는 2017년 미국 3대 신용정보 기관인 에퀴팩스에서 1억 5천만명의 개인정보가 외부로 유출된 사건이 있었다. 에퀴팩스는 보안 절차에 태만했고 알려진 취약점을 대비하기 위한 시스템 업데이트를 진행하지 않았다. 게다가 사고 이후 에퀴팩스는 9월까지 보안 침해 사실을 공개하지 않았고, 고위 임원은 이 사실이 알려지기 전에 주식을 매도했다.

 

서버는 Dos(서비스 거부) 공격의 대상이기도 하다.

공격자는 단순히 트래픽 용량만으로 사이트를 마비시키기 위해 대량의 트래픽이 사이트로 향하게 된다. 이 공격은 흔히 봇넷으로 지정된다.

많은 출처에서 동시에 오는 공격을 DDos(분산 서비스 거부) 공격이라고 한다. 일례로 2020년 아마존 AWS 클라우드 서비스에서 역대 최대 규모였다는 DDos 공격을 성공적으로 대처 했다.

 

 

 

 

 

 


 

세번째는 전송중인 정보에 대한 공격이다.

전송중인 정보 공격은 무선 시스템이 확산되면서 과거와는 다른 양상을 보일 수 있겠지만 좋은 방향을 아닐 것이다.

어쩌면 은행과 통화하는 과정에서 내가 말한 계좌번호와 비밀번호를 탈취할 수도 있을 것이다.

트래픽이 암호화 되어 있다면 안전할 수도 있겠지만 개방형 무선 액세스 포인트를 제공하는 곳이면 언제든 암호화 되지 않은 연결을 프로그래밍으로 스누핑 하기 쉽다.

 

중간자 공격이라는 것도 있다. 이는 공격자가 메시지를 가로채고 내용을 바꾼 다음 원출처에서 발송 된 것처럼 보내는 것이다.

적절한 암호화는 이러한 공격도 막아준다. 국가 방화벽은 또 다른 종류의 중간자 공격으로 트래픽을 느리게 하거나 검색결과에 영향을 준다.

 

vpn은 두 컴퓨터 간에 암호화된 통신 경로를 설정하여 일반적으로는 정보의 흐름을 양방향으로 안전하게 보호한다.

하지만 이용하고 있는 vpn업체를 과연 얼마나 신뢰할 수 있는지가 문제다.

 

2020년 연결기록을 남기지 않는다 했던 다수의 무료 vpn 서비스에서 보안 침해 사고가 일어났고 사용자의 연결기록정보가 1TB 이상 유출되었다. 도난 당한 정보는 연결시간, 날짜, ip주소 심지어 비밀번호도 포함되어있다.

 

시그널, 왓츠앱, 아이메시지 같은 보안 메시징 앱은 사용자 상호간 암호화 된 음성, 비디오, 텍스트 통신을 제공한다.

모든 통신에 종단 간 암호화가 적용되는 데 이는 서비스 제공업체는 없고 종단점에만 존재하는 키를 사용해 메시지 발신지에서 암호화 되고 수신지에서 복호화 된다는 뜻이다. 이러면 이론상으로는 도청, 중간자 공격이 불가하다.

최근 많은 사람이 이용하는 줌 화상회의 시스템은 256비트 AES 암호화 알고리즘을 사용해서 종단간 암호화를 제공한다고 주장해왔지만 2020년 미연방거래위원회에서 제출한 소장에 따르면 실제로 줌은 내부 암호화 키를 보유했고 AES-128 암호화만 사용했으며 사파리 브라우저의 보안 매커니즘을 우회하는 소프트웨어를 몰래 설치했다고 한다.

 

 

 


 

웹에서 나를 지키기 위해서는 

  1. 비밀번호를 신중하게 선택하고 되도록 이중인증장치(otp) 를 사용하고
  2. 제3자쿠키를 차단하고 애드온 같은 광고추적 프로그램을 이용해 악성코드를 예방해야하며
  3. 항상 소프트웨어를 최신으로 유지하는

등의 노력이 필요하다.