Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back

[TIL] IT 잡학사전 : Day 13 of 14 ( #1 ~ #5 )

#book_club
1년 전
511

오늘 TIL 3줄 요약

  • 인공지능에 대한 기술과 웹 개발 생산성을 늘리기 위한 기술들

  • 암호화폐 블록체인 기술과 NFT 사업

  • 다양한 앱 개발 기술과 제로데이 멀웨이

TIL (Today I Learned) 날짜

  • 2023. 09. 06. ( 수요일 )

오늘 읽은 범위

  • 05 마당 코딩별 안내서 ― 최신 기술 편

    • 에피소드 39 인공지능, 머신러닝, 딥러닝, 아직도 구분하기 힘들다고?

    • 에피소드 40 REST API라니, 휴식 API인가? 이게 대체 뭐죠?

    • 에피소드 41 도커가 뭐지? 왜 필요할까?

    • 에피소드 42 암호화폐의 진실

    • 에피소드 43 하이브리드… 앱? 뭐라고요?

    • 에피소드 44 NFT가 도대체 뭐길래?

    • 에피소드 45 멀웨어, 바이러스, 웜 개념 몽땅 정리

책에서 기억하고 싶은 내용을 써보세요.

인공지능

인공지능

인공지능에는 크게 2가지로 나뉜다.

  • 일반 인공지능

    • general AI / strong AI

    • 넓은 의미의 인공지능이다. 강한 인공지능이라고 불리기도 한다.

    • 인간의 행동을 대부분 할 수 있거나 인간보다 능력이 더 뛰어나다.

    • 일반적인 영화나 드라마에 나오는 인공지능이다.

    • (ex) 아직 제대로 개발된 것이 없다.

  • 좁은 인공지능

    • narrow AI / weak AI

    • 좁은 의미의 인공지능이다. 약한 인공지능이라고 불리기도 한다.

    • 몇 가지 특정 일만 탁월하게 잘한다. ( 1가지 일만 특출 나게 잘한다. )

    • 딥러닝이나 머신러닝으로 만드는 인공지능이 대부분 이것이다.

    • (ex) 페이스북의 얼굴 인식, 빅스비, 시리

머신러닝

인공지능 학습 방법으로 대표적으로 두 가지가 있다.

  • 지도 학습(supervised learning)

  • 비지도 학습(unsupervised learning)

'핫도그 판별 인공지능 만들기'로 지도 학습과 비지도 학습을 이해해보자. 우선 핫도그의 특징을 알아보자.


[ 핫도그 특징 ]

  • 소시지가 있다.

  • 형태가 길쭉하다.

  • 보통 소스가 뿌려져 있다.


  • 머신러닝에서는 이러한 특징을 '라벨(label)'로 칭하며 사용한다.

  • 이 라벨을 토대로 학습을 시키게 된다.


[ 지도 학습(supervised learning) ]

  • 핫도그 사진과 다른 사진 100장을 준비해서 핫도그 라벨에 부합하면 '핫도그', 아니면 '핫도그 아님' 이렇게 기계에게 알려 준다.

    • 학습이 끝나면 그때 부터는 새로운 음식 사진을 보고 기계가 판단할 수 있게 된다. ( 답변은 부합 확률로 답할 것이다. )

  • 이렇게 인간이 기계에게 준 라벨을 토대로 학습하는 방법을 '지도 학습'이라고 한다.

  • [ 실생활 ] 음악 추천 시스템

[ 비지도 학습(unsupervised learning) ]

  • 지도 학습과 반대로 '라벨(label)'이 사용되지 않는다.

  • 기계에게 정답을 미리 알려 주지 않고, 그냥 핫도그 사진만 수만 장 준다.

  • 그러면 특정한 기준을 통해 기계가 스스로 어떤 게 핫도그 인지 알아차리게 된다.

  • 기계는 사진 수만 장과 프로세싱 파워를 바탕으로 어떤 게 핫도그인지 스스로 그 특징을 찾아 학습하는 것이다.

딥러닝

  • 머신러닝의 하위개념이다.

    • 머신러닝을 달성하기 위한 방법이다.

  • 딥러닝이라고 불리는 이유는 머신러닝 과정에서 여러 겹으로 층을 만들기 때문이다.

  • [참고] 딥러닝 대표 알고리즘으로 뉴럴 네트워크(neural network)가 있다.

    • 생물의 신경망에 영감을 얻어 고안된 알고리즘이다.


  • 위의 그림은 딥러닝을 추상화한 그림이다.

  • 새로 열로 묶은 것을 층이라고 한다.

    • 여기에서는 층이 5개 이지만 실제 딥러닝은 무수히 많은 층으로 이루어져 있다.

    • 층이 굉장히 깊다(deep)고 해서 딥러닝이라 불리는 것이다.


암호화폐

암호화폐 ( 비트코인 )

  • 정부 규제

    • 비트코인 거래소는 간접적으로 규제 할 수 있다. ( 규제 가능 )

    • 비트코인 자체는 정부에서 강제로 없앨 수 없다. ( 규제 불가 )

      • 네트워크 상에 존재하는 것이기 때문에 존재 자체는 인터넷과 직결한다.

      • 비트코인 소유 이후 개인의 사용은 규제가 불가능하다.

  • 비트코인은 사용자를 은행 자체로 만든다.

    • 보안 관리 : 개인이다 보니 보안 부실 등의 이유로 철저한 관리가 필요해 진다.

    • 정보 보호 문제 : 모든 정보가 공개 되다 보니 정보 보호가 필요하다. ( 주소만 알면 세세한 거래 내역까지 전부 볼 수 있다. )

[ 암화 화폐 사기 피하는 법 ]

  1. 모든 코인에 가치가 있는 것 아니다.

    • 코인 만들기는 매우 쉽다.

    • 누구나 코드를 복사해서 코인을 만드는 것이 가능하다.

    • 즉, 코든 코인이라고 가치가 있는 것은 아니다.

  2. 암호화폐에 대해 수식어를 남발 하는 사람을 거르자.

    • 복잡하고 화려하고 어려운 용어 사용에 현옥 되지 말자.

    • 제대로 공부해서 확인하자.

  3. 코인, 커뮤니티 등 진짜 정보를 살피자

    • 코드의 업데이트 날짜

    • 커뮤니티 참여자 수

    • 커뮤니티 이슈

      • 만약, 가격 만 얘기하고 있다면 '개미 털기'가 일어날 가능성이 매우 높다.

  4. 탈중앙화 코인 인지 살피자

    • 코인이라고 전부 다 암호화폐이고 탈중앙화 된 것이 아니다.

    • 탈중앙화 되지 않은 코인은 언제든지 마음대로 할 수 있다. ( 매우 위험 )

  5. 론상 안전한 코인을 골라라.

    • 스테이블 코인(stable coin) : 다른 자산에 코인 가치가 연결되어 있어 가격 변동이 거의 없다는 특징이 있다.

    • 코인의 안정성은 알고리즘이 보증한다.

    • BUT, 루나 사태의 코인도 '스테이블 코인'이었다.

NFT

non fungible token의 줄인말

대체 불가능한 토큰을 말한다.

  • 1개만 발행할 수 있도록 스마트 계약서를 만든 것이다.

  • 즉, 유일한 원본을 증명하는 기술

[ 토큰 ]

  • 핵심 기능 2가지

    • 돈을 받는 기능

    • 돈을 받고 토큰을 보내 주는 기능

    • 스마트 계약서(smart contract) : 위의 두 가지를 합쳐서 스마트 계약서 라고 한다.

  • 이더리움 같은 블록체인으로 발행된다.

  • 토큰을 잘 활용 예가 코인다.

[ NFT 그림이 고가에 경매가 되는 이유 ]

NFT 자체가 유일하다는 것을 증명하기 때문이다.

증명을 통해 희소성의 가치가 생기게 된 것이다.

  • NFT를 통해 유일함, 소유권이라는 개념이 생긴 것이다.


비밀번호 시스템

잘못된 비밀번호 시스템

  1. 데이터베이스에 비밀번호 그대로 저장하기

    • 매우 안 좋은 방법이다.

    • 데이터베이스에 접근할 수 있는 운영자, 개발자 모두 볼 수 있게 된다.

    • 비밀번호 시스템을 구축하는 사람도 비밀번호를 볼 수 있어서는 안된다.

  2. 데이터베이스에 비밀번호 키(Key)로 암호화서 저장하기

    • Key로 저장된 부분을 해제해서 사용하다가, 작업을 마치면 다시 키로 잠그는 방법이다.

    • 이 또한 키(Key)를 잃어버리거나 누군가 그 키를 훔치면 큰 문제가 발생한다.

올바른 비밀번호 시스템 : 해시함수

  • 해시 함수를 사용하면 비밀번호 시스템을 더 안전하게 구현할 수 있다.

  • 시스템 개발자가 데이터베이스에서 출력값을 보더라도 안전하다.

  • 해시 함수는 내가 입력한 값을 무작위 값으로 둔갑 시켜 주는 기능을 한다.

    • (ex) 12345라는 비밀번호를 입력해서 회원 가입을 한다면 해시 함수는 !aef3eZ&^와 같은 값으로 만들어 저장한다.


[ 해시함수 - 3가지 규칙 ]

  1. 동일한 입력값에 대해 동일한 출력값을 가진다.

    • 1:1 대응 관계가 유지 된다는 뜻이다.

    • (ex) 12345와 !aef3eZ&^

  2. 입력값이 조금만 바뀌어도 출력값은 크게 변한다.

    • 무작위성을 가진다.

    • (ex) 해시 함수에 12345가 아니라 1234가 입력되면 출력값은 !ae3eZ&* 와 같이 완전히 다른 결과가 나온다.

  3. 반대로 출력값을 입력한다고 입력값이 나오지 않는다.

    • 한 방향이다.


[ 레인보우 테이블 ]

rainbow table

  • 해시 함수도 완벽하지 않다.

  • 레이보우 테이블은 해시 함수가 변경한 값을 원래의 값과 연결한 표이다.

  • 해시 함수를 통과한 값은 레인보두 테이블에서 찾아보면 원래 값을 알 수 있다.

  • 즉, 레이보우 테이블이 훔쳐진다면 다시 큰 문제가 발생한다.



[ 보완책 : 솔트 ( salt ) ]

  • 솔트는 아주 작은 무작위 텍스트다.

  • 12345와 같은 비밀번호에 무작위 텍스트인 솔트를 합쳐서 해시 함수에 통과 시킨다.

  • 그러면 레인보우 테이블이 있어도 원래 비밀번호를 찾을 수 없게 된다.



멀웨어

멀에워

malware

  • malicious(악의 있는)와 softwar(소프트웨어)의 합성어다.

  • 악성 소프웨어로 컴퓨터를 감시하거나 파괴하는 프로그램이다.

  • 이런 사이버 무기는 국가나 특정 기관에서 만들어 사용한다. ( 다른 국가의 핵심 시설이나 인프라를 감시하거나 파괴하려는 목적으로 제작된다. )

  • 대표적으로 바이러스와 웜이 있다.

바이러스

virus

  • 멀웨어의 일종으로 복제가 되어 전파된다.

  • 어떤 파일을 내려받아서 열 때 감염된다.

    • 그 파일을 숙주가 되어 감염시킨다.

    • 전파 과정에서 숙주가 되는 파일이 필요하다.

worm

  • 멀웨어의 일종으로 복제가 되어 전파된다. ( 바이러스와 공통점 )

  • 자기 자신을 복제하면서 전파된다.

    • 숙주가 필요 없다.

    • USB를 통해서도 전파 될 수 있는 징그러운 녀석이다.

[ 웜의 공격 방식 ]

  • 웜은 미사일(missile)과 페이로드(payload)가 필요하다.

  • 웜은 미사일을 통해 컴퓨터 안에 침투하고, 그 순간 페이로드로 배포하는 방식으로 컴퓨터를 파괴한다.

    • 특히, 미사일 침투가 위험하다.

    • 웜이 이동하는 가장 흔한 시나리오가 USB 침투이다.

      • 감염된 컴퓨터에서 사용하던 USB를 다른 사람에게 빌려주게 되면서 감염이 확산 된다.

    • 감염 이후 웜은 암호화 된 상태로 컴퓨터에 도착해 스스로 암호를 해제하고 웜을 만들었던 본부에 아래와 같이 연락한다.

    * 본부 주소: mypremiumfootball.com, todaysfootball.com
    * 본부로 보낸 정보: "이 컴퓨터의 IP 주소는 132.111.123.123이고, 와이파이, 운영체제 정보는 무엇무엇이다."

[ 웜의 침투 위험성 ]

웜이 특이 위험한 이유는 컴퓨터의 kernel root ring에 설치되기 때문이다.

보안 구조는 바깥쪽 부터 애플리케이션 링, 드라이버 보안 링 등으로 두께가 매우 두껍다. 가장 깊은 곳에 중앙 보안 링이 있는데 바로 여기에 운영체제가 있다. 웜은 바로 이곳에 설치된다.

즉, 웜이 백신 프로그램보다 우위에 있다는 것을 의미하게 된다. 웜이 백신 프로그램 위에서 어떤 녀석을 감시하는지도 볼 수 있고, 행동을 지시할 수도 있다는 이야기이다.

이것이 가능한 이유는 제로 데이(zero day) 취약점 때문이다.

제로 데이

zero day

어떤 프로그램이든 취약점을 남긴다. 제로데이는 아직 아무도 발견하지 못한 혹은 고치지 못한 프로그램의 취약점을 말한다.

그런 이유로 제로 데이는 매우 희귀하고 비싸다.

스턱스 넷

stuxnet

역사상 가장 복잡하고 강력했던 사이버 무기이다. 이 스턱스 넷이라는 웜은 제로 데이를 무려 4개나 가지고 있었다.

그런 의미에서 이 제로 데이를 파고드는 웜은 천재 개발자 1명이 만드는 것이 아니다. ( 거대 조직이 뒷받침해 줘야 가능한 일이다. )

[참고] 스턱스 넷 공격은 마지막이 아니다 지금도 진행중이다.

[ 유명한 공격 과정 ]

스턱스 넷은 컴퓨터 드라이버에 설치(감염) 된다.

  • 이게 가능했던 이유는 리얼텍(Realtek)이라는 대만 회사의 인증 자료(certificate)를 이용했기 때문이다.

  • 누군가 대만 회사의 key를 훔쳐서 이 웜에 다 서명한 것이다.

  • 이런 중요한 key는 에어갭(air gap) 컴퓨터에 저장 되는데 이런 중요 자료도 훔쳐서 웜을 만든 것이다.

    • 에어갭 컴퓨터는 인터넷에 절대로 연결하지 않는 컴퓨터를 말한다.

컴퓨터를 약 10만대 이상 감염 시킨 뒤 아무일도 하지 않았다. 특정 발동 조건이 있어는데 이 조건을 만족시키지 않으면 페이로드가 배포되지 않도록 한 것이다.

미사일을 꽂기만 하고 터뜨리지 않은 것이다. 감염 시키고는 공격해야 할 목표물인지 여부를 체크하고 다른 컴퓨터로 이동한다.

그 조건은 감염된 컴퓨터가 WinCC라는 프로그램 실행이다. 프로그램 실행 시 페이로드를 배포해서 공격한다. 요약하면 스턱스 넷은 핵 원심 분리기를 노린 것이다.

  • 핵 원심 분리기와 관련 된 핵심(목표) 컴퓨터를 감염시킨다.

  • 감염 후 13일간 아무것도 하지 않는다.

  • 그 후 15분 동안 핵 원심 분리기의 회전 속도를 굉장히 빠르게 올린다.

  • 26일 동안 가만히 있는다.

  • 그 후 15분 동안 원심 분리기의 회전 속도를 매우 떨어뜨린다.

  • 이렇게 한 이유는 회전 속도에 예민한 핵 원심 분리기를 고장 내기 위함이다.

  • [추측] 이란 등의 분쟁 지역의 핵 시설을 마비시키기 위해 미국이나 이스라엘에 퍼뜨렸다는 얘기가 있다.

    • 이란의 핵 보유를 저지하기 위함이다.

    • 결과적으로 이란의 핵 원심 분리기가 천 개 넘게 폭발했다.