반응형
우분투에서 jq 보안 취약점 대응 - apt 업데이트 및 정적 바이너리 적용 방법
운영 환경에서 JSON 데이터를 처리하는 CLI 도구인 jq는 시스템 운영 자동화, 모니터링, API 연동 등에 많이 사용된다.
보안 취약점 대응을 위해 jq 패키지 버전을 확인하고 우분투 패키지 업데이트 방식과 공식 Release 바이너리 교체 방식을 비교한다.
우분투 패키지를 이용한 jq 업데이트
테스트 환경
운영체제 정보
$ lsb_release -d
Description: Ubuntu 24.04.1 LTS
설치된 jq 버전 확인
$ jq --version
jq-1.7
패키지 버전 확인
$ dpkg -l | grep jq
ii jq 1.7.1-3build1 amd64 lightweight and flexible command-line JSON processor
ii libjq1:amd64 1.7.1-3build1 amd64 lightweight and flexible command-line JSON processor - shared library
ii libjs-jquery 3.6.1+dfsg+~3.5.14-1 all JavaScript library for dynamic web applications
jq 업데이트
운영 서버에서 전체 패키지를 업데이트하지 않고 jq 관련 패키지만 업데이트한다.
- --only-upgrade 옵션은 설치되지 않은 패키지를 새로 설치하지 않고 이미 설치된 패키지만 업그레이드한다.
sudo apt --only-upgrade install jq
업데이트 확인
$ jq --version
jq-1.7
패키지 버전 확인
$ dpkg -l | grep jq
ii jq 1.7.1-3ubuntu0.24.04.1 amd64 lightweight and flexible command-line JSON processor
ii libjq1:amd64 1.7.1-3ubuntu0.24.04.1 amd64 lightweight and flexible command-line JSON processor - shared library
ii libjs-jquery 3.6.1+dfsg+~3.5.14-1 all JavaScript library for dynamic web applications
참고
jq 프로그램 자체의 내장 명령어인 jq --version은 패키지의 상세 빌드 번호(우분투가 자체 패치한 세부 버전)까지 보여주지 않고, 개발 소스 코드 기준의 메이저.마이너 버전(1.7)만 출력하도록 설계되어 있기 때문입니다.
728x90
우분투 22.04에서 공식 Release 바이너리 적용
테스트 환경
운영체제 정보
$ lsb_release -d
Description: Ubuntu 22.04.3 LTS
설치된 jq 버전 확인
$ jq --version
jq-1.6
패키지 버전 확인
$ dpkg -l | grep jq
ii jq 1.6-2.1ubuntu3.1 amd64 lightweight and flexible command-line JSON processor
ii libjq1:amd64 1.6-2.1ubuntu3.1 amd64 lightweight and flexible command-line JSON processor - shared library
ii libjs-jquery 3.6.0+dfsg+~3.5.13-1 all JavaScript library for dynamic web applications
ii libjs-jquery-ui 1.13.1+dfsg-1 all JavaScript UI library for dynamic web applications
라이브러리 확인
- 기존 jq는 OS 라이브러리를 사용하는 동적 링크 방식이다.
$ ldd /usr/bin/jq
linux-vdso.so.1 (0x00007fff183e2000)
/usr/lib/x86_64-linux-gnu/libjemalloc.so (0x00007f3c72f24000)
libjq.so.1 => /lib/x86_64-linux-gnu/libjq.so.1 (0x00007f3c72ecd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3c72ca4000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3c72bbd000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3c72991000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3c72971000)
libonig.so.5 => /lib/x86_64-linux-gnu/libonig.so.5 (0x00007f3c728dc000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3c73209000)
기존 바이너리 백업
mv /usr/bin/jq /usr/bin/jq_1.6
jq 공식 Release 바이너리 다운로드
sudo wget -O /usr/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-amd64
실행 권한 설정
sudo chmod +x /usr/bin/jq
버전 확인
$ jq --version
jq-1.7.1
라이브러리 확인
- jq 바이너리가 필요한 라이브러리를 포함한 정적 링크 방식으로 빌드되었다는 의미이다.
$ ldd /usr/bin/jq
not a dynamic executable
참고URL
- AhnLab 보안 권고문 : jq 프로세서 보안 업데이트 권고 (CVE-2023-50268)
- GitHub(jqlang.org) : jq Releases
728x90
반응형
'이슈(보안)' 카테고리의 다른 글
| 보안 권고문 (0) | 2026.06.04 |
|---|---|
| Redis 제품 보안 업데이트 권고 (0) | 2025.11.03 |
| BIND DNS 취약점 보안 업데이트 권고 (0) | 2025.11.03 |
| BPFDoor 악성코드 점검 스크립트 (0) | 2025.05.21 |
| BPFDoor 악성코드 점검 가이드 배포 (0) | 2025.05.21 |