목록Run to us with Sh4n3e (77)
Sh4n3e
나는 현재 Security Researcher/Engineer로 일하고 있다. 다양한 보안업무를 진행하는 와중에, 특히 보안 관련 서비스를 개발하고 이를 CI/CD 파이프라인을 통해 손쉽게 배포를 할 수 있는 환경 구성에 대한 갈증을 느끼게 한다. 근래 내가 진행했던 것에 대해서 간략하게 풀어보고자 한다. 1. Github 내에 존재하는 갖은 토큰 값의 존재로 인한 보안 이슈 해결 방안 고민 private 환경의 형상관리툴(github, gitlab 등), 그리고 private repository라고 하더라도 Data Loss(데이터 유출)에 대해선 언제나 자유로울 수 없다. 악의적인 소스코드 유출, 3rd party application의 취약점으로 인한 소스코드 유출등 갖은 위협은 우리의 곁에 함께 ..
Trivy는 신뢰할 수 있고 빠르며 사용하기 쉬운 오픈 소스 보안 스캐너이다. Trivy를 사용하여 취약성 및 IaC 구성 오류, SBOM 검색, 클라우드 스캐닝, Kubernetes 보안 위험 등을 찾는 역할을 한다. Trivy는 다음과 같은 기능을 수행할 수 있다. Trivy가 스캔할 수 있는 것: 컨테이너 이미지 파일 시스템 Git 리포지토리(원격) 가상 머신 이미지 쿠버네티스 AWS 스캐너(Trivy가 찾을 수 있는 것): 사용 중인 OS 패키지 및 소프트웨어 종속성(SBOM) 알려진 취약점(CVE) IaC 문제 및 잘못된 구성 민감한 정보 및 비밀 소프트웨어 라이선스 Trivy를 이용하면 아래와 같이 Grafana를 이용한 Dashboard를 만들어 Kubernetes 및 Container, 사..
DevOps Security (DevSecOps) DevSecOps는 소프트웨어 개발 프로세스의 모든 단계에서 보안 테스트를 통합하여 관리하는 것을 의미한다. 여기에는 개발자, 보안 전문가 및 운영 팀 간의 협업을 장려하여 효율적이고 안전한 소프트웨어를 구축할 수 있는 도구와 프로세스가 포함된다. DevSecOps는 개발, 보안 및 운영을 의미한다. 이는 DevOps 방식의 연장선에 SW 애플리케이션을 구축하는 과정에서 각자가 가지는 역할과 책임을 의미한다. 개발 개발은 응용 프로그램을 계획, 코딩, 빌드 및 테스트하는 프로세스 보안 보안이란 소프트웨어 개발 주기 초기에 보안을 도입하는 것을 의미 예를 들어 프로그래머는 코드에 보안 취약점이 없는지 확인하고 보안 실무자는 회사가 소프트웨어를 출시하기 전에..
문자열 함수문자열 함수에서 사용되는 문자열의 길이가 MySQL 서버 파라미터 중의 max_allowed_packet 값보다 크면 함수의 결과로 NULL 이 리턴된다. 그리고 모든 문자열 함수에서 문자열의 첫번째 문자의 위치값은 숫자로 1이다. 0이 아님에 유의하자.또한 참고로 알아둘 것은 일반적으로 얘기할때 '문자' 와 '문자열' 은 의미가 다르다. 여기서 말하는 '문자' 는 한 character 의 문자 즉 문자 하나를 의미하며 '문자열' 은 여러개의 character 로 이루어진 문자열은 의미한다. ASCII(str)문자열 str 의 가장 왼쪽에 있는 문자의 아스키 코드값을 가져온다. str 에 문자 대신 숫자가 들어가면 숫자를 문자열 형태로 변환하여 가장 왼쪽 문자의 아스키코드 값을 가져온다. OR..
어제에 이어 추가적인 정보를 추출하는 방법에 대해서 소개해보고자 한다. 0x05. SQL Injection을 통한 DBMS 정보 수집DBMS내에는 모든 정보를 아우르는 스키마가 존재한다. 그것의 이름은 Information_schema이다.우리가 DBMS로 접속하여 show databases; 라는 명령어를 사용하였을때, 우리는 아래와 같은 결과를 보통 볼 수 있을것이다. 12345678910111213141516171819MariaDB [(none)]> select user();+----------------+| user() |+----------------+| root@localhost |+----------------+1 row in set (0.00 sec) MariaDB [(none)]> sho..
SQL Injection 이름만 들어도 어려운 웹해킹 기법이며, 웹해킹의 꽃(?)이라고도 불린다. 이번 포스팅을 통해 기본적인 SQL Injection 기법부터 Blind SQL Injection 기법까지 다뤄보고자 한다. 0x01. DVWADVWA는 기본적인 웹해킹을 연습해볼 수 있는 공간으로, 설치 및 구성에 대한 부분은 생략한다.(그냥 구글링만해도 나온다.)나는 KALI Linux에 DVWA를 설치하여 사용하였고, Kali에 기본적으로 설치되어있는 Apache2와 PHP7을 이용하였다. 0x02. SQL Injection?SQL Injection은 웹페이지에서 DB에 정보를 조회하는 SQL Query문의 취약한 부분을 유추하여, 악의적은 SQL Query문을 삽입함으로써 원하는 정보를 획득할 수 있..
어떤 사이트의 공고(Announcement)를 주기적으로 확인해야하는 일이 생겼다.하지만 매일 직접적으로 확인하는 것은 쉽지 않은 일이다.그래서 나는 자동적으로 크롤링을 하는 웹 크롤러를 제작해보았다. (크롤러의 개념이 이렇게 쓰이는 것이 아니라면 알려주세요.)크롤링한 정보는 주기적(매일 오후 1시)으로 Telegram을 통해 받아 볼 수 있도록 했다. 순서는 아래와 같았다.1. Open AWS(Amazon Web Service) Free Tier Server (Ubuntu)2. Create Telegram Bot and Telegram Channel3. Build a Python Script4. Add a Schedule at Crontab AWS 프리티어 서버를 여는 것은 구글링을 하면 많은 정보를 ..
이번 문제는 저번 문제랑 다를게 없다... 쪼금 다른데 쉽다.그래서 간단하게 넘어갈 생각이다. (모르겠다면 댓글로 질문해도 좋다.) 문제를 보면 보안상 문제로, image file만 허용한다고 한다. 하지만 그렇다고 해서 풀지못한다면 문제가 있겠지...?해당 문제도 파일업로드 취약점으로 접근한다. 하지만 이 문제는 natas12와 달리 정말 Image File인지 검사한다. 그 검사의 루틴은 소스코드에 들어가 있는데 바로 그부분은 else if (! exif_imagetype($_FILES['uploadedfile']['tmp_name'])) { echo "File is not an image"; 바로 이 루틴이다.exif_imagetype()함수를 통해서 해당파일에 exif헤더를 파싱하는 것이다. jp..
Natas12 문제까지 왔다. 조금만 더 힘을 내보자.(그래봐야 아직 반도 못왔다는...) 문제의 URL은 아래와 같다.[URL : http://natas12.natas.labs.overthewire.org/]문제의 URL로 접속하면 아래와 같은 화면을 볼 수 있다.JPEG 파일을 선택해서 업로드하라고 한다. 그리고 최대 size는 1KB라고 한다. 아무파일이나 선택해서 업로드를 해보자! 업로드를 하면 위와 같이 upload디렉터리에 임의로 지정된 이름과 jpg확장자를 가진 파일이 업로드 되었다고 나온다.(필자는 여기서 test.jpg 라는 파일을 업로드 하였다.)그럼 이 페이지는 어떻게 동작하는지 알아보기 위해 sourcecode를 한번 보자. 소스코드를 보게 되면, 여러개의 함수가 보인다.genRan..
문제의 URL을 접속하면 아래와 같다.[URL : http://natas11.natas.labs.overthewire.org] 문제를 보면 쿠키값이 XOR 암호화 방식으로 보호되어 있다. 라고 써있다. 음.. 그렇군 하며 Source코드를 보러간다. 처음보는 사람은 "읭? 이게 머지....." 라고 할지도 모른다.그냥 봤을때 복잡해 보이니까...? 하지만 간단하게 생각하면된다.게다가 문제자체에 힌트가 주어져있다. XOR방식으로 암호화 했단다.그럼 한번 시작해보자. 123456Colored by Color Scriptercs 우선 해당 문제는 $data["showpassword"]가 yes면 natas12의 password를 보여주는 것이다.그럼 $data["showpassword"]가 어디에 존재하는지 ..