wonder
정보보안 스터디 - 24주차 6일 - Github 단점과 보안사건 본문
☞ git의 탄생배경
조별과제를 할 때를 생각해보면
개발 리소스를 개발 후에 압축해서 서로 보내고 공동개발을 이어갑니다.
하지만 주고받다가 뭔가를 모르고 삭제했을 경우에는 확인할 방법이 없고 다시 돌릴 수도 없습니다.
이를 해결하기 위해서 변경상태를 기록을 해두는 겁니다.
올리기 전에 추가나 삭제나 변경이 되었다면 되었다는 걸 알려주는 시스템입니다.
모두 기록을 하고 공유할 수 있기 때문에 누가 개발하는 것을 기다리지 않고 바로바로 각자 개발할 수 있습니다.
github은 인터넷에서 이걸 만든겁니다.
github말고도 repository 서비스가 많은데
개발자들이 없으면 안될 정도로 많은 정보가 있기 때문에 많은 사람들이 사용할 뿐입니다.
없는 코드가 없는 정도입니다.
개발자들은 자료들을 오픈소스로 올려서 스타를 얻어 천재적이라는 인정도 받습니다.
또한 해커입장에서도 유용한데
취약점 관련 exploit 코드, PoC 코드, 스트립트 정보들을 올려줍니다. 따라서 해커들이 참고할 수 있습니다.
참고로 vulnhub은 취약한 시스템을 만들어서 문제처럼 올리고
다운받아서 풀면서 해킹공부하기에 좋습니다.
참고로 MS-DOS등 C언어가 막 나오기 시작했을 때는 옛날사람들은 어셈블리어로 코딩했다고 합니다.
.ASM파일로 MS-DOS의 오픈소스가 올라가있기 때문에 확인할 수도 있습니다. 또 롤로코스터 타이쿤도 어셈블리어로 만들었습니다.
하지만 이렇게 자료가 많기 때문에 없었으면 좋을 자료까지 있습니다.
중국입장에서는 인터넷 검열 우회 코드/프로그램이 올라가있는 github가 싫을 것입니다.
그래서 차단하는 사태가 벌어지고 중국개발자들이 난리를 내서 풀어주게 됩니다.
하지만 github 사이트(서버) 와 유저사이에 중간자를 두어 MITM 공격을 하며 감시를 하게 됩니다. 증거로 프록시를 사용해서 다른 나라 IP로 접속했을 때는 인증서에 문제가 없었지만, 중국 IP주소로 접속하면 https인증서가 이상하다고 뜹니다.
지금도 물론 걸리지만 않았지 감시하고 있는 상황일 수 있습니다.
이후에는 감시대신 기티라는 중국사이트를 직접만들어서 깃헙을 사용 덜하도록했고
하지만 이 또한 코드 리뷰를 통해서 감시해서 안좋은 코드라면 조치하는 상황입니다.
☞ github관련 사건으로 말하자면
트위터 소스코드가 깃헙에 수개월동안 노출되고 있었습니다.
소스코드는 건물의 설계도와 다름없어서 없다면 해커가 소프트웨어를 추측하면서 알아가는 느낌입니다.
현재 누가 벌였고, 누가 다운했는지 깃헙과 협의해 알아내고 있지만
아마 대거 퇴사하면서 벌인 소행으로 예상됩니다.
github SSH(RSA) host key를 공개한 사건도 있습니다.
원래 공개키를 올려야하는데 비밀키를 착각해 올렸습니다.
따라서 초기에 발견한 사람들은 SSH에 접속해서 재미를 볼 수 있엇습니다.
지금은 초기를 취해 host key를 재생성하고 다른 이들한테도 다시 받으라고 말하고 있습니다.
☞ 기능 및 업로드 과정
github는 최신버전으로 release가 될 때 기존에 다운받은 유저들은
해당하는 파일만 받아서 적용시키면 됩니다.
release가 없다면 그냥 통째로 주소 git clone 또는 download ZIP합니다.
.gitignore 세팅
올리고 싶지 않는 파일이 실수로 올라갈 수도 있으니
이미지나 C언어 파일 등 올리고 싶지 않은 확장자를 추가할 수 있습니다.
프로젝트를 만들 때
일단 터미널에서 git config로 아이디와 이메일을 등록해줍니다.
gitclone으로 폴더를 가져오고 python keylogger 등 프로젝트에 맞는 프로그램을 작성하면 됩니다.
작성 후에는 git status 로 어떤 점이 추가되고 삭제되었는지 추적해서 알려줍니다.
추가한 코드를
git add .
로 현재 디렉토리 파일을 모두 올립니다.
git status 로 다시 추가된 걸 확인하구요
git commit -m "[+] keylogger.py"
commit을 해줍니다.
쉽게 변경 이력을 확실히 표시해 서류에 넣는 작업입니다.
git push origin main(branches이름)
업로드입니다.
branches는 흐름을 조금 다르게 가고 싶을 때(A/B기능을 따로 추가하고 싶을 때)
또는 같이 개발하다가 충동날 수 있으니 각자 나눠서 개발하다가 나중에 합칠 수도 있습니다.
github 비밀번호를 쓰는게 아니라
personal access token 을 따로 생성해줘야합니다.(classic)
만기일을 설정하고 repo를 클릭해주고
토큰 값을 복사한다음 붙여넣어주면 됩니다.
이렇게 처음부터 완성작 만들필요없이 프로젝트를 진행 하면서 차곡차곡 쌓아가면됩니다.
☞ github의 문제점
1) 개발자의 개인정보나, 계정정보, 인증정보가 올려져서 노출될 수 있다는 점입니다.
시나리오를 들어 A라는 사이트는 wonder가 개발했는데 깃헙을 OSINT로 검색해서 비슷한 프레임으로보이는 프로젝트가 있을 수 있습니다. 거기에 있는 주석부분에 관리자 계정 아이디/비번을 수집해서 대입해볼 수 있습니다.
> 주의해서 올리는 것이 좋습니다.
2) github은 아까 말한대로 악성코드 그자체를 공유해서 분석하기도 하기 때문에
악성코드 검사를 거의 하지 않습니다.
따라서 개발자 입장에서는 모르고 다운받았다가 걸릴 수도 있습니다.
예를 들어 .sln 솔루션 파일에 숨겨져있는데 하나하나 분석해보지 않은 이상 숨겨진 코드한줄을 찾아낼 수는 없습니다.
이를 방지하기 위해 바이러스 토탈을 돌려보든가, 스타가 많은 신뢰도순으로 검색하든가, 짧은 코드라면 직접 분석하는 것이 좋습니다.
물론 가상 환경에서 돌리는 것이 필수고요.(가상환경이라도 개발리소스가 있으니 조심해야하고 가상환경을 host까지 영향을 주는 사례도 있다고 합니다.)
현재 hackthebox nmap 스캔을 돌렸을 때는 웹서버가 작동중이라고 떴지만 redirect되기 때문에 이 주소를 연결하는 것이 안되었습니다. 물론 인터넷 문제나 브라우저 테스트해본 결고 브라우저 문제도 아니고 그래서 DNS 부분이 문제인 것 같아서 해결하려고 시행착오했지만 아직해결하지 못했습니다.
hackthebox 자체가 블랙박스 기반의 테스팅이라서 easy 난이도도 힌트나 알려주는 것이 없기 때문에
좀 어렵습니다. 다음시간에는 이걸 풀고 review 해보도록 하겠습니다.
'Culture > etc 해킹지식' 카테고리의 다른 글
정보보안 스터디 - 26주차 2일 - 이니세이프 취약점, 스테가노그래피 (1) | 2023.04.08 |
---|---|
정보보안 스터디 - 24주차 7일 - 산업보안 트렌드 보안교육, 양자암호화 (0) | 2023.03.30 |
정보보안 스터디 - 23주차 7일 - AWS 클라우드 보안 서비스, SIEM (2) | 2023.03.24 |
정보보안 스터디 - 23주차 6일 - 메이플 해킹 사건, python 키로거 (0) | 2023.03.22 |
정보보안 스터디 - 22주차 7일 - BIOS/UEFI (2) | 2023.03.16 |