기사 요약 요즘 세상을 뜨겁게 달구고 있는 ChatGPT. 대기업은 사내에서 ChatGPT 사용에 대한 여부를 두고 고민에 빠졌다. ChatGPT특성상 데이터가 입력이 되면 외부 서버에 저장이 된다. 그리고 계속 학습을 해나가기 때문에 잘못했다가 사내의 기밀 정보에 대한 이야기가 흘러 들어갈 수 있다. 예를 들면 ChatGPT에게 기업의 기밀정보를 주고 더 좋은 방안에 대해 이야기 할때 누군가가 그 기업에 기밀정보에 대해 묻는다면 ChatGPT는 스스럼 없이 답을 해주게 된다. LG전자는 ChatGPT 사용에 대해 딱히 제안을 두지 않았다고 하지만 SK하이닉스, 삼성전자는 사용을 금지했다. 더불어 얘기하자면 삼성전자에서는 ChatGPT를 사용한 직원을 해고하기도 했다. 느낀점 ChatGPT 등장 이후 사..
기사 요약 2달 전 북한에서 네이버 포털 사이트를 실시간으로 복제한 피싱사이트를 만들어 해킹을 시도한 정황이 포착되었다. 북한은 정말 교묘하게 네이버 주소 뒤에 potal을 붙여서 naverpotal.com으로 지정해두었다. 접속해볼까도 싶었지만 해킹당할까 무서워 접속해보진 않았다.(나는 쫄보...)뉴스에 따르면 뉴스, 배너, 검색 탭 부분 모두 다 똑같이 코딩되어있다고 한다. 저렇게 똑같은데 해킹 당할 위험이 뭐가 있겠냐 싶겠지만, 핵심적인 문제는 로그인에 있다. 북한에서는 로그인하면서 넘어오는 사용자 정보를 탈취할 계획이었던 것이다. 놀랍게도 저 사이트에서 로그인도 된다고 한다. 국가정보원(이하 국정원)에서는 개인정보 탈취 가능성을 높이기 위해 해킹 공격 수법을 진화시킨 것이라고 한다. 또 현재 국정..
개요필자의 동생은 곧 고등학교 입학을 앞두고 있는데, 나와 같은 고등학교에 입학할 예정이다. 학교에서 개발을 배우게 될 예정이긴 하지만, 이제 막 개발을 시작하는 단계이기 때문에 어떠한 베이스 지식도 없다. 그래서 동생에게 가장 공통적으로 많이 쓰이면서도 기본적인 GIT 사용법과 용어들에 대해 알려주기로 했고, 동생 뿐만 아니라 이제 개발을 시작한 분들에게도 조금이나마 도움이 되고자 이 글을 작성하게 되었다. GIT이란?컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템이다. - 위키백과 여기서 스냅샷 스트립 기반이라는 말을 제외하고 의미를 정리해보면, GIT은 변경사항 즉, 버전을 관리해주는 시스템을 말한다. GIT..
개요요즘 프로젝트를 하면서, 주변사람들에게 이런 말을 듣고는 했다. "그런데, 테스트 코드는 작성 안 하세요?" 혹은 "TDD는 해?" 와 같은 말들. 나는 그동안 프로젝트를 완성하는 것에 초점을 맞추다 보니, 테스트 코드를 크게 염두에 두진 않았다. 그래서 지금 부터라도 소프트웨어 테스트에 대해 알아보고 추후에 프로젝트를 진행할 때 작성해보려고 한다. 소프트웨어 테스트란?소프트웨어 테스트(software testing)는 주요 이해관계자들에게 시험 대상 제품 또는 서비스의 품질에 관한 정보를 제공하는 조사 과정이다. - 위키백과 즉, 소프트웨어가 의도한대로 동작한대로 동작하는지 테스트하는 행위를 일컫는다. 소프트웨어 테스트의 장점옛날에는 사람들이 직접 테스트를 하고 또 테스트를 하는 팀이 별도로 있었지..
개요지난 포스팅에서 QR코드를 생성하고, 이를 이미지화 하는 작업까지 마쳤다. 그래서 오늘은 이를 활용해 입소 인증기능을 구현해볼 예정이다. 필자는 현재 프로젝트에서 Next.js와 Typescript를 활용해서 진행하고 있다.기능사항 쪼개기우선 내가 구현하고자 하는 기능을 세부사항으로 쪼갰다. 그랬더니, 아래와 같이 4가지 사항들로 정리할 수 있었다. react-qr-reader라이브러리 설치하기qr을 스캔하는 컴포넌트 생성하고, 설정해주기카메라를 통해 QR코드 인식하기결과를 확인하고 통과시키기그럼 이제 시작해보도록하자.react-qr-reader 설치하기npm i react-qr-readeryarn add react-qr-reader npm 혹은 yarn을 활용해 react-qr-reader 라이브러..
필요성 바로 어제 Node.js로 node-cron을 활용해 주기적으로 문자열을 생성해주었다.(관련 글은 여기 있다.) 그 문자열을 Base64로 인코딩하여 QR이미지를 만들어 친구들이 조작 없이 실시간으로 인증할 수 있도록 만들어야 한다. 도입하기 Python3와 pip 설치는 사전에 준비되어있다는 가정하에 진행된다 폴더 및 파일 생성 우선 폴더 하나를 만들고, 안에 main.py를 생성한다 코드 작성 필요한 모듈을 import한다 # api 요청 import requests # base64 인코딩 import base64 # qr 이미지 생성 import qrcode # 대기 시간 설정 import time 서버가 켜져있는 동안 3초를 주기로 QR이미지를 생성해준다 # 참일 동안 while True:..
필요성 현재 구현하고 있는 기숙사 입소 시스템은 입소 인증 방법에 대한 고민이 많았다. 우리 학교에서 입소를 인증한다는 것은, 다른 대학교에서 출석 인증을 하는 것과 다름 없기 때문에 그만큼 상당히 중요하다. 우회나 조작이 불가능해야 하고, 인증 요청자가 자기 자신이라는 것을 증명해야 한다. 그렇다 보니 인증은 보안에 매우 매우 중요하다. 그래서 여러 방법을 시도해보면서 어떤 방법을 쓰는 것이 적합할지에 대해 생각해보던 중 선생님을 통해 cron에 대해 알게되었다. 어떻게 쓸것인가 요즘 대학생들이 출석하는 모습을 본적 있는데, 이렇게 QR코드를 찍어서 앱에서 인증하도록 한다. 교수님께서 QR을 띄우면 학생들이 출석인증을 하는 방식인데, 우리가 그대로 적용하기엔 몇 가지 문제점이 있다. 우리는 사람마다 오..
그리디현재 상황에서 지금 당장 좋은 것만 고르는 방법,순간 가장 좋아보이는 것을 선택하며, 현재 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 구현머릿속에 있는 알고리즘을 소스코드로 구현하는 과정.모든 경우의 수를 주저 없이 다 계산 하거나, 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행하는 등의 유형있다. DFS깊이 우선 탐색으로 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘. 스택을 사용한다.const graph = { A: ["B", "C"], B: ["A", "D"], C: ["A", "E"], D: ["B", "F"], E: ["C","G"], F: ["D","H","I"], G: ["E","J","K"], H: ["F","L..
Buffer Overflow 데이터를 버퍼에 저장할 때 개발자가 의도한 크기를 넘어서 값을 넣는 방식이다. 그럼 버퍼 데이터가 초과하고, 초과된 데이터는 인접 메모리에 영향을 미친다. 이때 제어 관련 구문도 포함될 수 있다. 프로그램의 실행 흐름을 바꿔 특정 코드가 실행되게 한다. 해결 방안 입력 값의 타입 확인 입력 값의 길이 확인 용어 정리 Stack Frame 모든 함수가 호출될 때 할당되는 자신만의 스택 공간이다. SFP: Stack Frame Pointer 이전 함수의 Stack Frame Pointer를 저장하는 영역이다. Stack Pointer의 기준점이 된다. SP: Stack Pointer SFP를 기준점으로 해서, 상대 주소 offset 을 저장해 메모리에 접근한다. RET: Retu..
시스템 해킹 관리자 권한을 손 안에 넣는것이 목적이다. root 권한을 얻게 되면 서버를 쥐락펴락 할 수 있기 때문에, 시스템 해킹은 root 권한을 어떻게든 가져보겠다고 시도하는 것을 말한다. (궁극적인 목적임) 리모트 해킹 Remote Hacking 해킹하고자 하는 서버에 아이디를 가지고 있지 않을 대, 아이디를 얻고자 시도하는 것을 말한다. 로컬 해킹 Local Hacking 해킹하고자 하는 서버에 일반 계정을 가지고 있을 때, root 권한을 얻기 위해 시도하는 것을 말한다. 리모트 해킹을 성공해서 한 아이디를 손에 넣더라도, 별로 할 수 있는 것이 없기 때문에 바로 로컬 해킹을 하게 된다. 로컬 해킹의 원리 SetUID이다.일시적으로 자신의 ID를 변경하는 것 해킹 실습 로컬 해킹의 프로세스는 ..